Merge "Improve animation from keyguard shortcut" into tm-qpr-dev
diff --git a/packages/SystemUI/animation/src/com/android/systemui/animation/GhostedViewLaunchAnimatorController.kt b/packages/SystemUI/animation/src/com/android/systemui/animation/GhostedViewLaunchAnimatorController.kt
index dfac02d..24413c0 100644
--- a/packages/SystemUI/animation/src/com/android/systemui/animation/GhostedViewLaunchAnimatorController.kt
+++ b/packages/SystemUI/animation/src/com/android/systemui/animation/GhostedViewLaunchAnimatorController.kt
@@ -26,6 +26,7 @@
 import android.graphics.drawable.GradientDrawable
 import android.graphics.drawable.InsetDrawable
 import android.graphics.drawable.LayerDrawable
+import android.graphics.drawable.StateListDrawable
 import android.util.Log
 import android.view.GhostView
 import android.view.View
@@ -341,6 +342,10 @@
                 }
             }
 
+            if (drawable is StateListDrawable) {
+                return findGradientDrawable(drawable.current)
+            }
+
             return null
         }
     }
diff --git a/packages/SystemUI/res/drawable/keyguard_bottom_affordance_bg.xml b/packages/SystemUI/res/drawable/keyguard_bottom_affordance_bg.xml
index 18fcebb..dfb73a9 100644
--- a/packages/SystemUI/res/drawable/keyguard_bottom_affordance_bg.xml
+++ b/packages/SystemUI/res/drawable/keyguard_bottom_affordance_bg.xml
@@ -27,22 +27,26 @@
           android:top="3dp"
           android:right="3dp"
           android:bottom="3dp">
-        <shape android:shape="oval">
+        <!-- We make the shapes a rounded rectangle instead of an oval so that it can animate -->
+        <!-- properly into an app/dialog. -->
+        <shape android:shape="rectangle">
           <solid android:color="?androidprv:attr/colorSurface"/>
           <size
-              android:width="@dimen/keyguard_affordance_width"
-              android:height="@dimen/keyguard_affordance_height"/>
+              android:width="@dimen/keyguard_affordance_fixed_width"
+              android:height="@dimen/keyguard_affordance_fixed_height"/>
+          <corners android:radius="@dimen/keyguard_affordance_fixed_radius"/>
         </shape>
       </item>
 
       <item>
-        <shape android:shape="oval">
+        <shape android:shape="rectangle">
           <stroke
               android:color="@color/control_primary_text"
               android:width="2dp"/>
           <size
-              android:width="@dimen/keyguard_affordance_width"
-              android:height="@dimen/keyguard_affordance_height"/>
+              android:width="@dimen/keyguard_affordance_fixed_width"
+              android:height="@dimen/keyguard_affordance_fixed_height"/>
+          <corners android:radius="@dimen/keyguard_affordance_fixed_radius"/>
         </shape>
       </item>
     </layer-list>
@@ -55,11 +59,12 @@
           android:top="3dp"
           android:right="3dp"
           android:bottom="3dp">
-        <shape android:shape="oval">
+        <shape android:shape="rectangle">
           <solid android:color="?androidprv:attr/colorSurface"/>
           <size
-              android:width="@dimen/keyguard_affordance_width"
-              android:height="@dimen/keyguard_affordance_height"/>
+              android:width="@dimen/keyguard_affordance_fixed_width"
+              android:height="@dimen/keyguard_affordance_fixed_height"/>
+          <corners android:radius="@dimen/keyguard_affordance_fixed_radius"/>
         </shape>
       </item>
     </layer-list>
diff --git a/packages/SystemUI/res/values-sw600dp/dimens.xml b/packages/SystemUI/res/values-sw600dp/dimens.xml
index 9bc0dde..db7fb48 100644
--- a/packages/SystemUI/res/values-sw600dp/dimens.xml
+++ b/packages/SystemUI/res/values-sw600dp/dimens.xml
@@ -30,10 +30,6 @@
     <!-- Margin on the left side of the carrier text on Keyguard -->
     <dimen name="keyguard_carrier_text_margin">24dp</dimen>
 
-    <!-- The width/height of the phone/camera/unlock icon on keyguard. -->
-    <dimen name="keyguard_affordance_height">80dp</dimen>
-    <dimen name="keyguard_affordance_width">120dp</dimen>
-
     <!-- Screen pinning request width -->
     <dimen name="screen_pinning_request_width">400dp</dimen>
     <!-- Screen pinning request bottom button circle widths -->
diff --git a/packages/SystemUI/res/values/dimens.xml b/packages/SystemUI/res/values/dimens.xml
index 890d964..c2a40ab 100644
--- a/packages/SystemUI/res/values/dimens.xml
+++ b/packages/SystemUI/res/values/dimens.xml
@@ -762,12 +762,10 @@
     <dimen name="go_to_full_shade_appearing_translation">200dp</dimen>
 
     <!-- The width/height of the keyguard bottom area icon view on keyguard. -->
-    <dimen name="keyguard_affordance_height">48dp</dimen>
-    <dimen name="keyguard_affordance_width">48dp</dimen>
-
     <dimen name="keyguard_affordance_fixed_height">48dp</dimen>
     <dimen name="keyguard_affordance_fixed_width">48dp</dimen>
     <dimen name="keyguard_affordance_fixed_radius">24dp</dimen>
+
     <!-- Amount the button should shake when it's not long-pressed for long enough. -->
     <dimen name="keyguard_affordance_shake_amplitude">8dp</dimen>