diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/org/cyanogenmod/themes/provider/ThemePackageHelper.java | 1 | ||||
-rw-r--r-- | src/org/cyanogenmod/themes/provider/ThemesOpenHelper.java | 26 |
2 files changed, 25 insertions, 2 deletions
diff --git a/src/org/cyanogenmod/themes/provider/ThemePackageHelper.java b/src/org/cyanogenmod/themes/provider/ThemePackageHelper.java index 8d9a933..6be5570 100644 --- a/src/org/cyanogenmod/themes/provider/ThemePackageHelper.java +++ b/src/org/cyanogenmod/themes/provider/ThemePackageHelper.java @@ -289,7 +289,6 @@ public class ThemePackageHelper { public static boolean isPresentableTheme(Map<String, Boolean> implementMap) { return implementMap != null && hasThemeComponent(implementMap, ThemesColumns.MODIFIES_LAUNCHER) && - hasThemeComponent(implementMap, ThemesColumns.MODIFIES_ICONS) && hasThemeComponent(implementMap, ThemesColumns.MODIFIES_OVERLAYS); } diff --git a/src/org/cyanogenmod/themes/provider/ThemesOpenHelper.java b/src/org/cyanogenmod/themes/provider/ThemesOpenHelper.java index 33a8336..6183399 100644 --- a/src/org/cyanogenmod/themes/provider/ThemesOpenHelper.java +++ b/src/org/cyanogenmod/themes/provider/ThemesOpenHelper.java @@ -35,7 +35,7 @@ import android.util.Log; public class ThemesOpenHelper extends SQLiteOpenHelper { private static final String TAG = ThemesOpenHelper.class.getName(); - private static final int DATABASE_VERSION = 11; + private static final int DATABASE_VERSION = 12; private static final String DATABASE_NAME = "themes.db"; private static final String DEFAULT_PKG_NAME = ThemeConfig.SYSTEM_DEFAULT; @@ -101,6 +101,10 @@ public class ThemesOpenHelper extends SQLiteOpenHelper { upgradeToVersion11(db); oldVersion = 11; } + if (oldVersion == 11) { + upgradeToVersion12(db); + oldVersion = 12; + } if (oldVersion != DATABASE_VERSION) { Log.e(TAG, "Recreating db because unknown database version: " + oldVersion); dropTables(db); @@ -355,6 +359,26 @@ public class ThemesOpenHelper extends SQLiteOpenHelper { } + private void upgradeToVersion12(SQLiteDatabase db) { + // This upgrade performs an update to the ThemesColumns.PRESENT_AS_THEME since the + // requirements for what is a presentable theme have changed. + final String[] projection = { ThemesColumns.PKG_NAME, ThemesColumns.MODIFIES_LAUNCHER, + ThemesColumns.MODIFIES_OVERLAYS}; + final Cursor c = db.query(ThemesTable.TABLE_NAME, projection, null, null, null, null, null); + if (c != null) { + while(c.moveToNext()) { + final String pkgName = c.getString(0); + boolean presentAsTheme = + c.getInt(c.getColumnIndex(ThemesColumns.MODIFIES_LAUNCHER)) == 1 && + c.getInt(c.getColumnIndex(ThemesColumns.MODIFIES_OVERLAYS)) == 1; + db.execSQL(String.format("UPDATE %s SET %s='%d' WHERE %s='%s'", + ThemesTable.TABLE_NAME, ThemesColumns.PRESENT_AS_THEME, + presentAsTheme ? 1 : 0, ThemesColumns.PKG_NAME, pkgName)); + } + c.close(); + } + } + private void dropTables(SQLiteDatabase db) { db.execSQL("DROP TABLE IF EXISTS " + ThemesTable.TABLE_NAME); db.execSQL("DROP TABLE IF EXISTS " + MixnMatchTable.TABLE_NAME); |