droidknights / DroidKnightsApp

국내 최대 규모 안드로이드 컨퍼런스 드로이드나이츠 앱
https://www.droidknights.dev
264 stars 71 forks source link

테마 선택시 전환이 안됨 #164

Closed Pluu closed 1 year ago

Pluu commented 1 year ago

Overview (Required)

Steps To Reproduce

핸드폰은 다크 모드인 상태

  1. 앱 실행 후 첫번째 탭 진입
  2. 다크 모드 선택
  3. 색상 변경이 없습니다.

Expected behavior 다크 모드로 전환 되어야합니다.

Screenshots

https://github.com/droidknights/DroidKnights2023_App/assets/1534926/e2ece7ac-92e8-4871-aec0-1068e87afeef

Env:

laco-dev commented 1 year ago
Pluu commented 1 year ago

@laco-dev 위 내용은 데이터 관리이고, 실제로 라이트 모드로 앱을 실행한다의 초점인듯한데요.

이슈 내용은 다크모드를 눌러도 동작안한다라서 현상은 다른게 아닐까요?

laco-dev commented 1 year ago

@Pluu 현재 구현에서 다크모드를 선택할 경우 AppCompatDelegate를 변경합니다.

val changeDarkTheme: (Boolean) -> Unit = {
    val mode = if (it) {
        AppCompatDelegate.MODE_NIGHT_YES
    } else {
        AppCompatDelegate.MODE_NIGHT_NO
    }
    AppCompatDelegate.setDefaultNightMode(mode)
}

이 과정에서 이미 다크모드인 경우 no-op으로 처리가 되기 때문에 아무런 동작을 하지 않습니다. (버그) 위 이슈에서 AppCompat을 사용하지 않고 데이터를 기준으로 테마를 변경하도록 하면 현재 이슈가 같이 해결될 수 있습니다.

laco-dev commented 1 year ago

현재 이슈에서는 테마 선택시 전환이 안됨 대신, 위의 "다크 모드 상태로 앱을 시작" 이라는 방향으로 초점을 맞추면 될 것 같아요

laco-dev commented 1 year ago
// MainActivity
private var isDarkTheme by mutableStateOf(false) // 기본 값이 false로 되어 있는 부분이 문제