diff --git a/app/src/main/java/com/henryhiles/qweather/domain/weather/WeatherType.kt b/app/src/main/java/com/henryhiles/qweather/domain/weather/WeatherType.kt index cb7b673..0ded61c 100644 --- a/app/src/main/java/com/henryhiles/qweather/domain/weather/WeatherType.kt +++ b/app/src/main/java/com/henryhiles/qweather/domain/weather/WeatherType.kt @@ -5,21 +5,25 @@ import com.henryhiles.qweather.R sealed class WeatherType( val weatherDesc: String, - @DrawableRes val iconRes: Int + @DrawableRes val iconRes: Int, + @DrawableRes val nightIconRes: Int = iconRes ) { data object ClearSky : WeatherType( weatherDesc = "Clear sky", - iconRes = R.drawable.ic_sunny + iconRes = R.drawable.ic_clear, + nightIconRes = R.drawable.ic_clear_night ) data object MainlyClear : WeatherType( weatherDesc = "Mainly clear", - iconRes = R.drawable.ic_cloudy + iconRes = R.drawable.ic_partly_cloudy, + nightIconRes = R.drawable.ic_partly_cloudy_night ) data object PartlyCloudy : WeatherType( weatherDesc = "Partly cloudy", - iconRes = R.drawable.ic_cloudy + iconRes = R.drawable.ic_partly_cloudy, + nightIconRes = R.drawable.ic_partly_cloudy_night ) data object Overcast : WeatherType( @@ -39,27 +43,27 @@ sealed class WeatherType( data object LightDrizzle : WeatherType( weatherDesc = "Light drizzle", - iconRes = R.drawable.ic_rainshower + iconRes = R.drawable.ic_rain_shower ) data object ModerateDrizzle : WeatherType( weatherDesc = "Moderate drizzle", - iconRes = R.drawable.ic_rainshower + iconRes = R.drawable.ic_rain_shower ) data object DenseDrizzle : WeatherType( weatherDesc = "Dense drizzle", - iconRes = R.drawable.ic_rainshower + iconRes = R.drawable.ic_rain_shower ) data object LightFreezingDrizzle : WeatherType( weatherDesc = "Slight freezing drizzle", - iconRes = R.drawable.ic_snowyrainy + iconRes = R.drawable.ic_snowy_rainy ) data object DenseFreezingDrizzle : WeatherType( weatherDesc = "Dense freezing drizzle", - iconRes = R.drawable.ic_snowyrainy + iconRes = R.drawable.ic_snowy_rainy ) data object SlightRain : WeatherType( @@ -79,7 +83,7 @@ sealed class WeatherType( data object HeavyFreezingRain : WeatherType( weatherDesc = "Heavy freezing rain", - iconRes = R.drawable.ic_snowyrainy + iconRes = R.drawable.ic_snowy_rainy ) data object SlightSnowFall : WeatherType( @@ -89,32 +93,32 @@ sealed class WeatherType( data object ModerateSnowFall : WeatherType( weatherDesc = "Moderate snow fall", - iconRes = R.drawable.ic_heavysnow + iconRes = R.drawable.ic_heavy_snow ) data object HeavySnowFall : WeatherType( weatherDesc = "Heavy snow fall", - iconRes = R.drawable.ic_heavysnow + iconRes = R.drawable.ic_heavy_snow ) data object SnowGrains : WeatherType( weatherDesc = "Snow grains", - iconRes = R.drawable.ic_heavysnow + iconRes = R.drawable.ic_heavy_snow ) data object SlightRainShowers : WeatherType( weatherDesc = "Slight rain showers", - iconRes = R.drawable.ic_rainshower + iconRes = R.drawable.ic_rain_shower ) data object ModerateRainShowers : WeatherType( weatherDesc = "Moderate rain showers", - iconRes = R.drawable.ic_rainshower + iconRes = R.drawable.ic_rain_shower ) data object ViolentRainShowers : WeatherType( weatherDesc = "Violent rain showers", - iconRes = R.drawable.ic_rainshower + iconRes = R.drawable.ic_rain_shower ) data object SlightSnowShowers : WeatherType( diff --git a/app/src/main/java/com/henryhiles/qweather/presentation/components/weather/WeatherCard.kt b/app/src/main/java/com/henryhiles/qweather/presentation/components/weather/WeatherCard.kt index 84b7fbf..6abfb2d 100644 --- a/app/src/main/java/com/henryhiles/qweather/presentation/components/weather/WeatherCard.kt +++ b/app/src/main/java/com/henryhiles/qweather/presentation/components/weather/WeatherCard.kt @@ -45,7 +45,7 @@ fun WeatherCard(hour: HourlyWeatherData?, modifier: Modifier = Modifier) { } Spacer(modifier = Modifier.height(16.dp)) Image( - painter = painterResource(id = it.weatherType.iconRes), + painter = painterResource(id = if(it.time.hour > 6 || it.time.hour < 8) it.weatherType.nightIconRes else it.weatherType.iconRes), contentDescription = "Image of ${it.weatherType.weatherDesc}", modifier = Modifier.height(152.dp) ) diff --git a/app/src/main/java/com/henryhiles/qweather/presentation/screen/AboutScreen.kt b/app/src/main/java/com/henryhiles/qweather/presentation/screen/AboutScreen.kt index bfba659..790ae7e 100644 --- a/app/src/main/java/com/henryhiles/qweather/presentation/screen/AboutScreen.kt +++ b/app/src/main/java/com/henryhiles/qweather/presentation/screen/AboutScreen.kt @@ -18,8 +18,7 @@ class AboutScreen : Screen { modifier = Modifier .fillMaxSize() .padding(it) - ) { - } + ) {} } } } \ No newline at end of file diff --git a/app/src/main/java/com/henryhiles/qweather/presentation/screen/LocationPickerScreen.kt b/app/src/main/java/com/henryhiles/qweather/presentation/screen/LocationPickerScreen.kt index 205ebe6..d38d8a2 100644 --- a/app/src/main/java/com/henryhiles/qweather/presentation/screen/LocationPickerScreen.kt +++ b/app/src/main/java/com/henryhiles/qweather/presentation/screen/LocationPickerScreen.kt @@ -65,7 +65,7 @@ class LocationPickerScreen : Screen { } } ) { - Column { + Column(modifier = Modifier.padding(it)) { SmallToolbar( title = { Text(text = stringResource(id = R.string.location_choose)) }, backButton = screenModel.prefs.locations.isNotEmpty(), @@ -80,8 +80,12 @@ class LocationPickerScreen : Screen { }) screenModel.state.error?.let { AlertDialog( - onDismissRequest = {}, - confirmButton = {}, + onDismissRequest = {navigator.pop()}, + confirmButton = { + TextButton(onClick = {navigator.pop()}) { + Text(text = stringResource(id = R.string.action_confirm)) + } + }, title = { Text(text = stringResource(id = R.string.error)) }, text = { SelectionContainer { diff --git a/app/src/main/java/com/henryhiles/qweather/presentation/screen/MainScreen.kt b/app/src/main/java/com/henryhiles/qweather/presentation/screen/MainScreen.kt index 7b6a6bd..6e5a27e 100644 --- a/app/src/main/java/com/henryhiles/qweather/presentation/screen/MainScreen.kt +++ b/app/src/main/java/com/henryhiles/qweather/presentation/screen/MainScreen.kt @@ -22,13 +22,13 @@ import com.henryhiles.qweather.presentation.components.navigation.SmallToolbar import com.henryhiles.qweather.presentation.screenmodel.LocationPreferenceManager import com.henryhiles.qweather.presentation.tabs.TodayTab import kotlinx.coroutines.launch -import org.koin.androidx.compose.get +import org.koin.compose.koinInject class MainScreen : Screen { @OptIn(ExperimentalFoundationApi::class) @Composable override fun Content() { - val locationPreferenceManager: LocationPreferenceManager = get() + val locationPreferenceManager: LocationPreferenceManager = koinInject() val drawerState = rememberDrawerState(initialValue = DrawerValue.Closed) val coroutineScope = rememberCoroutineScope() diff --git a/app/src/main/java/com/henryhiles/qweather/presentation/tabs/WeekTab.kt b/app/src/main/java/com/henryhiles/qweather/presentation/tabs/WeekTab.kt index 9e19933..3bf3dd0 100644 --- a/app/src/main/java/com/henryhiles/qweather/presentation/tabs/WeekTab.kt +++ b/app/src/main/java/com/henryhiles/qweather/presentation/tabs/WeekTab.kt @@ -60,19 +60,19 @@ object WeekTab : NavigationTab { AlertDialog( onDismissRequest = {}, confirmButton = {}, - title = { Text(text = "An error occurred") }, + title = { Text(text = stringResource(R.string.error)) }, text = { SelectionContainer { Text( text = weatherViewModel.state.error!!, ) } - }) + }, + ) } else -> { LazyColumn( - modifier = Modifier - .fillMaxSize() + modifier = Modifier.fillMaxSize() ) { weatherViewModel.state.dailyWeatherData?.let { data -> itemsIndexed(data) { index, dailyData -> diff --git a/app/src/main/res/drawable/ic_sunny.xml b/app/src/main/res/drawable/ic_clear.xml similarity index 100% rename from app/src/main/res/drawable/ic_sunny.xml rename to app/src/main/res/drawable/ic_clear.xml diff --git a/app/src/main/res/drawable/ic_clear_night.xml b/app/src/main/res/drawable/ic_clear_night.xml new file mode 100644 index 0000000..49455c9 --- /dev/null +++ b/app/src/main/res/drawable/ic_clear_night.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_heavysnow.xml b/app/src/main/res/drawable/ic_heavy_snow.xml similarity index 100% rename from app/src/main/res/drawable/ic_heavysnow.xml rename to app/src/main/res/drawable/ic_heavy_snow.xml diff --git a/app/src/main/res/drawable/ic_sunnycloudy.xml b/app/src/main/res/drawable/ic_partly_cloudy.xml similarity index 100% rename from app/src/main/res/drawable/ic_sunnycloudy.xml rename to app/src/main/res/drawable/ic_partly_cloudy.xml diff --git a/app/src/main/res/drawable/ic_partly_cloudy_night.xml b/app/src/main/res/drawable/ic_partly_cloudy_night.xml new file mode 100644 index 0000000..eeb1050 --- /dev/null +++ b/app/src/main/res/drawable/ic_partly_cloudy_night.xml @@ -0,0 +1,16 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_rainshower.xml b/app/src/main/res/drawable/ic_rain_shower.xml similarity index 100% rename from app/src/main/res/drawable/ic_rainshower.xml rename to app/src/main/res/drawable/ic_rain_shower.xml diff --git a/app/src/main/res/drawable/ic_snowyrainy.xml b/app/src/main/res/drawable/ic_snowy_rainy.xml similarity index 100% rename from app/src/main/res/drawable/ic_snowyrainy.xml rename to app/src/main/res/drawable/ic_snowy_rainy.xml diff --git a/app/src/main/res/drawable/ic_sunnyrainy.xml b/app/src/main/res/drawable/ic_sunnyrainy.xml deleted file mode 100644 index 64b41bf..0000000 --- a/app/src/main/res/drawable/ic_sunnyrainy.xml +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -