From 6d93ce5ead27faece01b63cd14a5f6309b1493be Mon Sep 17 00:00:00 2001 From: Simon Marquis Date: Wed, 29 Nov 2023 16:42:52 +0100 Subject: [PATCH 1/7] Firebase: Migrate to using the Kotlin extensions (KTX) APIs in the main modules https://firebase.google.com/docs/android/kotlin-migration Requirements: Firebase BoM 32.5.0, but let's update to the latest 32.6.0. And remove warnings: - `'logEvent(String, ParametersBuilder.() -> Unit): Unit' is deprecated. Migrate to use the KTX API from the main module: https://firebase.google.com/docs/android/kotlin-migration.` - `'param(String, String): Unit' is deprecated. Migrate to use the KTX API from the main module: https://firebase.google.com/docs/android/kotlin-migration.` --- .../nowinandroid/core/analytics/AnalyticsModule.kt | 6 +++--- .../core/analytics/FirebaseAnalyticsHelper.kt | 2 +- gradle/libs.versions.toml | 10 +++++----- .../samples/apps/nowinandroid/sync/di/SyncModule.kt | 4 ++-- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/core/analytics/src/prod/kotlin/com/google/samples/apps/nowinandroid/core/analytics/AnalyticsModule.kt b/core/analytics/src/prod/kotlin/com/google/samples/apps/nowinandroid/core/analytics/AnalyticsModule.kt index 9f875ae6d..76d5c3d74 100644 --- a/core/analytics/src/prod/kotlin/com/google/samples/apps/nowinandroid/core/analytics/AnalyticsModule.kt +++ b/core/analytics/src/prod/kotlin/com/google/samples/apps/nowinandroid/core/analytics/AnalyticsModule.kt @@ -17,8 +17,8 @@ package com.google.samples.apps.nowinandroid.core.analytics import com.google.firebase.analytics.FirebaseAnalytics -import com.google.firebase.analytics.ktx.analytics -import com.google.firebase.ktx.Firebase +import com.google.firebase.analytics.analytics +import com.google.firebase.Firebase import dagger.Binds import dagger.Module import dagger.Provides @@ -35,6 +35,6 @@ abstract class AnalyticsModule { companion object { @Provides @Singleton - fun provideFirebaseAnalytics(): FirebaseAnalytics { return Firebase.analytics } + fun provideFirebaseAnalytics(): FirebaseAnalytics = Firebase.analytics } } diff --git a/core/analytics/src/prod/kotlin/com/google/samples/apps/nowinandroid/core/analytics/FirebaseAnalyticsHelper.kt b/core/analytics/src/prod/kotlin/com/google/samples/apps/nowinandroid/core/analytics/FirebaseAnalyticsHelper.kt index 75dfbc468..62d4d9bcb 100644 --- a/core/analytics/src/prod/kotlin/com/google/samples/apps/nowinandroid/core/analytics/FirebaseAnalyticsHelper.kt +++ b/core/analytics/src/prod/kotlin/com/google/samples/apps/nowinandroid/core/analytics/FirebaseAnalyticsHelper.kt @@ -17,7 +17,7 @@ package com.google.samples.apps.nowinandroid.core.analytics import com.google.firebase.analytics.FirebaseAnalytics -import com.google.firebase.analytics.ktx.logEvent +import com.google.firebase.analytics.logEvent import javax.inject.Inject /** diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 9ee708385..7fb6af7aa 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -31,7 +31,7 @@ androidxUiAutomator = "2.2.0" androidxWindowManager = "1.1.0" androidxWork = "2.9.0-rc01" coil = "2.4.0" -firebaseBom = "32.4.0" +firebaseBom = "32.6.0" firebaseCrashlyticsPlugin = "2.9.9" firebasePerfPlugin = "1.4.2" gmsPlugin = "4.4.0" @@ -104,11 +104,11 @@ androidx-work-testing = { group = "androidx.work", name = "work-testing", versio coil-kt = { group = "io.coil-kt", name = "coil", version.ref = "coil" } coil-kt-compose = { group = "io.coil-kt", name = "coil-compose", version.ref = "coil" } coil-kt-svg = { group = "io.coil-kt", name = "coil-svg", version.ref = "coil" } -firebase-analytics = { group = "com.google.firebase", name = "firebase-analytics-ktx" } +firebase-analytics = { group = "com.google.firebase", name = "firebase-analytics" } firebase-bom = { group = "com.google.firebase", name = "firebase-bom", version.ref = "firebaseBom" } -firebase-cloud-messaging = { group = "com.google.firebase", name = "firebase-messaging-ktx" } -firebase-crashlytics = { group = "com.google.firebase", name = "firebase-crashlytics-ktx" } -firebase-performance = { group = "com.google.firebase", name = "firebase-perf-ktx" } +firebase-cloud-messaging = { group = "com.google.firebase", name = "firebase-messaging" } +firebase-crashlytics = { group = "com.google.firebase", name = "firebase-crashlytics" } +firebase-performance = { group = "com.google.firebase", name = "firebase-perf" } firebase-performance-gradle = { group = "com.google.firebase", name = "perf-plugin", version.ref = "firebasePerfPlugin" } google-oss-licenses = { group = "com.google.android.gms", name = "play-services-oss-licenses", version.ref = "googleOss" } google-oss-licenses-plugin = { group = "com.google.android.gms", name = "oss-licenses-plugin", version.ref = "googleOssPlugin" } diff --git a/sync/work/src/prod/kotlin/com/google/samples/apps/nowinandroid/sync/di/SyncModule.kt b/sync/work/src/prod/kotlin/com/google/samples/apps/nowinandroid/sync/di/SyncModule.kt index af4508406..9a69a3c78 100644 --- a/sync/work/src/prod/kotlin/com/google/samples/apps/nowinandroid/sync/di/SyncModule.kt +++ b/sync/work/src/prod/kotlin/com/google/samples/apps/nowinandroid/sync/di/SyncModule.kt @@ -16,9 +16,9 @@ package com.google.samples.apps.nowinandroid.sync.di -import com.google.firebase.ktx.Firebase +import com.google.firebase.Firebase import com.google.firebase.messaging.FirebaseMessaging -import com.google.firebase.messaging.ktx.messaging +import com.google.firebase.messaging.messaging import com.google.samples.apps.nowinandroid.core.data.util.SyncManager import com.google.samples.apps.nowinandroid.sync.status.FirebaseSyncSubscriber import com.google.samples.apps.nowinandroid.sync.status.SyncSubscriber From 4c8e0319eec3da8cf73244e7fe478e09928c1a31 Mon Sep 17 00:00:00 2001 From: Simon Marquis Date: Wed, 29 Nov 2023 17:38:46 +0000 Subject: [PATCH 2/7] spotless --- .../samples/apps/nowinandroid/core/analytics/AnalyticsModule.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/analytics/src/prod/kotlin/com/google/samples/apps/nowinandroid/core/analytics/AnalyticsModule.kt b/core/analytics/src/prod/kotlin/com/google/samples/apps/nowinandroid/core/analytics/AnalyticsModule.kt index 76d5c3d74..270ab484a 100644 --- a/core/analytics/src/prod/kotlin/com/google/samples/apps/nowinandroid/core/analytics/AnalyticsModule.kt +++ b/core/analytics/src/prod/kotlin/com/google/samples/apps/nowinandroid/core/analytics/AnalyticsModule.kt @@ -16,9 +16,9 @@ package com.google.samples.apps.nowinandroid.core.analytics +import com.google.firebase.Firebase import com.google.firebase.analytics.FirebaseAnalytics import com.google.firebase.analytics.analytics -import com.google.firebase.Firebase import dagger.Binds import dagger.Module import dagger.Provides From c83a5edadfbd54360a90cdd76a732ead3619f28f Mon Sep 17 00:00:00 2001 From: Simon Marquis Date: Wed, 29 Nov 2023 19:40:58 +0100 Subject: [PATCH 3/7] updateProdReleaseBadging See https://github.com/android/nowinandroid/pull/1006 for these new permissions and "Ad Services" property. --- app/prodRelease-badging.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/prodRelease-badging.txt b/app/prodRelease-badging.txt index 6c3a859c7..9fca9a0ae 100644 --- a/app/prodRelease-badging.txt +++ b/app/prodRelease-badging.txt @@ -7,6 +7,8 @@ uses-permission: name='android.permission.POST_NOTIFICATIONS' uses-permission: name='android.permission.WAKE_LOCK' uses-permission: name='com.google.android.c2dm.permission.RECEIVE' uses-permission: name='com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE' +uses-permission: name='android.permission.ACCESS_ADSERVICES_ATTRIBUTION' +uses-permission: name='android.permission.ACCESS_ADSERVICES_AD_ID' uses-permission: name='android.permission.RECEIVE_BOOT_COMPLETED' uses-permission: name='android.permission.FOREGROUND_SERVICE' uses-permission: name='com.google.samples.apps.nowinandroid.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION' @@ -107,6 +109,7 @@ application: label='Now in Android' icon='res/mipmap-anydpi-v26/ic_launcher.xml' launchable-activity: name='com.google.samples.apps.nowinandroid.MainActivity' label='' icon='' uses-library-not-required:'androidx.window.extensions' uses-library-not-required:'androidx.window.sidecar' +property: name='android.adservices.AD_SERVICES_CONFIG' resource='res/xml/ga_ad_services_config.xml' uses-library-not-required:'android.ext.adservices' feature-group: label='' uses-feature: name='android.hardware.faketouch' From 1494f776839ea55db3fd543a4778ce330b7a7d54 Mon Sep 17 00:00:00 2001 From: Simon Marquis Date: Fri, 22 Dec 2023 16:47:27 +0100 Subject: [PATCH 4/7] Fix badging after merge --- app/prodRelease-badging.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/prodRelease-badging.txt b/app/prodRelease-badging.txt index ad9cb974c..468c31be3 100644 --- a/app/prodRelease-badging.txt +++ b/app/prodRelease-badging.txt @@ -107,11 +107,10 @@ application-icon-640:'res/mipmap-anydpi-v26/ic_launcher.xml' application-icon-65534:'res/mipmap-anydpi-v26/ic_launcher.xml' application: label='Now in Android' icon='res/mipmap-anydpi-v26/ic_launcher.xml' launchable-activity: name='com.google.samples.apps.nowinandroid.MainActivity' label='' icon='' +property: name='android.adservices.AD_SERVICES_CONFIG' resource='res/xml/ga_ad_services_config.xml' uses-library-not-required:'android.ext.adservices' uses-library-not-required:'androidx.window.extensions' uses-library-not-required:'androidx.window.sidecar' -property: name='android.adservices.AD_SERVICES_CONFIG' resource='res/xml/ga_ad_services_config.xml' -uses-library-not-required:'android.ext.adservices' feature-group: label='' uses-feature: name='android.hardware.faketouch' uses-implied-feature: name='android.hardware.faketouch' reason='default feature for all apps' From 2226cfc401b038f5b11bab1ff893ef1d273a06ee Mon Sep 17 00:00:00 2001 From: Simon Marquis Date: Tue, 2 Jul 2024 20:21:07 +0200 Subject: [PATCH 5/7] updateProdReleaseBadging --- app/prodRelease-badging.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/prodRelease-badging.txt b/app/prodRelease-badging.txt index e44d86c47..827aa177e 100644 --- a/app/prodRelease-badging.txt +++ b/app/prodRelease-badging.txt @@ -6,11 +6,11 @@ uses-permission: name='android.permission.ACCESS_NETWORK_STATE' uses-permission: name='android.permission.POST_NOTIFICATIONS' uses-permission: name='android.permission.WAKE_LOCK' uses-permission: name='com.google.android.c2dm.permission.RECEIVE' -uses-permission: name='android.permission.RECEIVE_BOOT_COMPLETED' -uses-permission: name='android.permission.FOREGROUND_SERVICE' uses-permission: name='com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE' uses-permission: name='android.permission.ACCESS_ADSERVICES_ATTRIBUTION' uses-permission: name='android.permission.ACCESS_ADSERVICES_AD_ID' +uses-permission: name='android.permission.RECEIVE_BOOT_COMPLETED' +uses-permission: name='android.permission.FOREGROUND_SERVICE' uses-permission: name='com.google.samples.apps.nowinandroid.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION' application-label:'Now in Android' application-label-af:'Now in Android' From cbb010ed9dce72b5ce469e91fc9c26ccfef62a34 Mon Sep 17 00:00:00 2001 From: Simon Marquis Date: Tue, 2 Jul 2024 20:21:16 +0200 Subject: [PATCH 6/7] dependencyGuardBaseline --- .../prodReleaseRuntimeClasspath.txt | 53 +++++++++---------- 1 file changed, 25 insertions(+), 28 deletions(-) diff --git a/app/dependencies/prodReleaseRuntimeClasspath.txt b/app/dependencies/prodReleaseRuntimeClasspath.txt index d3e90da35..066771b7d 100644 --- a/app/dependencies/prodReleaseRuntimeClasspath.txt +++ b/app/dependencies/prodReleaseRuntimeClasspath.txt @@ -140,52 +140,49 @@ androidx.work:work-runtime:2.9.0 com.caverock:androidsvg-aar:1.4 com.google.accompanist:accompanist-drawablepainter:0.32.0 com.google.accompanist:accompanist-permissions:0.34.0 -com.google.android.datatransport:transport-api:3.0.0 +com.google.android.datatransport:transport-api:3.1.0 com.google.android.datatransport:transport-backend-cct:3.1.9 com.google.android.datatransport:transport-runtime:3.1.9 com.google.android.gms:play-services-ads-identifier:18.0.0 com.google.android.gms:play-services-base:18.0.1 -com.google.android.gms:play-services-basement:18.1.0 -com.google.android.gms:play-services-cloud-messaging:17.0.1 -com.google.android.gms:play-services-measurement-api:21.4.0 -com.google.android.gms:play-services-measurement-base:21.4.0 -com.google.android.gms:play-services-measurement-impl:21.4.0 -com.google.android.gms:play-services-measurement-sdk-api:21.4.0 -com.google.android.gms:play-services-measurement-sdk:21.4.0 -com.google.android.gms:play-services-measurement:21.4.0 +com.google.android.gms:play-services-basement:18.4.0 +com.google.android.gms:play-services-cloud-messaging:17.2.0 +com.google.android.gms:play-services-measurement-api:22.0.2 +com.google.android.gms:play-services-measurement-base:22.0.2 +com.google.android.gms:play-services-measurement-impl:22.0.2 +com.google.android.gms:play-services-measurement-sdk-api:22.0.2 +com.google.android.gms:play-services-measurement-sdk:22.0.2 +com.google.android.gms:play-services-measurement:22.0.2 com.google.android.gms:play-services-oss-licenses:17.0.1 com.google.android.gms:play-services-stats:17.0.2 -com.google.android.gms:play-services-tasks:18.0.2 +com.google.android.gms:play-services-tasks:18.2.0 com.google.code.findbugs:jsr305:3.0.2 com.google.dagger:dagger-lint-aar:2.51.1 com.google.dagger:dagger:2.51.1 com.google.dagger:hilt-android:2.51.1 com.google.dagger:hilt-core:2.51.1 -com.google.errorprone:error_prone_annotations:2.11.0 +com.google.errorprone:error_prone_annotations:2.26.0 com.google.firebase:firebase-abt:21.1.1 -com.google.firebase:firebase-analytics-ktx:21.4.0 -com.google.firebase:firebase-analytics:21.4.0 +com.google.firebase:firebase-analytics:22.0.2 com.google.firebase:firebase-annotations:16.2.0 -com.google.firebase:firebase-bom:32.4.0 -com.google.firebase:firebase-common-ktx:20.4.2 -com.google.firebase:firebase-common:20.4.2 -com.google.firebase:firebase-components:17.1.5 -com.google.firebase:firebase-config:21.5.0 -com.google.firebase:firebase-crashlytics-ktx:18.5.0 -com.google.firebase:firebase-crashlytics:18.5.0 -com.google.firebase:firebase-datatransport:18.1.8 +com.google.firebase:firebase-bom:33.1.1 +com.google.firebase:firebase-common-ktx:21.0.0 +com.google.firebase:firebase-common:21.0.0 +com.google.firebase:firebase-components:18.0.0 +com.google.firebase:firebase-config-interop:16.0.1 +com.google.firebase:firebase-config:22.0.0 +com.google.firebase:firebase-crashlytics:19.0.2 +com.google.firebase:firebase-datatransport:18.2.0 com.google.firebase:firebase-encoders-json:18.0.1 com.google.firebase:firebase-encoders-proto:16.0.0 com.google.firebase:firebase-encoders:17.0.0 com.google.firebase:firebase-iid-interop:17.1.0 com.google.firebase:firebase-installations-interop:17.1.1 -com.google.firebase:firebase-installations:17.2.0 -com.google.firebase:firebase-measurement-connector:19.0.0 -com.google.firebase:firebase-messaging-ktx:23.3.0 -com.google.firebase:firebase-messaging:23.3.0 -com.google.firebase:firebase-perf-ktx:20.5.0 -com.google.firebase:firebase-perf:20.5.0 -com.google.firebase:firebase-sessions:1.1.0 +com.google.firebase:firebase-installations:18.0.0 +com.google.firebase:firebase-measurement-connector:20.0.1 +com.google.firebase:firebase-messaging:24.0.0 +com.google.firebase:firebase-perf:21.0.1 +com.google.firebase:firebase-sessions:2.0.2 com.google.firebase:protolite-well-known-types:18.0.0 com.google.guava:failureaccess:1.0.1 com.google.guava:guava:31.1-android From abca104bd3228d581234513dd3a1f93874a4f3bf Mon Sep 17 00:00:00 2001 From: Simon Marquis Date: Fri, 5 Jul 2024 21:25:42 +0200 Subject: [PATCH 7/7] updateProdReleaseBadging --- app/prodRelease-badging.txt | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/prodRelease-badging.txt b/app/prodRelease-badging.txt index 827aa177e..9c6b8ed55 100644 --- a/app/prodRelease-badging.txt +++ b/app/prodRelease-badging.txt @@ -7,8 +7,6 @@ uses-permission: name='android.permission.POST_NOTIFICATIONS' uses-permission: name='android.permission.WAKE_LOCK' uses-permission: name='com.google.android.c2dm.permission.RECEIVE' uses-permission: name='com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE' -uses-permission: name='android.permission.ACCESS_ADSERVICES_ATTRIBUTION' -uses-permission: name='android.permission.ACCESS_ADSERVICES_AD_ID' uses-permission: name='android.permission.RECEIVE_BOOT_COMPLETED' uses-permission: name='android.permission.FOREGROUND_SERVICE' uses-permission: name='com.google.samples.apps.nowinandroid.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION'