diff options
| author | 2010-11-15 10:41:45 -0800 | |
|---|---|---|
| committer | 2010-11-15 11:08:03 -0800 | |
| commit | 490127df193ecaa4dacf241a1a6b72ed6e5b0a0f (patch) | |
| tree | e007a2d8ea4a01babbf7b59e23096473a03ac4c2 | |
| parent | 8baf5df0fa5b3453a7f17e95746c5d8cadc00163 (diff) | |
Fix for Issue: 3196583
Change-Id: I7878cf41274d4f5885d6179f3072a3be05386075
| -rw-r--r-- | core/java/android/widget/RemoteViewsAdapter.java | 10 |
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); |