diff --git a/build.gradle.kts b/build.gradle.kts index 03b54e053..e49a51614 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,6 +1,5 @@ plugins { alias(libs.plugins.android).apply(false) - alias(libs.plugins.kotlinAndroid).apply(false) alias(libs.plugins.ksp).apply(false) alias(libs.plugins.parcelize).apply(false) alias(libs.plugins.library).apply(false) diff --git a/commons/build.gradle.kts b/commons/build.gradle.kts index bed8b952d..04cbb3268 100644 --- a/commons/build.gradle.kts +++ b/commons/build.gradle.kts @@ -3,7 +3,6 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { alias(libs.plugins.library) - alias(libs.plugins.kotlinAndroid) alias(libs.plugins.ksp) alias(libs.plugins.kotlinSerialization) alias(libs.plugins.compose.compiler) @@ -35,7 +34,7 @@ android { getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) - consumerProguardFiles("proguard-rules.pro") + consumerProguardFiles("consumer-rules.pro") } } @@ -80,7 +79,7 @@ android { } sourceSets { - getByName("main").java.srcDirs("src/main/kotlin") + getByName("main").java.directories.add("src/main/kotlin") } } diff --git a/commons/consumer-rules.pro b/commons/consumer-rules.pro new file mode 100644 index 000000000..28e37dd41 --- /dev/null +++ b/commons/consumer-rules.pro @@ -0,0 +1,66 @@ +-dontwarn com.bumptech.glide.load.engine.bitmap_recycle.LruBitmapPool +-dontwarn com.bumptech.glide.load.resource.bitmap.Downsampler +-dontwarn com.bumptech.glide.load.resource.bitmap.HardwareConfigState +-dontwarn com.bumptech.glide.manager.RequestManagerRetriever + +-keep public class * extends java.lang.Exception + +-keep class android.support.v7.widget.SearchView { *; } +-keep class org.fossify.commons.models.PhoneNumber { *; } + +# Joda +-dontwarn org.joda.convert.** +-dontwarn org.joda.time.** +-keep class org.joda.time.** { *; } +-keep interface org.joda.time.** { *; } + +-keep public class * implements com.bumptech.glide.module.GlideModule +-keep public class * extends com.bumptech.glide.module.AppGlideModule +-keep class com.bumptech.glide.GeneratedAppGlideModuleImpl +-keep public enum com.bumptech.glide.load.ImageHeaderParser$** { + **[] $VALUES; + public *; +} +-dontwarn java.lang.invoke.StringConcatFactory +-dontwarn javax.swing.tree.TreeNode + +#Gson https://github.com/google/gson/blob/main/gson/src/main/resources/META-INF/proguard/gson.pro +-keepattributes Signature +-keepattributes RuntimeVisibleAnnotations,AnnotationDefault + +-if class com.google.gson.reflect.TypeToken +-keep,allowobfuscation class com.google.gson.reflect.TypeToken + +-keep,allowobfuscation class * extends com.google.gson.reflect.TypeToken +-keep,allowobfuscation,allowoptimization @com.google.gson.annotations.JsonAdapter class * + +-keepclassmembers,allowobfuscation class * { + @com.google.gson.annotations.Expose ; + @com.google.gson.annotations.JsonAdapter ; + @com.google.gson.annotations.Since ; + @com.google.gson.annotations.Until ; +} + +-keepclassmembers class * extends com.google.gson.TypeAdapter { + (); +} +-keepclassmembers class * implements com.google.gson.TypeAdapterFactory { + (); +} +-keepclassmembers class * implements com.google.gson.JsonSerializer { + (); +} +-keepclassmembers class * implements com.google.gson.JsonDeserializer { + (); +} + +-if class * +-keepclasseswithmembers,allowobfuscation class <1> { + @com.google.gson.annotations.SerializedName ; +} +-if class * { + @com.google.gson.annotations.SerializedName ; +} +-keepclassmembers,allowobfuscation,allowoptimization class <1> { + (); +} diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index f7cf2b437..79b9aa9e8 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -45,7 +45,7 @@ gson = "2.13.2" #jodaTime jodaTime = "2.14.0" #Gradle -gradlePlugins-agp = "8.11.1" +gradlePlugins-agp = "9.0.0" #build app-build-compileSDKVersion = "36" app-build-targetSDK = "36" @@ -133,7 +133,6 @@ lifecycle = [ android = { id = "com.android.application", version.ref = "gradlePlugins-agp" } ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" } library = { id = "com.android.library", version.ref = "gradlePlugins-agp" } -kotlinAndroid = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" } kotlinSerialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlin" } diff --git a/samples/build.gradle.kts b/samples/build.gradle.kts index e74f7333a..3fc15a197 100644 --- a/samples/build.gradle.kts +++ b/samples/build.gradle.kts @@ -5,7 +5,6 @@ import java.io.FileInputStream plugins { alias(libs.plugins.android) - alias(libs.plugins.kotlinAndroid) alias(libs.plugins.compose.compiler) alias(libs.plugins.detekt) } @@ -89,7 +88,7 @@ android { } sourceSets { - getByName("main").java.srcDirs("src/main/kotlin") + getByName("main").java.directories.add("src/main/kotlin") } lint {