From c4f335079f0c86d81a9d5492e8446abd7bf68bba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20St=C3=BCrmer?= Date: Wed, 16 Aug 2023 21:34:38 +0200 Subject: [PATCH] Raise to Kotlin 1.9.0 (#138) --- .../continuous-delivery-pipeline.yml | 42 +++++++++++-------- .../promote-release-in-playstore.yml | 7 ++-- .idea/compiler.xml | 2 +- app/build.gradle.kts | 2 +- app/proguard-rules.pro | 14 +++++++ .../kotlin/photos/network/ui/SearchBar.kt | 5 +-- domain/albums/build.gradle.kts | 2 +- domain/folders/build.gradle.kts | 2 +- domain/photos/build.gradle.kts | 2 +- domain/search/build.gradle.kts | 2 +- domain/settings/build.gradle.kts | 2 +- domain/sharing/build.gradle.kts | 2 +- gradle.properties | 2 +- gradle/libs.versions.toml | 12 +++--- repository/folders/build.gradle.kts | 2 +- repository/photos/build.gradle.kts | 2 +- repository/settings/build.gradle.kts | 2 +- repository/sharing/build.gradle.kts | 2 +- settings.gradle.kts | 9 ++-- .../photos/network/ui/search/SearchScreen.kt | 2 +- ui/settings/build.gradle.kts | 1 + .../ui/settings/composable/SettingsHeader.kt | 2 +- 22 files changed, 70 insertions(+), 50 deletions(-) diff --git a/.github/workflows/continuous-delivery-pipeline.yml b/.github/workflows/continuous-delivery-pipeline.yml index 62bd6829..e283ee39 100644 --- a/.github/workflows/continuous-delivery-pipeline.yml +++ b/.github/workflows/continuous-delivery-pipeline.yml @@ -17,10 +17,11 @@ jobs: - name: Checkout repository uses: actions/checkout@v3 - - name: Set up JDK 11 - uses: actions/setup-java@v1 + - name: Set up JDK 17 + uses: actions/setup-java@v3 with: - java-version: 11 + distribution: 'adopt' + java-version: 17 - name: Make gradlew executable run: chmod +x ./gradlew @@ -47,10 +48,11 @@ jobs: - name: Checkout repository uses: actions/checkout@v2 - - name: Set up JDK 11 - uses: actions/setup-java@v1 + - name: Set up JDK 17 + uses: actions/setup-java@v3 with: - java-version: 11 + distribution: 'adopt' + java-version: 17 - name: Make gradlew executable run: chmod +x ./gradlew @@ -83,10 +85,11 @@ jobs: - name: Checkout repository uses: actions/checkout@v2 - - name: Set up JDK 11 - uses: actions/setup-java@v1 + - name: Set up JDK 17 + uses: actions/setup-java@v3 with: - java-version: 11 + distribution: 'adopt' + java-version: 17 - name: Cache between builds uses: actions/cache@v2 @@ -120,10 +123,11 @@ jobs: - name: Checkout repository uses: actions/checkout@v2 - - name: Set up JDK 11 - uses: actions/setup-java@v1 + - name: Set up JDK 17 + uses: actions/setup-java@v3 with: - java-version: 11 + distribution: 'adopt' + java-version: 17 - name: Cache between builds uses: actions/cache@v2 @@ -185,10 +189,11 @@ jobs: - name: Checkout uses: actions/checkout@v2 - - name: Set up JDK 11 - uses: actions/setup-java@v1 + - name: Set up JDK 17 + uses: actions/setup-java@v3 with: - java-version: 11 + distribution: 'adopt' + java-version: 17 - name: Cache between builds uses: actions/cache@v2 @@ -250,10 +255,11 @@ jobs: - name: Checkout repository uses: actions/checkout@v2 - - name: Set up JDK 11 - uses: actions/setup-java@v1 + - name: Set up JDK 17 + uses: actions/setup-java@v3 with: - java-version: 11 + distribution: 'adopt' + java-version: 17 - name: Cache between builds uses: actions/cache@v2 diff --git a/.github/workflows/promote-release-in-playstore.yml b/.github/workflows/promote-release-in-playstore.yml index 60b789ed..c71fb656 100644 --- a/.github/workflows/promote-release-in-playstore.yml +++ b/.github/workflows/promote-release-in-playstore.yml @@ -42,10 +42,11 @@ jobs: - name: Checkout repository uses: actions/checkout@v2 - - name: Set up JDK 11 - uses: actions/setup-java@v1 + - name: Set up JDK 17 + uses: actions/setup-java@v3 with: - java-version: 11 + distribution: 'adopt' + java-version: 17 - name: Decode Gradle Play Publisher Credentials id: decode_play_store_credentials diff --git a/.idea/compiler.xml b/.idea/compiler.xml index fb7f4a8a..b589d56e 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/app/build.gradle.kts b/app/build.gradle.kts index efd61053..6a40f519 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -155,7 +155,7 @@ android { } } - packagingOptions { + packaging { resources.excludes += "META-INF/AL2.0" resources.excludes += "META-INF/LGPL2.1" resources.excludes += "META-INF/licenses/ASM" diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index e6f2dd13..be5dd383 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -25,3 +25,17 @@ # @Serializable and @Polymorphic are used at runtime for polymorphic serialization. -keepattributes RuntimeVisibleAnnotations,AnnotationDefault + +# generated by the Android Gradle plugin +-dontwarn com.google.errorprone.annotations.Immutable +-dontwarn org.bouncycastle.jsse.BCSSLParameters +-dontwarn org.bouncycastle.jsse.BCSSLSocket +-dontwarn org.bouncycastle.jsse.provider.BouncyCastleJsseProvider +-dontwarn org.conscrypt.Conscrypt$Version +-dontwarn org.conscrypt.Conscrypt +-dontwarn org.conscrypt.ConscryptHostnameVerifier +-dontwarn org.gradle.api.Plugin +-dontwarn org.openjsse.javax.net.ssl.SSLParameters +-dontwarn org.openjsse.javax.net.ssl.SSLSocket +-dontwarn org.openjsse.net.ssl.OpenJSSE +-dontwarn org.slf4j.impl.StaticLoggerBinder diff --git a/app/src/main/kotlin/photos/network/ui/SearchBar.kt b/app/src/main/kotlin/photos/network/ui/SearchBar.kt index 2f25ddb9..318e0f01 100644 --- a/app/src/main/kotlin/photos/network/ui/SearchBar.kt +++ b/app/src/main/kotlin/photos/network/ui/SearchBar.kt @@ -42,7 +42,6 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.tooling.preview.PreviewParameterProvider import com.google.accompanist.insets.LocalWindowInsets -import photos.network.R class SearchContentProvider : PreviewParameterProvider { override val values = sequenceOf("Searchphrase", "") @@ -68,7 +67,7 @@ fun SearchViewPreview(@PreviewParameter(SearchContentProvider::class) search: St value = textState.value, onValueChange = { newTextFieldValue -> textState.value = newTextFieldValue }, onSearch = {}, - hint = stringResource(id = R.string.search_hint), + hint = stringResource(id = photos.network.ui.common.R.string.search_hint), ) } } @@ -79,7 +78,7 @@ fun Searchbar( value: TextFieldValue, onValueChange: (TextFieldValue) -> Unit, onSearch: () -> Unit = {}, - hint: String = stringResource(id = R.string.search_hint), + hint: String = stringResource(id = photos.network.ui.common.R.string.search_hint), maxLength: Int = 200, keyboardOptions: KeyboardOptions = KeyboardOptions.Default.copy( imeAction = ImeAction.Search, diff --git a/domain/albums/build.gradle.kts b/domain/albums/build.gradle.kts index c8b1dfb9..c38a9008 100644 --- a/domain/albums/build.gradle.kts +++ b/domain/albums/build.gradle.kts @@ -36,7 +36,7 @@ android { freeCompilerArgs = freeCompilerArgs + "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi" } - packagingOptions { + packaging { resources.excludes += "META-INF/AL2.0" resources.excludes += "META-INF/LGPL2.1" } diff --git a/domain/folders/build.gradle.kts b/domain/folders/build.gradle.kts index 2553f808..7cb0b19a 100644 --- a/domain/folders/build.gradle.kts +++ b/domain/folders/build.gradle.kts @@ -36,7 +36,7 @@ android { freeCompilerArgs = freeCompilerArgs + "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi" } - packagingOptions { + packaging { resources.excludes += "META-INF/AL2.0" resources.excludes += "META-INF/LGPL2.1" } diff --git a/domain/photos/build.gradle.kts b/domain/photos/build.gradle.kts index eb5dd643..e2e8d218 100644 --- a/domain/photos/build.gradle.kts +++ b/domain/photos/build.gradle.kts @@ -36,7 +36,7 @@ android { freeCompilerArgs = freeCompilerArgs + "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi" } - packagingOptions { + packaging { resources.excludes += "META-INF/AL2.0" resources.excludes += "META-INF/LGPL2.1" } diff --git a/domain/search/build.gradle.kts b/domain/search/build.gradle.kts index 2b2d2a3d..a7d325b0 100644 --- a/domain/search/build.gradle.kts +++ b/domain/search/build.gradle.kts @@ -36,7 +36,7 @@ android { freeCompilerArgs = freeCompilerArgs + "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi" } - packagingOptions { + packaging { resources.excludes += "META-INF/AL2.0" resources.excludes += "META-INF/LGPL2.1" } diff --git a/domain/settings/build.gradle.kts b/domain/settings/build.gradle.kts index 4f584a63..4d8636b9 100644 --- a/domain/settings/build.gradle.kts +++ b/domain/settings/build.gradle.kts @@ -36,7 +36,7 @@ android { freeCompilerArgs = freeCompilerArgs + "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi" } - packagingOptions { + packaging { resources.excludes += "META-INF/AL2.0" resources.excludes += "META-INF/LGPL2.1" } diff --git a/domain/sharing/build.gradle.kts b/domain/sharing/build.gradle.kts index 8cd332d8..4a718fd5 100644 --- a/domain/sharing/build.gradle.kts +++ b/domain/sharing/build.gradle.kts @@ -35,7 +35,7 @@ android { freeCompilerArgs = freeCompilerArgs + "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi" } - packagingOptions { + packaging { resources.excludes += "META-INF/AL2.0" resources.excludes += "META-INF/LGPL2.1" } diff --git a/gradle.properties b/gradle.properties index d18538fb..2e6c2409 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,7 +6,7 @@ # http://www.gradle.org/docs/current/userguide/build_environment.html # Specifies the JVM arguments used for the daemon process. # The setting is particularly useful for tweaking memory settings. -org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 +org.gradle.jvmargs=-Xmx4096m -Dfile.encoding=UTF-8 # When configured, Gradle will run in incubating parallel mode. # This option should only be used with decoupled projects. More details, visit # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 9d05b60e..8cc6a5fa 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,20 +1,20 @@ [versions] -compileSdk = "33" +compileSdk = "34" # https://kotlinlang.org/ -kotlin = "1.8.10" # 1.8.21 +kotlin = "1.9.0" # https://github.com/google/ksp -ksp = "1.8.10-1.0.9" # 1.8.21-1.0.11 +ksp = "1.9.0-1.0.13" # https://developer.android.com/build/releases/gradle-plugin -androidGradlePlugin = "7.4.0" # 8.0.0 +androidGradlePlugin = "8.1.0" # https://developer.android.com/jetpack/compose/bom -compose-bom = "2023.03.00" # 2023.04.01 +compose-bom = "2023.08.00" # https://developer.android.com/jetpack/androidx/releases/compose-compiler -compose-compiler = "1.4.2" # 1.4.7 +compose-compiler = "1.5.1" # https://detekt.dev/ detekt = "1.22.0" diff --git a/repository/folders/build.gradle.kts b/repository/folders/build.gradle.kts index 93dc72f9..075ccf5e 100644 --- a/repository/folders/build.gradle.kts +++ b/repository/folders/build.gradle.kts @@ -40,7 +40,7 @@ android { freeCompilerArgs = freeCompilerArgs + "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi" } - packagingOptions { + packaging { resources.excludes += "META-INF/AL2.0" resources.excludes += "META-INF/LGPL2.1" resources.excludes += "META-INF/licenses/ASM" diff --git a/repository/photos/build.gradle.kts b/repository/photos/build.gradle.kts index 8733c37c..4cc653fe 100644 --- a/repository/photos/build.gradle.kts +++ b/repository/photos/build.gradle.kts @@ -40,7 +40,7 @@ android { freeCompilerArgs = freeCompilerArgs + "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi" } - packagingOptions { + packaging { resources.excludes += "META-INF/AL2.0" resources.excludes += "META-INF/LGPL2.1" resources.excludes += "META-INF/licenses/ASM" diff --git a/repository/settings/build.gradle.kts b/repository/settings/build.gradle.kts index c9e26ce6..d04bd8c0 100644 --- a/repository/settings/build.gradle.kts +++ b/repository/settings/build.gradle.kts @@ -58,7 +58,7 @@ android { freeCompilerArgs = freeCompilerArgs + "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi" } - packagingOptions { + packaging { resources.excludes += "META-INF/AL2.0" resources.excludes += "META-INF/LGPL2.1" resources.excludes += "META-INF/licenses/ASM" diff --git a/repository/sharing/build.gradle.kts b/repository/sharing/build.gradle.kts index c0dedc01..325713f7 100644 --- a/repository/sharing/build.gradle.kts +++ b/repository/sharing/build.gradle.kts @@ -57,7 +57,7 @@ android { freeCompilerArgs = freeCompilerArgs + "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi" } - packagingOptions { + packaging { resources.excludes += "META-INF/AL2.0" resources.excludes += "META-INF/LGPL2.1" resources.excludes += "META-INF/licenses/ASM" diff --git a/settings.gradle.kts b/settings.gradle.kts index 151c107c..6cb2a090 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -16,11 +16,10 @@ pluginManagement { } plugins { - kotlin("android").version("1.8.10") - id("com.android.application").version("7.4.0") - id("com.android.library").version("7.4.0") - // kotlin("kapt").version("1.8.10") - id("com.google.devtools.ksp").version("1.8.10-1.0.9") + kotlin("android").version("1.9.0") + id("com.android.application").version("8.1.0") + id("com.android.library").version("8.1.0") + id("com.google.devtools.ksp").version("1.9.0-1.0.13") } } diff --git a/ui/search/src/main/kotlin/photos/network/ui/search/SearchScreen.kt b/ui/search/src/main/kotlin/photos/network/ui/search/SearchScreen.kt index 9dd37232..74c890d9 100644 --- a/ui/search/src/main/kotlin/photos/network/ui/search/SearchScreen.kt +++ b/ui/search/src/main/kotlin/photos/network/ui/search/SearchScreen.kt @@ -115,7 +115,7 @@ internal fun SearchHeader( .padding(top = 32.dp) .testTag("SEARCH_HEADER_TITLE") .fillMaxWidth(), - text = stringResource(id = R.string.app_name_full), + text = stringResource(id = photos.network.ui.common.R.string.app_name_full), style = MaterialTheme.typography.headlineLarge, textAlign = TextAlign.Center, color = Color.White, diff --git a/ui/settings/build.gradle.kts b/ui/settings/build.gradle.kts index 37be3f89..758a7396 100644 --- a/ui/settings/build.gradle.kts +++ b/ui/settings/build.gradle.kts @@ -44,6 +44,7 @@ android { buildFeatures { compose = true + buildConfig = true } composeOptions { kotlinCompilerExtensionVersion = libs.versions.compose.compiler.get() diff --git a/ui/settings/src/main/kotlin/photos/network/ui/settings/composable/SettingsHeader.kt b/ui/settings/src/main/kotlin/photos/network/ui/settings/composable/SettingsHeader.kt index d36d9479..ddf44ac5 100644 --- a/ui/settings/src/main/kotlin/photos/network/ui/settings/composable/SettingsHeader.kt +++ b/ui/settings/src/main/kotlin/photos/network/ui/settings/composable/SettingsHeader.kt @@ -71,7 +71,7 @@ internal fun SettingsHeader( .padding(top = 24.dp) .testTag("SETTINGS_HEADER_TITLE") .fillMaxWidth(), - text = stringResource(id = R.string.app_name_full), + text = stringResource(id = photos.network.ui.common.R.string.app_name_full), style = MaterialTheme.typography.headlineLarge, textAlign = TextAlign.Center, color = Color.White,