diff options
author | George Mount <mount@google.com> | 2013-03-12 20:53:21 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2013-03-12 20:53:22 +0000 |
commit | 9a8bf36157644e4f52c9bb3561575e6bdfcdb36a (patch) | |
tree | 73ea48800e4cb5acd5327fbd3dc7422089e8c5a5 /src | |
parent | 2594ea2c0c650c6f0d03ce5575315dfd0787d189 (diff) | |
parent | 9bd3f529ee0dc79c9c9c5c9aa89309336e232a49 (diff) | |
download | android_packages_apps_Snap-9a8bf36157644e4f52c9bb3561575e6bdfcdb36a.tar.gz android_packages_apps_Snap-9a8bf36157644e4f52c9bb3561575e6bdfcdb36a.tar.bz2 android_packages_apps_Snap-9a8bf36157644e4f52c9bb3561575e6bdfcdb36a.zip |
Merge "Add delete cascade for Accounts." into gb-ub-photos-bryce
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/photos/data/PhotoProvider.java | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/src/com/android/photos/data/PhotoProvider.java b/src/com/android/photos/data/PhotoProvider.java index c4cc903dc..084401d16 100644 --- a/src/com/android/photos/data/PhotoProvider.java +++ b/src/com/android/photos/data/PhotoProvider.java @@ -502,15 +502,17 @@ public class PhotoProvider extends SQLiteContentProvider { String[] selectionArgs, Uri uri) { switch (match) { case MATCH_PHOTO: - case MATCH_PHOTO_ID: { + case MATCH_PHOTO_ID: deleteCascadeMetadata(db, selection, selectionArgs); break; - } case MATCH_ALBUM: - case MATCH_ALBUM_ID: { + case MATCH_ALBUM_ID: deleteCascadePhotos(db, selection, selectionArgs); break; - } + case MATCH_ACCOUNT: + case MATCH_ACCOUNT_ID: + deleteCascadeAccounts(db, selection, selectionArgs); + break; } String table = getTableFromMatch(match, uri); int deleted = db.delete(table, selection, selectionArgs); @@ -520,6 +522,17 @@ public class PhotoProvider extends SQLiteContentProvider { return deleted; } + private void deleteCascadeAccounts(SQLiteDatabase db, String accountSelect, String[] args) { + // Delete all photos associated with the account + String photoWhere = nestWhere(Photos.ACCOUNT_ID, Accounts.TABLE, accountSelect); + deleteCascadeMetadata(db, photoWhere, args); + db.delete(Photos.TABLE, photoWhere, args); + + // Delete all albums that are associated with this account + String albumWhere = nestWhere(Albums.ACCOUNT_ID, Accounts.TABLE, accountSelect); + db.delete(Albums.TABLE, albumWhere, args); + } + private void deleteCascadePhotos(SQLiteDatabase db, String albumSelect, String[] selectArgs) { String photoWhere = nestWhere(Photos.ALBUM_ID, Albums.TABLE, albumSelect); |