kaizen-app/app/src/main/java/dev/kaizen/app/MainActivity.kt

42 lines
1.7 KiB
Kotlin

package dev.kaizen.app
import android.content.pm.ActivityInfo
import android.graphics.Color
import android.os.Build
import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.SystemBarStyle
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import dev.kaizen.app.chat.ChatScreen
import dev.kaizen.app.settings.SettingsViewModel
import dev.kaizen.app.ui.theme.KaizenTheme
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// Enable High Dynamic Range (HDR) window color mode on Android 14+ (API 34+)
// and Wide Color Gamut (Display P3) on Android 8.0+ (API 26+)
// This leverages the hardware capabilities of high-end AMOLED/OLED displays (S25 Ultra, Pixel 10).
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
window.colorMode = ActivityInfo.COLOR_MODE_HDR
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
window.colorMode = ActivityInfo.COLOR_MODE_WIDE_COLOR_GAMUT
}
// Initialize the decoupled viewmodel at the Activity scope (or Hilt/Dagger later)
val settingsViewModel = SettingsViewModel()
// auto() picks light/dark system-bar icons based on the system theme
enableEdgeToEdge(
statusBarStyle = SystemBarStyle.auto(Color.TRANSPARENT, Color.TRANSPARENT),
navigationBarStyle = SystemBarStyle.auto(Color.TRANSPARENT, Color.TRANSPARENT),
)
setContent {
KaizenTheme {
ChatScreen(settingsViewModel = settingsViewModel)
}
}
}
}