summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Adam Cohen <adamcohen@google.com> 2010-11-15 10:41:45 -0800
committer Adam Cohen <adamcohen@google.com> 2010-11-15 11:08:03 -0800
commit490127df193ecaa4dacf241a1a6b72ed6e5b0a0f (patch)
treee007a2d8ea4a01babbf7b59e23096473a03ac4c2
parent8baf5df0fa5b3453a7f17e95746c5d8cadc00163 (diff)
Fix for Issue: 3196583
Change-Id: I7878cf41274d4f5885d6179f3072a3be05386075
-rw-r--r--core/java/android/widget/RemoteViewsAdapter.java10
1 files changed, 9 insertions, 1 deletions
diff --git a/core/java/android/widget/RemoteViewsAdapter.java b/core/java/android/widget/RemoteViewsAdapter.java
index 26eb57cf65ae..52d9c08dd997 100644
--- a/core/java/android/widget/RemoteViewsAdapter.java
+++ b/core/java/android/widget/RemoteViewsAdapter.java
@@ -664,7 +664,7 @@ public class RemoteViewsAdapter extends BaseAdapter {
itemId = factory.getItemId(position);
} catch (Exception e) {
// Print the error
- Log.e(TAG, "Error in updateRemoteViewsInfo(" + position + "): " +
+ Log.e(TAG, "Error in updateRemoteViews(" + position + "): " +
e.getMessage());
e.printStackTrace();
@@ -673,6 +673,14 @@ public class RemoteViewsAdapter extends BaseAdapter {
return;
}
+ if (remoteViews == null) {
+ // If a null view was returned, we break early to prevent it from getting
+ // into our cache and causing problems later. The effect is that the child at this
+ // position will remain as a loading view until it is updated.
+ Log.e(TAG, "Error in updateRemoteViews(" + position + "): " + " null RemoteViews " +
+ "returned from RemoteViewsFactory.");
+ return;
+ }
synchronized (mCache) {
// Cache the RemoteViews we loaded
mCache.insert(position, remoteViews, itemId);