diff --git a/testing/scenario_app/android/app/src/main/java/dev/flutter/scenarios/TestActivity.java b/testing/scenario_app/android/app/src/main/java/dev/flutter/scenarios/TestActivity.java index c3b8b31e1e17e..5249577869813 100644 --- a/testing/scenario_app/android/app/src/main/java/dev/flutter/scenarios/TestActivity.java +++ b/testing/scenario_app/android/app/src/main/java/dev/flutter/scenarios/TestActivity.java @@ -9,12 +9,8 @@ import android.os.Bundle; import android.os.Handler; import android.os.Looper; -import android.view.Window; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import androidx.core.view.WindowCompat; -import androidx.core.view.WindowInsetsCompat; -import androidx.core.view.WindowInsetsControllerCompat; import io.flutter.FlutterInjector; import io.flutter.embedding.engine.FlutterShellArgs; import io.flutter.embedding.engine.loader.FlutterLoader; @@ -29,7 +25,6 @@ public abstract class TestActivity extends TestableFlutterActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); - hideSystemBars(getWindow()); testFlutterLoaderCallbackWhenInitializedTwice(); } @@ -109,13 +104,4 @@ protected void testFlutterLoaderCallbackWhenInitializedTwice() { } }); } - - private static void hideSystemBars(Window window) { - final WindowInsetsControllerCompat insetController = - WindowCompat.getInsetsController(window, window.getDecorView()); - assert insetController != null; - insetController.setSystemBarsBehavior( - WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE); - insetController.hide(WindowInsetsCompat.Type.systemBars()); - } } diff --git a/testing/scenario_app/bin/run_android_tests.dart b/testing/scenario_app/bin/run_android_tests.dart index a4782f31cf9b1..5629eb7fd6ca4 100644 --- a/testing/scenario_app/bin/run_android_tests.dart +++ b/testing/scenario_app/bin/run_android_tests.dart @@ -298,17 +298,23 @@ Future _run({ }); await step('Configuring emulator...', () async { - final int exitCode = await pm.runAndForward([ - adb.path, - 'shell', - 'settings', - 'put', - 'secure', - 'immersive_mode_confirmations', - 'confirmed', - ]); - if (exitCode != 0) { - panic(['could not configure emulator']); + final List> adbShellCommands = > [ + // Try to close all OS popups in the emulator, like "System UI stopped working". + ['am', 'broadcast', '-a', 'android.intent.action.CLOSE_SYSTEM_DIALOGS'], + + // Don't show "this is how you exit fullscreen mode". + ['settings', 'put', 'secure', 'immersive_mode_confirmations', 'confirmed'], + + // Hide all system bars. + ['settings', 'put', 'global', 'policy_control', 'immersive.full=*'], + ]; + + // Run all the commands. + for (final List command in adbShellCommands) { + final int exitCode = await pm.runAndForward([adb.path, 'shell', ...command]); + if (exitCode != 0) { + panic(['could not run command: ${command.join(' ')}']); + } } });