From cd4830091a6396571fcce9668b27d48d11f6c0b2 Mon Sep 17 00:00:00 2001 From: Luis Vidal Date: Fri, 8 Jan 2016 15:37:19 -0800 Subject: Guard to prevent inserting a record twice when a new theme is installed When the theme has very few components, ACTION_THEME_RESOURCES_CACHED might be broadcasted before ACTION_PACKAGE_ADDED. This patch will prevent trying to insert a record twice. Change-Id: Ib7764707dcd59af731b3ea083b583e2c83eb6acf --- src/org/cyanogenmod/themes/provider/AppReceiver.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/org/cyanogenmod/themes/provider/AppReceiver.java b/src/org/cyanogenmod/themes/provider/AppReceiver.java index 1db9dde..dccba21 100644 --- a/src/org/cyanogenmod/themes/provider/AppReceiver.java +++ b/src/org/cyanogenmod/themes/provider/AppReceiver.java @@ -36,7 +36,8 @@ public class AppReceiver extends BroadcastReceiver { try { // All themes/icon packs go to the theme service for processing now so assume // isProcessing is always true when installing/replacing - if (Intent.ACTION_PACKAGE_ADDED.equals(action) && !isReplacing) { + if (Intent.ACTION_PACKAGE_ADDED.equals(action) && !isReplacing + && !ProviderUtils.themeExistsInProvider(context, pkgName)) { ThemePackageHelper.insertPackage(context, pkgName, true); } else if (Intent.ACTION_PACKAGE_FULLY_REMOVED.equals(action)) { ThemePackageHelper.removePackage(context, pkgName); -- cgit v1.2.3