diff options
| author | 2022-07-05 11:52:13 +0000 | |
|---|---|---|
| committer | 2022-07-05 11:52:13 +0000 | |
| commit | 638caaf7b388bbc16dcd1ccf23a338d7f9f278fa (patch) | |
| tree | 0e7c658900b8e4962da7ab4885c0969dcde46e51 | |
| parent | 21bde2c5518910b17f69b8bcf248f578603ecf14 (diff) | |
| parent | 63c931e98da331bda5b790e1d49b4733a0053b3f (diff) | |
Merge "The rounded corners from getCurrentMetrics should account for taskbar" into tm-qpr-dev am: 63c931e98d
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/19033275
Change-Id: Iff4a1bd03ea71072b5da2bb34e4710947524ea8e
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| -rw-r--r-- | services/core/java/com/android/server/wm/InsetsPolicy.java | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/services/core/java/com/android/server/wm/InsetsPolicy.java b/services/core/java/com/android/server/wm/InsetsPolicy.java index db2ee2de06ca..ee1ff2cd61ff 100644 --- a/services/core/java/com/android/server/wm/InsetsPolicy.java +++ b/services/core/java/com/android/server/wm/InsetsPolicy.java @@ -265,7 +265,7 @@ class InsetsPolicy { state = originalState; } state = adjustVisibilityForIme(target, state, state == originalState); - return adjustInsetsForRoundedCorners(target, state, state == originalState); + return adjustInsetsForRoundedCorners(target.mToken, state, state == originalState); } InsetsState adjustInsetsForWindow(WindowState target, InsetsState originalState) { @@ -290,7 +290,8 @@ class InsetsPolicy { final InsetsState originalState = mDisplayContent.getInsetsPolicy() .enforceInsetsPolicyForTarget(type, WINDOWING_MODE_FULLSCREEN, alwaysOnTop, mStateController.getRawInsetsState()); - return adjustVisibilityForTransientTypes(originalState); + InsetsState state = adjustVisibilityForTransientTypes(originalState); + return adjustInsetsForRoundedCorners(token, state, state == originalState); } /** @@ -465,15 +466,19 @@ class InsetsPolicy { return originalState; } - private InsetsState adjustInsetsForRoundedCorners(WindowState w, InsetsState originalState, + private InsetsState adjustInsetsForRoundedCorners(WindowToken token, InsetsState originalState, boolean copyState) { - final Task task = w.getTask(); - if (task != null && !task.getWindowConfiguration().tasksAreFloating()) { - // Use task bounds to calculating rounded corners if the task is not floating. - final Rect roundedCornerFrame = new Rect(task.getBounds()); - final InsetsState state = copyState ? new InsetsState(originalState) : originalState; - state.setRoundedCornerFrame(roundedCornerFrame); - return state; + if (token != null) { + final ActivityRecord activityRecord = token.asActivityRecord(); + final Task task = activityRecord != null ? activityRecord.getTask() : null; + if (task != null && !task.getWindowConfiguration().tasksAreFloating()) { + // Use task bounds to calculating rounded corners if the task is not floating. + final Rect roundedCornerFrame = new Rect(task.getBounds()); + final InsetsState state = copyState ? new InsetsState(originalState) + : originalState; + state.setRoundedCornerFrame(roundedCornerFrame); + return state; + } } return originalState; } |