From 2563cc83c86e3931cb9a3e36bde1c8dcf25a45d2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 26 Feb 2026 20:50:24 +0000 Subject: [PATCH 1/3] Update all dependencies --- .github/workflows/build_and_local_tests.yml | 4 ++-- .github/workflows/instrumented_tests.yml | 2 +- gradle/libs.versions.toml | 14 +++++++------- gradle/wrapper/gradle-wrapper.properties | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/build_and_local_tests.yml b/.github/workflows/build_and_local_tests.yml index 301ea2a..dff299b 100644 --- a/.github/workflows/build_and_local_tests.yml +++ b/.github/workflows/build_and_local_tests.yml @@ -30,14 +30,14 @@ jobs: run: ./gradlew testDebug --stacktrace - name: Upload build outputs (APKs) - uses: actions/upload-artifact@v5 + uses: actions/upload-artifact@v7 with: name: build-outputs path: ./app/build/outputs - name: Upload build reports if: always() - uses: actions/upload-artifact@v5 + uses: actions/upload-artifact@v7 with: name: build-reports path: ./app/build/reports diff --git a/.github/workflows/instrumented_tests.yml b/.github/workflows/instrumented_tests.yml index 80ace53..eec11f9 100644 --- a/.github/workflows/instrumented_tests.yml +++ b/.github/workflows/instrumented_tests.yml @@ -41,7 +41,7 @@ jobs: - name: Upload test reports if: always() - uses: actions/upload-artifact@v5 + uses: actions/upload-artifact@v7 with: name: test-reports-${{ matrix.api-level }} path: ./app/build/reports/androidTests diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b4e159c..5ac1567 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,20 +1,20 @@ [versions] -androidGradlePlugin = "8.13.1" +androidGradlePlugin = "9.0.1" androidxCore = "1.17.0" androidxLifecycle = "2.10.0" -androidxActivity = "1.12.0" -androidxComposeBom = "2025.11.01" +androidxActivity = "1.12.4" +androidxComposeBom = "2026.02.00" androidxHilt = "1.3.0" androidxRoom = "2.8.4" androidxTest = "1.7.0" androidxTestExt = "1.3.0" androidxTestRunner = "1.7.0" coroutines = "1.10.2" -hilt = "2.57.2" +hilt = "2.59.2" junit = "4.13.2" -kotlin = "2.2.21" -ksp = "2.3.2" -nav3Core = "1.0.0" +kotlin = "2.3.10" +ksp = "2.3.6" +nav3Core = "1.0.1" lifecycleViewmodelNav3 = "2.10.0" [libraries] diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 23449a2..37f78a6 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME From 866812b65cad9d792e94db6406d7bae7e83556c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Alc=C3=A9rreca?= Date: Fri, 27 Feb 2026 11:35:26 +0100 Subject: [PATCH 2/3] Updates to AGP9 and minor fixes --- app/build.gradle.kts | 26 +++---------------- app/src/main/AndroidManifest.xml | 2 +- .../java/android/template/ui/MainActivity.kt | 10 ++++++- .../java/android/template/ui/Navigation.kt | 3 ++- .../template/ui/mymodel/MyModelScreen.kt | 18 ++++++++----- .../java/android/template/ui/theme/Theme.kt | 12 --------- app/src/main/res/values/colors.xml | 26 ------------------- gradle/libs.versions.toml | 4 --- settings.gradle.kts | 2 +- 9 files changed, 29 insertions(+), 74 deletions(-) delete mode 100644 app/src/main/res/values/colors.xml diff --git a/app/build.gradle.kts b/app/build.gradle.kts index d7e2088..10b72cb 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -14,11 +14,8 @@ * limitations under the License. */ -@Suppress("DSL_SCOPE_VIOLATION") // Remove when fixed https://youtrack.jetbrains.com/issue/KTIJ-19369 plugins { alias(libs.plugins.android.application) - alias(libs.plugins.kotlin.android) - alias(libs.plugins.kotlin.kapt) alias(libs.plugins.hilt.gradle) alias(libs.plugins.ksp) alias(libs.plugins.compose.compiler) @@ -40,11 +37,6 @@ android { vectorDrawables { useSupportLibrary = true } - - // Enable room auto-migrations - ksp { - arg("room.schemaLocation", "$projectDir/schemas") - } } buildTypes { @@ -54,24 +46,14 @@ android { } } - compileOptions { - sourceCompatibility = JavaVersion.VERSION_17 - targetCompatibility = JavaVersion.VERSION_17 - } - - kotlinOptions { - jvmTarget = "17" - } - buildFeatures { compose = true aidl = false buildConfig = false - renderScript = false shaders = false } - packagingOptions { + packaging { resources { excludes += "/META-INF/{AL2.0,LGPL2.1}" } @@ -91,13 +73,13 @@ dependencies { // Hilt Dependency Injection implementation(libs.hilt.android) - kapt(libs.hilt.compiler) + ksp(libs.hilt.compiler) // Hilt and instrumented tests. androidTestImplementation(libs.hilt.android.testing) - kaptAndroidTest(libs.hilt.android.compiler) + kspAndroidTest(libs.hilt.android.compiler) // Hilt and Robolectric tests. testImplementation(libs.hilt.android.testing) - kaptTest(libs.hilt.android.compiler) + kspTest(libs.hilt.android.compiler) // Arch Components implementation(libs.androidx.lifecycle.runtime.compose) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index c663a7f..ede66d1 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -32,10 +32,10 @@ - diff --git a/app/src/main/java/android/template/ui/MainActivity.kt b/app/src/main/java/android/template/ui/MainActivity.kt index a198dbc..f862cd0 100644 --- a/app/src/main/java/android/template/ui/MainActivity.kt +++ b/app/src/main/java/android/template/ui/MainActivity.kt @@ -17,19 +17,27 @@ package android.template.ui import android.os.Bundle +import android.template.ui.theme.MyApplicationTheme import androidx.activity.ComponentActivity +import androidx.activity.SystemBarStyle import androidx.activity.compose.setContent +import androidx.activity.enableEdgeToEdge import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Surface import androidx.compose.ui.Modifier import dagger.hilt.android.AndroidEntryPoint -import android.template.ui.theme.MyApplicationTheme @AndroidEntryPoint class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { + enableEdgeToEdge( + statusBarStyle = SystemBarStyle.auto( + lightScrim = android.graphics.Color.TRANSPARENT, + darkScrim = android.graphics.Color.TRANSPARENT + ) + ) super.onCreate(savedInstanceState) setContent { MyApplicationTheme { diff --git a/app/src/main/java/android/template/ui/Navigation.kt b/app/src/main/java/android/template/ui/Navigation.kt index d57362c..092a63c 100644 --- a/app/src/main/java/android/template/ui/Navigation.kt +++ b/app/src/main/java/android/template/ui/Navigation.kt @@ -18,6 +18,7 @@ package android.template.ui import android.template.ui.mymodel.MyModelScreen import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.safeDrawingPadding import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.unit.dp @@ -37,7 +38,7 @@ fun MainNavigation() { entry
{ MyModelScreen( onItemClick = { navKey -> backStack.add(navKey) }, - modifier = Modifier.padding(16.dp) + modifier = Modifier.safeDrawingPadding().padding(16.dp) ) } } diff --git a/app/src/main/java/android/template/ui/mymodel/MyModelScreen.kt b/app/src/main/java/android/template/ui/mymodel/MyModelScreen.kt index 7d83bbe..8da558a 100644 --- a/app/src/main/java/android/template/ui/mymodel/MyModelScreen.kt +++ b/app/src/main/java/android/template/ui/mymodel/MyModelScreen.kt @@ -42,14 +42,14 @@ import androidx.navigation3.runtime.NavKey fun MyModelScreen( onItemClick: (NavKey) -> Unit, modifier: Modifier = Modifier, - viewModel: MyModelViewModel = hiltViewModel() + viewModel: MyModelViewModel = hiltViewModel(), ) { val items by viewModel.uiState.collectAsStateWithLifecycle() if (items is MyModelUiState.Success) { MyModelScreen( items = (items as MyModelUiState.Success).data, onSave = viewModel::addMyModel, - modifier = modifier + modifier = modifier, ) } } @@ -58,20 +58,26 @@ fun MyModelScreen( internal fun MyModelScreen( items: List, onSave: (name: String) -> Unit, - modifier: Modifier = Modifier + modifier: Modifier = Modifier, ) { Column(modifier) { var nameMyModel by remember { mutableStateOf("Compose") } Row( - modifier = Modifier.fillMaxWidth().padding(bottom = 24.dp), + modifier = Modifier + .fillMaxWidth() + .padding(bottom = 24.dp), horizontalArrangement = Arrangement.spacedBy(16.dp) ) { TextField( + modifier = Modifier.weight(1f), value = nameMyModel, onValueChange = { nameMyModel = it } ) - Button(modifier = Modifier.width(96.dp), onClick = { onSave(nameMyModel) }) { + Button( + modifier = Modifier.width(96.dp), + onClick = { onSave(nameMyModel) } + ) { Text("Save") } } @@ -91,7 +97,7 @@ private fun DefaultPreview() { } } -@Preview(showBackground = true, widthDp = 480) +@Preview(showBackground = true, widthDp = 340) @Composable private fun PortraitPreview() { MyApplicationTheme { diff --git a/app/src/main/java/android/template/ui/theme/Theme.kt b/app/src/main/java/android/template/ui/theme/Theme.kt index b97baac..fd15404 100644 --- a/app/src/main/java/android/template/ui/theme/Theme.kt +++ b/app/src/main/java/android/template/ui/theme/Theme.kt @@ -16,7 +16,6 @@ package android.template.ui.theme -import android.app.Activity import android.os.Build import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.material3.MaterialTheme @@ -25,11 +24,7 @@ import androidx.compose.material3.dynamicDarkColorScheme import androidx.compose.material3.dynamicLightColorScheme import androidx.compose.material3.lightColorScheme import androidx.compose.runtime.Composable -import androidx.compose.runtime.SideEffect -import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.platform.LocalContext -import androidx.compose.ui.platform.LocalView -import androidx.core.view.ViewCompat private val DarkColorScheme = darkColorScheme( primary = Purple80, @@ -68,13 +63,6 @@ fun MyApplicationTheme( darkTheme -> DarkColorScheme else -> LightColorScheme } - val view = LocalView.current - if (!view.isInEditMode) { - SideEffect { - (view.context as Activity).window.statusBarColor = colorScheme.primary.toArgb() - ViewCompat.getWindowInsetsController(view)?.isAppearanceLightStatusBars = darkTheme - } - } MaterialTheme( colorScheme = colorScheme, diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml deleted file mode 100644 index 53ee56c..0000000 --- a/app/src/main/res/values/colors.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - #FFBB86FC - #FF6200EE - #FF3700B3 - #FF03DAC5 - #FF018786 - #FF000000 - #FFFFFFFF - diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 5ac1567..a12412b 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -41,7 +41,6 @@ hilt-android = { module = "com.google.dagger:hilt-android", version.ref = "hilt" hilt-android-compiler = { module = "com.google.dagger:hilt-android-compiler", version.ref = "hilt" } hilt-android-testing = { module = "com.google.dagger:hilt-android-testing", version.ref = "hilt" } hilt-compiler = { module = "com.google.dagger:hilt-compiler", version.ref = "hilt" } -hilt-gradle-plugin = { module = "com.google.dagger:hilt-android-gradle-plugin", version.ref = "hilt" } junit = { module = "junit:junit", version.ref = "junit" } kotlinx-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "coroutines" } androidx-navigation3-runtime = { module = "androidx.navigation3:navigation3-runtime", version.ref = "nav3Core" } @@ -50,10 +49,7 @@ androidx-lifecycle-viewmodel-navigation3 = { module = "androidx.lifecycle:lifecy [plugins] android-application = { id = "com.android.application", version.ref = "androidGradlePlugin" } -android-library = { id = "com.android.library", version.ref = "androidGradlePlugin" } compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } -kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } -kotlin-kapt = { id = "org.jetbrains.kotlin.kapt", version.ref = "kotlin" } ksp = { id = "com.google.devtools.ksp", version.ref = "ksp"} hilt-gradle = { id = "com.google.dagger.hilt.android", version.ref = "hilt" } kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } diff --git a/settings.gradle.kts b/settings.gradle.kts index 5e5c71e..e298d8b 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -13,7 +13,6 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - pluginManagement { repositories { gradlePluginPortal() @@ -21,6 +20,7 @@ pluginManagement { mavenCentral() } } + dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { From 4007e2db5b7c28eebf7d5e87b3cc5d89a6a4b112 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Alc=C3=A9rreca?= Date: Fri, 27 Feb 2026 11:59:22 +0100 Subject: [PATCH 3/3] Adds ksp blcok back --- app/build.gradle.kts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 10b72cb..1fc2382 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -60,6 +60,10 @@ android { } } +ksp { + arg("room.schemaLocation", "$projectDir/schemas") +} + dependencies { val composeBom = platform(libs.androidx.compose.bom)