diff options
Diffstat (limited to 'src/com/cyngn')
-rw-r--r-- | src/com/cyngn/theme/chooser/AppReceiver.java | 42 | ||||
-rw-r--r-- | src/com/cyngn/theme/chooser/ChooserActivity.java | 5 | ||||
-rw-r--r-- | src/com/cyngn/theme/util/PreferenceUtils.java | 36 |
3 files changed, 9 insertions, 74 deletions
diff --git a/src/com/cyngn/theme/chooser/AppReceiver.java b/src/com/cyngn/theme/chooser/AppReceiver.java index 4edb41b..546539f 100644 --- a/src/com/cyngn/theme/chooser/AppReceiver.java +++ b/src/com/cyngn/theme/chooser/AppReceiver.java @@ -7,17 +7,14 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.pm.PackageInfo; -import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.ThemeUtils; -import android.content.res.ThemeManager; import android.net.Uri; +import android.provider.ThemesContract; import android.text.TextUtils; import com.cyngn.theme.util.NotificationHelper; import com.cyngn.theme.util.PreferenceUtils; -import java.util.Set; - public class AppReceiver extends BroadcastReceiver { @Override @@ -25,21 +22,10 @@ public class AppReceiver extends BroadcastReceiver { Uri uri = intent.getData(); String pkgName = uri != null ? uri.getSchemeSpecificPart() : null; String action = intent.getAction(); - boolean isReplacing = intent.getExtras().getBoolean(Intent.EXTRA_REPLACING, false); - if (Intent.ACTION_PACKAGE_ADDED.equals(action) && !isReplacing) { - try { - if (isTheme(context, pkgName)) { - if (!isThemeBeingProcessed(context, pkgName)) { - NotificationHelper.postThemeInstalledNotification(context, pkgName); - } else { - // store this package name so we know it's being processed - PreferenceUtils.addThemeBeingProcessed(context, pkgName); - } - } - } catch (NameNotFoundException e) { - } - } else if (Intent.ACTION_PACKAGE_FULLY_REMOVED.equals(action)) { + if (ThemesContract.Intent.ACTION_THEME_INSTALLED.equals(action)) { + NotificationHelper.postThemeInstalledNotification(context, pkgName); + } else if (ThemesContract.Intent.ACTION_THEME_REMOVED.equals(action)) { // remove updated status for this theme (if one exists) PreferenceUtils.removeUpdatedTheme(context, pkgName); @@ -48,27 +34,16 @@ public class AppReceiver extends BroadcastReceiver { String appliedBaseTheme = PreferenceUtils.getAppliedBaseTheme(context); if (!TextUtils.isEmpty(appliedBaseTheme) && appliedBaseTheme.equals(pkgName)) { PreferenceUtils.setAppliedBaseTheme(context, - ThemeUtils.getDefaultThemePackageName(context)); + ThemeUtils.getDefaultThemePackageName(context)); } NotificationHelper.cancelNotifications(context); - } else if (Intent.ACTION_PACKAGE_REPLACED.equals(action)) { + } else if (ThemesContract.Intent.ACTION_THEME_UPDATED.equals(action)) { try { if (isTheme(context, pkgName)) { PreferenceUtils.addUpdatedTheme(context, pkgName); } } catch (NameNotFoundException e) { } - } else if (Intent.ACTION_THEME_RESOURCES_CACHED.equals(action)) { - final String themePkgName = intent.getStringExtra(Intent.EXTRA_THEME_PACKAGE_NAME); - final int result = intent.getIntExtra(Intent.EXTRA_THEME_RESULT, - PackageManager.INSTALL_FAILED_THEME_UNKNOWN_ERROR); - Set<String> processingThemes = - PreferenceUtils.getInstalledThemesBeingProcessed(context); - if (processingThemes != null && - processingThemes.contains(themePkgName) && result >= 0) { - NotificationHelper.postThemeInstalledNotification(context, themePkgName); - PreferenceUtils.removeThemeBeingProcessed(context, themePkgName); - } } } @@ -77,9 +52,4 @@ public class AppReceiver extends BroadcastReceiver { return pi != null && pi.themeInfo != null; } - - private boolean isThemeBeingProcessed(Context context, String pkgName) { - ThemeManager tm = (ThemeManager) context.getSystemService(Context.THEME_SERVICE); - return tm.isThemeBeingProcessed(pkgName); - } } diff --git a/src/com/cyngn/theme/chooser/ChooserActivity.java b/src/com/cyngn/theme/chooser/ChooserActivity.java index 81ec1e2..f509fa1 100644 --- a/src/com/cyngn/theme/chooser/ChooserActivity.java +++ b/src/com/cyngn/theme/chooser/ChooserActivity.java @@ -869,8 +869,9 @@ public class ChooserActivity extends FragmentActivity switch (id) { case LOADER_ID_INSTALLED_THEMES: mAppliedBaseTheme = PreferenceUtils.getAppliedBaseTheme(this); - selection = ThemesColumns.PRESENT_AS_THEME + "=?"; - selectionArgs = new String[] { "1" }; + selection = ThemesColumns.PRESENT_AS_THEME + "=? AND " + + ThemesColumns.INSTALL_STATE + "=?"; + selectionArgs = new String[] { "1", "" + ThemesColumns.InstallState.INSTALLED}; // sort in ascending order but make sure the "default" theme is always first sortOrder = "(" + ThemesColumns.IS_DEFAULT_THEME + "=1) DESC, " + "(" + ThemesColumns.PKG_NAME + "='" + mAppliedBaseTheme + "') DESC, " diff --git a/src/com/cyngn/theme/util/PreferenceUtils.java b/src/com/cyngn/theme/util/PreferenceUtils.java index a963d99..b2cc552 100644 --- a/src/com/cyngn/theme/util/PreferenceUtils.java +++ b/src/com/cyngn/theme/util/PreferenceUtils.java @@ -82,42 +82,6 @@ public class PreferenceUtils { } } - public static Set<String> getInstalledThemesBeingProcessed(Context context) { - SharedPreferences prefs = getSharedPreferences(context); - if (prefs == null) return null; - - return prefs.getStringSet(PREF_INSTALLED_THEMES_PROCESSING, null); - } - - public static void addThemeBeingProcessed(Context context, String pkgName) { - SharedPreferences prefs = getSharedPreferences(context); - if (prefs != null) { - Set<String> current = prefs.getStringSet(PREF_INSTALLED_THEMES_PROCESSING, null); - if (current == null) current = new HashSet<String>(1); - if (current.add(pkgName)) { - prefs.edit().putStringSet(PREF_INSTALLED_THEMES_PROCESSING, current).apply(); - } - } else { - Log.w(TAG, "addThemeBeingProcessed: Unable to get shared preferences"); - } - } - - public static void removeThemeBeingProcessed(Context context, String pkgName) { - SharedPreferences prefs = getSharedPreferences(context); - if (prefs != null) { - Set<String> updatedThemes = new HashSet<String>(); - Set<String> current = prefs.getStringSet(PREF_INSTALLED_THEMES_PROCESSING, null); - if (current != null) { - updatedThemes.addAll(current); - } - if (updatedThemes.remove(pkgName)) { - prefs.edit().putStringSet(PREF_INSTALLED_THEMES_PROCESSING, updatedThemes).apply(); - } - } else { - Log.w(TAG, "removeThemeBeingProcessed: Unable to get shared preferences"); - } - } - public static boolean hasThemeBeenUpdated(Context context, String pkgName) { Set<String> updatedThemes = getUpdatedThemes(context); return updatedThemes != null && updatedThemes.contains(pkgName); |