diff options
| author | 2022-09-16 17:21:38 +0000 | |
|---|---|---|
| committer | 2022-09-16 17:21:38 +0000 | |
| commit | 4f51efb49d5c4e54339aeda71a6fbcdd694f0915 (patch) | |
| tree | 9d3451c877f25386738940c8f17177307f088c5c | |
| parent | a59299be0e5c41cdd5feede4f8e3517ecc706aef (diff) | |
| parent | be41e6a2a89f677a9244128799dfec762be3dc5e (diff) | |
For shell transition, register remote for DREAM occluding Keyguard. am: be41e6a2a8
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/19817867
Change-Id: I011d9b14e7f2c81d7d48c5c47afa03fd23f4b723
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/keyguard/KeyguardService.java | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardService.java b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardService.java index 2da92326a7fd..ddcd0533c588 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardService.java +++ b/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardService.java @@ -202,7 +202,8 @@ public class KeyguardService extends Service { } } - // Wrap Keyguard going away animation + // Wrap Keyguard going away animation. + // Note: Also used for wrapping occlude by Dream animation. It works (with some redundancy). private static IRemoteTransition wrap(IRemoteAnimationRunner runner) { return new IRemoteTransition.Stub() { final ArrayMap<IBinder, IRemoteTransitionFinishedCallback> mFinishCallbacks = @@ -388,6 +389,27 @@ public class KeyguardService extends Service { f = new TransitionFilter(); f.mTypeSet = new int[]{TRANSIT_KEYGUARD_UNOCCLUDE}; mShellTransitions.registerRemote(f, unoccludeTransition); + + Slog.d(TAG, "KeyguardService registerRemote: TRANSIT_KEYGUARD_OCCLUDE for DREAM"); + // Register for occluding by Dream + f = new TransitionFilter(); + f.mFlags = TRANSIT_FLAG_KEYGUARD_LOCKED; + f.mRequirements = new TransitionFilter.Requirement[]{ + new TransitionFilter.Requirement(), new TransitionFilter.Requirement()}; + // First require at-least one app of type DREAM showing that occludes. + f.mRequirements[0].mActivityType = WindowConfiguration.ACTIVITY_TYPE_DREAM; + f.mRequirements[0].mMustBeIndependent = false; + f.mRequirements[0].mFlags = FLAG_OCCLUDES_KEYGUARD; + f.mRequirements[0].mModes = new int[]{TRANSIT_OPEN, TRANSIT_TO_FRONT}; + // Then require that we aren't closing any occludes (because this would mean a + // regular task->task or activity->activity animation not involving keyguard). + f.mRequirements[1].mNot = true; + f.mRequirements[1].mMustBeIndependent = false; + f.mRequirements[1].mFlags = FLAG_OCCLUDES_KEYGUARD; + f.mRequirements[1].mModes = new int[]{TRANSIT_CLOSE, TRANSIT_TO_BACK}; + mShellTransitions.registerRemote(f, new RemoteTransition( + wrap(mKeyguardViewMediator.getOccludeByDreamAnimationRunner()), + getIApplicationThread())); } } |