From f1f26748615c7c9d406e1d3d605e2987e1134ee7 Mon Sep 17 00:00:00 2001 From: Russell Wheatley Date: Wed, 28 Sep 2022 11:44:00 +0100 Subject: [PATCH] feat(firebase_app_check): provide `androidDebugProvider` boolean for android debug provider & update app check example app (#9412) --- .../firebase_app_check/android/build.gradle | 6 ++--- .../FlutterFirebaseAppCheckPlugin.java | 15 ++++++++++--- .../example/android/app/build.gradle | 7 +++--- .../android/app/src/main/AndroidManifest.xml | 4 +++- .../example/android/build.gradle | 8 +++---- .../firebase_app_check/example/lib/main.dart | 22 +++++++++++++++++++ .../firebase_app_check/example/pubspec.yaml | 9 +++++++- .../lib/src/firebase_app_check.dart | 10 +++++++-- .../test/firebase_app_check_test.dart | 6 ++++- .../method_channel_firebase_app_check.dart | 9 +++++++- ...platform_interface_firebase_app_check.dart | 3 ++- ...ethod_channel_firebase_app_check_test.dart | 10 +++++++-- .../lib/firebase_app_check_web.dart | 3 ++- tests/android/build.gradle | 2 +- .../firebase_app_check_e2e.dart | 1 + 15 files changed, 91 insertions(+), 24 deletions(-) diff --git a/packages/firebase_app_check/firebase_app_check/android/build.gradle b/packages/firebase_app_check/firebase_app_check/android/build.gradle index 12ac2b323518..4faee6c89be5 100644 --- a/packages/firebase_app_check/firebase_app_check/android/build.gradle +++ b/packages/firebase_app_check/firebase_app_check/android/build.gradle @@ -51,9 +51,9 @@ android { api firebaseCoreProject implementation platform("com.google.firebase:firebase-bom:${getRootProjectExtOrCoreProperty("FirebaseSDKVersion", firebaseCoreProject)}") // TODO: Since App Check is a beta SDK it's not available in the Firebase Android BoM so we need to specify an exact version here. - implementation 'com.google.firebase:firebase-appcheck-safetynet:16.0.0-beta04' - implementation 'com.google.firebase:firebase-appcheck-debug:16.0.0-beta04' - implementation 'androidx.annotation:annotation:1.1.0' + implementation 'com.google.firebase:firebase-appcheck-safetynet:16.0.2' + implementation 'com.google.firebase:firebase-appcheck-debug:16.0.2' + implementation 'androidx.annotation:annotation:1.5.0' } } diff --git a/packages/firebase_app_check/firebase_app_check/android/src/main/java/io/flutter/plugins/firebase/appcheck/FlutterFirebaseAppCheckPlugin.java b/packages/firebase_app_check/firebase_app_check/android/src/main/java/io/flutter/plugins/firebase/appcheck/FlutterFirebaseAppCheckPlugin.java index 2bb8010eb5d6..10ce58329f32 100644 --- a/packages/firebase_app_check/firebase_app_check/android/src/main/java/io/flutter/plugins/firebase/appcheck/FlutterFirebaseAppCheckPlugin.java +++ b/packages/firebase_app_check/firebase_app_check/android/src/main/java/io/flutter/plugins/firebase/appcheck/FlutterFirebaseAppCheckPlugin.java @@ -14,6 +14,7 @@ import com.google.firebase.FirebaseApp; import com.google.firebase.appcheck.AppCheckTokenResult; import com.google.firebase.appcheck.FirebaseAppCheck; +import com.google.firebase.appcheck.debug.DebugAppCheckProviderFactory; import com.google.firebase.appcheck.safetynet.SafetyNetAppCheckProviderFactory; import io.flutter.embedding.engine.plugins.FlutterPlugin; import io.flutter.plugin.common.BinaryMessenger; @@ -77,9 +78,17 @@ private Task activate(Map arguments) { cachedThreadPool.execute( () -> { try { - FirebaseAppCheck firebaseAppCheck = getAppCheck(arguments); - firebaseAppCheck.installAppCheckProviderFactory( - SafetyNetAppCheckProviderFactory.getInstance()); + Boolean debug = (Boolean) arguments.get("androidDebugProvider"); + + if (Boolean.TRUE.equals(debug)) { + FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance(); + firebaseAppCheck.installAppCheckProviderFactory( + DebugAppCheckProviderFactory.getInstance()); + } else { + FirebaseAppCheck firebaseAppCheck = getAppCheck(arguments); + firebaseAppCheck.installAppCheckProviderFactory( + SafetyNetAppCheckProviderFactory.getInstance()); + } taskCompletionSource.setResult(null); } catch (Exception e) { taskCompletionSource.setException(e); diff --git a/packages/firebase_app_check/firebase_app_check/example/android/app/build.gradle b/packages/firebase_app_check/firebase_app_check/example/android/app/build.gradle index 4711e57e8d13..ec48ab8fa507 100644 --- a/packages/firebase_app_check/firebase_app_check/example/android/app/build.gradle +++ b/packages/firebase_app_check/firebase_app_check/example/android/app/build.gradle @@ -28,15 +28,16 @@ apply plugin: 'com.google.gms.google-services' apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" android { - compileSdkVersion 30 + compileSdkVersion 33 defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). applicationId "io.flutter.plugins.firebase.appcheck.example" - minSdkVersion 16 - targetSdkVersion 30 + minSdkVersion 19 + targetSdkVersion 33 versionCode flutterVersionCode.toInteger() versionName flutterVersionName + multiDexEnabled true } buildTypes { diff --git a/packages/firebase_app_check/firebase_app_check/example/android/app/src/main/AndroidManifest.xml b/packages/firebase_app_check/firebase_app_check/example/android/app/src/main/AndroidManifest.xml index 7a4e2a00194c..b0578ac80d68 100644 --- a/packages/firebase_app_check/firebase_app_check/example/android/app/src/main/AndroidManifest.xml +++ b/packages/firebase_app_check/firebase_app_check/example/android/app/src/main/AndroidManifest.xml @@ -9,7 +9,9 @@ android:theme="@style/LaunchTheme" android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode" android:hardwareAccelerated="true" - android:windowSoftInputMode="adjustResize"> + android:windowSoftInputMode="adjustResize" + android:exported="true" + >