diff options
| author | 2017-07-26 16:40:20 +0000 | |
|---|---|---|
| committer | 2017-07-26 16:40:20 +0000 | |
| commit | cb681f95cdfb621edc5e1352f5b6100fe5e1aad5 (patch) | |
| tree | b22f8e6bf9ba91464501060e53af85575601ff89 | |
| parent | 4e01e4a0291df33a1215ea648f817ee404d135ee (diff) | |
| parent | 21893952879b85100681317c6bdb2ddea2281603 (diff) | |
Merge "Fix flickery behavior when launching notification when occluded" into oc-dr1-dev am: dd22dcbcdf am: 6b46beea25
am: 2189395287
Change-Id: I477adc10038370d71bd9306f2574a0603c208dab
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java | 12 | ||||
| -rw-r--r-- | services/core/java/com/android/server/am/ActivityManagerService.java | 14 |
2 files changed, 21 insertions, 5 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java index 785d07229c64..afacd89848f1 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java @@ -6821,7 +6821,6 @@ public class StatusBar extends SystemUI implements DemoMode, } }); - final boolean keyguardShowing = mStatusBarKeyguardViewManager.isShowing(); final boolean afterKeyguardGone = intent.isActivity() && PreviewInflater.wouldLaunchResolverActivity(mContext, intent.getIntent(), mCurrentUserId); @@ -6848,7 +6847,7 @@ public class StatusBar extends SystemUI implements DemoMode, } } final StatusBarNotification parentToCancelFinal = parentToCancel; - new Thread() { + final Runnable runnable = new Runnable() { @Override public void run() { try { @@ -6920,7 +6919,14 @@ public class StatusBar extends SystemUI implements DemoMode, }); } } - }.start(); + }; + + if (mStatusBarKeyguardViewManager.isShowing() + && mStatusBarKeyguardViewManager.isOccluded()) { + mStatusBarKeyguardViewManager.addAfterKeyguardGoneRunnable(runnable); + } else { + new Thread(runnable).start(); + } // close the shade if it was open animateCollapsePanels(CommandQueue.FLAG_EXCLUDE_RECENTS_PANEL, diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index f6c56ed44f8f..1281fb1fecb4 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -23945,9 +23945,19 @@ public class ActivityManagerService extends IActivityManager.Stub // We might change the visibilities here, so prepare an empty app transition which // might be overridden later if we actually change visibilities. - mWindowManager.prepareAppTransition(TRANSIT_NONE, false /* alwaysKeepCurrent */); + final boolean wasTransitionSet = + mWindowManager.getPendingAppTransition() != TRANSIT_NONE; + if (!wasTransitionSet) { + mWindowManager.prepareAppTransition(TRANSIT_NONE, + false /* alwaysKeepCurrent */); + } mStackSupervisor.ensureActivitiesVisibleLocked(null, 0, !PRESERVE_WINDOWS); - mWindowManager.executeAppTransition(); + + // If there was a transition set already we don't want to interfere with it as we + // might be starting it too early. + if (!wasTransitionSet) { + mWindowManager.executeAppTransition(); + } } if (callback != null) { callback.run(); |