am b17d1e5e: Merge "Adds an option to override RemoteViews transition." into cw-e-dev
* commit 'b17d1e5e6aa53f5925efc2135b9a603a9a0ed2df': Adds an option to override RemoteViews transition.
This commit is contained in:
@@ -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;
|
||||
@@ -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;
|
||||
@@ -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,
|
||||
0, 0,
|
||||
view.getMeasuredWidth(), view.getMeasuredHeight());
|
||||
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,
|
||||
@@ -228,6 +239,10 @@ public class RemoteViews implements Parcelable, Filter {
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public void setEnterAnimationId(int enterAnimationId) {
|
||||
mEnterAnimationId = enterAnimationId;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -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.
|
||||
*
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
<!-- ============================= -->
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -2203,6 +2203,7 @@
|
||||
<java-symbol type="bool" name="config_sms_force_7bit_encoding" />
|
||||
<java-symbol type="bool" name="config_defaultWindowFeatureOptionsPanel" />
|
||||
<java-symbol type="bool" name="config_defaultWindowFeatureContextMenu" />
|
||||
<java-symbol type="bool" name="config_overrideRemoteViewsActivityTransition" />
|
||||
|
||||
<java-symbol type="layout" name="simple_account_item" />
|
||||
<java-symbol type="array" name="config_sms_convert_destination_number_support" />
|
||||
|
||||
Reference in New Issue
Block a user