Loading core/java/com/android/internal/app/ChooserActivity.java +5 −1 Original line number Original line Diff line number Diff line Loading @@ -60,6 +60,7 @@ import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Paint; import android.graphics.Path; import android.graphics.Path; import android.graphics.drawable.AnimatedVectorDrawable; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable; import android.graphics.drawable.Icon; import android.graphics.drawable.Icon; Loading Loading @@ -1680,7 +1681,10 @@ public class ChooserActivity extends ResolverActivity { final class PlaceHolderTargetInfo extends NotSelectableTargetInfo { final class PlaceHolderTargetInfo extends NotSelectableTargetInfo { public Drawable getDisplayIcon() { 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; } } } } Loading core/res/res/drawable/chooser_direct_share_icon_placeholder.xml 0 → 100644 +84 −0 Original line number Original line Diff line number Diff line <?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 core/res/res/drawable/resolver_icon_placeholder.xml +1 −1 Original line number Original line Diff line number Diff line Loading @@ -14,6 +14,6 @@ limitations under the License. limitations under the License. --> --> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval"> <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"/> <size android:width="36dp" android:height="36dp"/> </shape> </shape> No newline at end of file core/res/res/values-night/colors.xml +2 −0 Original line number Original line Diff line number Diff line Loading @@ -30,4 +30,6 @@ <color name="notification_material_background_color">@color/black</color> <color name="notification_material_background_color">@color/black</color> <color name="chooser_row_divider">@color/list_divider_color_dark</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> </resources> core/res/res/values/colors.xml +2 −0 Original line number Original line Diff line number Diff line Loading @@ -216,4 +216,6 @@ <color name="default_magnifier_color_overlay">#00FFFFFF</color> <color name="default_magnifier_color_overlay">#00FFFFFF</color> <color name="chooser_row_divider">@color/list_divider_color_light</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> </resources> Loading
core/java/com/android/internal/app/ChooserActivity.java +5 −1 Original line number Original line Diff line number Diff line Loading @@ -60,6 +60,7 @@ import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Paint; import android.graphics.Path; import android.graphics.Path; import android.graphics.drawable.AnimatedVectorDrawable; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable; import android.graphics.drawable.Icon; import android.graphics.drawable.Icon; Loading Loading @@ -1680,7 +1681,10 @@ public class ChooserActivity extends ResolverActivity { final class PlaceHolderTargetInfo extends NotSelectableTargetInfo { final class PlaceHolderTargetInfo extends NotSelectableTargetInfo { public Drawable getDisplayIcon() { 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; } } } } Loading
core/res/res/drawable/chooser_direct_share_icon_placeholder.xml 0 → 100644 +84 −0 Original line number Original line Diff line number Diff line <?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
core/res/res/drawable/resolver_icon_placeholder.xml +1 −1 Original line number Original line Diff line number Diff line Loading @@ -14,6 +14,6 @@ limitations under the License. limitations under the License. --> --> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval"> <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"/> <size android:width="36dp" android:height="36dp"/> </shape> </shape> No newline at end of file
core/res/res/values-night/colors.xml +2 −0 Original line number Original line Diff line number Diff line Loading @@ -30,4 +30,6 @@ <color name="notification_material_background_color">@color/black</color> <color name="notification_material_background_color">@color/black</color> <color name="chooser_row_divider">@color/list_divider_color_dark</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> </resources>
core/res/res/values/colors.xml +2 −0 Original line number Original line Diff line number Diff line Loading @@ -216,4 +216,6 @@ <color name="default_magnifier_color_overlay">#00FFFFFF</color> <color name="default_magnifier_color_overlay">#00FFFFFF</color> <color name="chooser_row_divider">@color/list_divider_color_light</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> </resources>