From cf0c106c22a6d1e5f1b5a4a5e9d688a5dfeb426c Mon Sep 17 00:00:00 2001 From: Galia Peycheva Date: Tue, 13 Oct 2020 12:19:37 +0200 Subject: [PATCH] Fix dream letterboxed when there is a cutout Fix: 170167239 Test: m && flash && verify the dream is fullscreen Change-Id: Id26d3bde207da4168db32dc81a3ad8e001174495 --- core/java/android/service/dreams/DreamActivity.java | 3 --- core/java/android/service/dreams/DreamService.java | 7 +++++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/core/java/android/service/dreams/DreamActivity.java b/core/java/android/service/dreams/DreamActivity.java index 09d1bb9d2b123..96bbf8ebc2cbc 100644 --- a/core/java/android/service/dreams/DreamActivity.java +++ b/core/java/android/service/dreams/DreamActivity.java @@ -19,7 +19,6 @@ package android.service.dreams; import android.annotation.Nullable; import android.app.Activity; import android.os.Bundle; -import android.view.WindowInsets; import com.android.internal.R; @@ -63,8 +62,6 @@ public class DreamActivity extends Activity { @Override public void onResume() { super.onResume(); - // Hide all insets (nav bar, status bar, etc) when the dream is showing - getWindow().getInsetsController().hide(WindowInsets.Type.systemBars()); overridePendingTransition(R.anim.dream_activity_open_enter, R.anim.dream_activity_open_exit); } diff --git a/core/java/android/service/dreams/DreamService.java b/core/java/android/service/dreams/DreamService.java index d2dfb29ba25c2..859bb51607b91 100644 --- a/core/java/android/service/dreams/DreamService.java +++ b/core/java/android/service/dreams/DreamService.java @@ -48,6 +48,7 @@ import android.view.SearchEvent; import android.view.View; import android.view.ViewGroup; import android.view.Window; +import android.view.WindowInsets; import android.view.WindowManager; import android.view.WindowManager.LayoutParams; import android.view.accessibility.AccessibilityEvent; @@ -1061,11 +1062,17 @@ public class DreamService extends Service implements Window.Callback { | (mFullscreen ? WindowManager.LayoutParams.FLAG_FULLSCREEN : 0) | (mScreenBright ? WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON : 0) ); + lp.layoutInDisplayCutoutMode = + WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS; mWindow.setAttributes(lp); // Workaround: Currently low-profile and in-window system bar backgrounds don't go // along well. Dreams usually don't need such bars anyways, so disable them by default. mWindow.clearFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); + // Hide all insets when the dream is showing + mWindow.getDecorView().getWindowInsetsController().hide(WindowInsets.Type.systemBars()); + mWindow.setDecorFitsSystemWindows(false); + mWindow.getDecorView().addOnAttachStateChangeListener( new View.OnAttachStateChangeListener() { @Override