Revert "FlutterFragment predictive back (#52302)"

This reverts commit c364b294c1f3df4e32ca15972bd06228b056fbb4.
diff --git a/shell/platform/android/io/flutter/embedding/android/FlutterFragment.java b/shell/platform/android/io/flutter/embedding/android/FlutterFragment.java
index e26d13e..376142b 100644
--- a/shell/platform/android/io/flutter/embedding/android/FlutterFragment.java
+++ b/shell/platform/android/io/flutter/embedding/android/FlutterFragment.java
@@ -1056,14 +1056,6 @@
     delegate.onAttach(context);
     if (getArguments().getBoolean(ARG_SHOULD_AUTOMATICALLY_HANDLE_ON_BACK_PRESSED, false)) {
       requireActivity().getOnBackPressedDispatcher().addCallback(this, onBackPressedCallback);
-      // When Android handles a back gesture, it pops an Activity or goes back
-      // to the home screen. When Flutter handles a back gesture, it pops a
-      // route inside of the Flutter part of the app. By default, Android
-      // handles back gestures, so this callback is disabled. If, for example,
-      // the Flutter app has routes for which it wants to handle the back
-      // gesture, then it will enable this callback using
-      // setFrameworkHandlesBack.
-      onBackPressedCallback.setEnabled(false);
     }
     context.registerComponentCallbacks(this);
   }
@@ -1671,14 +1663,9 @@
         // Unless we disable the callback, the dispatcher call will trigger it. This will then
         // trigger the fragment's onBackPressed() implementation, which will call through to the
         // dart side and likely call back through to this method, creating an infinite call loop.
-        boolean enabledAtStart = onBackPressedCallback.isEnabled();
-        if (enabledAtStart) {
-          onBackPressedCallback.setEnabled(false);
-        }
+        onBackPressedCallback.setEnabled(false);
         activity.getOnBackPressedDispatcher().onBackPressed();
-        if (enabledAtStart) {
-          onBackPressedCallback.setEnabled(true);
-        }
+        onBackPressedCallback.setEnabled(true);
         return true;
       }
     }
@@ -1686,14 +1673,6 @@
     return false;
   }
 
-  @Override
-  public void setFrameworkHandlesBack(boolean frameworkHandlesBack) {
-    if (!getArguments().getBoolean(ARG_SHOULD_AUTOMATICALLY_HANDLE_ON_BACK_PRESSED, false)) {
-      return;
-    }
-    onBackPressedCallback.setEnabled(frameworkHandlesBack);
-  }
-
   @VisibleForTesting
   @NonNull
   boolean shouldDelayFirstAndroidViewDraw() {
diff --git a/shell/platform/android/io/flutter/embedding/android/FlutterFragmentActivity.java b/shell/platform/android/io/flutter/embedding/android/FlutterFragmentActivity.java
index fda8a7c..65fb752 100644
--- a/shell/platform/android/io/flutter/embedding/android/FlutterFragmentActivity.java
+++ b/shell/platform/android/io/flutter/embedding/android/FlutterFragmentActivity.java
@@ -518,7 +518,6 @@
             ? TransparencyMode.opaque
             : TransparencyMode.transparent;
     final boolean shouldDelayFirstAndroidViewDraw = renderMode == RenderMode.surface;
-    final boolean shouldAutomaticallyHandleOnBackPressed = true;
 
     if (getCachedEngineId() != null) {
       Log.v(
@@ -543,7 +542,6 @@
           .shouldAttachEngineToActivity(shouldAttachEngineToActivity())
           .destroyEngineWithFragment(shouldDestroyEngineWithHost())
           .shouldDelayFirstAndroidViewDraw(shouldDelayFirstAndroidViewDraw)
-          .shouldAutomaticallyHandleOnBackPressed(shouldAutomaticallyHandleOnBackPressed)
           .build();
     } else {
       Log.v(
@@ -579,7 +577,6 @@
             .transparencyMode(transparencyMode)
             .shouldAttachEngineToActivity(shouldAttachEngineToActivity())
             .shouldDelayFirstAndroidViewDraw(shouldDelayFirstAndroidViewDraw)
-            .shouldAutomaticallyHandleOnBackPressed(shouldAutomaticallyHandleOnBackPressed)
             .build();
       }
 
@@ -595,7 +592,6 @@
           .transparencyMode(transparencyMode)
           .shouldAttachEngineToActivity(shouldAttachEngineToActivity())
           .shouldDelayFirstAndroidViewDraw(shouldDelayFirstAndroidViewDraw)
-          .shouldAutomaticallyHandleOnBackPressed(shouldAutomaticallyHandleOnBackPressed)
           .build();
     }
   }
@@ -621,6 +617,12 @@
   }
 
   @Override
+  @SuppressWarnings("MissingSuperCall")
+  public void onBackPressed() {
+    flutterFragment.onBackPressed();
+  }
+
+  @Override
   public void onRequestPermissionsResult(
       int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
     super.onRequestPermissionsResult(requestCode, permissions, grantResults);
diff --git a/shell/platform/android/test/io/flutter/embedding/android/FlutterFragmentTest.java b/shell/platform/android/test/io/flutter/embedding/android/FlutterFragmentTest.java
index 24d7c6e..6cfc9e1 100644
--- a/shell/platform/android/test/io/flutter/embedding/android/FlutterFragmentTest.java
+++ b/shell/platform/android/test/io/flutter/embedding/android/FlutterFragmentTest.java
@@ -290,7 +290,7 @@
   }
 
   @Test
-  public void itDelegatesOnBackPressedWithSetFrameworkHandlesBack() {
+  public void itDelegatesOnBackPressedAutomaticallyWhenEnabled() {
     // We need to mock FlutterJNI to avoid triggering native code.
     FlutterJNI flutterJNI = mock(FlutterJNI.class);
     when(flutterJNI.isAttached()).thenReturn(true);
@@ -301,8 +301,6 @@
 
     FlutterFragment fragment =
         FlutterFragment.withCachedEngine("my_cached_engine")
-            // This enables the use of onBackPressedCallback, which is what
-            // sends backs to the framework if setFrameworkHandlesBack is true.
             .shouldAutomaticallyHandleOnBackPressed(true)
             .build();
     FragmentActivity activity = getMockFragmentActivity();
@@ -320,15 +318,8 @@
     TestDelegateFactory delegateFactory = new TestDelegateFactory(mockDelegate);
     fragment.setDelegateFactory(delegateFactory);
 
-    // Calling onBackPressed now will still be handled by Android (the default),
-    // until setFrameworkHandlesBack is set to true.
     activity.getOnBackPressedDispatcher().onBackPressed();
-    verify(mockDelegate, times(0)).onBackPressed();
 
-    // Setting setFrameworkHandlesBack to true means the delegate will receive
-    // the back and Android won't handle it.
-    fragment.setFrameworkHandlesBack(true);
-    activity.getOnBackPressedDispatcher().onBackPressed();
     verify(mockDelegate, times(1)).onBackPressed();
   }
 
@@ -370,20 +361,10 @@
     TestDelegateFactory delegateFactory = new TestDelegateFactory(mockDelegate);
     fragment.setDelegateFactory(delegateFactory);
 
-    assertTrue(callback.isEnabled());
-
     assertTrue(fragment.popSystemNavigator());
 
     verify(mockDelegate, never()).onBackPressed();
     assertTrue(onBackPressedCalled.get());
-    assertTrue(callback.isEnabled());
-
-    callback.setEnabled(false);
-    assertFalse(callback.isEnabled());
-    assertTrue(fragment.popSystemNavigator());
-
-    verify(mockDelegate, never()).onBackPressed();
-    assertFalse(callback.isEnabled());
   }
 
   @Test