summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJorim Jaggi <jjaggi@google.com>2014-10-03 15:17:20 -0700
committerJorim Jaggi <jjaggi@google.com>2014-10-03 15:52:24 -0700
commit5e08e6957d1ada027ee93a0c8f745a9f8b89bb60 (patch)
tree0597e81ba4c656c9ca96da1f2f80ecec4e6b3c7b
parent449981be16ed0ecae1fe708c31ee25a93ec2ffae (diff)
downloadframeworks_base-5e08e6957d1ada027ee93a0c8f745a9f8b89bb60.zip
frameworks_base-5e08e6957d1ada027ee93a0c8f745a9f8b89bb60.tar.gz
frameworks_base-5e08e6957d1ada027ee93a0c8f745a9f8b89bb60.tar.bz2
Fix blank Keyguard #4
When we were fading out the preview for phone/camera to crossfade to the real application, it might have been that showKeyguard was called in the middle of this transition. This change makes sure that we cancel this animation when showing the keyguard. Bug: 17439581 Change-Id: I89cacf7ecf43d37ea979418b976390272510a09d
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java2
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java17
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java9
3 files changed, 21 insertions, 7 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
index 26420e1..a6fccb6 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
@@ -983,10 +983,12 @@ public class NotificationPanelView extends PanelView implements
.withEndAction(mAnimateKeyguardStatusViewVisibleEndRunnable);
} else if (statusBarState == StatusBarState.KEYGUARD) {
mKeyguardStatusView.animate().cancel();
+ mKeyguardStatusViewAnimating = false;
mKeyguardStatusView.setVisibility(View.VISIBLE);
mKeyguardStatusView.setAlpha(1f);
} else {
mKeyguardStatusView.animate().cancel();
+ mKeyguardStatusViewAnimating = false;
mKeyguardStatusView.setVisibility(View.GONE);
mKeyguardStatusView.setAlpha(1f);
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
index 05d6001..3b05ef1 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
@@ -3494,6 +3494,15 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
}
public void showKeyguard() {
+ if (mLaunchTransitionFadingAway) {
+ mNotificationPanel.animate().cancel();
+ mNotificationPanel.setAlpha(1f);
+ if (mLaunchTransitionEndRunnable != null) {
+ mLaunchTransitionEndRunnable.run();
+ }
+ mLaunchTransitionEndRunnable = null;
+ mLaunchTransitionFadingAway = false;
+ }
setBarState(StatusBarState.KEYGUARD);
updateKeyguardState(false /* goingToFullShade */, false /* fromShadeLocked */);
if (!mScreenOnFromKeyguard) {
@@ -3533,7 +3542,8 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
* @param endRunnable the runnable to be run when the transition is done
*/
public void fadeKeyguardAfterLaunchTransition(final Runnable beforeFading,
- final Runnable endRunnable) {
+ Runnable endRunnable) {
+ mLaunchTransitionEndRunnable = endRunnable;
Runnable hideRunnable = new Runnable() {
@Override
public void run() {
@@ -3551,9 +3561,10 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
@Override
public void run() {
mNotificationPanel.setAlpha(1);
- if (endRunnable != null) {
- endRunnable.run();
+ if (mLaunchTransitionEndRunnable != null) {
+ mLaunchTransitionEndRunnable.run();
}
+ mLaunchTransitionEndRunnable = null;
mLaunchTransitionFadingAway = false;
}
});
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java
index 6793f69..54adbf4 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java
@@ -260,6 +260,11 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener {
}
private void setScrimColor(ScrimView scrim, float alpha) {
+ Object runningAnim = scrim.getTag(TAG_KEY_ANIM);
+ if (runningAnim instanceof ValueAnimator) {
+ ((ValueAnimator) runningAnim).cancel();
+ scrim.setTag(TAG_KEY_ANIM, null);
+ }
int color = Color.argb((int) (alpha * 255), 0, 0, 0);
if (mAnimateChange) {
startScrimAnimation(scrim, color);
@@ -274,10 +279,6 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener {
if (current == targetColor) {
return;
}
- Object runningAnim = scrim.getTag(TAG_KEY_ANIM);
- if (runningAnim instanceof ValueAnimator) {
- ((ValueAnimator) runningAnim).cancel();
- }
ValueAnimator anim = ValueAnimator.ofInt(current, target);
anim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override