From 6c306417cb9a8a279bb6adddd2a422eac58f4344 Mon Sep 17 00:00:00 2001 From: Guillaume Bernos Date: Tue, 28 Jan 2025 13:57:04 +0100 Subject: [PATCH 01/12] feat: move from SmartLock to CredentialManager update versions update version fix more tests fixes sdk bump fix gradle save the response Sign In working chore: upgrade Gradle, AGP and Kotlin chore: move namespace to build.gradle chore: upgrade Lint API add new lines at EOF for checkstyle ci: temporarily stop building proguard-test test: update robolectric and use Looper ignore test clean update ci remove comments Bad code fix? unused imports more more fix fixes fix more fixes --- .github/workflows/android.yml | 20 +- app/build.gradle.kts | 9 +- app/src/main/AndroidManifest.xml | 2 +- .../com/firebase/uidemo/FirebaseUIDemo.java | 13 - .../firebase/uidemo/auth/AuthUiActivity.java | 15 +- app/src/main/res/layout/auth_ui_layout.xml | 16 +- auth/build.gradle.kts | 16 +- auth/src/main/AndroidManifest.xml | 2 +- .../java/com/firebase/ui/auth/AuthUI.java | 180 +----------- .../com/firebase/ui/auth/KickoffActivity.java | 2 +- .../auth/data/remote/SignInKickstarter.java | 130 +++------ .../ui/auth/ui/HelperActivityBase.java | 1 + .../credentials/CredentialSaveActivity.java | 79 ----- .../ui/credentials/CredentialSaveActivity.kt | 91 ++++++ .../ui/auth/ui/email/CheckEmailHandler.java | 90 ++++-- .../auth/ui/idp/AuthMethodPickerActivity.java | 148 ++++++++++ .../firebase/ui/auth/util/GoogleApiUtils.java | 20 +- .../ui/auth/viewmodel/AuthViewModelBase.java | 14 +- .../auth/viewmodel/SignInViewModelBase.java | 4 +- .../CredentialManagerHandler.kt | 103 +++++++ .../viewmodel/smartlock/SmartLockHandler.java | 112 -------- .../ui/auth/ui/email/EmailActivityTest.java | 11 +- .../ui/idp/AuthMethodPickerActivityTest.java | 3 +- .../auth/ui/phone/PhoneNumberUtilsTest.java | 32 --- .../CredentialManagerHandlerTest.java | 113 ++++++++ .../viewmodel/EmailLinkSignInHandlerTest.java | 7 + .../GenericIdpSignInHandlerTest.java | 6 + ...kingSocialProviderResponseHandlerTest.java | 6 + .../auth/viewmodel/SmartLockHandlerTest.java | 129 --------- .../SocialProviderResponseHandlerTest.java | 17 +- .../WelcomeBackPasswordHandlerTest.java | 57 ++-- build.gradle.kts | 1 + buildSrc/src/main/kotlin/Config.kt | 30 +- common/build.gradle.kts | 1 + common/src/main/AndroidManifest.xml | 2 +- database/build.gradle.kts | 1 + database/src/main/AndroidManifest.xml | 2 +- firestore/build.gradle.kts | 1 + firestore/src/main/AndroidManifest.xml | 2 +- gradle.properties | 4 + gradle/wrapper/gradle-wrapper.jar | Bin 59203 -> 61574 bytes gradle/wrapper/gradle-wrapper.properties | 3 +- gradlew | 269 +++++++++++------- gradlew.bat | 15 +- internal/lintchecks/build.gradle.kts | 1 + .../lintchecks/src/main/AndroidManifest.xml | 2 +- library/build.gradle.kts | 1 + library/src/main/AndroidManifest.xml | 2 +- .../com/firebaseui/lint/LintIssueRegistry.kt | 8 + proguard-tests/build.gradle.kts | 10 +- proguard-tests/src/main/AndroidManifest.xml | 2 +- scripts/build.sh | 3 +- settings.gradle | 9 + storage/build.gradle.kts | 1 + storage/src/main/AndroidManifest.xml | 2 +- 55 files changed, 922 insertions(+), 898 deletions(-) delete mode 100644 auth/src/main/java/com/firebase/ui/auth/ui/credentials/CredentialSaveActivity.java create mode 100644 auth/src/main/java/com/firebase/ui/auth/ui/credentials/CredentialSaveActivity.kt create mode 100644 auth/src/main/java/com/firebase/ui/auth/viewmodel/credentialmanager/CredentialManagerHandler.kt delete mode 100644 auth/src/main/java/com/firebase/ui/auth/viewmodel/smartlock/SmartLockHandler.java create mode 100644 auth/src/test/java/com/firebase/ui/auth/viewmodel/CredentialManagerHandlerTest.java delete mode 100644 auth/src/test/java/com/firebase/ui/auth/viewmodel/SmartLockHandlerTest.java diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index c51fd3fd3..2eddf8176 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -8,13 +8,13 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - name: set up JDK 11 - uses: actions/setup-java@v1 - with: - java-version: 11 - - name: Build with Gradle - run: ./scripts/build.sh - - name: Print Logs - if: failure() - run: ./scripts/print_build_logs.sh \ No newline at end of file + - uses: actions/checkout@v2 + - name: set up JDK 17 + uses: actions/setup-java@v1 + with: + java-version: 17 + - name: Build with Gradle + run: ./scripts/build.sh + - name: Print Logs + if: failure() + run: ./scripts/print_build_logs.sh diff --git a/app/build.gradle.kts b/app/build.gradle.kts index fc2c58cea..cec75d966 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -7,6 +7,8 @@ plugins { android { compileSdk = Config.SdkVersions.compile + namespace = "com.firebase.uidemo" + defaultConfig { minSdk = Config.SdkVersions.min targetSdk = Config.SdkVersions.target @@ -60,8 +62,8 @@ android { } compileOptions { - sourceCompatibility = JavaVersion.VERSION_1_8 - targetCompatibility = JavaVersion.VERSION_1_8 + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 } buildFeatures { @@ -95,9 +97,6 @@ dependencies { implementation(Config.Libs.Misc.permissions) implementation(Config.Libs.Androidx.constraint) debugImplementation(Config.Libs.Misc.leakCanary) - debugImplementation(Config.Libs.Misc.leakCanaryFragments) - releaseImplementation(Config.Libs.Misc.leakCanaryNoop) - testImplementation(Config.Libs.Misc.leakCanaryNoop) } apply(plugin = "com.google.gms.google-services") diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 36dc8f03b..1bc54ae34 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -2,7 +2,7 @@ + > diff --git a/app/src/main/java/com/firebase/uidemo/FirebaseUIDemo.java b/app/src/main/java/com/firebase/uidemo/FirebaseUIDemo.java index 687dcd564..db33245f8 100644 --- a/app/src/main/java/com/firebase/uidemo/FirebaseUIDemo.java +++ b/app/src/main/java/com/firebase/uidemo/FirebaseUIDemo.java @@ -1,7 +1,5 @@ package com.firebase.uidemo; -import com.squareup.leakcanary.LeakCanary; - import androidx.appcompat.app.AppCompatDelegate; import androidx.multidex.MultiDexApplication; @@ -9,15 +7,4 @@ public class FirebaseUIDemo extends MultiDexApplication { static { AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_AUTO_BATTERY); } - - @Override - public void onCreate() { - super.onCreate(); - if (LeakCanary.isInAnalyzerProcess(this)) { - // This process is dedicated to LeakCanary for heap analysis. - // You should not init your app in this process. - return; - } - LeakCanary.install(this); - } } diff --git a/app/src/main/java/com/firebase/uidemo/auth/AuthUiActivity.java b/app/src/main/java/com/firebase/uidemo/auth/AuthUiActivity.java index f3e8ef5c0..823bb0be7 100644 --- a/app/src/main/java/com/firebase/uidemo/auth/AuthUiActivity.java +++ b/app/src/main/java/com/firebase/uidemo/auth/AuthUiActivity.java @@ -141,8 +141,6 @@ public void onCreate(@Nullable Bundle savedInstanceState) { mBinding.signIn.setOnClickListener(view -> signIn()); - mBinding.signInSilent.setOnClickListener(view -> silentSignIn()); - if (ConfigurationUtils.isGoogleMisconfigured(this) || ConfigurationUtils.isFacebookMisconfigured(this)) { showSnackbar(R.string.configuration_required); @@ -226,18 +224,9 @@ private Intent getSignInIntent(@Nullable String link) { if (auth.getCurrentUser() != null && auth.getCurrentUser().isAnonymous()) { builder.enableAnonymousUsersAutoUpgrade(); } - return builder.build(); - } - public void silentSignIn() { - getAuthUI().silentSignIn(this, getSelectedProviders()) - .addOnCompleteListener(this, task -> { - if (task.isSuccessful()) { - startSignedInActivity(null); - } else { - showSnackbar(R.string.sign_in_failed); - } - }); + builder.setAlwaysShowSignInMethodScreen(true); + return builder.build(); } @Override diff --git a/app/src/main/res/layout/auth_ui_layout.xml b/app/src/main/res/layout/auth_ui_layout.xml index e3b02008d..622155af4 100644 --- a/app/src/main/res/layout/auth_ui_layout.xml +++ b/app/src/main/res/layout/auth_ui_layout.xml @@ -1,5 +1,6 @@ - + app:drawableTopCompat="@drawable/firebase_auth_120dp" />