summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
author Evan Rosky <erosky@google.com> 2023-05-12 22:53:32 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2023-05-12 22:53:32 +0000
commitc8196383a29e67e65848c69b811b3e28e19bef3b (patch)
tree9a4858876a4f8ca482d88f24e8a2e6f3c804b95a /libs
parente0a5db492f26d6ae6052b5d0e92805fb64279742 (diff)
parent27c8c5ec7d7d1723b2a43253c03c2fc1c7f02739 (diff)
Merge "Fix graphical glitches on keyguard-unlock with PIP" into udc-dev
Diffstat (limited to 'libs')
-rw-r--r--libs/WindowManager/Shell/src/com/android/wm/shell/util/TransitionUtil.java21
1 files changed, 19 insertions, 2 deletions
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/util/TransitionUtil.java b/libs/WindowManager/Shell/src/com/android/wm/shell/util/TransitionUtil.java
index ef0c7a8a755b..6d37e58c59ad 100644
--- a/libs/WindowManager/Shell/src/com/android/wm/shell/util/TransitionUtil.java
+++ b/libs/WindowManager/Shell/src/com/android/wm/shell/util/TransitionUtil.java
@@ -235,11 +235,20 @@ public class TransitionUtil {
public static RemoteAnimationTarget newTarget(TransitionInfo.Change change, int order,
TransitionInfo info, SurfaceControl.Transaction t,
@Nullable ArrayMap<SurfaceControl, SurfaceControl> leashMap) {
+ return newTarget(change, order, false /* forceTranslucent */, info, t, leashMap);
+ }
+
+ /**
+ * Creates a new RemoteAnimationTarget from the provided change info
+ */
+ public static RemoteAnimationTarget newTarget(TransitionInfo.Change change, int order,
+ boolean forceTranslucent, TransitionInfo info, SurfaceControl.Transaction t,
+ @Nullable ArrayMap<SurfaceControl, SurfaceControl> leashMap) {
final SurfaceControl leash = createLeash(info, change, order, t);
if (leashMap != null) {
leashMap.put(change.getLeash(), leash);
}
- return newTarget(change, order, leash);
+ return newTarget(change, order, leash, forceTranslucent);
}
/**
@@ -247,6 +256,14 @@ public class TransitionUtil {
*/
public static RemoteAnimationTarget newTarget(TransitionInfo.Change change, int order,
SurfaceControl leash) {
+ return newTarget(change, order, leash, false /* forceTranslucent */);
+ }
+
+ /**
+ * Creates a new RemoteAnimationTarget from the provided change and leash
+ */
+ public static RemoteAnimationTarget newTarget(TransitionInfo.Change change, int order,
+ SurfaceControl leash, boolean forceTranslucent) {
if (isDividerBar(change)) {
return getDividerTarget(change, leash);
}
@@ -276,7 +293,7 @@ public class TransitionUtil {
// TODO: once we can properly sync transactions across process,
// then get rid of this leash.
leash,
- (change.getFlags() & TransitionInfo.FLAG_TRANSLUCENT) != 0,
+ forceTranslucent || (change.getFlags() & TransitionInfo.FLAG_TRANSLUCENT) != 0,
null,
// TODO(shell-transitions): we need to send content insets? evaluate how its used.
new Rect(0, 0, 0, 0),