diff options
author | Clark Scheff <clark@cyngn.com> | 2014-07-22 19:47:00 -0700 |
---|---|---|
committer | Clark Scheff <clark@cyngn.com> | 2014-07-23 22:16:49 +0000 |
commit | abca5a2f718f5feae45adb67c691cbeed10d8939 (patch) | |
tree | ed15dbe8ebb0250bc5971cb7f373b687c285e20b /src/org | |
parent | 711e7480eef4e684d0c53e905377fc521f878068 (diff) | |
download | packages_apps_ThemeChooser-abca5a2f718f5feae45adb67c691cbeed10d8939.zip packages_apps_ThemeChooser-abca5a2f718f5feae45adb67c691cbeed10d8939.tar.gz packages_apps_ThemeChooser-abca5a2f718f5feae45adb67c691cbeed10d8939.tar.bz2 |
Make sCardIdsToComponentTypes non-static
We need to alter this on a per-fragment basis and therefore it cannot
be static. This allows us to remove entries for cards that are removed.
Change-Id: If6c9ed3e3e6c04696217bbfbe0dacec168a1c344
Diffstat (limited to 'src/org')
-rw-r--r-- | src/org/cyanogenmod/theme/chooserv2/ThemeFragment.java | 45 |
1 files changed, 23 insertions, 22 deletions
diff --git a/src/org/cyanogenmod/theme/chooserv2/ThemeFragment.java b/src/org/cyanogenmod/theme/chooserv2/ThemeFragment.java index 99d8d4e..0c3c6e8 100644 --- a/src/org/cyanogenmod/theme/chooserv2/ThemeFragment.java +++ b/src/org/cyanogenmod/theme/chooserv2/ThemeFragment.java @@ -149,7 +149,7 @@ public class ThemeFragment extends Fragment implements LoaderManager.LoaderCallb /** * Maps the card's resource ID to a theme component */ - private static final SparseArray<String> sCardIdsToComponentTypes = new SparseArray<String>(); + private final SparseArray<String> mCardIdsToComponentTypes = new SparseArray<String>(); private String mPkgName; private Typeface mTypefaceNormal; @@ -207,17 +207,6 @@ public class ThemeFragment extends Fragment implements LoaderManager.LoaderCallb // Current system theme configuration as component -> pkgName private Map<String, String> mCurrentTheme = new HashMap<String, String>(); - static { - sCardIdsToComponentTypes.put(R.id.status_bar_container, MODIFIES_STATUS_BAR); - sCardIdsToComponentTypes.put(R.id.font_preview_container, MODIFIES_FONTS); - sCardIdsToComponentTypes.put(R.id.icon_container, MODIFIES_ICONS); - sCardIdsToComponentTypes.put(R.id.navigation_bar_container, MODIFIES_NAVIGATION_BAR); - sCardIdsToComponentTypes.put(R.id.wallpaper_card, MODIFIES_LAUNCHER); - sCardIdsToComponentTypes.put(R.id.lockscreen_card, MODIFIES_LOCKSCREEN); - sCardIdsToComponentTypes.put(R.id.style_card, MODIFIES_OVERLAYS); - sCardIdsToComponentTypes.put(R.id.bootani_preview_container, MODIFIES_BOOT_ANIM); - } - static ThemeFragment newInstance(String pkgName) { ThemeFragment f = new ThemeFragment(); Bundle args = new Bundle(); @@ -243,6 +232,15 @@ public class ThemeFragment extends Fragment implements LoaderManager.LoaderCallb mTypefaceNormal = helper.getTypeface(Typeface.NORMAL); mHandler = new Handler(); + + mCardIdsToComponentTypes.put(R.id.status_bar_container, MODIFIES_STATUS_BAR); + mCardIdsToComponentTypes.put(R.id.font_preview_container, MODIFIES_FONTS); + mCardIdsToComponentTypes.put(R.id.icon_container, MODIFIES_ICONS); + mCardIdsToComponentTypes.put(R.id.navigation_bar_container, MODIFIES_NAVIGATION_BAR); + mCardIdsToComponentTypes.put(R.id.wallpaper_card, MODIFIES_LAUNCHER); + mCardIdsToComponentTypes.put(R.id.lockscreen_card, MODIFIES_LOCKSCREEN); + mCardIdsToComponentTypes.put(R.id.style_card, MODIFIES_OVERLAYS); + mCardIdsToComponentTypes.put(R.id.bootani_preview_container, MODIFIES_BOOT_ANIM); } @Override @@ -957,14 +955,17 @@ public class ThemeFragment extends Fragment implements LoaderManager.LoaderCallb for(int i=0; i < mAdditionalCards.getChildCount(); i++) { View v = mAdditionalCards.getChildAt(i); if (v instanceof ComponentCardView) { - String component = sCardIdsToComponentTypes.get(v.getId()); + String component = mCardIdsToComponentTypes.get(v.getId()); if (shouldShowComponentCard(component)) { loadAdditionalCard(c, component); } else { removeList.add(v); // remove the Space below this card removeList.add(mAdditionalCards.getChildAt(i+1)); - sCardIdsToComponentTypes.remove(v.getId()); + + if (component != null && !shouldShowComponentCard(component)) { + mCardIdsToComponentTypes.remove(v.getId()); + } } } } @@ -1343,8 +1344,8 @@ public class ThemeFragment extends Fragment implements LoaderManager.LoaderCallb } private void initCards(View parent) { - for (int i = 0; i < sCardIdsToComponentTypes.size(); i++) { - parent.findViewById(sCardIdsToComponentTypes.keyAt(i)) + for (int i = 0; i < mCardIdsToComponentTypes.size(); i++) { + parent.findViewById(mCardIdsToComponentTypes.keyAt(i)) .setOnClickListener(mCardClickListener); } } @@ -1358,7 +1359,7 @@ public class ThemeFragment extends Fragment implements LoaderManager.LoaderCallb return; } mActiveCardId = v.getId(); - String component = sCardIdsToComponentTypes.get(mActiveCardId); + String component = mCardIdsToComponentTypes.get(mActiveCardId); ((ChooserActivity) getActivity()).showComponentSelector(component, v); fadeOutNonSelectedCards(mActiveCardId); } @@ -1395,10 +1396,10 @@ public class ThemeFragment extends Fragment implements LoaderManager.LoaderCallb }; private void fadeOutNonSelectedCards(int selectedCardId) { - for (int i = 0; i < sCardIdsToComponentTypes.size(); i++) { - if (sCardIdsToComponentTypes.keyAt(i) != selectedCardId) { + for (int i = 0; i < mCardIdsToComponentTypes.size(); i++) { + if (mCardIdsToComponentTypes.keyAt(i) != selectedCardId) { ComponentCardView card = (ComponentCardView) getView().findViewById( - sCardIdsToComponentTypes.keyAt(i)); + mCardIdsToComponentTypes.keyAt(i)); card.animateCardFadeOut(); } } @@ -1488,9 +1489,9 @@ public class ThemeFragment extends Fragment implements LoaderManager.LoaderCallb public void fadeInCards() { mActiveCardId = -1; - for (int i = 0; i < sCardIdsToComponentTypes.size(); i++) { + for (int i = 0; i < mCardIdsToComponentTypes.size(); i++) { ComponentCardView card = (ComponentCardView) getView().findViewById( - sCardIdsToComponentTypes.keyAt(i)); + mCardIdsToComponentTypes.keyAt(i)); card.animateCardFadeIn(); } } |