summaryrefslogtreecommitdiffstats
path: root/policy
diff options
context:
space:
mode:
Diffstat (limited to 'policy')
-rw-r--r--policy/src/com/android/internal/policy/impl/keyguard/KeyguardSecurityViewHelper.java18
-rw-r--r--policy/src/com/android/internal/policy/impl/keyguard/KeyguardWidgetPager.java3
2 files changed, 20 insertions, 1 deletions
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSecurityViewHelper.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSecurityViewHelper.java
index 294bc3d..3d59f8d 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSecurityViewHelper.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSecurityViewHelper.java
@@ -17,6 +17,7 @@
package com.android.internal.policy.impl.keyguard;
import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
import android.animation.ObjectAnimator;
import android.graphics.drawable.Drawable;
import android.view.View;
@@ -27,7 +28,7 @@ import android.view.View;
public class KeyguardSecurityViewHelper {
public static void showBouncer(SecurityMessageDisplay securityMessageDisplay,
- View ecaView, Drawable bouncerFrame, int duration) {
+ final View ecaView, Drawable bouncerFrame, int duration) {
if (securityMessageDisplay != null) {
securityMessageDisplay.showBouncer(duration);
}
@@ -35,9 +36,23 @@ public class KeyguardSecurityViewHelper {
if (duration > 0) {
Animator anim = ObjectAnimator.ofFloat(ecaView, "alpha", 0f);
anim.setDuration(duration);
+ anim.addListener(new AnimatorListenerAdapter() {
+ private boolean mCanceled;
+ @Override
+ public void onAnimationCancel(Animator animation) {
+ // Fail safe and show the emergency button in onAnimationEnd()
+ mCanceled = true;
+ ecaView.setAlpha(1f);
+ }
+ @Override
+ public void onAnimationEnd(Animator animation) {
+ ecaView.setVisibility(mCanceled ? View.VISIBLE : View.INVISIBLE);
+ }
+ });
anim.start();
} else {
ecaView.setAlpha(0f);
+ ecaView.setVisibility(View.INVISIBLE);
}
}
if (bouncerFrame != null) {
@@ -57,6 +72,7 @@ public class KeyguardSecurityViewHelper {
securityMessageDisplay.hideBouncer(duration);
}
if (ecaView != null) {
+ ecaView.setVisibility(View.VISIBLE);
if (duration > 0) {
Animator anim = ObjectAnimator.ofFloat(ecaView, "alpha", 1f);
anim.setDuration(duration);
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardWidgetPager.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardWidgetPager.java
index 685e8ee..7df1512 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardWidgetPager.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardWidgetPager.java
@@ -770,6 +770,9 @@ public class KeyguardWidgetPager extends PagedView implements PagedView.PageSwit
}
View currentPage = getPageAt(getCurrentPage());
currentPage.setPivotY(0);
+ // Note: we are working around the issue that setting the x-pivot to the same value as it
+ // was does not actually work.
+ currentPage.setPivotX(0);
currentPage.setPivotX(currentPage.getMeasuredWidth() / 2);
if (!(currentPage.getScaleX() < 1f || currentPage.getScaleY() < 1f)) {
mZoomInOutAnim = new AnimatorSet();