Revert "Support basic back navigation in Android 13/API 33" (#36001) (#36063)

Co-authored-by: Casey Hillers <chillers@google.com>
diff --git a/shell/platform/android/io/flutter/embedding/android/FlutterActivity.java b/shell/platform/android/io/flutter/embedding/android/FlutterActivity.java
index dd502a8..13137eb 100644
--- a/shell/platform/android/io/flutter/embedding/android/FlutterActivity.java
+++ b/shell/platform/android/io/flutter/embedding/android/FlutterActivity.java
@@ -35,8 +35,6 @@
 import android.view.View;
 import android.view.Window;
 import android.view.WindowManager;
-import android.window.OnBackInvokedCallback;
-import android.window.OnBackInvokedDispatcher;
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 import androidx.annotation.VisibleForTesting;
@@ -497,8 +495,6 @@
 
     lifecycle.handleLifecycleEvent(Lifecycle.Event.ON_CREATE);
 
-    registerOnBackInvokedCallback();
-
     configureWindowForTransparency();
 
     setContentView(createFlutterView());
@@ -507,48 +503,6 @@
   }
 
   /**
-   * Registers the callback with OnBackInvokedDispatcher to capture back navigation gestures and
-   * pass them to the framework.
-   *
-   * <p>This replaces the deprecated onBackPressed method override in order to support API 33's
-   * predictive back navigation feature.
-   *
-   * <p>The callback must be unregistered in order to prevent unpredictable behavior once outside
-   * the Flutter app.
-   */
-  @VisibleForTesting
-  public void registerOnBackInvokedCallback() {
-    if (Build.VERSION.SDK_INT >= 33) {
-      getOnBackInvokedDispatcher()
-          .registerOnBackInvokedCallback(
-              OnBackInvokedDispatcher.PRIORITY_DEFAULT, onBackInvokedCallback);
-    }
-  }
-
-  /**
-   * Unregisters the callback from OnBackInvokedDispatcher.
-   *
-   * <p>This should be called when the activity is no longer in use to prevent unpredictable
-   * behavior such as being stuck and unable to press back.
-   */
-  @VisibleForTesting
-  public void unregisterOnBackInvokedCallback() {
-    if (Build.VERSION.SDK_INT >= 33) {
-      getOnBackInvokedDispatcher().unregisterOnBackInvokedCallback(onBackInvokedCallback);
-    }
-  }
-
-  private final OnBackInvokedCallback onBackInvokedCallback =
-      Build.VERSION.SDK_INT >= 33
-          ? new OnBackInvokedCallback() {
-            @Override
-            public void onBackInvoked() {
-              onBackPressed();
-            }
-          }
-          : null;
-
-  /**
    * Switches themes for this {@code Activity} from the theme used to launch this {@code Activity}
    * to a "normal theme" that is intended for regular {@code Activity} operation.
    *
@@ -726,9 +680,7 @@
    *
    * <p>After calling, this activity should be disposed immediately and not be re-used.
    */
-  @VisibleForTesting
-  public void release() {
-    unregisterOnBackInvokedCallback();
+  private void release() {
     if (delegate != null) {
       delegate.release();
       delegate = null;
diff --git a/shell/platform/android/test/io/flutter/embedding/android/FlutterActivityTest.java b/shell/platform/android/test/io/flutter/embedding/android/FlutterActivityTest.java
index 75d7abf..d6d1d30 100644
--- a/shell/platform/android/test/io/flutter/embedding/android/FlutterActivityTest.java
+++ b/shell/platform/android/test/io/flutter/embedding/android/FlutterActivityTest.java
@@ -88,36 +88,6 @@
     assertTrue(activity.findViewById(FlutterActivity.FLUTTER_VIEW_ID) instanceof FlutterView);
   }
 
-  // TODO(garyq): Robolectric does not yet support android api 33 yet. Switch to a robolectric
-  // test that directly exercises the OnBackInvoked APIs when API 33 is supported.
-  @Test
-  @TargetApi(33)
-  public void itRegistersOnBackInvokedCallbackOnCreate() {
-    Intent intent = FlutterActivityWithReportFullyDrawn.createDefaultIntent(ctx);
-    ActivityController<FlutterActivityWithReportFullyDrawn> activityController =
-        Robolectric.buildActivity(FlutterActivityWithReportFullyDrawn.class, intent);
-    FlutterActivityWithReportFullyDrawn activity = spy(activityController.get());
-
-    activity.onCreate(null);
-
-    verify(activity, times(1)).registerOnBackInvokedCallback();
-  }
-
-  // TODO(garyq): Robolectric does not yet support android api 33 yet. Switch to a robolectric
-  // test that directly exercises the OnBackInvoked APIs when API 33 is supported.
-  @Test
-  @TargetApi(33)
-  public void itUnregistersOnBackInvokedCallbackOnRelease() {
-    Intent intent = FlutterActivityWithReportFullyDrawn.createDefaultIntent(ctx);
-    ActivityController<FlutterActivityWithReportFullyDrawn> activityController =
-        Robolectric.buildActivity(FlutterActivityWithReportFullyDrawn.class, intent);
-    FlutterActivityWithReportFullyDrawn activity = spy(activityController.get());
-
-    activity.release();
-
-    verify(activity, times(1)).unregisterOnBackInvokedCallback();
-  }
-
   @Test
   public void itCreatesDefaultIntentWithExpectedDefaults() {
     Intent intent = FlutterActivity.createDefaultIntent(ctx);
@@ -626,14 +596,6 @@
     }
   }
 
-  private class FlutterActivityWithMockBackInvokedHandling extends FlutterActivity {
-    @Override
-    public void registerOnBackInvokedCallback() {}
-
-    @Override
-    public void unregisterOnBackInvokedCallback() {}
-  }
-
   private static final class FakeFlutterPlugin
       implements FlutterPlugin,
           ActivityAware,
diff --git a/shell/platform/android/test_runner/build.gradle b/shell/platform/android/test_runner/build.gradle
index d1dfa4c..dfdf361 100644
--- a/shell/platform/android/test_runner/build.gradle
+++ b/shell/platform/android/test_runner/build.gradle
@@ -71,10 +71,10 @@
     testImplementation "com.google.android.play:core:1.8.0"
     testImplementation "com.ibm.icu:icu4j:69.1"
     testImplementation "org.robolectric:robolectric:4.7.3"
-    testImplementation "junit:junit:4.13.2"
-    testImplementation "androidx.test.ext:junit:1.1.4-alpha07"
+    testImplementation "junit:junit:4.13"
+    testImplementation "androidx.test.ext:junit:1.1.3"
 
-    def mockitoVersion = "4.7.0"
+    def mockitoVersion = "4.1.0"
     testImplementation "org.mockito:mockito-core:$mockitoVersion"
     testImplementation "org.mockito:mockito-inline:$mockitoVersion"
     testImplementation "org.mockito:mockito-android:$mockitoVersion"