From beae64cd95875219cdac5a2f2d43aa3fb10e1c30 Mon Sep 17 00:00:00 2001 From: shawnlin Date: Thu, 28 Oct 2021 17:14:57 +0800 Subject: [PATCH] Notify system to report the rounded corners that task bar draws Task bar draws fake rouned corner above itself and it should notify system to report that fake ones to apps. Bug: 196387239 Test: make Change-Id: I1d9732de71fbe653ed56e468e211b1bfb4dd2b37 --- .../launcher3/taskbar/TaskbarActivityContext.java | 14 ++++++++++++++ .../launcher3/taskbar/TaskbarStashController.java | 1 + 2 files changed, 15 insertions(+) diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java index dfbc51945b..87de5964f7 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarActivityContext.java @@ -212,6 +212,8 @@ public class TaskbarActivityContext extends ContextThemeWrapper implements Activ mWindowLayoutParams.providedInternalImeInsets = Insets.of(0, getDefaultTaskbarWindowHeight() - mTaskbarHeightForIme, 0, 0); + mWindowLayoutParams.insetsRoundedCornerFrame = true; + // Initialize controllers after all are constructed. mControllers.init(sharedState); updateSysuiStateFlags(sharedState.sysuiStateFlags, true /* fromInit */); @@ -445,6 +447,18 @@ public class TaskbarActivityContext extends ContextThemeWrapper implements Activ return mIsFullscreen; } + /** + * Notify system to inset the rounded corner frame based on the task bar insets. + */ + public void updateInsetRoundedCornerFrame(boolean shouldInsetsRoundedCorner) { + if (!mDragLayer.isAttachedToWindow() + || mWindowLayoutParams.insetsRoundedCornerFrame == shouldInsetsRoundedCorner) { + return; + } + mWindowLayoutParams.insetsRoundedCornerFrame = shouldInsetsRoundedCorner; + mWindowManager.updateViewLayout(mDragLayer, mWindowLayoutParams); + } + /** * Updates the TaskbarContainer height (pass {@link #getDefaultTaskbarWindowHeight()} to reset). */ diff --git a/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java b/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java index a3ad83504c..5b275d0861 100644 --- a/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java +++ b/quickstep/src/com/android/launcher3/taskbar/TaskbarStashController.java @@ -525,6 +525,7 @@ public class TaskbarStashController { private void notifyStashChange(boolean visible, boolean stashed) { mSystemUiProxy.notifyTaskbarStatus(visible, stashed); + mControllers.taskbarActivityContext.updateInsetRoundedCornerFrame(visible && !stashed); mControllers.rotationButtonController.onTaskbarStateChange(visible, stashed); }