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 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-