diff options
Diffstat (limited to 'src/org/cyanogenmod/themes/provider/ThemePackageHelper.java')
-rw-r--r-- | src/org/cyanogenmod/themes/provider/ThemePackageHelper.java | 31 |
1 files changed, 23 insertions, 8 deletions
diff --git a/src/org/cyanogenmod/themes/provider/ThemePackageHelper.java b/src/org/cyanogenmod/themes/provider/ThemePackageHelper.java index 0ecdcaf..ed1a740 100644 --- a/src/org/cyanogenmod/themes/provider/ThemePackageHelper.java +++ b/src/org/cyanogenmod/themes/provider/ThemePackageHelper.java @@ -39,6 +39,8 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; +import static android.content.res.CustomTheme.HOLO_DEFAULT; + /** * Helper class to populate the provider with info from the theme. */ @@ -155,14 +157,18 @@ public class ThemePackageHelper { } public static void updatePackage(Context context, String pkgName) throws NameNotFoundException { - PackageInfo pi = context.getPackageManager().getPackageInfo(pkgName, 0); - Map<String, Boolean> capabilities = getCapabilities(context, pkgName); - if (pi.themeInfos != null && pi.themeInfos.length > 0) { - updatePackageInternal(context, pi, capabilities); - } else if (pi.legacyThemeInfos != null && pi.legacyThemeInfos.length > 0) { - updateLegacyPackageInternal(context, pi, capabilities); - } else if (pi.isLegacyIconPackApk) { - updateLegacyIconPackInternal(context, pi, capabilities); + if (HOLO_DEFAULT.equals(pkgName)) { + updateHoloPackageInternal(context); + } else { + PackageInfo pi = context.getPackageManager().getPackageInfo(pkgName, 0); + Map<String, Boolean> capabilities = getCapabilities(context, pkgName); + if (pi.themeInfos != null && pi.themeInfos.length > 0) { + updatePackageInternal(context, pi, capabilities); + } else if (pi.legacyThemeInfos != null && pi.legacyThemeInfos.length > 0) { + updateLegacyPackageInternal(context, pi, capabilities); + } else if (pi.isLegacyIconPackApk) { + updateLegacyIconPackInternal(context, pi, capabilities); + } } } @@ -186,6 +192,15 @@ public class ThemePackageHelper { context.getContentResolver().update(ThemesColumns.CONTENT_URI, values, where, args); } + private static void updateHoloPackageInternal(Context context) { + ContentValues values = new ContentValues(); + values.put(ThemesColumns.IS_DEFAULT_THEME, + HOLO_DEFAULT == ThemeUtils.getDefaultThemePackageName(context) ? 1 : 0); + String where = ThemesColumns.PKG_NAME + "=?"; + String[] args = { HOLO_DEFAULT }; + context.getContentResolver().update(ThemesColumns.CONTENT_URI, values, where, args); + } + private static void updateLegacyPackageInternal(Context context, PackageInfo pi, Map<String, Boolean> capabilities) { LegacyThemeInfo info = pi.legacyThemeInfos[0]; |