diff --git a/android/build.gradle b/android/build.gradle index 4d125ba53a..c029cfe5cb 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -11,7 +11,7 @@ buildscript { } } dependencies { - classpath 'com.android.tools.build:gradle:8.5.1' + classpath 'com.android.tools.build:gradle:8.6.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-serialization:$kotlin_version" classpath("com.ncorti.ktfmt.gradle:plugin:0.17.0") @@ -112,7 +112,7 @@ dependencies { implementation 'androidx.core:core-ktx:1.13.1' implementation "androidx.browser:browser:1.8.0" implementation "androidx.security:security-crypto:1.1.0-alpha06" - implementation "androidx.work:work-runtime:2.9.0" + implementation "androidx.work:work-runtime:2.9.1" // Kotlin dependencies. implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.3" @@ -123,20 +123,20 @@ dependencies { implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version" // Compose dependencies. - def composeBom = platform('androidx.compose:compose-bom:2024.06.00') + def composeBom = platform('androidx.compose:compose-bom:2024.09.03') implementation composeBom - implementation 'androidx.compose.material3:material3:1.2.1' - implementation 'androidx.compose.material:material-icons-core:1.6.8' - implementation "androidx.compose.ui:ui:1.6.8" - implementation "androidx.compose.ui:ui-tooling:1.6.8" - implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.3' - implementation 'androidx.activity:activity-compose:1.9.0' + implementation 'androidx.compose.material3:material3:1.3.0' + implementation 'androidx.compose.material:material-icons-core:1.7.3' + implementation "androidx.compose.ui:ui:1.7.3" + implementation "androidx.compose.ui:ui-tooling:1.7.3" + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.6' + implementation 'androidx.activity:activity-compose:1.9.2' implementation "com.google.accompanist:accompanist-permissions:$accompanist_version" implementation "com.google.accompanist:accompanist-systemuicontroller:$accompanist_version" implementation "androidx.core:core-splashscreen:1.1.0-rc01" // Navigation dependencies. - def nav_version = "2.7.7" + def nav_version = "2.8.2" implementation "androidx.navigation:navigation-compose:$nav_version" implementation "androidx.navigation:navigation-ui-ktx:$nav_version" @@ -151,7 +151,7 @@ dependencies { // Integration Tests androidTestImplementation composeBom - androidTestImplementation 'androidx.test:runner:1.6.1' + androidTestImplementation 'androidx.test:runner:1.6.2' androidTestImplementation 'androidx.test.ext:junit-ktx:1.2.1' androidTestImplementation 'androidx.test.ext:junit:1.2.1' androidTestImplementation 'androidx.test.espresso:espresso-core:3.6.1' @@ -164,7 +164,7 @@ dependencies { // Unit Tests testImplementation 'junit:junit:4.13.2' - testImplementation 'org.mockito:mockito-core:5.4.0' + testImplementation 'org.mockito:mockito-core:5.12.0' testImplementation 'org.mockito:mockito-inline:5.2.0' testImplementation 'org.mockito.kotlin:mockito-kotlin:5.4.0' diff --git a/android/src/main/java/com/tailscale/ipn/ui/view/Avatar.kt b/android/src/main/java/com/tailscale/ipn/ui/view/Avatar.kt index 9f648784e8..2e5662a28a 100644 --- a/android/src/main/java/com/tailscale/ipn/ui/view/Avatar.kt +++ b/android/src/main/java/com/tailscale/ipn/ui/view/Avatar.kt @@ -10,8 +10,8 @@ import androidx.compose.foundation.layout.size import androidx.compose.foundation.shape.CircleShape import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Person -import androidx.compose.material.ripple.rememberRipple import androidx.compose.material3.Icon +import androidx.compose.material3.ripple import androidx.compose.runtime.Composable import androidx.compose.runtime.remember import androidx.compose.ui.Alignment @@ -33,7 +33,7 @@ fun Avatar(profile: IpnLocal.LoginProfile?, size: Int = 50, action: (() -> Unit) modifier = modifier.clickable( interactionSource = remember { MutableInteractionSource() }, - indication = rememberRipple(bounded = false), + indication = ripple(bounded = false), onClick = action) } Icon( diff --git a/android/src/main/java/com/tailscale/ipn/ui/view/SharedViews.kt b/android/src/main/java/com/tailscale/ipn/ui/view/SharedViews.kt index de31170037..8d0ef3aa8a 100644 --- a/android/src/main/java/com/tailscale/ipn/ui/view/SharedViews.kt +++ b/android/src/main/java/com/tailscale/ipn/ui/view/SharedViews.kt @@ -13,7 +13,6 @@ import androidx.compose.foundation.layout.width import androidx.compose.material.icons.Icons import androidx.compose.material.icons.automirrored.filled.ArrowBack import androidx.compose.material.icons.filled.CheckCircle -import androidx.compose.material.ripple.rememberRipple import androidx.compose.material3.CircularProgressIndicator import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon @@ -21,6 +20,7 @@ import androidx.compose.material3.LinearProgressIndicator import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.material3.TopAppBar +import androidx.compose.material3.ripple import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.remember @@ -76,7 +76,7 @@ fun BackArrow(action: () -> Unit, focusRequester: FocusRequester) { Modifier.focusRequester(focusRequester) .clickable( interactionSource = remember { MutableInteractionSource() }, - indication = rememberRipple(bounded = false), + indication = ripple(bounded = false), onClick = { action() })) } }