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:
Gus Prevas
2015-09-25 17:24:39 +00:00
committed by Android Git Automerger
6 changed files with 54 additions and 3 deletions

View File

@@ -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.
*

View File

@@ -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>

View File

@@ -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>
<!-- ============================= -->

View File

@@ -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:

View File

@@ -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>

View File

@@ -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" />