From 13304989d32c0d40ab969a8bf614f76001dc3b80 Mon Sep 17 00:00:00 2001 From: Gray Mackall Date: Thu, 13 Jun 2024 15:34:03 -0700 Subject: [PATCH 01/14] splashscreenuntilfirstframe xmls --- .../example/android/app/src/main/AndroidManifest.xml | 3 --- .../example/android/app/src/main/AndroidManifest.xml | 3 --- .../example/android/app/src/main/AndroidManifest.xml | 7 ------- .../example/android/app/src/main/AndroidManifest.xml | 3 --- .../example/android/app/src/main/AndroidManifest.xml | 3 --- .../example/android/app/src/main/AndroidManifest.xml | 7 ------- .../example/android/app/src/main/AndroidManifest.xml | 7 ------- 7 files changed, 33 deletions(-) diff --git a/packages/google_maps_flutter/google_maps_flutter/example/android/app/src/main/AndroidManifest.xml b/packages/google_maps_flutter/google_maps_flutter/example/android/app/src/main/AndroidManifest.xml index 7d7d8ed4cda..3e9d1a8aac2 100644 --- a/packages/google_maps_flutter/google_maps_flutter/example/android/app/src/main/AndroidManifest.xml +++ b/packages/google_maps_flutter/google_maps_flutter/example/android/app/src/main/AndroidManifest.xml @@ -16,9 +16,6 @@ android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale" android:hardwareAccelerated="true" android:windowSoftInputMode="adjustResize"> - diff --git a/packages/google_maps_flutter/google_maps_flutter_android/example/android/app/src/main/AndroidManifest.xml b/packages/google_maps_flutter/google_maps_flutter_android/example/android/app/src/main/AndroidManifest.xml index 815074bfad9..2055ca8d25e 100644 --- a/packages/google_maps_flutter/google_maps_flutter_android/example/android/app/src/main/AndroidManifest.xml +++ b/packages/google_maps_flutter/google_maps_flutter_android/example/android/app/src/main/AndroidManifest.xml @@ -17,9 +17,6 @@ android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale" android:hardwareAccelerated="true" android:windowSoftInputMode="adjustResize"> - diff --git a/packages/palette_generator/example/android/app/src/main/AndroidManifest.xml b/packages/palette_generator/example/android/app/src/main/AndroidManifest.xml index cce53eff225..7399bc62dd5 100644 --- a/packages/palette_generator/example/android/app/src/main/AndroidManifest.xml +++ b/packages/palette_generator/example/android/app/src/main/AndroidManifest.xml @@ -17,13 +17,6 @@ android:hardwareAccelerated="true" android:exported="true" android:windowSoftInputMode="adjustResize"> - - diff --git a/packages/quick_actions/quick_actions/example/android/app/src/main/AndroidManifest.xml b/packages/quick_actions/quick_actions/example/android/app/src/main/AndroidManifest.xml index 4f384b7c6b1..20969735d86 100644 --- a/packages/quick_actions/quick_actions/example/android/app/src/main/AndroidManifest.xml +++ b/packages/quick_actions/quick_actions/example/android/app/src/main/AndroidManifest.xml @@ -4,9 +4,6 @@ - - - - diff --git a/packages/webview_flutter/webview_flutter_android/example/android/app/src/main/AndroidManifest.xml b/packages/webview_flutter/webview_flutter_android/example/android/app/src/main/AndroidManifest.xml index b3e1d11fded..8a28579c379 100644 --- a/packages/webview_flutter/webview_flutter_android/example/android/app/src/main/AndroidManifest.xml +++ b/packages/webview_flutter/webview_flutter_android/example/android/app/src/main/AndroidManifest.xml @@ -15,13 +15,6 @@ android:name="io.flutter.embedding.android.FlutterActivity" android:theme="@style/LaunchTheme" android:windowSoftInputMode="adjustResize"> - - From 2611aa08db6f78134d7039a70cbf43f0a3a8ed88 Mon Sep 17 00:00:00 2001 From: Gray Mackall Date: Thu, 13 Jun 2024 16:10:47 -0700 Subject: [PATCH 02/14] purge v1 from GoogleSignIn and pray --- .../googlesignin/GoogleSignInPlugin.java | 17 +---------------- .../GoogleSignInLegacyMethodChannelTest.java | 14 +------------- .../plugins/googlesignin/GoogleSignInTest.java | 14 +------------- 3 files changed, 3 insertions(+), 42 deletions(-) diff --git a/packages/google_sign_in/google_sign_in_android/android/src/main/java/io/flutter/plugins/googlesignin/GoogleSignInPlugin.java b/packages/google_sign_in/google_sign_in_android/android/src/main/java/io/flutter/plugins/googlesignin/GoogleSignInPlugin.java index 9efe45f6535..c3f03ab2e90 100644 --- a/packages/google_sign_in/google_sign_in_android/android/src/main/java/io/flutter/plugins/googlesignin/GoogleSignInPlugin.java +++ b/packages/google_sign_in/google_sign_in_android/android/src/main/java/io/flutter/plugins/googlesignin/GoogleSignInPlugin.java @@ -59,12 +59,6 @@ public void initInstance( GoogleSignInApi.setup(messenger, delegate); } - @VisibleForTesting - @SuppressWarnings("deprecation") - public void setUpRegistrar(@NonNull PluginRegistry.Registrar registrar) { - delegate.setUpRegistrar(registrar); - } - private void dispose() { delegate = null; if (messenger != null) { @@ -346,9 +340,6 @@ public static class Delegate private static final String DEFAULT_GAMES_SIGN_IN = "SignInOption.games"; private final @NonNull Context context; - // Only set registrar for v1 embedder. - @SuppressWarnings("deprecation") - private PluginRegistry.Registrar registrar; // Only set activity for v2 embedder. Always access activity from getActivity() method. private @Nullable Activity activity; // TODO(stuartmorgan): See whether this can be replaced with background channels. @@ -364,19 +355,13 @@ public Delegate(@NonNull Context context, @NonNull GoogleSignInWrapper googleSig this.googleSignInWrapper = googleSignInWrapper; } - @SuppressWarnings("deprecation") - public void setUpRegistrar(@NonNull PluginRegistry.Registrar registrar) { - this.registrar = registrar; - registrar.addActivityResultListener(this); - } - public void setActivity(@Nullable Activity activity) { this.activity = activity; } // Only access activity with this method. public @Nullable Activity getActivity() { - return registrar != null ? registrar.activity() : activity; + return activity; } private void checkAndSetPendingOperation( diff --git a/packages/google_sign_in/google_sign_in_android/android/src/test/java/io/flutter/plugins/googlesignin/GoogleSignInLegacyMethodChannelTest.java b/packages/google_sign_in/google_sign_in_android/android/src/test/java/io/flutter/plugins/googlesignin/GoogleSignInLegacyMethodChannelTest.java index 4d8c79e22ad..0fb58be55b9 100644 --- a/packages/google_sign_in/google_sign_in_android/android/src/test/java/io/flutter/plugins/googlesignin/GoogleSignInLegacyMethodChannelTest.java +++ b/packages/google_sign_in/google_sign_in_android/android/src/test/java/io/flutter/plugins/googlesignin/GoogleSignInLegacyMethodChannelTest.java @@ -49,23 +49,15 @@ public class GoogleSignInLegacyMethodChannelTest { @Mock GoogleSignInClient mockClient; @Mock Task mockSignInTask; - @SuppressWarnings("deprecation") - @Mock - PluginRegistry.Registrar mockRegistrar; - private GoogleSignInPlugin plugin; private AutoCloseable mockCloseable; @Before public void setUp() { mockCloseable = MockitoAnnotations.openMocks(this); - when(mockRegistrar.messenger()).thenReturn(mockMessenger); - when(mockRegistrar.context()).thenReturn(mockContext); - when(mockRegistrar.activity()).thenReturn(mockActivity); when(mockContext.getResources()).thenReturn(mockResources); plugin = new GoogleSignInPlugin(); - plugin.initInstance(mockRegistrar.messenger(), mockRegistrar.context(), mockGoogleSignIn); - plugin.setUpRegistrar(mockRegistrar); + plugin.initInstance(mockMessenger, mockContext, mockGoogleSignIn); } @After @@ -124,7 +116,6 @@ public void requestScopes_ReturnsFalseIfPermissionDenied() { ArgumentCaptor captor = ArgumentCaptor.forClass(PluginRegistry.ActivityResultListener.class); - verify(mockRegistrar).addActivityResultListener(captor.capture()); PluginRegistry.ActivityResultListener listener = captor.getValue(); when(mockGoogleSignIn.getLastSignedInAccount(mockContext)).thenReturn(account); @@ -149,7 +140,6 @@ public void requestScopes_ReturnsTrueIfPermissionGranted() { ArgumentCaptor captor = ArgumentCaptor.forClass(PluginRegistry.ActivityResultListener.class); - verify(mockRegistrar).addActivityResultListener(captor.capture()); PluginRegistry.ActivityResultListener listener = captor.getValue(); when(mockGoogleSignIn.getLastSignedInAccount(mockContext)).thenReturn(account); @@ -172,7 +162,6 @@ public void requestScopes_mayBeCalledRepeatedly_ifAlreadyGranted() { ArgumentCaptor captor = ArgumentCaptor.forClass(PluginRegistry.ActivityResultListener.class); - verify(mockRegistrar).addActivityResultListener(captor.capture()); PluginRegistry.ActivityResultListener listener = captor.getValue(); when(mockGoogleSignIn.getLastSignedInAccount(mockContext)).thenReturn(account); @@ -198,7 +187,6 @@ public void requestScopes_mayBeCalledRepeatedly_ifNotSignedIn() { ArgumentCaptor captor = ArgumentCaptor.forClass(PluginRegistry.ActivityResultListener.class); - verify(mockRegistrar).addActivityResultListener(captor.capture()); PluginRegistry.ActivityResultListener listener = captor.getValue(); when(mockGoogleSignIn.getLastSignedInAccount(mockContext)).thenReturn(null); diff --git a/packages/google_sign_in/google_sign_in_android/android/src/test/java/io/flutter/plugins/googlesignin/GoogleSignInTest.java b/packages/google_sign_in/google_sign_in_android/android/src/test/java/io/flutter/plugins/googlesignin/GoogleSignInTest.java index b317d8042f1..56c37f59bc6 100644 --- a/packages/google_sign_in/google_sign_in_android/android/src/test/java/io/flutter/plugins/googlesignin/GoogleSignInTest.java +++ b/packages/google_sign_in/google_sign_in_android/android/src/test/java/io/flutter/plugins/googlesignin/GoogleSignInTest.java @@ -50,22 +50,14 @@ public class GoogleSignInTest { @Mock GoogleSignInClient mockClient; @Mock Task mockSignInTask; - @SuppressWarnings("deprecation") - @Mock - PluginRegistry.Registrar mockRegistrar; - private GoogleSignInPlugin.Delegate plugin; private AutoCloseable mockCloseable; @Before public void setUp() { mockCloseable = MockitoAnnotations.openMocks(this); - when(mockRegistrar.messenger()).thenReturn(mockMessenger); - when(mockRegistrar.context()).thenReturn(mockContext); - when(mockRegistrar.activity()).thenReturn(mockActivity); when(mockContext.getResources()).thenReturn(mockResources); - plugin = new GoogleSignInPlugin.Delegate(mockRegistrar.context(), mockGoogleSignIn); - plugin.setUpRegistrar(mockRegistrar); + plugin = new GoogleSignInPlugin.Delegate(mockContext, mockGoogleSignIn); } @After @@ -116,7 +108,6 @@ public void requestScopes_ReturnsFalseIfPermissionDenied() { Scope requestedScope = new Scope("requestedScope"); ArgumentCaptor captor = ArgumentCaptor.forClass(PluginRegistry.ActivityResultListener.class); - verify(mockRegistrar).addActivityResultListener(captor.capture()); PluginRegistry.ActivityResultListener listener = captor.getValue(); when(mockGoogleSignIn.getLastSignedInAccount(mockContext)).thenReturn(account); @@ -137,7 +128,6 @@ public void requestScopes_ReturnsTrueIfPermissionGranted() { Scope requestedScope = new Scope("requestedScope"); ArgumentCaptor captor = ArgumentCaptor.forClass(PluginRegistry.ActivityResultListener.class); - verify(mockRegistrar).addActivityResultListener(captor.capture()); PluginRegistry.ActivityResultListener listener = captor.getValue(); when(mockGoogleSignIn.getLastSignedInAccount(mockContext)).thenReturn(account); @@ -157,7 +147,6 @@ public void requestScopes_mayBeCalledRepeatedly_ifAlreadyGranted() { Scope requestedScope = new Scope("requestedScope"); ArgumentCaptor captor = ArgumentCaptor.forClass(PluginRegistry.ActivityResultListener.class); - verify(mockRegistrar).addActivityResultListener(captor.capture()); PluginRegistry.ActivityResultListener listener = captor.getValue(); when(mockGoogleSignIn.getLastSignedInAccount(mockContext)).thenReturn(account); @@ -179,7 +168,6 @@ public void requestScopes_mayBeCalledRepeatedly_ifNotSignedIn() { List requestedScopes = Collections.singletonList("requestedScope"); ArgumentCaptor captor = ArgumentCaptor.forClass(PluginRegistry.ActivityResultListener.class); - verify(mockRegistrar).addActivityResultListener(captor.capture()); PluginRegistry.ActivityResultListener listener = captor.getValue(); when(mockGoogleSignIn.getLastSignedInAccount(mockContext)).thenReturn(null); From 0173fc3f1dad67cf1863341b474b7d7fb1743a11 Mon Sep 17 00:00:00 2001 From: Gray Mackall Date: Mon, 17 Jun 2024 13:44:54 -0700 Subject: [PATCH 03/14] fix google_sign_in_android native unit tests --- .../GoogleSignInLegacyMethodChannelTest.java | 9 +++++++ .../googlesignin/GoogleSignInTest.java | 27 +++++++------------ 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/packages/google_sign_in/google_sign_in_android/android/src/test/java/io/flutter/plugins/googlesignin/GoogleSignInLegacyMethodChannelTest.java b/packages/google_sign_in/google_sign_in_android/android/src/test/java/io/flutter/plugins/googlesignin/GoogleSignInLegacyMethodChannelTest.java index 0fb58be55b9..49cde03b729 100644 --- a/packages/google_sign_in/google_sign_in_android/android/src/test/java/io/flutter/plugins/googlesignin/GoogleSignInLegacyMethodChannelTest.java +++ b/packages/google_sign_in/google_sign_in_android/android/src/test/java/io/flutter/plugins/googlesignin/GoogleSignInLegacyMethodChannelTest.java @@ -22,6 +22,8 @@ import com.google.android.gms.common.api.Scope; import com.google.android.gms.common.api.Status; import com.google.android.gms.tasks.Task; + +import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding; import io.flutter.plugin.common.BinaryMessenger; import io.flutter.plugin.common.MethodCall; import io.flutter.plugin.common.MethodChannel; @@ -48,6 +50,7 @@ public class GoogleSignInLegacyMethodChannelTest { @Mock GoogleSignInAccount account; @Mock GoogleSignInClient mockClient; @Mock Task mockSignInTask; + @Mock ActivityPluginBinding mockActivityPluginBinding; private GoogleSignInPlugin plugin; private AutoCloseable mockCloseable; @@ -56,8 +59,10 @@ public class GoogleSignInLegacyMethodChannelTest { public void setUp() { mockCloseable = MockitoAnnotations.openMocks(this); when(mockContext.getResources()).thenReturn(mockResources); + when(mockActivityPluginBinding.getActivity()).thenReturn(mockActivity); plugin = new GoogleSignInPlugin(); plugin.initInstance(mockMessenger, mockContext, mockGoogleSignIn); + plugin.onAttachedToActivity(mockActivityPluginBinding); } @After @@ -116,6 +121,7 @@ public void requestScopes_ReturnsFalseIfPermissionDenied() { ArgumentCaptor captor = ArgumentCaptor.forClass(PluginRegistry.ActivityResultListener.class); + verify(mockActivityPluginBinding).addActivityResultListener(captor.capture()); PluginRegistry.ActivityResultListener listener = captor.getValue(); when(mockGoogleSignIn.getLastSignedInAccount(mockContext)).thenReturn(account); @@ -140,6 +146,7 @@ public void requestScopes_ReturnsTrueIfPermissionGranted() { ArgumentCaptor captor = ArgumentCaptor.forClass(PluginRegistry.ActivityResultListener.class); + verify(mockActivityPluginBinding).addActivityResultListener(captor.capture()); PluginRegistry.ActivityResultListener listener = captor.getValue(); when(mockGoogleSignIn.getLastSignedInAccount(mockContext)).thenReturn(account); @@ -162,6 +169,7 @@ public void requestScopes_mayBeCalledRepeatedly_ifAlreadyGranted() { ArgumentCaptor captor = ArgumentCaptor.forClass(PluginRegistry.ActivityResultListener.class); + verify(mockActivityPluginBinding).addActivityResultListener(captor.capture()); PluginRegistry.ActivityResultListener listener = captor.getValue(); when(mockGoogleSignIn.getLastSignedInAccount(mockContext)).thenReturn(account); @@ -187,6 +195,7 @@ public void requestScopes_mayBeCalledRepeatedly_ifNotSignedIn() { ArgumentCaptor captor = ArgumentCaptor.forClass(PluginRegistry.ActivityResultListener.class); + verify(mockActivityPluginBinding).addActivityResultListener(captor.capture()); PluginRegistry.ActivityResultListener listener = captor.getValue(); when(mockGoogleSignIn.getLastSignedInAccount(mockContext)).thenReturn(null); diff --git a/packages/google_sign_in/google_sign_in_android/android/src/test/java/io/flutter/plugins/googlesignin/GoogleSignInTest.java b/packages/google_sign_in/google_sign_in_android/android/src/test/java/io/flutter/plugins/googlesignin/GoogleSignInTest.java index 56c37f59bc6..56353f5c7f5 100644 --- a/packages/google_sign_in/google_sign_in_android/android/src/test/java/io/flutter/plugins/googlesignin/GoogleSignInTest.java +++ b/packages/google_sign_in/google_sign_in_android/android/src/test/java/io/flutter/plugins/googlesignin/GoogleSignInTest.java @@ -22,6 +22,8 @@ import com.google.android.gms.common.api.Scope; import com.google.android.gms.common.api.Status; import com.google.android.gms.tasks.Task; + +import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding; import io.flutter.plugin.common.BinaryMessenger; import io.flutter.plugin.common.PluginRegistry; import io.flutter.plugins.googlesignin.Messages.FlutterError; @@ -93,6 +95,7 @@ public void requestScopes_ResultTrueIfAlreadyGranted() { @Test public void requestScopes_RequestsPermissionIfNotGranted() { Scope requestedScope = new Scope("requestedScope"); + plugin.setActivity(mockActivity); when(mockGoogleSignIn.getLastSignedInAccount(mockContext)).thenReturn(account); when(account.getGrantedScopes()).thenReturn(Collections.singleton(requestedScope)); when(mockGoogleSignIn.hasPermissions(account, requestedScope)).thenReturn(false); @@ -106,16 +109,13 @@ public void requestScopes_RequestsPermissionIfNotGranted() { @Test public void requestScopes_ReturnsFalseIfPermissionDenied() { Scope requestedScope = new Scope("requestedScope"); - ArgumentCaptor captor = - ArgumentCaptor.forClass(PluginRegistry.ActivityResultListener.class); - PluginRegistry.ActivityResultListener listener = captor.getValue(); when(mockGoogleSignIn.getLastSignedInAccount(mockContext)).thenReturn(account); when(account.getGrantedScopes()).thenReturn(Collections.singleton(requestedScope)); when(mockGoogleSignIn.hasPermissions(account, requestedScope)).thenReturn(false); plugin.requestScopes(Collections.singletonList("requestedScope"), boolResult); - listener.onActivityResult( + plugin.onActivityResult( GoogleSignInPlugin.Delegate.REQUEST_CODE_REQUEST_SCOPE, Activity.RESULT_CANCELED, new Intent()); @@ -126,16 +126,13 @@ public void requestScopes_ReturnsFalseIfPermissionDenied() { @Test public void requestScopes_ReturnsTrueIfPermissionGranted() { Scope requestedScope = new Scope("requestedScope"); - ArgumentCaptor captor = - ArgumentCaptor.forClass(PluginRegistry.ActivityResultListener.class); - PluginRegistry.ActivityResultListener listener = captor.getValue(); when(mockGoogleSignIn.getLastSignedInAccount(mockContext)).thenReturn(account); when(account.getGrantedScopes()).thenReturn(Collections.singleton(requestedScope)); when(mockGoogleSignIn.hasPermissions(account, requestedScope)).thenReturn(false); plugin.requestScopes(Collections.singletonList("requestedScope"), boolResult); - listener.onActivityResult( + plugin.onActivityResult( GoogleSignInPlugin.Delegate.REQUEST_CODE_REQUEST_SCOPE, Activity.RESULT_OK, new Intent()); verify(boolResult).success(true); @@ -145,19 +142,16 @@ public void requestScopes_ReturnsTrueIfPermissionGranted() { public void requestScopes_mayBeCalledRepeatedly_ifAlreadyGranted() { List requestedScopes = Collections.singletonList("requestedScope"); Scope requestedScope = new Scope("requestedScope"); - ArgumentCaptor captor = - ArgumentCaptor.forClass(PluginRegistry.ActivityResultListener.class); - PluginRegistry.ActivityResultListener listener = captor.getValue(); when(mockGoogleSignIn.getLastSignedInAccount(mockContext)).thenReturn(account); when(account.getGrantedScopes()).thenReturn(Collections.singleton(requestedScope)); when(mockGoogleSignIn.hasPermissions(account, requestedScope)).thenReturn(false); plugin.requestScopes(requestedScopes, boolResult); - listener.onActivityResult( + plugin.onActivityResult( GoogleSignInPlugin.Delegate.REQUEST_CODE_REQUEST_SCOPE, Activity.RESULT_OK, new Intent()); plugin.requestScopes(requestedScopes, boolResult); - listener.onActivityResult( + plugin.onActivityResult( GoogleSignInPlugin.Delegate.REQUEST_CODE_REQUEST_SCOPE, Activity.RESULT_OK, new Intent()); verify(boolResult, times(2)).success(true); @@ -166,17 +160,14 @@ public void requestScopes_mayBeCalledRepeatedly_ifAlreadyGranted() { @Test public void requestScopes_mayBeCalledRepeatedly_ifNotSignedIn() { List requestedScopes = Collections.singletonList("requestedScope"); - ArgumentCaptor captor = - ArgumentCaptor.forClass(PluginRegistry.ActivityResultListener.class); - PluginRegistry.ActivityResultListener listener = captor.getValue(); when(mockGoogleSignIn.getLastSignedInAccount(mockContext)).thenReturn(null); plugin.requestScopes(requestedScopes, boolResult); - listener.onActivityResult( + plugin.onActivityResult( GoogleSignInPlugin.Delegate.REQUEST_CODE_REQUEST_SCOPE, Activity.RESULT_OK, new Intent()); plugin.requestScopes(requestedScopes, boolResult); - listener.onActivityResult( + plugin.onActivityResult( GoogleSignInPlugin.Delegate.REQUEST_CODE_REQUEST_SCOPE, Activity.RESULT_OK, new Intent()); ArgumentCaptor resultCaptor = ArgumentCaptor.forClass(Throwable.class); From 3da9900dc59e518e16bd1ff106c26d9be2f5c516 Mon Sep 17 00:00:00 2001 From: Gray Mackall Date: Mon, 17 Jun 2024 14:12:31 -0700 Subject: [PATCH 04/14] changelog+pubspec for google_sign_in --- packages/google_sign_in/google_sign_in_android/CHANGELOG.md | 4 ++++ packages/google_sign_in/google_sign_in_android/pubspec.yaml | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/google_sign_in/google_sign_in_android/CHANGELOG.md b/packages/google_sign_in/google_sign_in_android/CHANGELOG.md index 7bab9b2b5ef..e0e0bf85262 100644 --- a/packages/google_sign_in/google_sign_in_android/CHANGELOG.md +++ b/packages/google_sign_in/google_sign_in_android/CHANGELOG.md @@ -1,3 +1,7 @@ +## 6.1.26 + +* Removes additional references to the v1 Android embedding. + ## 6.1.25 * Updates Guava to version 33.2.1. diff --git a/packages/google_sign_in/google_sign_in_android/pubspec.yaml b/packages/google_sign_in/google_sign_in_android/pubspec.yaml index 14806fe24a9..8d583e406d7 100644 --- a/packages/google_sign_in/google_sign_in_android/pubspec.yaml +++ b/packages/google_sign_in/google_sign_in_android/pubspec.yaml @@ -2,7 +2,7 @@ name: google_sign_in_android description: Android implementation of the google_sign_in plugin. repository: https://github.com/flutter/packages/tree/main/packages/google_sign_in/google_sign_in_android issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+google_sign_in%22 -version: 6.1.25 +version: 6.1.26 environment: sdk: ^3.4.0 From f48013db8c6094254ced256dab1334d879bb3254 Mon Sep 17 00:00:00 2001 From: Gray Mackall Date: Mon, 17 Jun 2024 14:12:59 -0700 Subject: [PATCH 05/14] video_player registrar removal --- .../plugins/videoplayer/VideoPlayerPlugin.java | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/packages/video_player/video_player_android/android/src/main/java/io/flutter/plugins/videoplayer/VideoPlayerPlugin.java b/packages/video_player/video_player_android/android/src/main/java/io/flutter/plugins/videoplayer/VideoPlayerPlugin.java index 62dca403ac4..2d8c4439595 100644 --- a/packages/video_player/video_player_android/android/src/main/java/io/flutter/plugins/videoplayer/VideoPlayerPlugin.java +++ b/packages/video_player/video_player_android/android/src/main/java/io/flutter/plugins/videoplayer/VideoPlayerPlugin.java @@ -38,18 +38,6 @@ public class VideoPlayerPlugin implements FlutterPlugin, AndroidVideoPlayerApi { /** Register this with the v2 embedding for the plugin to respond to lifecycle callbacks. */ public VideoPlayerPlugin() {} - @SuppressWarnings("deprecation") - private VideoPlayerPlugin(io.flutter.plugin.common.PluginRegistry.Registrar registrar) { - this.flutterState = - new FlutterState( - registrar.context(), - registrar.messenger(), - registrar::lookupKeyForAsset, - registrar::lookupKeyForAsset, - registrar.textures()); - flutterState.startListening(this, registrar.messenger()); - } - @Override public void onAttachedToEngine(@NonNull FlutterPluginBinding binding) { if (android.os.Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) { From e33a02c52f23cd5b9d4e19d6b7db222992fbd376 Mon Sep 17 00:00:00 2001 From: Gray Mackall Date: Mon, 17 Jun 2024 14:13:58 -0700 Subject: [PATCH 06/14] video_player pubspec+changelog --- packages/video_player/video_player_android/CHANGELOG.md | 4 ++++ packages/video_player/video_player_android/pubspec.yaml | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/video_player/video_player_android/CHANGELOG.md b/packages/video_player/video_player_android/CHANGELOG.md index 949ed92597e..d3c63dae9d8 100644 --- a/packages/video_player/video_player_android/CHANGELOG.md +++ b/packages/video_player/video_player_android/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.5.1 + +* Removes additional references to the v1 Android embedding. + ## 2.5.0 * Migrates ExoPlayer to Media3-ExoPlayer 1.3.1. diff --git a/packages/video_player/video_player_android/pubspec.yaml b/packages/video_player/video_player_android/pubspec.yaml index 4fbd2a88fbe..2d234734d71 100644 --- a/packages/video_player/video_player_android/pubspec.yaml +++ b/packages/video_player/video_player_android/pubspec.yaml @@ -2,7 +2,7 @@ name: video_player_android description: Android implementation of the video_player plugin. repository: https://github.com/flutter/packages/tree/main/packages/video_player/video_player_android issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+video_player%22 -version: 2.5.0 +version: 2.5.1 environment: sdk: ^3.4.0 From 53f8f88c11c2ac00cc78dbcd91b72099de5ced75 Mon Sep 17 00:00:00 2001 From: Gray Mackall Date: Mon, 17 Jun 2024 15:06:25 -0700 Subject: [PATCH 07/14] espresso v1 embedding removal --- .../flutter/action/FlutterViewAction.java | 30 ++++++++-------- .../espresso/flutter/api/SyntheticAction.java | 2 +- .../protocol/impl/DartVmServiceUtil.java | 35 +++++++------------ .../flutter/matcher/FlutterMatchers.java | 3 +- .../app/FlutterMultiDexApplication.java | 27 -------------- 5 files changed, 29 insertions(+), 68 deletions(-) delete mode 100644 packages/espresso/example/android/app/src/main/java/io/flutter/app/FlutterMultiDexApplication.java diff --git a/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/action/FlutterViewAction.java b/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/action/FlutterViewAction.java index 96cc9d7aead..bea1a6d77c9 100644 --- a/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/action/FlutterViewAction.java +++ b/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/action/FlutterViewAction.java @@ -41,6 +41,8 @@ import okhttp3.OkHttpClient; import org.hamcrest.Matcher; +import javax.annotation.Nonnull; + /** * A {@code ViewAction} which performs an action on the given {@code FlutterView}. * @@ -97,14 +99,19 @@ public String getDescription() { @ExperimentalTestApi @Override - public void perform(UiController uiController, View flutterView) { + public void perform(UiController uiController, View view) { + checkNotNull(view, "The Flutter View instance cannot be null."); + if (!(view instanceof FlutterView)) { + throw new FlutterProtocolException( + String.format("This is not a Flutter View instance [id: %d].", view.getId())); + } + FlutterView flutterView = (FlutterView) view; // There could be a gap between when the Flutter view is available in the view hierarchy and the // engine & Dart isolates are actually up and running. Check whether the first frame has been // rendered before proceeding in an unblocking way. loopUntilFlutterViewRendered(flutterView, uiController); // The url {@code FlutterNativeView} returns is the http url that the Dart VM Observatory http // server serves at. Need to convert to the one that the WebSocket uses. - URI dartVmServiceProtocolUrl = DartVmServiceUtil.getServiceProtocolUri(FlutterJNI.getVMServiceUri()); String isolateId = DartVmServiceUtil.getDartIsolateId(flutterView); @@ -171,7 +178,7 @@ public T waitUntilCompleted(long timeout, TimeUnit unit) return resultFuture.get(timeout, unit); } - private static void loopUntilFlutterViewRendered(View flutterView, UiController uiController) { + private static void loopUntilFlutterViewRendered(@Nonnull FlutterView flutterView, UiController uiController) { FlutterViewRenderedIdlingResource idlingResource = new FlutterViewRenderedIdlingResource(flutterView); try { @@ -188,12 +195,12 @@ private static void loopUntilFlutterViewRendered(View flutterView, UiController */ static final class FlutterViewRenderedIdlingResource implements IdlingResource { - private final View flutterView; + private final FlutterView flutterView; // Written from main thread, read from any thread. private volatile ResourceCallback resourceCallback; - FlutterViewRenderedIdlingResource(View flutterView) { - this.flutterView = checkNotNull(flutterView); + FlutterViewRenderedIdlingResource(@Nonnull FlutterView flutterView) { + this.flutterView = flutterView; } @Override @@ -201,18 +208,9 @@ public String getName() { return FlutterViewRenderedIdlingResource.class.getSimpleName(); } - @SuppressWarnings("deprecation") @Override public boolean isIdleNow() { - boolean isIdle = false; - if (flutterView instanceof FlutterView) { - isIdle = ((FlutterView) flutterView).hasRenderedFirstFrame(); - } else if (flutterView instanceof io.flutter.view.FlutterView) { - isIdle = ((io.flutter.view.FlutterView) flutterView).hasRenderedFirstFrame(); - } else { - throw new FlutterProtocolException( - String.format("This is not a Flutter View instance [id: %d].", flutterView.getId())); - } + boolean isIdle = flutterView.hasRenderedFirstFrame(); if (isIdle) { resourceCallback.onTransitionToIdle(); } diff --git a/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/api/SyntheticAction.java b/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/api/SyntheticAction.java index 41af3e99dfd..8c18b2dfb37 100644 --- a/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/api/SyntheticAction.java +++ b/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/api/SyntheticAction.java @@ -20,7 +20,7 @@ * action that's performed via Flutter engine. It's supposed to be used for complex interactions or * those that are brittle if performed through Android system. Most of the actions should be * associated with a {@link WidgetMatcher}, but some may not, e.g. an action that checks the - * rendering status of the entire {@link io.flutter.view.FlutterView}. + * rendering status of the entire {@link io.flutter.embedding.android.FlutterView}. */ @Beta public abstract class SyntheticAction { diff --git a/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/internal/protocol/impl/DartVmServiceUtil.java b/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/internal/protocol/impl/DartVmServiceUtil.java index 63c62c4f504..05df484d143 100644 --- a/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/internal/protocol/impl/DartVmServiceUtil.java +++ b/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/internal/protocol/impl/DartVmServiceUtil.java @@ -4,11 +4,11 @@ package androidx.test.espresso.flutter.internal.protocol.impl; -import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Strings.isNullOrEmpty; import android.util.Log; -import android.view.View; + +import io.flutter.embedding.android.FlutterView; import io.flutter.embedding.engine.FlutterEngine; import io.flutter.embedding.engine.dart.DartExecutor; import java.net.MalformedURLException; @@ -16,6 +16,8 @@ import java.net.URISyntaxException; import java.net.URL; +import javax.annotation.Nonnull; + /** Util class for dealing with Dart VM service protocols. */ public final class DartVmServiceUtil { private static final String TAG = DartVmServiceUtil.class.getSimpleName(); @@ -59,8 +61,7 @@ public static URI getServiceProtocolUri(String observatoryUrl) { } /** Gets the Dart isolate ID for the given {@code flutterView}. */ - public static String getDartIsolateId(View flutterView) { - checkNotNull(flutterView, "The Flutter View instance cannot be null."); + public static String getDartIsolateId(FlutterView flutterView) { String uiIsolateId = getDartExecutor(flutterView).getIsolateServiceId(); Log.d( TAG, @@ -71,25 +72,15 @@ public static String getDartIsolateId(View flutterView) { } /** Gets the Dart executor for the given {@code flutterView}. */ - @SuppressWarnings("deprecation") - public static DartExecutor getDartExecutor(View flutterView) { - checkNotNull(flutterView, "The Flutter View instance cannot be null."); - // Flutter's embedding is in the phase of rewriting/refactoring. Let's be compatible with both - // the old and the new FlutterView classes. - if (flutterView instanceof io.flutter.view.FlutterView) { - return ((io.flutter.view.FlutterView) flutterView).getDartExecutor(); - } else if (flutterView instanceof io.flutter.embedding.android.FlutterView) { - FlutterEngine flutterEngine = - ((io.flutter.embedding.android.FlutterView) flutterView).getAttachedFlutterEngine(); - if (flutterEngine == null) { - throw new FlutterProtocolException( - String.format( - "No Flutter engine attached to the Flutter view [id: %d].", flutterView.getId())); - } - return flutterEngine.getDartExecutor(); - } else { + public static DartExecutor getDartExecutor(@Nonnull FlutterView flutterView) { + // TODO(gmackall): getAttachedFlutterEngine() is marked as @visibleForTesting - determine if + // this method should change its behavior, or if that annotation should be removed. + FlutterEngine flutterEngine = flutterView.getAttachedFlutterEngine(); + if (flutterEngine == null) { throw new FlutterProtocolException( - String.format("This is not a Flutter View instance [id: %d].", flutterView.getId())); + String.format( + "No Flutter engine attached to the Flutter view [id: %d].", flutterView.getId())); } + return flutterEngine.getDartExecutor(); } } diff --git a/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/matcher/FlutterMatchers.java b/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/matcher/FlutterMatchers.java index 9db88665f8e..cbea2a8dbb2 100644 --- a/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/matcher/FlutterMatchers.java +++ b/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/matcher/FlutterMatchers.java @@ -99,8 +99,7 @@ public void describeTo(Description description) { @SuppressWarnings("deprecation") @Override public boolean matchesSafely(View flutterView) { - return flutterView instanceof FlutterView - || (flutterView instanceof io.flutter.view.FlutterView); + return flutterView instanceof FlutterView; } } } diff --git a/packages/espresso/example/android/app/src/main/java/io/flutter/app/FlutterMultiDexApplication.java b/packages/espresso/example/android/app/src/main/java/io/flutter/app/FlutterMultiDexApplication.java deleted file mode 100644 index d9c1188ab84..00000000000 --- a/packages/espresso/example/android/app/src/main/java/io/flutter/app/FlutterMultiDexApplication.java +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2013 The Flutter Authors. All rights reserved. -// Use of this source code is governed by a BSD-style license that can be -// found in the LICENSE file. - -// Generated file. -// -// If you wish to remove Flutter's multidex support, delete this entire file. -// -// Modifications to this file should be done in a copy under a different name -// as this file may be regenerated. - -package io.flutter.app; - -import android.app.Application; -import android.content.Context; -import androidx.annotation.CallSuper; -import androidx.multidex.MultiDex; - -/** Extension of {@link android.app.Application}, adding multidex support. */ -public class FlutterMultiDexApplication extends Application { - @Override - @CallSuper - protected void attachBaseContext(Context base) { - super.attachBaseContext(base); - MultiDex.install(this); - } -} From 656f5a0565786baeee3853d6ced8e406ba92e328 Mon Sep 17 00:00:00 2001 From: Gray Mackall Date: Mon, 17 Jun 2024 15:07:56 -0700 Subject: [PATCH 08/14] pubspec+changelog for espresso --- packages/espresso/CHANGELOG.md | 4 ++++ packages/espresso/pubspec.yaml | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/espresso/CHANGELOG.md b/packages/espresso/CHANGELOG.md index 429f93ae3e9..ef94d473802 100644 --- a/packages/espresso/CHANGELOG.md +++ b/packages/espresso/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.3.0+10 + +* Removes additional references to v1 Android embedding. + ## 0.3.0+9 * Updates minimum supported SDK version to Flutter 3.22/Dart 3.4. diff --git a/packages/espresso/pubspec.yaml b/packages/espresso/pubspec.yaml index e4c12398c39..1bf40977208 100644 --- a/packages/espresso/pubspec.yaml +++ b/packages/espresso/pubspec.yaml @@ -3,7 +3,7 @@ description: Java classes for testing Flutter apps using Espresso. Allows driving Flutter widgets from a native Espresso test. repository: https://github.com/flutter/packages/tree/main/packages/espresso issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+espresso%22 -version: 0.3.0+9 +version: 0.3.0+10 environment: sdk: ^3.4.0 From 25ea3a4ed91f1e3dcb5df34bb020f9fd17b34882 Mon Sep 17 00:00:00 2001 From: Gray Mackall Date: Mon, 17 Jun 2024 15:21:41 -0700 Subject: [PATCH 09/14] IAP unit test v1 embedding use removal --- .../plugins/inapppurchase/InAppPurchasePluginTest.java | 7 ------- 1 file changed, 7 deletions(-) diff --git a/packages/in_app_purchase/in_app_purchase_android/android/src/test/java/io/flutter/plugins/inapppurchase/InAppPurchasePluginTest.java b/packages/in_app_purchase/in_app_purchase_android/android/src/test/java/io/flutter/plugins/inapppurchase/InAppPurchasePluginTest.java index b2af5e12b5c..daba00fe586 100644 --- a/packages/in_app_purchase/in_app_purchase_android/android/src/test/java/io/flutter/plugins/inapppurchase/InAppPurchasePluginTest.java +++ b/packages/in_app_purchase/in_app_purchase_android/android/src/test/java/io/flutter/plugins/inapppurchase/InAppPurchasePluginTest.java @@ -26,10 +26,6 @@ public class InAppPurchasePluginTest { static final String PROXY_PACKAGE_KEY = "PROXY_PACKAGE"; - @SuppressWarnings("deprecation") - @Mock - PluginRegistry.Registrar mockRegistrar; // For v1 embedding - @Mock Activity activity; @Mock Context context; @Mock BinaryMessenger mockMessenger; @@ -43,9 +39,6 @@ public class InAppPurchasePluginTest { @Before public void setUp() { mockCloseable = MockitoAnnotations.openMocks(this); - when(mockRegistrar.activity()).thenReturn(activity); - when(mockRegistrar.messenger()).thenReturn(mockMessenger); - when(mockRegistrar.context()).thenReturn(context); when(activity.getIntent()).thenReturn(mockIntent); when(activityPluginBinding.getActivity()).thenReturn(activity); when(flutterPluginBinding.getBinaryMessenger()).thenReturn(mockMessenger); From d3abcc6a371a309b0993db61c7f73a06f46977f0 Mon Sep 17 00:00:00 2001 From: Gray Mackall Date: Mon, 17 Jun 2024 15:27:35 -0700 Subject: [PATCH 10/14] removal in image_picker android unit test --- .../flutter/plugins/imagepicker/ImagePickerPluginTest.java | 5 ----- 1 file changed, 5 deletions(-) diff --git a/packages/image_picker/image_picker_android/android/src/test/java/io/flutter/plugins/imagepicker/ImagePickerPluginTest.java b/packages/image_picker/image_picker_android/android/src/test/java/io/flutter/plugins/imagepicker/ImagePickerPluginTest.java index e759c21e35d..dc1f9dd502f 100644 --- a/packages/image_picker/image_picker_android/android/src/test/java/io/flutter/plugins/imagepicker/ImagePickerPluginTest.java +++ b/packages/image_picker/image_picker_android/android/src/test/java/io/flutter/plugins/imagepicker/ImagePickerPluginTest.java @@ -78,10 +78,6 @@ public class ImagePickerPluginTest { .setCamera(Messages.SourceCamera.REAR) .build(); - @SuppressWarnings("deprecation") - @Mock - io.flutter.plugin.common.PluginRegistry.Registrar mockRegistrar; - @Mock ActivityPluginBinding mockActivityBinding; @Mock FlutterPluginBinding mockPluginBinding; @@ -97,7 +93,6 @@ public class ImagePickerPluginTest { @Before public void setUp() { mockCloseable = MockitoAnnotations.openMocks(this); - when(mockRegistrar.context()).thenReturn(mockApplication); when(mockActivityBinding.getActivity()).thenReturn(mockActivity); when(mockPluginBinding.getApplicationContext()).thenReturn(mockApplication); plugin = new ImagePickerPlugin(mockImagePickerDelegate, mockActivity); From 686bf3390fb9e6b8cdb0cdf101965b673af3d7ea Mon Sep 17 00:00:00 2001 From: Gray Mackall Date: Mon, 17 Jun 2024 16:11:45 -0700 Subject: [PATCH 11/14] format --- .../test/espresso/flutter/action/FlutterViewAction.java | 8 ++++---- .../flutter/internal/protocol/impl/DartVmServiceUtil.java | 6 ++---- .../googlesignin/GoogleSignInLegacyMethodChannelTest.java | 1 - .../io/flutter/plugins/googlesignin/GoogleSignInTest.java | 3 --- .../plugins/inapppurchase/InAppPurchasePluginTest.java | 1 - 5 files changed, 6 insertions(+), 13 deletions(-) diff --git a/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/action/FlutterViewAction.java b/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/action/FlutterViewAction.java index bea1a6d77c9..d18ced46026 100644 --- a/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/action/FlutterViewAction.java +++ b/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/action/FlutterViewAction.java @@ -38,11 +38,10 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; +import javax.annotation.Nonnull; import okhttp3.OkHttpClient; import org.hamcrest.Matcher; -import javax.annotation.Nonnull; - /** * A {@code ViewAction} which performs an action on the given {@code FlutterView}. * @@ -103,7 +102,7 @@ public void perform(UiController uiController, View view) { checkNotNull(view, "The Flutter View instance cannot be null."); if (!(view instanceof FlutterView)) { throw new FlutterProtocolException( - String.format("This is not a Flutter View instance [id: %d].", view.getId())); + String.format("This is not a Flutter View instance [id: %d].", view.getId())); } FlutterView flutterView = (FlutterView) view; // There could be a gap between when the Flutter view is available in the view hierarchy and the @@ -178,7 +177,8 @@ public T waitUntilCompleted(long timeout, TimeUnit unit) return resultFuture.get(timeout, unit); } - private static void loopUntilFlutterViewRendered(@Nonnull FlutterView flutterView, UiController uiController) { + private static void loopUntilFlutterViewRendered( + @Nonnull FlutterView flutterView, UiController uiController) { FlutterViewRenderedIdlingResource idlingResource = new FlutterViewRenderedIdlingResource(flutterView); try { diff --git a/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/internal/protocol/impl/DartVmServiceUtil.java b/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/internal/protocol/impl/DartVmServiceUtil.java index 05df484d143..ec78a9fe36b 100644 --- a/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/internal/protocol/impl/DartVmServiceUtil.java +++ b/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/internal/protocol/impl/DartVmServiceUtil.java @@ -7,7 +7,6 @@ import static com.google.common.base.Strings.isNullOrEmpty; import android.util.Log; - import io.flutter.embedding.android.FlutterView; import io.flutter.embedding.engine.FlutterEngine; import io.flutter.embedding.engine.dart.DartExecutor; @@ -15,7 +14,6 @@ import java.net.URI; import java.net.URISyntaxException; import java.net.URL; - import javax.annotation.Nonnull; /** Util class for dealing with Dart VM service protocols. */ @@ -78,8 +76,8 @@ public static DartExecutor getDartExecutor(@Nonnull FlutterView flutterView) { FlutterEngine flutterEngine = flutterView.getAttachedFlutterEngine(); if (flutterEngine == null) { throw new FlutterProtocolException( - String.format( - "No Flutter engine attached to the Flutter view [id: %d].", flutterView.getId())); + String.format( + "No Flutter engine attached to the Flutter view [id: %d].", flutterView.getId())); } return flutterEngine.getDartExecutor(); } diff --git a/packages/google_sign_in/google_sign_in_android/android/src/test/java/io/flutter/plugins/googlesignin/GoogleSignInLegacyMethodChannelTest.java b/packages/google_sign_in/google_sign_in_android/android/src/test/java/io/flutter/plugins/googlesignin/GoogleSignInLegacyMethodChannelTest.java index 49cde03b729..cd5b92217c6 100644 --- a/packages/google_sign_in/google_sign_in_android/android/src/test/java/io/flutter/plugins/googlesignin/GoogleSignInLegacyMethodChannelTest.java +++ b/packages/google_sign_in/google_sign_in_android/android/src/test/java/io/flutter/plugins/googlesignin/GoogleSignInLegacyMethodChannelTest.java @@ -22,7 +22,6 @@ import com.google.android.gms.common.api.Scope; import com.google.android.gms.common.api.Status; import com.google.android.gms.tasks.Task; - import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding; import io.flutter.plugin.common.BinaryMessenger; import io.flutter.plugin.common.MethodCall; diff --git a/packages/google_sign_in/google_sign_in_android/android/src/test/java/io/flutter/plugins/googlesignin/GoogleSignInTest.java b/packages/google_sign_in/google_sign_in_android/android/src/test/java/io/flutter/plugins/googlesignin/GoogleSignInTest.java index 56353f5c7f5..6089a81b354 100644 --- a/packages/google_sign_in/google_sign_in_android/android/src/test/java/io/flutter/plugins/googlesignin/GoogleSignInTest.java +++ b/packages/google_sign_in/google_sign_in_android/android/src/test/java/io/flutter/plugins/googlesignin/GoogleSignInTest.java @@ -22,10 +22,7 @@ import com.google.android.gms.common.api.Scope; import com.google.android.gms.common.api.Status; import com.google.android.gms.tasks.Task; - -import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding; import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugin.common.PluginRegistry; import io.flutter.plugins.googlesignin.Messages.FlutterError; import io.flutter.plugins.googlesignin.Messages.InitParams; import java.util.Collections; diff --git a/packages/in_app_purchase/in_app_purchase_android/android/src/test/java/io/flutter/plugins/inapppurchase/InAppPurchasePluginTest.java b/packages/in_app_purchase/in_app_purchase_android/android/src/test/java/io/flutter/plugins/inapppurchase/InAppPurchasePluginTest.java index daba00fe586..c12045b0650 100644 --- a/packages/in_app_purchase/in_app_purchase_android/android/src/test/java/io/flutter/plugins/inapppurchase/InAppPurchasePluginTest.java +++ b/packages/in_app_purchase/in_app_purchase_android/android/src/test/java/io/flutter/plugins/inapppurchase/InAppPurchasePluginTest.java @@ -14,7 +14,6 @@ import io.flutter.embedding.engine.plugins.FlutterPlugin; import io.flutter.embedding.engine.plugins.activity.ActivityPluginBinding; import io.flutter.plugin.common.BinaryMessenger; -import io.flutter.plugin.common.PluginRegistry; import org.junit.After; import org.junit.Before; import org.junit.Test; From 36a4c684d5c53df78a21892e8b54e6a0b0efc96c Mon Sep 17 00:00:00 2001 From: Gray Mackall Date: Tue, 18 Jun 2024 10:04:46 -0700 Subject: [PATCH 12/14] remove unused deprecation suppression --- .../test/espresso/flutter/matcher/FlutterMatchers.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/matcher/FlutterMatchers.java b/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/matcher/FlutterMatchers.java index cbea2a8dbb2..bd16532124c 100644 --- a/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/matcher/FlutterMatchers.java +++ b/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/matcher/FlutterMatchers.java @@ -95,8 +95,7 @@ private IsFlutterViewMatcher() {} public void describeTo(Description description) { description.appendText("is a FlutterView"); } - - @SuppressWarnings("deprecation") + @Override public boolean matchesSafely(View flutterView) { return flutterView instanceof FlutterView; From 85a591b4666f0a8043f7e8911490a4080bbe0d31 Mon Sep 17 00:00:00 2001 From: Gray Mackall Date: Tue, 18 Jun 2024 10:12:36 -0700 Subject: [PATCH 13/14] remove todo: this is in fact test code --- .../flutter/internal/protocol/impl/DartVmServiceUtil.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/internal/protocol/impl/DartVmServiceUtil.java b/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/internal/protocol/impl/DartVmServiceUtil.java index ec78a9fe36b..06110350706 100644 --- a/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/internal/protocol/impl/DartVmServiceUtil.java +++ b/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/internal/protocol/impl/DartVmServiceUtil.java @@ -71,8 +71,6 @@ public static String getDartIsolateId(FlutterView flutterView) { /** Gets the Dart executor for the given {@code flutterView}. */ public static DartExecutor getDartExecutor(@Nonnull FlutterView flutterView) { - // TODO(gmackall): getAttachedFlutterEngine() is marked as @visibleForTesting - determine if - // this method should change its behavior, or if that annotation should be removed. FlutterEngine flutterEngine = flutterView.getAttachedFlutterEngine(); if (flutterEngine == null) { throw new FlutterProtocolException( From 95563bd4d2543ee38093ddeb50c96c4e51fee227 Mon Sep 17 00:00:00 2001 From: Gray Mackall Date: Tue, 18 Jun 2024 17:38:11 -0700 Subject: [PATCH 14/14] format --- .../androidx/test/espresso/flutter/matcher/FlutterMatchers.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/matcher/FlutterMatchers.java b/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/matcher/FlutterMatchers.java index bd16532124c..4c87b51e3ce 100644 --- a/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/matcher/FlutterMatchers.java +++ b/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/matcher/FlutterMatchers.java @@ -95,7 +95,7 @@ private IsFlutterViewMatcher() {} public void describeTo(Description description) { description.appendText("is a FlutterView"); } - + @Override public boolean matchesSafely(View flutterView) { return flutterView instanceof FlutterView;