summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Adrian Roos <roosa@google.com> 2017-07-26 16:40:20 +0000
committer android-build-merger <android-build-merger@google.com> 2017-07-26 16:40:20 +0000
commitcb681f95cdfb621edc5e1352f5b6100fe5e1aad5 (patch)
treeb22f8e6bf9ba91464501060e53af85575601ff89
parent4e01e4a0291df33a1215ea648f817ee404d135ee (diff)
parent21893952879b85100681317c6bdb2ddea2281603 (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.java12
-rw-r--r--services/core/java/com/android/server/am/ActivityManagerService.java14
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();