diff options
| author | Joe Onorato <joeo@google.com> | 2010-10-31 11:41:22 -0700 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2010-10-31 11:41:22 -0700 |
| commit | 9c3a80b236b389f9e7640298beee3bb6f89c9c4e (patch) | |
| tree | 1e9e1d8fa85ec29a644b4ecd6d73a79352018550 /core | |
| parent | 8f860ef4b686ebb606c391c9c6e9cef0f8369ec4 (diff) | |
| parent | 2b69ce469d544f4b2cb6423feaf4da8df7cf7a64 (diff) | |
| download | frameworks_base-9c3a80b236b389f9e7640298beee3bb6f89c9c4e.zip frameworks_base-9c3a80b236b389f9e7640298beee3bb6f89c9c4e.tar.gz frameworks_base-9c3a80b236b389f9e7640298beee3bb6f89c9c4e.tar.bz2 | |
Merge "Allow RemoteViews to silently fail when a view can't be found."
Diffstat (limited to 'core')
| -rw-r--r-- | core/java/android/widget/RemoteViews.java | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/core/java/android/widget/RemoteViews.java b/core/java/android/widget/RemoteViews.java index 9d214fc..35c50fd 100644 --- a/core/java/android/widget/RemoteViews.java +++ b/core/java/android/widget/RemoteViews.java @@ -190,6 +190,7 @@ public class RemoteViews implements Parcelable, Filter { @Override public void apply(View root) { final View target = root.findViewById(viewId); + if (target == null) return; if (!mIsWidgetCollectionChild) { Log.e("RemoteViews", "The method setOnClickFillInIntent is available " + @@ -277,6 +278,7 @@ public class RemoteViews implements Parcelable, Filter { @Override public void apply(View root) { final View target = root.findViewById(viewId); + if (target == null) return; if (!mIsWidgetCollectionChild) { Log.e("RemoteViews", "The method setOnClickExtras is available " + @@ -367,6 +369,7 @@ public class RemoteViews implements Parcelable, Filter { @Override public void apply(View root) { 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<?>) { @@ -410,6 +413,7 @@ public class RemoteViews implements Parcelable, Filter { @Override public void apply(View root) { final View target = root.findViewById(viewId); + if (target == null) return; // If the view is an AdapterView, setting a PendingIntent on click doesn't make much // sense, do they mean to set a PendingIntent template for the AdapterView's children? @@ -513,9 +517,7 @@ public class RemoteViews implements Parcelable, Filter { @Override public void apply(View root) { final View target = root.findViewById(viewId); - if (target == null) { - return; - } + if (target == null) return; // Pick the correct drawable to modify for this view Drawable targetDrawable = null; @@ -575,9 +577,7 @@ public class RemoteViews implements Parcelable, Filter { @Override public void apply(View root) { final View view = root.findViewById(viewId); - if (view == null) { - throw new ActionException("can't find view: 0x" + Integer.toHexString(viewId)); - } + if (view == null) return; Class klass = view.getClass(); Method method; @@ -793,9 +793,7 @@ public class RemoteViews implements Parcelable, Filter { @Override public void apply(View root) { final View view = root.findViewById(viewId); - if (view == null) { - throw new ActionException("can't find view: 0x" + Integer.toHexString(viewId)); - } + if (view == null) return; Class param = getParameterType(); if (param == null) { @@ -888,10 +886,11 @@ public class RemoteViews implements Parcelable, Filter { public void apply(View root) { 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(context, target)); - } else if (target != null) { + } else { // Clear all children when nested views omitted target.removeAllViews(); } |
