diff --git a/testing/scenario_app/android/app/src/main/java/dev/flutter/scenarios/TestableFlutterActivity.java b/testing/scenario_app/android/app/src/main/java/dev/flutter/scenarios/TestableFlutterActivity.java index 82ba2d95c5abd..e1a1c98735523 100644 --- a/testing/scenario_app/android/app/src/main/java/dev/flutter/scenarios/TestableFlutterActivity.java +++ b/testing/scenario_app/android/app/src/main/java/dev/flutter/scenarios/TestableFlutterActivity.java @@ -4,7 +4,10 @@ package dev.flutter.scenarios; +import android.os.Bundle; +import android.view.WindowManager; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import io.flutter.embedding.android.FlutterActivity; import io.flutter.embedding.engine.FlutterEngine; import java.util.concurrent.atomic.AtomicBoolean; @@ -22,6 +25,20 @@ public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine) { .setMessageHandler("take_screenshot", (byteBuffer, binaryReply) -> notifyFlutterRendered()); } + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + // On newer versions of Android, this is the default. Because these tests are being used to take + // screenshots on Skia Gold, we don't want any of the System UI to show up, even for older API + // versions (i.e. 28). + // + // See also: + // https://github.com/flutter/engine/blob/a9081cce1f0dd730577a36ee1ca6d7af5cdc5a9b/shell/platform/android/io/flutter/embedding/android/FlutterView.java#L696 + // https://github.com/flutter/flutter/issues/143471 + getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); + } + protected void notifyFlutterRendered() { synchronized (flutterUiRenderedLock) { isScenarioReady.set(true);