diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 66c1536..e191587 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -1,13 +1,13 @@ plugins { + kotlin("plugin.serialization") version "1.9.21" id("com.android.application") id("org.jetbrains.kotlin.android") id("kotlin-kapt") - kotlin("plugin.serialization") version "1.8.10" } android { namespace = "com.henryhiles.qweather" - compileSdk = 33 + compileSdk = 34 signingConfigs { create("release") { @@ -21,7 +21,7 @@ android { defaultConfig { applicationId = "com.henryhiles.qweather" minSdk = 30 - targetSdk = 33 + targetSdk = 34 versionCode = 1 versionName = "1.0" @@ -59,9 +59,9 @@ android { compose = true } composeOptions { - kotlinCompilerExtensionVersion = "1.4.3" + kotlinCompilerExtensionVersion = "1.5.5" } - packagingOptions { + packaging { resources { excludes += "/META-INF/{AL2.0,LGPL2.1}" } @@ -69,23 +69,23 @@ android { } dependencies { - implementation("androidx.core:core-ktx:1.10.0") - implementation("androidx.compose.material3:material3:1.1.0-rc01") - implementation("androidx.activity:activity-compose:1.7.1") - implementation("androidx.core:core-ktx:1.10.0") - implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.5.0") + implementation("androidx.core:core-ktx:1.12.0") + implementation("androidx.compose.material3:material3:1.1.2") + implementation("androidx.activity:activity-compose:1.8.2") + implementation("androidx.core:core-ktx:1.12.0") + implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.2") implementation("com.squareup.okhttp3:logging-interceptor:5.0.0-alpha.3") - coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.0.3") + coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.0.4") // Lifecycle - val lifecycleVersion = "2.6.1" + val lifecycleVersion = "2.6.2" implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycleVersion") implementation("androidx.lifecycle:lifecycle-runtime-ktx:$lifecycleVersion") implementation("androidx.lifecycle:lifecycle-viewmodel-compose:$lifecycleVersion") // Compose - val composeVersion = "1.4.0" + val composeVersion = "1.5.4" implementation("androidx.compose.ui:ui-tooling-preview:$composeVersion") implementation("androidx.compose.ui:ui:$composeVersion") @@ -93,16 +93,15 @@ dependencies { debugImplementation("androidx.compose.ui:ui-tooling:$composeVersion") // Voyager - val voyagerVersion = "1.0.0-rc04" + val voyagerVersion = "1.0.0" implementation("cafe.adriel.voyager:voyager-navigator:$voyagerVersion") implementation("cafe.adriel.voyager:voyager-tab-navigator:$voyagerVersion") implementation("cafe.adriel.voyager:voyager-transitions:$voyagerVersion") - implementation("cafe.adriel.voyager:voyager-androidx:$voyagerVersion") implementation("cafe.adriel.voyager:voyager-koin:$voyagerVersion") // Koin - val koinVersion = "3.2.0" + val koinVersion = "3.5.3" implementation("io.insert-koin:koin-core:$koinVersion") implementation("io.insert-koin:koin-android:$koinVersion") diff --git a/app/src/main/java/com/henryhiles/qweather/presentation/screenmodel/DailyWeatherScreenModel.kt b/app/src/main/java/com/henryhiles/qweather/presentation/screenmodel/DailyWeatherScreenModel.kt index e8503c1..65d2e8a 100644 --- a/app/src/main/java/com/henryhiles/qweather/presentation/screenmodel/DailyWeatherScreenModel.kt +++ b/app/src/main/java/com/henryhiles/qweather/presentation/screenmodel/DailyWeatherScreenModel.kt @@ -4,7 +4,7 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.setValue import cafe.adriel.voyager.core.model.ScreenModel -import cafe.adriel.voyager.core.model.coroutineScope +import cafe.adriel.voyager.core.model.screenModelScope import com.henryhiles.qweather.domain.repository.WeatherRepository import com.henryhiles.qweather.domain.util.Resource import com.henryhiles.qweather.domain.weather.DailyWeatherData @@ -26,7 +26,7 @@ class DailyWeatherScreenModel( fun loadWeatherInfo(cache: Boolean = true) { val location = locationPreferenceManager.locations[locationPreferenceManager.selectedIndex] - coroutineScope.launch { + screenModelScope.launch { state = state.copy(isLoading = true, error = null) state = when (val result = repository.getDailyWeatherData( lat = location.latitude, diff --git a/app/src/main/java/com/henryhiles/qweather/presentation/screenmodel/HourlyWeatherScreenModel.kt b/app/src/main/java/com/henryhiles/qweather/presentation/screenmodel/HourlyWeatherScreenModel.kt index e4ff8d1..8b6cf10 100644 --- a/app/src/main/java/com/henryhiles/qweather/presentation/screenmodel/HourlyWeatherScreenModel.kt +++ b/app/src/main/java/com/henryhiles/qweather/presentation/screenmodel/HourlyWeatherScreenModel.kt @@ -4,7 +4,7 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.setValue import cafe.adriel.voyager.core.model.ScreenModel -import cafe.adriel.voyager.core.model.coroutineScope +import cafe.adriel.voyager.core.model.screenModelScope import com.henryhiles.qweather.domain.repository.WeatherRepository import com.henryhiles.qweather.domain.util.Resource import com.henryhiles.qweather.domain.weather.HourlyWeatherInfo @@ -26,7 +26,7 @@ class HourlyWeatherScreenModel( fun loadWeatherInfo(cache: Boolean = true) { val location = locationPreferenceManager.locations[locationPreferenceManager.selectedIndex] - coroutineScope.launch { + screenModelScope.launch { state = state.copy(isLoading = true, error = null, selected = null) state = when (val result = repository.getHourlyWeatherData( diff --git a/app/src/main/java/com/henryhiles/qweather/presentation/screenmodel/LocationPickerScreenModel.kt b/app/src/main/java/com/henryhiles/qweather/presentation/screenmodel/LocationPickerScreenModel.kt index d67c5e5..adeaa1a 100644 --- a/app/src/main/java/com/henryhiles/qweather/presentation/screenmodel/LocationPickerScreenModel.kt +++ b/app/src/main/java/com/henryhiles/qweather/presentation/screenmodel/LocationPickerScreenModel.kt @@ -5,7 +5,7 @@ import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.setValue import cafe.adriel.voyager.core.model.ScreenModel -import cafe.adriel.voyager.core.model.coroutineScope +import cafe.adriel.voyager.core.model.screenModelScope import com.henryhiles.qweather.domain.geocoding.GeocodingData import com.henryhiles.qweather.domain.manager.BasePreferenceManager import com.henryhiles.qweather.domain.repository.GeocodingRepository @@ -35,7 +35,7 @@ class LocationPickerScreenModel( private set fun loadGeolocationInfo(location: String) { - coroutineScope.launch { + screenModelScope.launch { state = state.copy(isLoading = true, error = null) state = when (val result = diff --git a/build.gradle.kts b/build.gradle.kts index 2db84d6..b0892bc 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,5 +1,5 @@ plugins { - id("com.android.application") version "7.4.1" apply false - id("com.android.library") version "7.4.1" apply false - id("org.jetbrains.kotlin.android") version "1.8.10" apply false + id("com.android.application") version "8.2.0" apply false + id("com.android.library") version "8.2.0" apply false + id("org.jetbrains.kotlin.android") version "1.9.20" apply false } \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index e600d9c..99d3ce9 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Sun Jun 26 11:26:31 CEST 2022 +#Fri Dec 22 14:56:20 GMT 2023 distributionBase=GRADLE_USER_HOME -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip distributionPath=wrapper/dists -zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists