From d61bdb03364a481b56972b200bec41a410e33fb5 Mon Sep 17 00:00:00 2001 From: d34d Date: Sat, 7 Mar 2015 09:48:53 -0800 Subject: Cleanup theme update path Change-Id: Idf2f586b743025f4788f3373fc0078efec48feb9 --- .../themes/provider/ThemePackageHelper.java | 22 +++++++++++++++++----- .../themes/provider/ThemesProvider.java | 14 -------------- 2 files changed, 17 insertions(+), 19 deletions(-) (limited to 'src') diff --git a/src/org/cyanogenmod/themes/provider/ThemePackageHelper.java b/src/org/cyanogenmod/themes/provider/ThemePackageHelper.java index 43b313d..8a20a61 100644 --- a/src/org/cyanogenmod/themes/provider/ThemePackageHelper.java +++ b/src/org/cyanogenmod/themes/provider/ThemePackageHelper.java @@ -150,9 +150,6 @@ public class ThemePackageHelper { } else if (pi.isLegacyIconPackApk) { updateLegacyIconPackInternal(context, pi, capabilities, isProcessing); } - - // We should reapply any components that are currently applied for this theme. - reapplyInstalledComponentsForTheme(context, pkgName); } } @@ -160,6 +157,10 @@ public class ThemePackageHelper { Map capabilities, boolean isProcessing) { ThemeInfo info = pi.themeInfo; boolean isPresentableTheme = ThemePackageHelper.isPresentableTheme(capabilities); + final int oldInstallState = + ProviderUtils.getInstallStateForTheme(context, pi.packageName); + final int newState = isProcessing ? InstallState.UPDATING : InstallState.INSTALLED; + ContentValues values = new ContentValues(); values.put(ThemesColumns.PKG_NAME, pi.packageName); values.put(ThemesColumns.TITLE, info.name); @@ -172,8 +173,7 @@ public class ThemePackageHelper { values.put(ThemesColumns.LAST_UPDATE_TIME, pi.lastUpdateTime); values.put(ThemesColumns.INSTALL_TIME, pi.firstInstallTime); values.put(ThemesColumns.TARGET_API, pi.applicationInfo.targetSdkVersion); - values.put(ThemesColumns.INSTALL_STATE, - isProcessing ? InstallState.UPDATING : InstallState.INSTALLED); + values.put(ThemesColumns.INSTALL_STATE, newState); // Insert theme capabilities insertCapabilities(capabilities, values); @@ -181,6 +181,18 @@ public class ThemePackageHelper { String where = ThemesColumns.PKG_NAME + "=?"; String[] args = { pi.packageName }; context.getContentResolver().update(ThemesColumns.CONTENT_URI, values, where, args); + + // Broadcast that the theme is installed if the previous state was INSTALLING and + // the new state is INSTALLED. + if (newState == ThemesColumns.InstallState.INSTALLED) { + if (oldInstallState == ThemesColumns.InstallState.INSTALLING) { + ProviderUtils.sendThemeInstalledBroadcast(context, pi.packageName); + } else if (oldInstallState == ThemesColumns.InstallState.UPDATING) { + ProviderUtils.sendThemeUpdatedBroadcast(context, pi.packageName); + // We should reapply any components that are currently applied for this theme. + reapplyInstalledComponentsForTheme(context, pi.packageName); + } + } } private static void updateSystemPackageInternal(Context context) { diff --git a/src/org/cyanogenmod/themes/provider/ThemesProvider.java b/src/org/cyanogenmod/themes/provider/ThemesProvider.java index 92af9da..966a18f 100644 --- a/src/org/cyanogenmod/themes/provider/ThemesProvider.java +++ b/src/org/cyanogenmod/themes/provider/ThemesProvider.java @@ -279,8 +279,6 @@ public class ThemesProvider extends ContentProvider { case THEMES_ID: String pkgName = values.getAsString(ThemesColumns.PKG_NAME); final boolean updatePreviews = getShouldUpdatePreviews(sqlDB, pkgName); - final int oldInstallState = - ProviderUtils.getInstallStateForTheme(getContext(), pkgName); rowsUpdated = sqlDB.update(ThemesTable.TABLE_NAME, values, selection, selectionArgs); if (updateNotTriggeredByContentProvider(values) && updatePreviews) { Intent intent = new Intent(getContext(), PreviewGenerationService.class); @@ -304,18 +302,6 @@ public class ThemesProvider extends ContentProvider { hasBootAni != null && hasBootAni); getContext().startService(intent); } - // Broadcast that the theme is installed if the previous state was INSTALLING and - // the new state is INSTALLED. - if (values.containsKey(ThemesColumns.INSTALL_STATE)) { - int newState = values.getAsInteger(ThemesColumns.INSTALL_STATE); - if (newState == ThemesColumns.InstallState.INSTALLED) { - if (oldInstallState == ThemesColumns.InstallState.INSTALLING) { - ProviderUtils.sendThemeInstalledBroadcast(getContext(), pkgName); - } else if (oldInstallState == ThemesColumns.InstallState.UPDATING) { - ProviderUtils.sendThemeUpdatedBroadcast(getContext(), pkgName); - } - } - } getContext().getContentResolver().notifyChange(uri, null); break; case MIXNMATCH: -- cgit v1.2.3