Loading core/java/android/widget/RemoteViews.java +38 −3 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import android.content.pm.PackageManager.NameNotFoundException; import android.content.res.ColorStateList; import android.content.res.Configuration; import android.content.res.Resources; import android.content.res.TypedArray; import android.graphics.Bitmap; import android.graphics.PorterDuff; import android.graphics.Rect; Loading @@ -55,6 +56,8 @@ import android.view.ViewGroup; import android.widget.AdapterView.OnItemClickListener; import libcore.util.Objects; import com.android.internal.R; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; Loading Loading @@ -206,14 +209,22 @@ public class RemoteViews implements Parcelable, Filter { /** @hide */ public static class OnClickHandler { private int mEnterAnimationId; public boolean onClickHandler(View view, PendingIntent pendingIntent, Intent fillInIntent) { try { // TODO: Unregister this handler if PendingIntent.FLAG_ONE_SHOT? Context context = view.getContext(); ActivityOptions opts = ActivityOptions.makeScaleUpAnimation(view, ActivityOptions opts; if (mEnterAnimationId != 0) { opts = ActivityOptions.makeCustomAnimation(context, mEnterAnimationId, 0); } else { opts = ActivityOptions.makeScaleUpAnimation(view, 0, 0, view.getMeasuredWidth(), view.getMeasuredHeight()); } context.startIntentSender( pendingIntent.getIntentSender(), fillInIntent, Intent.FLAG_ACTIVITY_NEW_TASK, Loading @@ -228,6 +239,10 @@ public class RemoteViews implements Parcelable, Filter { } return true; } public void setEnterAnimationId(int enterAnimationId) { mEnterAnimationId = enterAnimationId; } } /** Loading Loading @@ -2761,11 +2776,31 @@ public class RemoteViews implements Parcelable, Filter { inflater.setFilter(this); result = inflater.inflate(rvToApply.getLayoutId(), parent, false); loadTransitionOverride(context, handler); rvToApply.performApply(result, parent, handler); return result; } private static void loadTransitionOverride(Context context, RemoteViews.OnClickHandler handler) { if (handler != null && context.getResources().getBoolean( com.android.internal.R.bool.config_overrideRemoteViewsActivityTransition)) { TypedArray windowStyle = context.getTheme().obtainStyledAttributes( com.android.internal.R.styleable.Window); int windowAnimations = windowStyle.getResourceId( com.android.internal.R.styleable.Window_windowAnimationStyle, 0); TypedArray windowAnimationStyle = context.obtainStyledAttributes( windowAnimations, com.android.internal.R.styleable.WindowAnimation); handler.setEnterAnimationId(windowAnimationStyle.getResourceId( com.android.internal.R.styleable. WindowAnimation_activityOpenRemoteViewsEnterAnimation, 0)); windowStyle.recycle(); windowAnimationStyle.recycle(); } } /** * Applies all of the actions to the provided view. * Loading core/res/res/values-watch/config.xml +3 −0 Original line number Diff line number Diff line Loading @@ -54,4 +54,7 @@ <!-- Do not show the message saying USB is connected in charging mode. --> <bool name="config_usbChargingMessage">false</bool> <!-- Use a custom transition for RemoteViews. --> <bool name="config_overrideRemoteViewsActivityTransition">true</bool> </resources> core/res/res/values/attrs.xml +7 −0 Original line number Diff line number Diff line Loading @@ -2144,6 +2144,13 @@ i (which is exiting the screen). The wallpaper remains static behind the animation. --> <attr name="wallpaperIntraCloseExitAnimation" format="reference" /> <!-- When opening a new activity from a RemoteViews, this is the animation that is run on the next activity (which is entering the screen). Requires config_overrideRemoteViewsActivityTransition to be true. --> <attr name="activityOpenRemoteViewsEnterAnimation" format="reference" /> </declare-styleable> <!-- ============================= --> Loading core/res/res/values/config.xml +4 −0 Original line number Diff line number Diff line Loading @@ -2217,6 +2217,10 @@ <bool name="config_defaultWindowFeatureOptionsPanel">true</bool> <bool name="config_defaultWindowFeatureContextMenu">true</bool> <!-- If true, the transition for a RemoteViews is read from a resource instead of using the default scale-up transition. --> <bool name="config_overrideRemoteViewsActivityTransition">false</bool> <!-- This config is used to check if the carrier requires converting destination number before sending out a SMS. Formats for this configuration as below: Loading core/res/res/values/styles_micro.xml +1 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ <style name="Animation.Micro.Activity" parent="Animation.Material.Activity"> <item name="activityOpenEnterAnimation">@anim/slide_in_micro</item> <item name="activityOpenRemoteViewsEnterAnimation">@anim/slide_in_micro</item> <item name="activityOpenExitAnimation">@null</item> <item name="activityCloseEnterAnimation">@null</item> <item name="activityCloseExitAnimation">@anim/slide_out_micro</item> Loading Loading
core/java/android/widget/RemoteViews.java +38 −3 Original line number Diff line number Diff line Loading @@ -31,6 +31,7 @@ import android.content.pm.PackageManager.NameNotFoundException; import android.content.res.ColorStateList; import android.content.res.Configuration; import android.content.res.Resources; import android.content.res.TypedArray; import android.graphics.Bitmap; import android.graphics.PorterDuff; import android.graphics.Rect; Loading @@ -55,6 +56,8 @@ import android.view.ViewGroup; import android.widget.AdapterView.OnItemClickListener; import libcore.util.Objects; import com.android.internal.R; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; Loading Loading @@ -206,14 +209,22 @@ public class RemoteViews implements Parcelable, Filter { /** @hide */ public static class OnClickHandler { private int mEnterAnimationId; public boolean onClickHandler(View view, PendingIntent pendingIntent, Intent fillInIntent) { try { // TODO: Unregister this handler if PendingIntent.FLAG_ONE_SHOT? Context context = view.getContext(); ActivityOptions opts = ActivityOptions.makeScaleUpAnimation(view, ActivityOptions opts; if (mEnterAnimationId != 0) { opts = ActivityOptions.makeCustomAnimation(context, mEnterAnimationId, 0); } else { opts = ActivityOptions.makeScaleUpAnimation(view, 0, 0, view.getMeasuredWidth(), view.getMeasuredHeight()); } context.startIntentSender( pendingIntent.getIntentSender(), fillInIntent, Intent.FLAG_ACTIVITY_NEW_TASK, Loading @@ -228,6 +239,10 @@ public class RemoteViews implements Parcelable, Filter { } return true; } public void setEnterAnimationId(int enterAnimationId) { mEnterAnimationId = enterAnimationId; } } /** Loading Loading @@ -2761,11 +2776,31 @@ public class RemoteViews implements Parcelable, Filter { inflater.setFilter(this); result = inflater.inflate(rvToApply.getLayoutId(), parent, false); loadTransitionOverride(context, handler); rvToApply.performApply(result, parent, handler); return result; } private static void loadTransitionOverride(Context context, RemoteViews.OnClickHandler handler) { if (handler != null && context.getResources().getBoolean( com.android.internal.R.bool.config_overrideRemoteViewsActivityTransition)) { TypedArray windowStyle = context.getTheme().obtainStyledAttributes( com.android.internal.R.styleable.Window); int windowAnimations = windowStyle.getResourceId( com.android.internal.R.styleable.Window_windowAnimationStyle, 0); TypedArray windowAnimationStyle = context.obtainStyledAttributes( windowAnimations, com.android.internal.R.styleable.WindowAnimation); handler.setEnterAnimationId(windowAnimationStyle.getResourceId( com.android.internal.R.styleable. WindowAnimation_activityOpenRemoteViewsEnterAnimation, 0)); windowStyle.recycle(); windowAnimationStyle.recycle(); } } /** * Applies all of the actions to the provided view. * Loading
core/res/res/values-watch/config.xml +3 −0 Original line number Diff line number Diff line Loading @@ -54,4 +54,7 @@ <!-- Do not show the message saying USB is connected in charging mode. --> <bool name="config_usbChargingMessage">false</bool> <!-- Use a custom transition for RemoteViews. --> <bool name="config_overrideRemoteViewsActivityTransition">true</bool> </resources>
core/res/res/values/attrs.xml +7 −0 Original line number Diff line number Diff line Loading @@ -2144,6 +2144,13 @@ i (which is exiting the screen). The wallpaper remains static behind the animation. --> <attr name="wallpaperIntraCloseExitAnimation" format="reference" /> <!-- When opening a new activity from a RemoteViews, this is the animation that is run on the next activity (which is entering the screen). Requires config_overrideRemoteViewsActivityTransition to be true. --> <attr name="activityOpenRemoteViewsEnterAnimation" format="reference" /> </declare-styleable> <!-- ============================= --> Loading
core/res/res/values/config.xml +4 −0 Original line number Diff line number Diff line Loading @@ -2217,6 +2217,10 @@ <bool name="config_defaultWindowFeatureOptionsPanel">true</bool> <bool name="config_defaultWindowFeatureContextMenu">true</bool> <!-- If true, the transition for a RemoteViews is read from a resource instead of using the default scale-up transition. --> <bool name="config_overrideRemoteViewsActivityTransition">false</bool> <!-- This config is used to check if the carrier requires converting destination number before sending out a SMS. Formats for this configuration as below: Loading
core/res/res/values/styles_micro.xml +1 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ <style name="Animation.Micro.Activity" parent="Animation.Material.Activity"> <item name="activityOpenEnterAnimation">@anim/slide_in_micro</item> <item name="activityOpenRemoteViewsEnterAnimation">@anim/slide_in_micro</item> <item name="activityOpenExitAnimation">@null</item> <item name="activityCloseEnterAnimation">@null</item> <item name="activityCloseExitAnimation">@anim/slide_out_micro</item> Loading