diff options
Diffstat (limited to 'src/org/cyanogenmod/themes/provider/ThemesProvider.java')
-rw-r--r-- | src/org/cyanogenmod/themes/provider/ThemesProvider.java | 31 |
1 files changed, 26 insertions, 5 deletions
diff --git a/src/org/cyanogenmod/themes/provider/ThemesProvider.java b/src/org/cyanogenmod/themes/provider/ThemesProvider.java index 384d814..418faf0 100644 --- a/src/org/cyanogenmod/themes/provider/ThemesProvider.java +++ b/src/org/cyanogenmod/themes/provider/ThemesProvider.java @@ -102,15 +102,20 @@ public class ThemesProvider extends ContentProvider { @Override public int delete(Uri uri, String selection, String[] selectionArgs) { + SQLiteDatabase sqlDB = null; + int idx = -1; + String[] columns = null; + Cursor c = null; + int rowsDeleted = 0; int match = sUriMatcher.match(uri); switch (match) { case THEMES: - SQLiteDatabase sqlDB = mDatabase.getWritableDatabase(); + sqlDB = mDatabase.getWritableDatabase(); // Get the theme's _id and delete preview images - int idx = -1; - String[] columns = new String[] { ThemesColumns._ID, ThemesColumns.PKG_NAME }; - Cursor c = sqlDB.query(ThemesTable.TABLE_NAME, columns, selection, + idx = -1; + columns = new String[] { ThemesColumns._ID, ThemesColumns.PKG_NAME }; + c = sqlDB.query(ThemesTable.TABLE_NAME, columns, selection, selectionArgs, null, null, null); if (c == null) return 0; if (c.moveToFirst()) { @@ -128,9 +133,25 @@ public class ThemesProvider extends ContentProvider { } c.close(); - int rowsDeleted = sqlDB.delete(ThemesTable.TABLE_NAME, selection, selectionArgs); + rowsDeleted = sqlDB.delete(ThemesTable.TABLE_NAME, selection, selectionArgs); getContext().getContentResolver().notifyChange(uri, null); return rowsDeleted; + case PREVIEWS: + sqlDB = mDatabase.getWritableDatabase(); + + // Get the theme's _id and delete preview images + idx = -1; + columns = new String[] { ThemesColumns._ID }; + c = sqlDB.query(ThemesTable.TABLE_NAME, columns, selection, + selectionArgs, null, null, null); + if (c == null) return 0; + if (c.moveToFirst()) { + idx = c.getColumnIndex(ThemesColumns._ID); + rowsDeleted = sqlDB.delete(PreviewsTable.TABLE_NAME, + PreviewColumns.THEME_ID + "=" + c.getInt(idx), null); + } + c.close(); + return rowsDeleted; case MIXNMATCH: throw new UnsupportedOperationException("Cannot delete rows in MixNMatch table"); } |