summaryrefslogtreecommitdiffstats
path: root/src/com/cyngn/theme/chooser/ThemeFragment.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/cyngn/theme/chooser/ThemeFragment.java')
-rw-r--r--src/com/cyngn/theme/chooser/ThemeFragment.java36
1 files changed, 32 insertions, 4 deletions
diff --git a/src/com/cyngn/theme/chooser/ThemeFragment.java b/src/com/cyngn/theme/chooser/ThemeFragment.java
index 5f1e8ac..6812c43 100644
--- a/src/com/cyngn/theme/chooser/ThemeFragment.java
+++ b/src/com/cyngn/theme/chooser/ThemeFragment.java
@@ -884,9 +884,9 @@ public class ThemeFragment extends Fragment implements LoaderManager.LoaderCallb
content.setPadding(leftRightPadding, 0, leftRightPadding, 0);
if (applyTheme) {
- final boolean changed = componentsChanged();
- mThemeTagLayout.setCustomizedTagEnabled(changed);
- mReset.setVisibility(changed ? View.VISIBLE : View.GONE);
+ final boolean customized = isThemeCustomized();
+ mThemeTagLayout.setCustomizedTagEnabled(customized);
+ mReset.setVisibility(customized ? View.VISIBLE : View.GONE);
}
//Move the theme preview so that it is near the center of page per spec
@@ -2207,7 +2207,7 @@ public class ThemeFragment extends Fragment implements LoaderManager.LoaderCallb
Map<String, String> originalMap) {
HashMap newMap = new HashMap<String, String>();
newMap.putAll(originalMap);
- Map<String, String> defaultMap = ThemeUtils.getDefaultComponents(getActivity());
+ Map<String, String> defaultMap = getEmptyComponentsMap();
for(Map.Entry<String, String> entry : defaultMap.entrySet()) {
String component = entry.getKey();
String defaultPkg = entry.getValue();
@@ -2218,6 +2218,15 @@ public class ThemeFragment extends Fragment implements LoaderManager.LoaderCallb
return newMap;
}
+ protected Map<String, String> getEmptyComponentsMap() {
+ List<String> componentsList = ThemeUtils.getAllComponents();
+ Map<String, String> defaultMap = new HashMap<>(componentsList.size());
+ for (String component : componentsList) {
+ defaultMap.put(component, "");
+ }
+ return defaultMap;
+ }
+
/**
* This is the method that will be called when applying a theme and the idea is to override
* it in MyThemeFragment and pass in a different RequestType, once we have a type that indicates
@@ -2731,6 +2740,25 @@ public class ThemeFragment extends Fragment implements LoaderManager.LoaderCallb
return false;
}
+ protected boolean isThemeCustomized() {
+ final String themePkgName = getThemePackageName();
+ for (String key : mSelectedComponentsMap.keySet()) {
+ final String selectedPkgName = mSelectedComponentsMap.get(key);
+ if (!themePkgName.equals(selectedPkgName)) {
+ return true;
+ }
+ if (mBaseThemeSupportedComponents.size() > 0 &&
+ !mBaseThemeSupportedComponents.contains(key)) {
+ return true;
+ }
+ }
+ // finally check if we're missing anything from mBaseThemeSupportedComponents
+ for (String component : mBaseThemeSupportedComponents) {
+ if (!mSelectedComponentsMap.containsKey(component)) return true;
+ }
+ return false;
+ }
+
public void clearChanges() {
mSelectedComponentsMap.clear();
mExternalWallpaperUri = null;