diff options
| author | 2019-04-23 23:48:41 +0000 | |
|---|---|---|
| committer | 2019-04-23 23:48:41 +0000 | |
| commit | b8c3309a6473b88f089b4fa6322350d25e8cb067 (patch) | |
| tree | c30ae3d28e3c552ab2f978d90ed54e1b59ad22fa | |
| parent | 991aff4191bb9964d9ce3d8e07a8fee6f9da7c71 (diff) | |
| parent | ac1d88c07a598082657b9abc4413ff8690b3419f (diff) | |
Merge "Sharesheet - update direct share loading animation" into qt-dev
| -rw-r--r-- | core/java/com/android/internal/app/ChooserActivity.java | 6 | ||||
| -rw-r--r-- | core/res/res/drawable/chooser_direct_share_icon_placeholder.xml | 84 | ||||
| -rw-r--r-- | core/res/res/drawable/resolver_icon_placeholder.xml | 2 | ||||
| -rw-r--r-- | core/res/res/values-night/colors.xml | 2 | ||||
| -rw-r--r-- | core/res/res/values/colors.xml | 2 | ||||
| -rw-r--r-- | core/res/res/values/colors_device_defaults.xml | 4 | ||||
| -rw-r--r-- | core/res/res/values/symbols.xml | 4 |
7 files changed, 102 insertions, 2 deletions
diff --git a/core/java/com/android/internal/app/ChooserActivity.java b/core/java/com/android/internal/app/ChooserActivity.java index e6cff8039909..0478a82bdbb7 100644 --- a/core/java/com/android/internal/app/ChooserActivity.java +++ b/core/java/com/android/internal/app/ChooserActivity.java @@ -60,6 +60,7 @@ import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Path; +import android.graphics.drawable.AnimatedVectorDrawable; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.graphics.drawable.Icon; @@ -1680,7 +1681,10 @@ public class ChooserActivity extends ResolverActivity { final class PlaceHolderTargetInfo extends NotSelectableTargetInfo { public Drawable getDisplayIcon() { - return getDrawable(R.drawable.resolver_icon_placeholder); + AnimatedVectorDrawable avd = (AnimatedVectorDrawable) + getDrawable(R.drawable.chooser_direct_share_icon_placeholder); + avd.start(); // Start animation after generation + return avd; } } diff --git a/core/res/res/drawable/chooser_direct_share_icon_placeholder.xml b/core/res/res/drawable/chooser_direct_share_icon_placeholder.xml new file mode 100644 index 000000000000..838cb49ca79e --- /dev/null +++ b/core/res/res/drawable/chooser_direct_share_icon_placeholder.xml @@ -0,0 +1,84 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- + Copyright (C) 2019 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<animated-vector xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:aapt="http://schemas.android.com/aapt"> + <aapt:attr name="android:drawable"> + <vector xmlns:android="http://schemas.android.com/apk/res/android" + xmlns:aapt="http://schemas.android.com/aapt" + android:width="36dp" + android:height="36dp" + android:viewportHeight="64" + android:viewportWidth="64"> + + <group android:name="background"> + <path android:pathData="M0,0 L 64,0 64,64 0,64 z" + android:fillColor="@color/chooser_gradient_background"/> + </group> + + <!-- Gradient starts offscreen so it is not visible in the first frame before start --> + <group android:name="gradient" android:translateX="-128"> + <path + android:pathData="M0,0 L 128,0 128,128 0,128 z"> + <aapt:attr name="android:fillColor"> + <gradient + android:type="linear" + android:startX="0" + android:endX="128" + android:startY="0" + android:endY="0"> + <item + android:color="@android:color/transparent" + android:offset="0.0" /> + <item + android:color="@color/chooser_gradient_highlight" + android:offset="0.5" /> + <item + android:color="@android:color/transparent" + android:offset="1.0" /> + </gradient> + </aapt:attr> + </path> + </group> + + <!-- Use a foregroud with a cutout shape matching direct share inset for appx applied + shadow. Using clip-path is a more elegant solution but leaves awful jaggies around + the path's shape. --> + <group android:name="cover"> + <path android:fillColor="?attr/colorBackgroundFloating" + android:pathData="M0,0 L64,0 L64,64 L0,64 L0,0 Z M59.0587325,42.453601 C60.3124932,39.2104785 61,35.6855272 61,32 C61,15.9837423 48.0162577,3 32,3 C15.9837423,3 3,15.9837423 3,32 C3,48.0162577 15.9837423,61 32,61 C35.6855272,61 39.2104785,60.3124932 42.453601,59.0587325 C44.3362195,60.2864794 46.5847839,61 49,61 C55.627417,61 61,55.627417 61,49 C61,46.5847839 60.2864794,44.3362195 59.0587325,42.453601 Z"/> + </group> + </vector> + </aapt:attr> + + <!-- This AVD uses special properties so that once started it will loop infinitely with no + need for callbacks to restart. --> + <target android:name="gradient"> + <aapt:attr name="android:animation"> + <objectAnimator + android:duration="1700" + android:pathData="M -128,0 L 192,0" + android:propertyXName="translateX" + android:repeatMode="restart" + android:repeatCount="infinite" + android:startOffset="0"> + <aapt:attr name="android:interpolator"> + <pathInterpolator android:pathData="M 0.0,0.0 c0.167,0.167 0.833,0.833 1.0,1.0" /> + </aapt:attr> + </objectAnimator> + </aapt:attr> + </target> +</animated-vector>
\ No newline at end of file diff --git a/core/res/res/drawable/resolver_icon_placeholder.xml b/core/res/res/drawable/resolver_icon_placeholder.xml index 049cfeecc4c6..7236fbe8a655 100644 --- a/core/res/res/drawable/resolver_icon_placeholder.xml +++ b/core/res/res/drawable/resolver_icon_placeholder.xml @@ -14,6 +14,6 @@ limitations under the License. --> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval"> - <solid android:color="#10000000"/> + <solid android:color="@color/chooser_gradient_background"/> <size android:width="36dp" android:height="36dp"/> </shape>
\ No newline at end of file diff --git a/core/res/res/values-night/colors.xml b/core/res/res/values-night/colors.xml index 6aca49b673a3..c5e72f012a21 100644 --- a/core/res/res/values-night/colors.xml +++ b/core/res/res/values-night/colors.xml @@ -30,4 +30,6 @@ <color name="notification_material_background_color">@color/black</color> <color name="chooser_row_divider">@color/list_divider_color_dark</color> + <color name="chooser_gradient_background">@color/loading_gradient_background_color_dark</color> + <color name="chooser_gradient_highlight">@color/loading_gradient_highlight_color_dark</color> </resources> diff --git a/core/res/res/values/colors.xml b/core/res/res/values/colors.xml index ef26cd74cde0..048f341ffe32 100644 --- a/core/res/res/values/colors.xml +++ b/core/res/res/values/colors.xml @@ -216,4 +216,6 @@ <color name="default_magnifier_color_overlay">#00FFFFFF</color> <color name="chooser_row_divider">@color/list_divider_color_light</color> + <color name="chooser_gradient_background">@color/loading_gradient_background_color_light</color> + <color name="chooser_gradient_highlight">@color/loading_gradient_highlight_color_light</color> </resources> diff --git a/core/res/res/values/colors_device_defaults.xml b/core/res/res/values/colors_device_defaults.xml index 5af3c2af01db..112f98e5ef35 100644 --- a/core/res/res/values/colors_device_defaults.xml +++ b/core/res/res/values/colors_device_defaults.xml @@ -48,4 +48,8 @@ <color name="list_divider_color_light">#ffdadce0</color> <color name="list_divider_color_dark">#85ffffff</color> + <color name="loading_gradient_background_color_dark">#2D3033</color> + <color name="loading_gradient_background_color_light">#DADCE0</color> + <color name="loading_gradient_highlight_color_dark">#3C4043</color> + <color name="loading_gradient_highlight_color_light">#F1F3F4</color> </resources> diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index 762a5b59db76..fbbbecde74ae 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -3762,4 +3762,8 @@ <java-symbol type="drawable" name="perm_group_camera" /> <java-symbol type="drawable" name="perm_group_location" /> <java-symbol type="drawable" name="perm_group_microphone" /> + + <java-symbol type="drawable" name="chooser_direct_share_icon_placeholder" /> + <java-symbol type="color" name="chooser_gradient_background" /> + <java-symbol type="color" name="chooser_gradient_highlight" /> </resources> |