51 lines
No EOL
2.1 KiB
Kotlin
51 lines
No EOL
2.1 KiB
Kotlin
package com.henryhiles.qweather.presentation
|
|
|
|
import android.os.Bundle
|
|
import androidx.activity.ComponentActivity
|
|
import androidx.activity.compose.setContent
|
|
import androidx.compose.animation.ExperimentalAnimationApi
|
|
import androidx.compose.foundation.isSystemInDarkTheme
|
|
import androidx.compose.foundation.layout.fillMaxSize
|
|
import androidx.compose.material3.Surface
|
|
import androidx.compose.material3.Text
|
|
import androidx.compose.ui.Modifier
|
|
import cafe.adriel.voyager.navigator.Navigator
|
|
import cafe.adriel.voyager.transitions.SlideTransition
|
|
import com.henryhiles.qweather.presentation.screen.LocationPickerScreen
|
|
import com.henryhiles.qweather.presentation.screen.MainScreen
|
|
import com.henryhiles.qweather.presentation.screenmodel.AppearancePreferenceManager
|
|
import com.henryhiles.qweather.presentation.screenmodel.LocationPreferenceManager
|
|
import com.henryhiles.qweather.presentation.screenmodel.Theme
|
|
import com.henryhiles.qweather.presentation.ui.theme.WeatherAppTheme
|
|
import org.koin.android.ext.android.inject
|
|
|
|
class QWeatherActivity : ComponentActivity() {
|
|
private val prefs: AppearancePreferenceManager by inject()
|
|
private val location: LocationPreferenceManager by inject()
|
|
|
|
@OptIn(ExperimentalAnimationApi::class)
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
super.onCreate(savedInstanceState)
|
|
setContent {
|
|
val isDark = when (prefs.theme) {
|
|
Theme.SYSTEM -> isSystemInDarkTheme()
|
|
Theme.LIGHT -> false
|
|
Theme.DARK -> true
|
|
}
|
|
val isLocationSet = location.location != ""
|
|
|
|
WeatherAppTheme(darkTheme = isDark, monet = prefs.monet) {
|
|
Surface(modifier = Modifier.fillMaxSize()) {
|
|
Text(text = location.location)
|
|
Navigator(
|
|
screen = if (isLocationSet) MainScreen() else LocationPickerScreen(),
|
|
onBackPressed = {
|
|
it !is MainScreen
|
|
}) {
|
|
SlideTransition(it)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} |