From 219818a13149d1371cc3fe0db90f43d9b9c4f224 Mon Sep 17 00:00:00 2001 From: Clark Scheff Date: Tue, 22 Jul 2014 19:51:11 -0700 Subject: Clear the adapters cursor before switching components. It is possible for the CursorPagerAdapter to get in a state where it throws an IllegalStateException stating that notifyDataSetChanged() was not called even though we call it whenever we swap the cursor. Clearing it first resolves this problem. Change-Id: I5e1c2f1c06e10be74d0ac058b97a36d029d83c6a --- src/org/cyanogenmod/theme/chooserv2/ComponentSelector.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src/org') diff --git a/src/org/cyanogenmod/theme/chooserv2/ComponentSelector.java b/src/org/cyanogenmod/theme/chooserv2/ComponentSelector.java index 1070a3b..9efb6ac 100644 --- a/src/org/cyanogenmod/theme/chooserv2/ComponentSelector.java +++ b/src/org/cyanogenmod/theme/chooserv2/ComponentSelector.java @@ -187,7 +187,10 @@ public class ComponentSelector extends LinearLayout } else { mAppliedComponentPkgName = null; } - if (mComponentType == null || !mComponentType.equals(component)) mPager.setCurrentItem(0); + if (mComponentType == null || !mComponentType.equals(component)){ + mPager.setCurrentItem(0); + mAdapter.swapCursor(null); + } mComponentType = component; ((FragmentActivity) mContext).getSupportLoaderManager().restartLoader( getLoaderIdFromComponent(component), null, this); @@ -363,7 +366,7 @@ public class ComponentSelector extends LinearLayout } @Override - public void onLoadFinished(Loader loader, Cursor data) { + public void onLoadFinished(Loader loader, final Cursor data) { mAdapter.swapCursor(data); } @@ -468,8 +471,6 @@ public class ComponentSelector extends LinearLayout } public void swapCursor(Cursor c) { - if (mCursor == c) return; - mCursor = c; notifyDataSetChanged(); } -- cgit v1.1