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/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..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,6 +38,7 @@ 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; @@ -97,14 +98,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 +177,8 @@ 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..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 @@ -4,17 +4,17 @@ 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; 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. */ public final class DartVmServiceUtil { @@ -59,8 +59,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 +70,13 @@ 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) { + 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..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 @@ -96,11 +96,9 @@ public void describeTo(Description description) { description.appendText("is a FlutterView"); } - @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); - } -} 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 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/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/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..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,6 +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.MethodCall; import io.flutter.plugin.common.MethodChannel; @@ -48,10 +49,7 @@ public class GoogleSignInLegacyMethodChannelTest { @Mock GoogleSignInAccount account; @Mock GoogleSignInClient mockClient; @Mock Task mockSignInTask; - - @SuppressWarnings("deprecation") - @Mock - PluginRegistry.Registrar mockRegistrar; + @Mock ActivityPluginBinding mockActivityPluginBinding; private GoogleSignInPlugin plugin; private AutoCloseable mockCloseable; @@ -59,13 +57,11 @@ public class GoogleSignInLegacyMethodChannelTest { @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); + when(mockActivityPluginBinding.getActivity()).thenReturn(mockActivity); plugin = new GoogleSignInPlugin(); - plugin.initInstance(mockRegistrar.messenger(), mockRegistrar.context(), mockGoogleSignIn); - plugin.setUpRegistrar(mockRegistrar); + plugin.initInstance(mockMessenger, mockContext, mockGoogleSignIn); + plugin.onAttachedToActivity(mockActivityPluginBinding); } @After @@ -124,7 +120,7 @@ public void requestScopes_ReturnsFalseIfPermissionDenied() { ArgumentCaptor captor = ArgumentCaptor.forClass(PluginRegistry.ActivityResultListener.class); - verify(mockRegistrar).addActivityResultListener(captor.capture()); + verify(mockActivityPluginBinding).addActivityResultListener(captor.capture()); PluginRegistry.ActivityResultListener listener = captor.getValue(); when(mockGoogleSignIn.getLastSignedInAccount(mockContext)).thenReturn(account); @@ -149,7 +145,7 @@ public void requestScopes_ReturnsTrueIfPermissionGranted() { ArgumentCaptor captor = ArgumentCaptor.forClass(PluginRegistry.ActivityResultListener.class); - verify(mockRegistrar).addActivityResultListener(captor.capture()); + verify(mockActivityPluginBinding).addActivityResultListener(captor.capture()); PluginRegistry.ActivityResultListener listener = captor.getValue(); when(mockGoogleSignIn.getLastSignedInAccount(mockContext)).thenReturn(account); @@ -172,7 +168,7 @@ public void requestScopes_mayBeCalledRepeatedly_ifAlreadyGranted() { ArgumentCaptor captor = ArgumentCaptor.forClass(PluginRegistry.ActivityResultListener.class); - verify(mockRegistrar).addActivityResultListener(captor.capture()); + verify(mockActivityPluginBinding).addActivityResultListener(captor.capture()); PluginRegistry.ActivityResultListener listener = captor.getValue(); when(mockGoogleSignIn.getLastSignedInAccount(mockContext)).thenReturn(account); @@ -198,7 +194,7 @@ public void requestScopes_mayBeCalledRepeatedly_ifNotSignedIn() { ArgumentCaptor captor = ArgumentCaptor.forClass(PluginRegistry.ActivityResultListener.class); - verify(mockRegistrar).addActivityResultListener(captor.capture()); + 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 b317d8042f1..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 @@ -23,7 +23,6 @@ import com.google.android.gms.common.api.Status; import com.google.android.gms.tasks.Task; 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; @@ -50,22 +49,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 @@ -101,6 +92,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); @@ -114,17 +106,13 @@ public void requestScopes_RequestsPermissionIfNotGranted() { @Test 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); 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()); @@ -135,17 +123,13 @@ public void requestScopes_ReturnsFalseIfPermissionDenied() { @Test 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); 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); @@ -155,20 +139,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); - verify(mockRegistrar).addActivityResultListener(captor.capture()); - 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); @@ -177,18 +157,14 @@ public void requestScopes_mayBeCalledRepeatedly_ifAlreadyGranted() { @Test 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); 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); 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 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); 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..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; @@ -26,10 +25,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 +38,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); 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"> - -