Fix night icons, change errors

This commit is contained in:
Henry Hiles 2023-12-25 09:47:18 -05:00
parent d871719d86
commit b36145a373
14 changed files with 60 additions and 146 deletions

View file

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

View file

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

View file

@ -18,8 +18,7 @@ class AboutScreen : Screen {
modifier = Modifier
.fillMaxSize()
.padding(it)
) {
}
) {}
}
}
}

View file

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

View file

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

View file

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

View file

@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="64dp"
android:height="64dp"
android:viewportWidth="64"
android:viewportHeight="64">
<path
android:pathData="M44.54,41.47A23,23 0,0 1,24.49 11.73,1 1,0 0,0 23,10.59 23,23 0,1 0,54.41 42a1,1 0,0 0,-1.14 -1.47A23.06,23.06 0,0 1,44.54 41.47Z"
android:fillColor="#efcc00"/>
</vector>

View file

@ -0,0 +1,16 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="317.28dp"
android:height="241.65dp"
android:viewportWidth="317.28"
android:viewportHeight="241.65">
<path
android:pathData="M120.94,90.32A57.08,57.08 0,0 0,44.22 150.6a39.28,39.28 0,0 0,-5.87 -0.44,38.35 38.35,0 1,0 0,76.69H152.77L152,67.17A77.25,77.25 0,0 0,120.94 90.32Z"
android:fillColor="#fff"/>
<path
android:pathData="M257.93,134.3A77,77 0,0 0,152 67.17l0.76,159.68h105a46.28,46.28 0,0 0,0.21 -92.55Z"
android:fillColor="#ebebeb"/>
<path
android:pathData="M138.69,122.99A81.09,81.09 0,0 1,68 18.14,3.53 3.53,0 0,0 62.74,14.12 81.09,81.09 0,1 0,173.48 124.86a3.53,3.53 0,0 0,-4.02 -5.18,81.3 81.3,0 0,1 -30.78,3.31z"
android:strokeWidth="3.52563"
android:fillColor="#efcc00"/>
</vector>

View file

@ -1,118 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="376.36dp"
android:height="303.25dp"
android:viewportWidth="376.36"
android:viewportHeight="303.25">
<path
android:fillColor="#FF000000"
android:pathData="M109.5,263.11l6.24,-17.47a7,7 0,1 0,-13.18 -4.71L96.32,258.4a7,7 0,0 0,4.24 9,6.93 6.93,0 0,0 2.35,0.41A7,7 0,0 0,109.5 263.11Z"
android:strokeAlpha="0.2"
android:fillAlpha="0.2"/>
<path
android:fillColor="#FF000000"
android:pathData="M122.9,272.18a7,7 0,0 0,-8.94 4.24l-6.24,17.47a7,7 0,0 0,4.23 8.95,7.19 7.19,0 0,0 2.36,0.41 7,7 0,0 0,6.59 -4.65l6.24,-17.48A7,7 0,0 0,122.9 272.18Z"
android:strokeAlpha="0.2"
android:fillAlpha="0.2"/>
<path
android:fillColor="#FF000000"
android:pathData="M164.19,272.18a7,7 0,0 0,-8.94 4.24L149,293.89a7,7 0,0 0,4.24 8.95,7.19 7.19,0 0,0 2.36,0.41 7,7 0,0 0,6.59 -4.65l6.24,-17.48A7,7 0,0 0,164.19 272.18Z"
android:strokeAlpha="0.2"
android:fillAlpha="0.2"/>
<path
android:fillColor="#FF000000"
android:pathData="M150.59,263.11l6.24,-17.47a7,7 0,1 0,-13.19 -4.71L137.4,258.4a7,7 0,0 0,4.24 9,6.93 6.93,0 0,0 2.35,0.41A7,7 0,0 0,150.59 263.11Z"
android:strokeAlpha="0.2"
android:fillAlpha="0.2"/>
<path
android:fillColor="#FF000000"
android:pathData="M193.67,236.69a7,7 0,0 0,-8.94 4.24l-6.24,17.47a7,7 0,1 0,13.18 4.71l6.24,-17.47A7,7 0,0 0,193.67 236.69Z"
android:strokeAlpha="0.2"
android:fillAlpha="0.2"/>
<path
android:fillColor="#FF000000"
android:pathData="M278.65,59.51a5.42,5.42 0,0 0,5.42 -5.42V19.15a5.42,5.42 0,1 0,-10.83 0V54.09A5.42,5.42 0,0 0,278.65 59.51Z"
android:strokeAlpha="0.2"
android:fillAlpha="0.2"/>
<path
android:fillColor="#FF000000"
android:pathData="M234.28,74.72a5.42,5.42 0,1 0,7.66 -7.66L217.23,42.35A5.42,5.42 0,1 0,209.57 50Z"
android:strokeAlpha="0.2"
android:fillAlpha="0.2"/>
<path
android:fillColor="#FF000000"
android:pathData="M323.75,111.43a45.1,45.1 0,0 0,-45.1 -45.09h0a45.12,45.12 0,0 0,-41.82 28.22,72.69 72.69,0 0,0 -110.9,3 53.88,53.88 0,0 0,-72.42 56.91,36.2 36.2,0 1,0 -5.54,72H255.05a43.67,43.67 0,0 0,34 -71.08A45.1,45.1 0,0 0,323.75 111.43Z"
android:strokeAlpha="0.2"
android:fillAlpha="0.2"/>
<path
android:fillColor="#FF000000"
android:pathData="M323,148.15a5.42,5.42 0,0 0,-7.66 7.66l24.71,24.71a5.42,5.42 0,0 0,7.66 -7.66Z"
android:strokeAlpha="0.2"
android:fillAlpha="0.2"/>
<path
android:fillColor="#FF000000"
android:pathData="M370.94,106H336a5.42,5.42 0,1 0,0 10.83h34.94a5.42,5.42 0,1 0,0 -10.83Z"
android:strokeAlpha="0.2"
android:fillAlpha="0.2"/>
<path
android:fillColor="#FF000000"
android:pathData="M319.2,76.3A5.42,5.42 0,0 0,323 74.72L347.74,50a5.42,5.42 0,0 0,-7.66 -7.66L315.37,67.06a5.41,5.41 0,0 0,3.83 9.24Z"
android:strokeAlpha="0.2"
android:fillAlpha="0.2"/>
<path
android:pathData="M91.14,254a7,7 0,0 1,-6.59 -9.35l6.24,-17.48A7,7 0,0 1,104 231.9l-6.24,17.48A7,7 0,0 1,91.14 254Z"
android:fillColor="#78d9ff"/>
<path
android:pathData="M102.54,289.51A7,7 0,0 1,96 280.16l6.24,-17.48a7,7 0,0 1,13.18 4.71l-6.24,17.48A7,7 0,0 1,102.54 289.51Z"
android:fillColor="#78d9ff"/>
<path
android:pathData="M143.83,289.51a7,7 0,0 1,-6.6 -9.35l6.25,-17.48a7,7 0,0 1,13.18 4.71l-6.24,17.48A7,7 0,0 1,143.83 289.51Z"
android:fillColor="#78d9ff"/>
<path
android:pathData="M132.22,254a7,7 0,0 1,-6.59 -9.35l6.24,-17.48a7,7 0,0 1,13.19 4.71l-6.24,17.48A7,7 0,0 1,132.22 254Z"
android:fillColor="#78d9ff"/>
<path
android:pathData="M173.31,254a7,7 0,0 1,-6.59 -9.35L173,227.19a7,7 0,0 1,13.18 4.71l-6.24,17.48A7,7 0,0 1,173.31 254Z"
android:fillColor="#78d9ff"/>
<path
android:pathData="M221.79,97.7a45.1,45.1 0,0 0,45.09 45.1V52.6A45.1,45.1 0,0 0,221.79 97.7Z"
android:fillColor="#fdcd02"/>
<path
android:pathData="M261.47,5.42V40.36a5.41,5.41 0,0 0,5.41 5.41V0A5.41,5.41 0,0 0,261.47 5.42Z"
android:fillColor="#fdcd02"/>
<path
android:pathData="M261.47,155V190a5.41,5.41 0,0 0,5.41 5.42V149.63A5.41,5.41 0,0 0,261.47 155Z"
android:fillColor="#fdcd02"/>
<path
android:pathData="M222.51,61a5.42,5.42 0,0 0,7.66 -7.66l-24.71,-24.7a5.41,5.41 0,1 0,-7.66 7.65Z"
android:fillColor="#fdcd02"/>
<path
android:pathData="M215,97.7a5.42,5.42 0,0 0,-5.42 -5.42H174.6a5.42,5.42 0,1 0,0 10.84h34.94A5.42,5.42 0,0 0,215 97.7Z"
android:fillColor="#fdcd02"/>
<path
android:pathData="M222.51,134.42 L197.8,159.13a5.41,5.41 0,1 0,7.66 7.65l24.71,-24.7a5.42,5.42 0,0 0,-7.66 -7.66Z"
android:fillColor="#fdcd02"/>
<path
android:pathData="M312,97.7a45.1,45.1 0,0 0,-45.09 -45.1h0v90.2h0A45.1,45.1 0,0 0,312 97.7Z"
android:fillColor="#ebbf02"/>
<path
android:pathData="M272.3,40.36V5.42A5.41,5.41 0,0 0,266.88 0V45.77A5.41,5.41 0,0 0,272.3 40.36Z"
android:fillColor="#ebbf02"/>
<path
android:pathData="M272.3,190V155a5.41,5.41 0,0 0,-5.42 -5.41V195.4A5.41,5.41 0,0 0,272.3 190Z"
android:fillColor="#ebbf02"/>
<path
android:pathData="M311.26,134.42a5.42,5.42 0,0 0,-7.66 7.66l24.71,24.7a5.41,5.41 0,0 0,7.66 -7.65Z"
android:fillColor="#ebbf02"/>
<path
android:pathData="M359.17,92.28H324.23a5.42,5.42 0,0 0,0 10.84h34.94a5.42,5.42 0,0 0,0 -10.84Z"
android:fillColor="#ebbf02"/>
<path
android:pathData="M307.43,62.57A5.39,5.39 0,0 0,311.26 61L336,36.27a5.41,5.41 0,0 0,-7.66 -7.65L303.6,53.32a5.42,5.42 0,0 0,3.83 9.25Z"
android:fillColor="#ebbf02"/>
<path
android:pathData="M114.16,83.78a53.87,53.87 0,0 0,-72.42 56.9,36.2 36.2,0 1,0 -5.54,72H143.48V61.93A72.89,72.89 0,0 0,114.16 83.78Z"
android:fillColor="#fff"/>
<path
android:pathData="M243.47,125.29a72.68,72.68 0,0 0,-100 -63.36V212.65h99.8a43.68,43.68 0,0 0,0.19 -87.36Z"
android:fillColor="#ebebeb"/>
</vector>