diff options
| author | doc HD <doc.divxm@gmail.com> | 2017-08-05 11:22:00 +0300 |
|---|---|---|
| committer | doc HD <doc.divxm@gmail.com> | 2017-08-05 13:18:06 +0300 |
| commit | 333f88ece0e131b9830469fd4a50bb2ead17c309 (patch) | |
| tree | 05950fd0d0c4dc1aa7fe0b4f587407895c32811d | |
| parent | d93e6560e53afa8fa54e7fa60b890c69fbc06f78 (diff) | |
Revert "Implement theme mixes from ThemesContract"
This reverts commit 6abe369faa49d1e219d2c0456428be9d73d8442c.
Change-Id: Ib68e9d40c123e891cb98d88a49df72fd6c5ce4b5
| -rw-r--r-- | src/org/cyanogenmod/themes/provider/ThemesOpenHelper.java | 45 | ||||
| -rw-r--r-- | src/org/cyanogenmod/themes/provider/ThemesProvider.java | 250 |
2 files changed, 4 insertions, 291 deletions
diff --git a/src/org/cyanogenmod/themes/provider/ThemesOpenHelper.java b/src/org/cyanogenmod/themes/provider/ThemesOpenHelper.java index 5456daf..d70ad50 100644 --- a/src/org/cyanogenmod/themes/provider/ThemesOpenHelper.java +++ b/src/org/cyanogenmod/themes/provider/ThemesOpenHelper.java @@ -32,15 +32,13 @@ import cyanogenmod.providers.ThemesContract; import cyanogenmod.providers.ThemesContract.ThemesColumns; import cyanogenmod.providers.ThemesContract.MixnMatchColumns; import cyanogenmod.providers.ThemesContract.PreviewColumns; -import cyanogenmod.providers.ThemesContract.ThemeMixColumns; -import cyanogenmod.providers.ThemesContract.ThemeMixEntryColumns; import org.cyanogenmod.internal.util.ThemeUtils; public class ThemesOpenHelper extends SQLiteOpenHelper { private static final String TAG = ThemesOpenHelper.class.getName(); - private static final int DATABASE_VERSION = 21; + private static final int DATABASE_VERSION = 20; private static final String DATABASE_NAME = "themes.db"; private static final String SYSTEM_THEME_PKG_NAME = ThemeConfig.SYSTEM_DEFAULT; private static final String OLD_SYSTEM_THEME_PKG_NAME = "holo"; @@ -57,8 +55,6 @@ public class ThemesOpenHelper extends SQLiteOpenHelper { db.execSQL(ThemesTable.THEMES_TABLE_CREATE); db.execSQL(MixnMatchTable.MIXNMATCH_TABLE_CREATE); db.execSQL(PreviewsTable.PREVIEWS_TABLE_CREATE); - db.execSQL(ThemeMixesTable.THEME_MIXES_TABLE_CREATE); - db.execSQL(ThemeMixEntriesTable.THEME_MIX_ENTRIES_TABLE_CREATE); ThemesTable.insertSystemDefaults(db, mContext); MixnMatchTable.insertDefaults(db); @@ -142,10 +138,6 @@ public class ThemesOpenHelper extends SQLiteOpenHelper { upgradeToVersion20(db); oldVersion = 20; } - if (oldVersion == 20) { - upgradeToVersion21(db); - oldVersion = 21; - } if (oldVersion != DATABASE_VERSION) { Log.e(TAG, "Recreating db because unknown database version: " + oldVersion); dropTables(db); @@ -505,18 +497,10 @@ public class ThemesOpenHelper extends SQLiteOpenHelper { SYSTEM_THEME_PKG_NAME)); } - private void upgradeToVersion21(SQLiteDatabase db) { - // create the theme mix tables - db.execSQL(ThemeMixesTable.THEME_MIXES_TABLE_CREATE); - db.execSQL(ThemeMixEntriesTable.THEME_MIX_ENTRIES_TABLE_CREATE); - } - private void dropTables(SQLiteDatabase db) { db.execSQL("DROP TABLE IF EXISTS " + ThemesTable.TABLE_NAME); db.execSQL("DROP TABLE IF EXISTS " + MixnMatchTable.TABLE_NAME); db.execSQL("DROP TABLE IF EXISTS " + PreviewsTable.TABLE_NAME); - db.execSQL("DROP TABLE IF EXISTS " + ThemeMixesTable.TABLE_NAME); - db.execSQL("DROP TABLE IF EXISTS " + ThemeMixEntriesTable.TABLE_NAME); } public static class ThemesTable { @@ -664,33 +648,6 @@ public class ThemesOpenHelper extends SQLiteOpenHelper { } } - public static class ThemeMixesTable { - protected static final String TABLE_NAME = "theme_mixes"; - - private static final String THEME_MIXES_TABLE_CREATE = - "CREATE TABLE " + TABLE_NAME + " (" + - ThemeMixColumns._ID + " INTEGER PRIMARY KEY AUTOINCREMENT," + - ThemeMixColumns.TITLE + " TEXT NOT NULL " + - ")"; - } - - public static class ThemeMixEntriesTable { - protected static final String TABLE_NAME = "theme_mix_entries"; - - private static final String THEME_MIX_ENTRIES_TABLE_CREATE = - "CREATE TABLE " + TABLE_NAME + " (" + - ThemeMixEntryColumns._ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + - ThemeMixEntryColumns.THEME_MIX_ID + " INTEGER NOT NULL, " + - ThemeMixEntryColumns.COMPONENT_TYPE + " TEXT NON NULL, " + - ThemeMixEntryColumns.COMPONENT_ID + " INTEGER DEFAULT 0," + - ThemeMixEntryColumns.PACKAGE_NAME + " TEXT NOT NULL, " + - ThemeMixEntryColumns.THEME_NAME + " TEXT NOT NULL, " + - ThemeMixEntryColumns.IS_INSTALLED + " INTEGER DEFAULT 1, " + - "FOREIGN KEY(" + ThemeMixEntryColumns.THEME_MIX_ID + ") REFERENCES " + - ThemeMixesTable.TABLE_NAME + "(" + ThemeMixColumns._ID + ")" + - ")"; - } - private static boolean isSystemDefault(Context context) { // == is okay since we are checking if what is returned is the same constant string value return ThemeConfig.SYSTEM_DEFAULT == ThemeUtils.getDefaultThemePackageName(context); diff --git a/src/org/cyanogenmod/themes/provider/ThemesProvider.java b/src/org/cyanogenmod/themes/provider/ThemesProvider.java index 464a9a4..61828fb 100644 --- a/src/org/cyanogenmod/themes/provider/ThemesProvider.java +++ b/src/org/cyanogenmod/themes/provider/ThemesProvider.java @@ -16,7 +16,6 @@ package org.cyanogenmod.themes.provider; -import android.annotation.NonNull; import android.content.ContentProvider; import android.content.ContentUris; import android.content.ContentValues; @@ -28,7 +27,6 @@ import android.content.UriMatcher; import android.content.pm.PackageInfo; import android.content.pm.PackageManager.NameNotFoundException; import android.database.Cursor; -import android.database.SQLException; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteQueryBuilder; import android.net.Uri; @@ -41,8 +39,6 @@ import cyanogenmod.providers.ThemesContract; import cyanogenmod.providers.ThemesContract.MixnMatchColumns; import cyanogenmod.providers.ThemesContract.PreviewColumns; import cyanogenmod.providers.ThemesContract.ThemesColumns; -import cyanogenmod.providers.ThemesContract.ThemeMixColumns; -import cyanogenmod.providers.ThemesContract.ThemeMixEntryColumns; import cyanogenmod.themes.ThemeManager; import cyanogenmod.themes.ThemeChangeRequest; import cyanogenmod.themes.ThemeChangeRequest.RequestType; @@ -51,8 +47,6 @@ import org.cyanogenmod.internal.util.ThemeUtils; import org.cyanogenmod.themes.provider.ThemesOpenHelper.MixnMatchTable; import org.cyanogenmod.themes.provider.ThemesOpenHelper.PreviewsTable; import org.cyanogenmod.themes.provider.ThemesOpenHelper.ThemesTable; -import org.cyanogenmod.themes.provider.ThemesOpenHelper.ThemeMixesTable; -import org.cyanogenmod.themes.provider.ThemesOpenHelper.ThemeMixEntriesTable; import org.cyanogenmod.themes.provider.util.PreviewUtils; import org.cyanogenmod.themes.provider.util.ProviderUtils; @@ -78,10 +72,6 @@ public class ThemesProvider extends ContentProvider { private static final int PREVIEWS_ID = 6; private static final int APPLIED_PREVIEWS = 7; private static final int COMPONENTS_PREVIEWS = 8; - private static final int THEME_MIXES = 9; - private static final int THEME_MIX_ENTRIES = 10; - private static final int THEME_MIX_ENTRIES_ID = 11; - private static final int THEME_MIX_PREVIEWS = 12; private static final UriMatcher sUriMatcher = new UriMatcher(UriMatcher.NO_MATCH); @@ -99,10 +89,6 @@ public class ThemesProvider extends ContentProvider { sUriMatcher.addURI(ThemesContract.AUTHORITY, "previews/#", PREVIEWS_ID); sUriMatcher.addURI(ThemesContract.AUTHORITY, "applied_previews/", APPLIED_PREVIEWS); sUriMatcher.addURI(ThemesContract.AUTHORITY, "components_previews/", COMPONENTS_PREVIEWS); - sUriMatcher.addURI(ThemesContract.AUTHORITY, "theme_mixes/", THEME_MIXES); - sUriMatcher.addURI(ThemesContract.AUTHORITY, "theme_mix_entries/", THEME_MIX_ENTRIES); - sUriMatcher.addURI(ThemesContract.AUTHORITY, "theme_mix_entries/#", THEME_MIX_ENTRIES_ID); - sUriMatcher.addURI(ThemesContract.AUTHORITY, "theme_mix_previews/#", THEME_MIX_PREVIEWS); } public static void setActiveTheme(Context context, String pkgName) { @@ -148,13 +134,6 @@ public class ThemesProvider extends ContentProvider { String themePreviewsDir = filesDir + File.separator + PreviewUtils.PREVIEWS_DIR + File.separator + pkgName; PreviewGenerationService.clearThemePreviewsDir(themePreviewsDir); - - // mark theme mix entries for this package as uninstalled - final String where = ThemeMixEntryColumns.PACKAGE_NAME + "=?"; - final String[] whereArgs = { pkgName }; - final ContentValues values = new ContentValues(); - values.put(ThemeMixEntryColumns.IS_INSTALLED, 0); - sqlDB.update(ThemeMixEntriesTable.TABLE_NAME, values, where, whereArgs); } c.close(); @@ -184,40 +163,6 @@ public class ThemesProvider extends ContentProvider { return rowsDeleted; case MIXNMATCH: throw new UnsupportedOperationException("Cannot delete rows in MixNMatch table"); - case THEME_MIXES: - sqlDB = mDatabase.getWritableDatabase(); - // Get the theme's _id and delete preview images - columns = new String[] { ThemeMixColumns._ID }; - c = sqlDB.query(ThemeMixesTable.TABLE_NAME, columns, selection, - selectionArgs, null, null, null); - if (c == null) return 0; - - if (c.moveToFirst()) { - idx = c.getColumnIndex(ThemeMixColumns._ID); - int mixId = c.getInt(idx); - if (mixId != -1) { - // delete all mix entries associated with this mix - sqlDB.delete(ThemeMixEntriesTable.TABLE_NAME, - ThemeMixEntryColumns.THEME_MIX_ID + "=" + mixId, null); - } - rowsDeleted = sqlDB.delete(ThemeMixesTable.TABLE_NAME, selection, selectionArgs); - } - c.close(); - if (rowsDeleted > 0) { - getContext().getContentResolver().notifyChange(uri, null); - } - return rowsDeleted; - case THEME_MIX_ENTRIES: - case THEME_MIX_ENTRIES_ID: - sqlDB = mDatabase.getWritableDatabase(); - // Get the theme's _id and delete preview images - rowsDeleted = sqlDB.delete(ThemeMixEntriesTable.TABLE_NAME, - ThemeMixEntryColumns.THEME_MIX_ID + "=" + c.getInt(idx), null); - - if (rowsDeleted > 0) { - getContext().getContentResolver().notifyChange(uri, null); - } - return rowsDeleted; } return 0; } @@ -238,12 +183,6 @@ public class ThemesProvider extends ContentProvider { return "vnd.android.cursor.dir/previews"; case PREVIEWS_ID: return "vnd.android.cursor.item/previews"; - case THEME_MIXES: - return "vnd.android.cursor.dir/theme_mixes"; - case THEME_MIX_ENTRIES: - return "vnd.android.cursor.dir/theme_mix_entries"; - case THEME_MIX_ENTRIES_ID: - return "vnd.android.cursor.item/theme_mix_entries"; default: return null; } @@ -252,7 +191,6 @@ public class ThemesProvider extends ContentProvider { @Override public Uri insert(Uri uri, ContentValues values) { int uriType = sUriMatcher.match(uri); - String packageName = values.getAsString(ThemesColumns.PKG_NAME); SQLiteDatabase sqlDB = mDatabase.getWritableDatabase(); long id = 0; switch (uriType) { @@ -263,18 +201,11 @@ public class ThemesProvider extends ContentProvider { processPreviews = state == ThemesColumns.InstallState.INSTALLED; } id = sqlDB.insert(ThemesOpenHelper.ThemesTable.TABLE_NAME, null, values); - - // Update themes_mix_entries when a theme is re installed. - final String where = ThemeMixEntryColumns.PACKAGE_NAME + "=?"; - final String[] whereArgs = { packageName }; - final ContentValues values_new = new ContentValues(); - values_new.put(ThemeMixEntryColumns.IS_INSTALLED, 1); - sqlDB.update(ThemeMixEntriesTable.TABLE_NAME, values_new, where, whereArgs); - if (processPreviews) { Intent intent = new Intent(getContext(), PreviewGenerationService.class); intent.setAction(PreviewGenerationService.ACTION_INSERT); - intent.putExtra(PreviewGenerationService.EXTRA_PKG_NAME, packageName); + intent.putExtra(PreviewGenerationService.EXTRA_PKG_NAME, + values.getAsString(ThemesColumns.PKG_NAME)); getContext().startService(intent); } break; @@ -283,61 +214,16 @@ public class ThemesProvider extends ContentProvider { case PREVIEWS: id = sqlDB.insert(ThemesOpenHelper.PreviewsTable.TABLE_NAME, null, values); break; - case THEME_MIXES: - id = sqlDB.insert(ThemeMixesTable.TABLE_NAME, null, values); - break; - case THEME_MIX_ENTRIES: - id = sqlDB.insert(ThemeMixEntriesTable.TABLE_NAME, null, values); - break; default: } if (id >= 0) { - uri = ContentUris.withAppendedId(uri, id); + ContentUris.withAppendedId(uri, id); getContext().getContentResolver().notifyChange(uri, null); } return uri; } @Override - public int bulkInsert(@NonNull Uri uri, @NonNull ContentValues[] values) { - int uriType = sUriMatcher.match(uri); - switch (uriType) { - case MIXNMATCH: - case MIXNMATCH_KEY: - case THEMES: - case THEMES_ID: - case PREVIEWS: - case PREVIEWS_ID: - case APPLIED_PREVIEWS: - case COMPONENTS_PREVIEWS: - case THEME_MIXES: - case THEME_MIX_PREVIEWS: - case THEME_MIX_ENTRIES_ID: - throw new UnsupportedOperationException("Bulk insert not supported"); - case THEME_MIX_ENTRIES: - int rowsInserted = 0; - SQLiteDatabase sqlDB = mDatabase.getWritableDatabase(); - sqlDB.beginTransaction(); - try { - for (ContentValues value : values) { - long id = sqlDB.insertOrThrow(ThemeMixEntriesTable.TABLE_NAME, null, value); - if (id <= 0) { - throw new SQLException("Failed to insert row into " + uri); - } - rowsInserted++; - } - sqlDB.setTransactionSuccessful(); - getContext().getContentResolver().notifyChange(uri, null); - } finally { - sqlDB.endTransaction(); - } - return rowsInserted; - } - - return 0; - } - - @Override public boolean onCreate() { mDatabase = new ThemesOpenHelper(getContext()); @@ -400,14 +286,6 @@ public class ThemesProvider extends ContentProvider { break; case APPLIED_PREVIEWS: return getAppliedPreviews(db); - case THEME_MIXES: - queryBuilder.setTables(ThemeMixesTable.TABLE_NAME); - break; - case THEME_MIX_ENTRIES: - queryBuilder.setTables(ThemeMixEntriesTable.TABLE_NAME); - break; - case THEME_MIX_PREVIEWS: - return getThemeMixPreviews(db, ContentUris.parseId(uri)); default: return null; } @@ -475,16 +353,6 @@ public class ThemesProvider extends ContentProvider { rowsUpdated = sqlDB.update(PreviewsTable.TABLE_NAME, values, selection, selectionArgs); getContext().getContentResolver().notifyChange(uri, null); break; - case THEME_MIXES: - rowsUpdated = sqlDB.update - (ThemeMixesTable.TABLE_NAME, values, selection, selectionArgs); - getContext().getContentResolver().notifyChange(uri,null); - break; - case THEME_MIX_ENTRIES: - rowsUpdated = sqlDB.update - (ThemeMixEntriesTable.TABLE_NAME, values, selection, selectionArgs); - getContext().getContentResolver().notifyChange(uri,null); - break; } return rowsUpdated; } @@ -578,118 +446,6 @@ public class ThemesProvider extends ContentProvider { } /** - * Queries the currently applied components and creates a SQLite statement consisting - * of a series of (SELECT ...) statements - * @param db Readable database - * @return - */ - private Cursor getThemeMixPreviews(SQLiteDatabase db, long themeMixId) { - String[] projection = {ThemeMixEntryColumns.COMPONENT_TYPE, - ThemeMixEntryColumns.COMPONENT_ID, - ThemeMixEntryColumns.PACKAGE_NAME}; - String selection = ThemeMixEntryColumns.THEME_MIX_ID + "=? AND " + - ThemeMixEntryColumns.IS_INSTALLED + "=?"; - String[] selectionArgs = { Long.toString(themeMixId), "1" }; - Cursor c = db.query(ThemeMixEntriesTable.TABLE_NAME, projection, selection, selectionArgs, - null, null, null); - if (c != null) { - StringBuilder sb = new StringBuilder("SELECT * FROM "); - String delimeter = ""; - while (c.moveToNext()) { - String component = c.getString(0); - int componentId = c.getInt(1); - String pkgName = c.getString(2); - if (component != null && pkgName != null) { - // We need to get the theme's id using its package name - String[] columns = { ThemesColumns._ID }; - selection = ThemesColumns.PKG_NAME + "=? AND " + component + "=?"; - selectionArgs = new String[] {pkgName, "1"}; - Cursor current = db.query(ThemesTable.TABLE_NAME, columns, selection, - selectionArgs, null, null, null); - int id = -1; - if (current != null) { - if (current.moveToFirst()) id = current.getInt(0); - current.close(); - } - if (id >= 0) { - if (ThemesColumns.MODIFIES_STATUS_BAR.equals(component)) { - for (String previewKey : PreviewsTable.STATUS_BAR_PREVIEW_KEYS) { - sb.append(delimeter).append(String.format(Locale.US, - "(SELECT %s AS %s FROM previews WHERE %s=%d " + - "AND %s='%s' AND %s=%d)", - PreviewColumns.COL_VALUE, previewKey, - PreviewColumns.THEME_ID, id, PreviewColumns.COL_KEY, - previewKey, PreviewColumns.COMPONENT_ID, componentId)); - delimeter = ","; - } - } else if (ThemesColumns.MODIFIES_ICONS.equals(component)) { - for (String previewKey : PreviewsTable.ICON_PREVIEW_KEYS) { - sb.append(delimeter).append(String.format(Locale.US, - "(SELECT %s AS %s FROM previews WHERE %s=%d AND %s='%s' " + - "AND %s=%d)", - PreviewColumns.COL_VALUE, previewKey, - PreviewColumns.THEME_ID, id, PreviewColumns.COL_KEY, - previewKey, PreviewColumns.COMPONENT_ID, componentId)); - delimeter = ","; - } - } else if (ThemesColumns.MODIFIES_LAUNCHER.equals(component)) { - String previewKey = PreviewColumns.WALLPAPER_PREVIEW; - sb.append(delimeter).append(String.format(Locale.US, - "(SELECT %s AS %s FROM previews WHERE %s=%d AND %s='%s' " + - "AND %s=%d)", - PreviewColumns.COL_VALUE, previewKey, PreviewColumns.THEME_ID, - id, PreviewColumns.COL_KEY, previewKey, - PreviewColumns.COMPONENT_ID, componentId)); - delimeter = ","; - } else if (ThemesColumns.MODIFIES_NAVIGATION_BAR.equals(component)) { - for (String previewKey : PreviewsTable.NAVIGATION_BAR_PREVIEW_KEYS) { - sb.append(delimeter).append(String.format(Locale.US, - "(SELECT %s AS %s FROM previews WHERE %s=%d AND %s='%s' " + - "AND %s=%d)", - PreviewColumns.COL_VALUE, previewKey, - PreviewColumns.THEME_ID, id, PreviewColumns.COL_KEY, - previewKey, PreviewColumns.COMPONENT_ID, componentId)); - delimeter = ","; - } - } else if (ThemesColumns.MODIFIES_OVERLAYS.equals(component)) { - String previewKey = PreviewColumns.STYLE_PREVIEW; - sb.append(delimeter).append(String.format(Locale.US, - "(SELECT %s AS %s FROM previews WHERE %s=%d AND %s='%s' " + - "AND %s=%d)", - PreviewColumns.COL_VALUE, previewKey, PreviewColumns.THEME_ID, - id, PreviewColumns.COL_KEY, previewKey, - PreviewColumns.COMPONENT_ID, componentId)); - delimeter = ","; - } else if (ThemesColumns.MODIFIES_LIVE_LOCK_SCREEN.equals(component)) { - String previewKey = PreviewColumns.LIVE_LOCK_SCREEN_PREVIEW; - sb.append(delimeter).append(String.format(Locale.US, - "(SELECT %s AS %s FROM previews WHERE %s=%d AND %s='%s' " + - "AND %s=%d)", - PreviewColumns.COL_VALUE, previewKey, PreviewColumns.THEME_ID, - id, PreviewColumns.COL_KEY, previewKey, - PreviewColumns.COMPONENT_ID, componentId)); - delimeter = ","; - } else if (ThemesColumns.MODIFIES_LOCKSCREEN.equals(component)) { - String previewKey = PreviewColumns.LOCK_WALLPAPER_PREVIEW; - sb.append(delimeter).append(String.format(Locale.US, - "(SELECT %s AS %s FROM previews WHERE %s=%d AND %s='%s' " + - "AND %s=%d)", - PreviewColumns.COL_VALUE, previewKey, PreviewColumns.THEME_ID, - id, PreviewColumns.COL_KEY, previewKey, - PreviewColumns.COMPONENT_ID, componentId)); - delimeter = ","; - } - } - } - } - c.close(); - sb.append(";"); - return db.rawQuery(sb.toString(), null); - } - return null; - } - - /** * When there is an insert or update to a theme, an async service will kick off to update * several of the preview image columns. Since this service also calls a 2nd update on the * content resolver, we need to break the loop so that we don't kick off the service again. |
