summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/java/android/widget/RemoteViews.java69
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java10
2 files changed, 37 insertions, 42 deletions
diff --git a/core/java/android/widget/RemoteViews.java b/core/java/android/widget/RemoteViews.java
index e29000d..4710798 100644
--- a/core/java/android/widget/RemoteViews.java
+++ b/core/java/android/widget/RemoteViews.java
@@ -128,7 +128,6 @@ public class RemoteViews implements Parcelable, Filter {
private boolean mIsWidgetCollectionChild = false;
private static final OnClickHandler DEFAULT_ON_CLICK_HANDLER = new OnClickHandler();
- private OnClickHandler mOnClickHandler = DEFAULT_ON_CLICK_HANDLER;
/**
* This annotation indicates that a subclass of View is alllowed to be used
@@ -185,8 +184,8 @@ public class RemoteViews implements Parcelable, Filter {
* SUBCLASSES MUST BE IMMUTABLE SO CLONE WORKS!!!!!
*/
private abstract static class Action implements Parcelable {
- public abstract void apply(RemoteViews owner, View root,
- ViewGroup rootParent) throws ActionException;
+ public abstract void apply(View root, ViewGroup rootParent,
+ OnClickHandler handler) throws ActionException;
public int describeContents() {
return 0;
@@ -229,7 +228,7 @@ public class RemoteViews implements Parcelable, Filter {
}
@Override
- public void apply(RemoteViews owner, View root, ViewGroup rootParent) {
+ public void apply(View root, ViewGroup rootParent, OnClickHandler handler) {
final View view = root.findViewById(viewId);
if (!(view instanceof AdapterView<?>)) return;
@@ -260,7 +259,7 @@ public class RemoteViews implements Parcelable, Filter {
}
@Override
- public void apply(RemoteViews owner, View root, ViewGroup rootParent) {
+ public void apply(View root, ViewGroup rootParent, final OnClickHandler handler) {
final View target = root.findViewById(viewId);
if (target == null) return;
@@ -272,7 +271,6 @@ public class RemoteViews implements Parcelable, Filter {
if (target == root) {
target.setTagInternal(com.android.internal.R.id.fillInIntent, fillInIntent);
} else if (target != null && fillInIntent != null) {
- final OnClickHandler clicker = owner.mOnClickHandler;
OnClickListener listener = new OnClickListener() {
public void onClick(View v) {
// Insure that this view is a child of an AdapterView
@@ -310,7 +308,7 @@ public class RemoteViews implements Parcelable, Filter {
rect.bottom = (int) ((pos[1] + v.getHeight()) * appScale + 0.5f);
fillInIntent.setSourceBounds(rect);
- clicker.onClickHandler(v, pendingIntent, fillInIntent);
+ handler.onClickHandler(v, pendingIntent, fillInIntent);
}
};
@@ -342,14 +340,13 @@ public class RemoteViews implements Parcelable, Filter {
}
@Override
- public void apply(RemoteViews owner, View root, ViewGroup rootParent) {
+ public void apply(View root, ViewGroup rootParent, final OnClickHandler handler) {
final View target = root.findViewById(viewId);
if (target == null) return;
// If the view isn't an AdapterView, setting a PendingIntent template doesn't make sense
if (target instanceof AdapterView<?>) {
AdapterView<?> av = (AdapterView<?>) target;
- final OnClickHandler clicker = owner.mOnClickHandler;
// The PendingIntent template is stored in the view's tag.
OnItemClickListener listener = new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
@@ -389,7 +386,7 @@ public class RemoteViews implements Parcelable, Filter {
final Intent intent = new Intent();
intent.setSourceBounds(rect);
- clicker.onClickHandler(view, pendingIntentTemplate, fillInIntent);
+ handler.onClickHandler(view, pendingIntentTemplate, fillInIntent);
}
}
};
@@ -426,7 +423,7 @@ public class RemoteViews implements Parcelable, Filter {
}
@Override
- public void apply(RemoteViews owner, View root, ViewGroup rootParent) {
+ public void apply(View root, ViewGroup rootParent, OnClickHandler handler) {
final View target = root.findViewById(viewId);
if (target == null) return;
@@ -494,7 +491,7 @@ public class RemoteViews implements Parcelable, Filter {
}
@Override
- public void apply(RemoteViews owner, View root, ViewGroup rootParent) {
+ public void apply(View root, ViewGroup rootParent, final OnClickHandler handler) {
final View target = root.findViewById(viewId);
if (target == null) return;
@@ -515,7 +512,6 @@ public class RemoteViews implements Parcelable, Filter {
if (target != null) {
// If the pendingIntent is null, we clear the onClickListener
- final OnClickHandler clicker = owner.mOnClickHandler;
OnClickListener listener = null;
if (pendingIntent != null) {
listener = new OnClickListener() {
@@ -535,7 +531,7 @@ public class RemoteViews implements Parcelable, Filter {
final Intent intent = new Intent();
intent.setSourceBounds(rect);
- clicker.onClickHandler(v, pendingIntent, intent);
+ handler.onClickHandler(v, pendingIntent, intent);
}
};
}
@@ -602,7 +598,7 @@ public class RemoteViews implements Parcelable, Filter {
}
@Override
- public void apply(RemoteViews owner, View root, ViewGroup rootParent) {
+ public void apply(View root, ViewGroup rootParent, OnClickHandler handler) {
final View target = root.findViewById(viewId);
if (target == null) return;
@@ -662,7 +658,7 @@ public class RemoteViews implements Parcelable, Filter {
}
@Override
- public void apply(RemoteViews owner, View root, ViewGroup rootParent) {
+ public void apply(View root, ViewGroup rootParent, OnClickHandler handler) {
final View view = root.findViewById(viewId);
if (view == null) return;
@@ -786,11 +782,11 @@ public class RemoteViews implements Parcelable, Filter {
}
@Override
- public void apply(RemoteViews owner, View root,
- ViewGroup rootParent) throws ActionException {
+ public void apply(View root, ViewGroup rootParent,
+ OnClickHandler handler) throws ActionException {
ReflectionAction ra = new ReflectionAction(viewId, methodName, ReflectionAction.BITMAP,
bitmap);
- ra.apply(owner, root, rootParent);
+ ra.apply(root, rootParent, handler);
}
@Override
@@ -1006,7 +1002,7 @@ public class RemoteViews implements Parcelable, Filter {
}
@Override
- public void apply(RemoteViews owner, View root, ViewGroup rootParent) {
+ public void apply(View root, ViewGroup rootParent, OnClickHandler handler) {
final View view = root.findViewById(viewId);
if (view == null) return;
@@ -1108,13 +1104,13 @@ public class RemoteViews implements Parcelable, Filter {
}
@Override
- public void apply(RemoteViews owner, View root, ViewGroup rootParent) {
+ public void apply(View root, ViewGroup rootParent, OnClickHandler handler) {
final Context context = root.getContext();
final ViewGroup target = (ViewGroup) root.findViewById(viewId);
if (target == null) return;
if (nestedViews != null) {
// Inflate nested views and add as children
- target.addView(nestedViews.apply(owner, context, target));
+ target.addView(nestedViews.apply(context, target, handler));
} else {
// Clear all children when nested views omitted
target.removeAllViews();
@@ -1175,7 +1171,7 @@ public class RemoteViews implements Parcelable, Filter {
}
@Override
- public void apply(RemoteViews owner, View root, ViewGroup rootParent) {
+ public void apply(View root, ViewGroup rootParent, OnClickHandler handler) {
final Context context = root.getContext();
final TextView target = (TextView) root.findViewById(viewId);
if (target == null) return;
@@ -1217,7 +1213,7 @@ public class RemoteViews implements Parcelable, Filter {
}
@Override
- public void apply(RemoteViews owner, View root, ViewGroup rootParent) {
+ public void apply(View root, ViewGroup rootParent, OnClickHandler handler) {
final Context context = root.getContext();
final TextView target = (TextView) root.findViewById(viewId);
if (target == null) return;
@@ -1261,7 +1257,7 @@ public class RemoteViews implements Parcelable, Filter {
}
@Override
- public void apply(RemoteViews owner, View root, ViewGroup rootParent) {
+ public void apply(View root, ViewGroup rootParent, OnClickHandler handler) {
final Context context = root.getContext();
final View target = root.findViewById(viewId);
if (target == null) return;
@@ -2099,11 +2095,6 @@ public class RemoteViews implements Parcelable, Filter {
return this;
}
- /** @hide */
- public void setOnClickHandler(OnClickHandler handler) {
- mOnClickHandler = handler;
- }
-
/**
* Inflates the view hierarchy represented by this object and applies
* all of the actions.
@@ -2116,10 +2107,11 @@ public class RemoteViews implements Parcelable, Filter {
* @return The inflated view hierarchy
*/
public View apply(Context context, ViewGroup parent) {
- return apply(this, context, parent);
+ return apply(context, parent, DEFAULT_ON_CLICK_HANDLER);
}
- View apply(RemoteViews owner, Context context, ViewGroup parent) {
+ /** @hide */
+ public View apply(Context context, ViewGroup parent, OnClickHandler handler) {
RemoteViews rvToApply = getRemoteViewsToApply(context);
View result;
@@ -2134,7 +2126,7 @@ public class RemoteViews implements Parcelable, Filter {
result = inflater.inflate(rvToApply.getLayoutId(), parent, false);
- rvToApply.performApply(owner, result, parent);
+ rvToApply.performApply(result, parent, handler);
return result;
}
@@ -2148,6 +2140,11 @@ public class RemoteViews implements Parcelable, Filter {
* the {@link #apply(Context,ViewGroup)} call.
*/
public void reapply(Context context, View v) {
+ reapply(context, v, DEFAULT_ON_CLICK_HANDLER);
+ }
+
+ /** @hide */
+ public void reapply(Context context, View v, OnClickHandler handler) {
RemoteViews rvToApply = getRemoteViewsToApply(context);
// In the case that a view has this RemoteViews applied in one orientation, is persisted
@@ -2161,15 +2158,15 @@ public class RemoteViews implements Parcelable, Filter {
}
prepareContext(context);
- rvToApply.performApply(this, v, (ViewGroup) v.getParent());
+ rvToApply.performApply(v, (ViewGroup) v.getParent(), handler);
}
- private void performApply(RemoteViews owner, View v, ViewGroup parent) {
+ private void performApply(View v, ViewGroup parent, OnClickHandler handler) {
if (mActions != null) {
final int count = mActions.size();
for (int i = 0; i < count; i++) {
Action a = mActions.get(i);
- a.apply(owner, v, parent);
+ a.apply(v, parent, handler);
}
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
index ec99513..1204a89 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
@@ -577,11 +577,9 @@ public abstract class BaseStatusBar extends SystemUI implements
View expandedLarge = null;
Exception exception = null;
try {
- oneU.setOnClickHandler(mOnClickHandler);
- expandedOneU = oneU.apply(mContext, adaptive);
+ expandedOneU = oneU.apply(mContext, adaptive, mOnClickHandler);
if (large != null) {
- large.setOnClickHandler(mOnClickHandler);
- expandedLarge = large.apply(mContext, adaptive);
+ expandedLarge = large.apply(mContext, adaptive, mOnClickHandler);
}
}
catch (RuntimeException e) {
@@ -872,9 +870,9 @@ public abstract class BaseStatusBar extends SystemUI implements
oldEntry.notification = notification;
try {
// Reapply the RemoteViews
- contentView.reapply(mContext, oldEntry.expanded);
+ contentView.reapply(mContext, oldEntry.expanded, mOnClickHandler);
if (bigContentView != null && oldEntry.getLargeView() != null) {
- bigContentView.reapply(mContext, oldEntry.getLargeView());
+ bigContentView.reapply(mContext, oldEntry.getLargeView(), mOnClickHandler);
}
// update the contentIntent
final PendingIntent contentIntent = notification.notification.contentIntent;