Merge "Animate owner info during wake-up transition" into pi-dev
diff --git a/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java b/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java
index 49dba68..41df196 100644
--- a/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java
+++ b/packages/SystemUI/src/com/android/keyguard/KeyguardStatusView.java
@@ -282,6 +282,7 @@
         mClockView.setPivotX(mClockView.getWidth() / 2);
         mClockView.setPivotY(0);
         mLastLayoutHeight = getHeight();
+        layoutOwnerInfo();
     }
 
     @Override
@@ -418,9 +419,11 @@
         if (mLogoutView != null) {
             mLogoutView.setAlpha(dark ? 0 : 1);
         }
+
         if (mOwnerInfo != null) {
             boolean hasText = !TextUtils.isEmpty(mOwnerInfo.getText());
-            mOwnerInfo.setVisibility(hasText && mDarkAmount != 1 ? VISIBLE : GONE);
+            mOwnerInfo.setVisibility(hasText ? VISIBLE : GONE);
+            layoutOwnerInfo();
         }
 
         final int blendedTextColor = ColorUtils.blendARGB(mTextColor, Color.WHITE, mDarkAmount);
@@ -430,6 +433,20 @@
         mClockSeparator.setBackgroundColor(blendedTextColor);
     }
 
+    private void layoutOwnerInfo() {
+        if (mOwnerInfo != null && mOwnerInfo.getVisibility() != GONE) {
+            // Animate owner info during wake-up transition
+            mOwnerInfo.setAlpha(1f - mDarkAmount);
+
+            float ratio = mDarkAmount;
+            // Calculate how much of it we should crop in order to have a smooth transition
+            int collapsed = mOwnerInfo.getTop() - mOwnerInfo.getPaddingTop();
+            int expanded = mOwnerInfo.getBottom() + mOwnerInfo.getPaddingBottom();
+            int toRemove = (int) ((expanded - collapsed) * ratio);
+            setBottom(getMeasuredHeight() - toRemove);
+        }
+    }
+
     public void setPulsing(boolean pulsing, boolean animate) {
         mPulsing = pulsing;
         mKeyguardSlice.setPulsing(pulsing, animate);