summaryrefslogtreecommitdiffstats
path: root/src/com
diff options
context:
space:
mode:
authorAndy Mast <andy@cyngn.com>2014-11-07 10:51:49 -0800
committerAndy Mast <andy@cyngn.com>2014-11-09 22:24:46 +0000
commit3eab9ffd19d1db72870f3a79eeabb085b453b99a (patch)
tree92d9057288f77646e3385aded53325f356242d30 /src/com
parente395982db698574dec15608781b0b01bad5b273a (diff)
downloadpackages_apps_ThemeChooser-3eab9ffd19d1db72870f3a79eeabb085b453b99a.tar.gz
packages_apps_ThemeChooser-3eab9ffd19d1db72870f3a79eeabb085b453b99a.tar.bz2
packages_apps_ThemeChooser-3eab9ffd19d1db72870f3a79eeabb085b453b99a.zip
Use default if theme is missing a component
Change-Id: Ic3de7c86d1362be02dcba0447c0d0b3ccdd5d0a0
Diffstat (limited to 'src/com')
-rw-r--r--src/com/cyngn/theme/chooser/ThemeFragment.java19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/com/cyngn/theme/chooser/ThemeFragment.java b/src/com/cyngn/theme/chooser/ThemeFragment.java
index 4f93db8..ccf22c5 100644
--- a/src/com/cyngn/theme/chooser/ThemeFragment.java
+++ b/src/com/cyngn/theme/chooser/ThemeFragment.java
@@ -2056,10 +2056,12 @@ public class ThemeFragment extends Fragment implements LoaderManager.LoaderCallb
@Override
public void run() {
if (mSelectedComponentsMap != null && mSelectedComponentsMap.size() > 0) {
+ final HashMap<String, String> fullMap
+ = fillMissingComponentsWithDefault(mSelectedComponentsMap);
ThemeManager tm = getThemeManager();
if (tm != null) {
tm.addClient(ThemeFragment.this);
- tm.requestThemeChange(mSelectedComponentsMap);
+ tm.requestThemeChange(fullMap);
}
} else {
onFinish(true);
@@ -2070,6 +2072,21 @@ public class ThemeFragment extends Fragment implements LoaderManager.LoaderCallb
}
};
+ private HashMap<String, String> fillMissingComponentsWithDefault(
+ Map<String, String> originalMap) {
+ HashMap newMap = new HashMap<String, String>();
+ newMap.putAll(originalMap);
+ Map<String, String> defaultMap = ThemeUtils.getDefaultComponents(getActivity());
+ for(Map.Entry<String, String> entry : defaultMap.entrySet()) {
+ String component = entry.getKey();
+ String defaultPkg = entry.getValue();
+ if (!newMap.containsKey(component)) {
+ newMap.put(component, defaultPkg);
+ }
+ }
+ return newMap;
+ }
+
private Runnable mApplyExternalWallpaperRunnable = new Runnable() {
@Override
public void run() {