summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/org/cyanogenmod/theme/chooser/ChooserDetailFragment.java23
1 files changed, 22 insertions, 1 deletions
diff --git a/src/org/cyanogenmod/theme/chooser/ChooserDetailFragment.java b/src/org/cyanogenmod/theme/chooser/ChooserDetailFragment.java
index d217eb6..db6af82 100644
--- a/src/org/cyanogenmod/theme/chooser/ChooserDetailFragment.java
+++ b/src/org/cyanogenmod/theme/chooser/ChooserDetailFragment.java
@@ -101,6 +101,7 @@ public class ChooserDetailFragment extends Fragment implements LoaderManager.Loa
private boolean mLoadInitialCheckboxStates = true;
private SparseArray<Boolean> mInitialCheckboxStates = new SparseArray<Boolean>();
private SparseArray<Boolean> mCurrentCheckboxStates = new SparseArray<Boolean>();
+ private SparseArray<Boolean> mSavedCheckboxStates = new SparseArray<Boolean>();
// allows emphasis on a particular aspect of a theme. ex "mods_icons" would
// uncheck all components but icons and sets the first preview image to be the icon pack
@@ -187,6 +188,10 @@ public class ChooserDetailFragment extends Fragment implements LoaderManager.Loa
CheckBox componentCheckbox = (CheckBox) v.findViewById(entry.getValue());
mComponentToCheckbox.put(entry.getKey(), componentCheckbox);
componentCheckbox.setOnCheckedChangeListener(mComponentCheckChangedListener);
+ if (savedInstanceState != null) {
+ mSavedCheckboxStates.put(entry.getValue(),
+ savedInstanceState.getBoolean(entry.getKey()));
+ }
}
getLoaderManager().initLoader(LOADER_ID_THEME_INFO, null, this);
@@ -195,6 +200,16 @@ public class ChooserDetailFragment extends Fragment implements LoaderManager.Loa
return v;
}
+ @Override
+ public void onSaveInstanceState(Bundle outState) {
+ super.onSaveInstanceState(outState);
+ for (Map.Entry<String, CheckBox> entry : mComponentToCheckbox.entrySet()) {
+ String component = entry.getKey();
+ CheckBox checkBox = entry.getValue();
+ outState.putBoolean(component, checkBox.isChecked());
+ }
+ }
+
private List<String> getCheckedComponents() {
// Get all checked components
List<String> components = new ArrayList<String>();
@@ -421,7 +436,13 @@ public class ChooserDetailFragment extends Fragment implements LoaderManager.Loa
CheckBox componentCheckbox = entry.getValue();
if (appliedComponents.contains(componentName)) {
- componentCheckbox.setChecked(true);
+ if (mSavedCheckboxStates.size() > 0 &&
+ mSavedCheckboxStates.get(componentCheckbox.getId()) != null) {
+ componentCheckbox.setChecked(mSavedCheckboxStates.get(
+ componentCheckbox.getId()));
+ } else {
+ componentCheckbox.setChecked(true);
+ }
}
if (mLoadInitialCheckboxStates) {
mInitialCheckboxStates.put(componentCheckbox.getId(),