diff options
author | Adam Cohen <adamcohen@google.com> | 2010-12-17 12:03:17 -0800 |
---|---|---|
committer | Adam Cohen <adamcohen@google.com> | 2010-12-17 12:09:50 -0800 |
commit | fb60386b46d0c6216c765c10bd33ac42ca780917 (patch) | |
tree | 3328cd44ed4084970b5734e13a16c1d1273c7712 /core/java/android/widget/AdapterViewAnimator.java | |
parent | 8903058a4a77ae920502054ba136b1b4539f1ea1 (diff) | |
download | frameworks_base-fb60386b46d0c6216c765c10bd33ac42ca780917.zip frameworks_base-fb60386b46d0c6216c765c10bd33ac42ca780917.tar.gz frameworks_base-fb60386b46d0c6216c765c10bd33ac42ca780917.tar.bz2 |
Addressing issues associated RemoteViewsAdapter's service crashes / disconnects
-See issue: 3052667
Change-Id: I95f1cac3defeadc38ac75453d9d59cd1b3cbcc83
Diffstat (limited to 'core/java/android/widget/AdapterViewAnimator.java')
-rw-r--r-- | core/java/android/widget/AdapterViewAnimator.java | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/core/java/android/widget/AdapterViewAnimator.java b/core/java/android/widget/AdapterViewAnimator.java index 162b030..ec8e93c 100644 --- a/core/java/android/widget/AdapterViewAnimator.java +++ b/core/java/android/widget/AdapterViewAnimator.java @@ -964,6 +964,8 @@ public abstract class AdapterViewAnimator extends AdapterView<Adapter> public void onRemoteAdapterConnected() { if (mRemoteViewsAdapter != mAdapter) { setAdapter(mRemoteViewsAdapter); + } else if (mRemoteViewsAdapter != null) { + mRemoteViewsAdapter.superNotifyDataSetChanged(); } } @@ -971,10 +973,11 @@ public abstract class AdapterViewAnimator extends AdapterView<Adapter> * Called back when the adapter disconnects from the RemoteViewsService. */ public void onRemoteAdapterDisconnected() { - if (mRemoteViewsAdapter != mAdapter) { - mRemoteViewsAdapter = null; - setAdapter(mRemoteViewsAdapter); - } + // If the remote adapter disconnects, we keep it around + // since the currently displayed items are still cached. + // Further, we want the service to eventually reconnect + // when necessary, as triggered by this view requesting + // items from the Adapter. } public void advance() { |