fix and re-land "re-enable `android_view_test` (#54214)" (#54312)

diff --git a/dev/integration_tests/android_views/android/app/src/main/java/io/flutter/integration/androidviews/SimplePlatformView.java b/dev/integration_tests/android_views/android/app/src/main/java/io/flutter/integration/androidviews/SimplePlatformView.java
index 4e391e1..a9bce04 100644
--- a/dev/integration_tests/android_views/android/app/src/main/java/io/flutter/integration/androidviews/SimplePlatformView.java
+++ b/dev/integration_tests/android_views/android/app/src/main/java/io/flutter/integration/androidviews/SimplePlatformView.java
@@ -52,21 +52,27 @@
                 touchPipe.disable();
                 result.success(null);
                 return;
-            case "showAlertDialog":
-                showAlertDialog(result);
+            case "showAndHideAlertDialog":
+                showAndHideAlertDialog(result);
                 return;
         }
         result.notImplemented();
     }
 
-    private void showAlertDialog(MethodChannel.Result result) {
+    private void showAndHideAlertDialog(MethodChannel.Result result) {
         Context context = view.getContext();
         AlertDialog.Builder builder = new AlertDialog.Builder(context);
         TextView textView = new TextView(context);
-        textView.setText("Alert!");
+        textView.setText("This alert dialog will close in 1 second");
         builder.setView(textView);
         final AlertDialog alertDialog = builder.show();
         result.success(null);
+        view.postDelayed(new Runnable() {
+            @Override
+            public void run() {
+                alertDialog.hide();
+            }
+        }, 1000);
     }
 
 }
diff --git a/dev/integration_tests/android_views/lib/motion_events_page.dart b/dev/integration_tests/android_views/lib/motion_events_page.dart
index 7af44b8..351fa3a 100644
--- a/dev/integration_tests/android_views/lib/motion_events_page.dart
+++ b/dev/integration_tests/android_views/lib/motion_events_page.dart
@@ -105,6 +105,13 @@
               child: const Text('PLAY FILE'),
               onPressed: () { playEventsFile(); },
             ),
+            Expanded(
+                child: RaisedButton(
+                  key: const ValueKey<String>('back'),
+                  child: const Text('BACK'),
+                  onPressed: () { Navigator.pop(context); },
+              ),
+            ),
           ],
         ),
       ],
diff --git a/dev/integration_tests/android_views/lib/wm_integrations.dart b/dev/integration_tests/android_views/lib/wm_integrations.dart
index 3faea13..7de17a1 100644
--- a/dev/integration_tests/android_views/lib/wm_integrations.dart
+++ b/dev/integration_tests/android_views/lib/wm_integrations.dart
@@ -84,7 +84,7 @@
       });
     }
     try {
-      await viewChannel.invokeMethod<void>('showAlertDialog');
+      await viewChannel.invokeMethod<void>('showAndHideAlertDialog');
       setState(() {
         lastTestStatus = _LastTestStatus.success;
       });
diff --git a/dev/integration_tests/android_views/test_driver/main_test.dart b/dev/integration_tests/android_views/test_driver/main_test.dart
index fa06836..7479d5a 100644
--- a/dev/integration_tests/android_views/test_driver/main_test.dart
+++ b/dev/integration_tests/android_views/test_driver/main_test.dart
@@ -17,6 +17,8 @@
     driver.close();
   });
 
+  // Each test below must return back to the home page after finishing.
+
   test('MotionEvent recomposition', () async {
     final SerializableFinder motionEventsListTile =
     find.byValueKey('MotionEventsListTile');
@@ -24,9 +26,8 @@
     await driver.waitFor(find.byValueKey('PlatformView'));
     final String errorMessage = await driver.requestData('run test');
     expect(errorMessage, '');
-  },
-  // TODO(amirh): enable this test https://github.com/flutter/flutter/issues/54022
-  skip: true);
+    await driver.tap(find.byValueKey('back'));
+  });
 
   test('AlertDialog from platform view context', () async {
     final SerializableFinder wmListTile =
@@ -38,5 +39,7 @@
     await driver.tap(showAlertDialog);
     final String status = await driver.getText(find.byValueKey('Status'));
     expect(status, 'Success');
+    await driver.waitFor(find.pageBack());
+    await driver.tap(find.pageBack());
   });
 }