summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGeorge Mount <mount@google.com>2013-03-12 20:53:21 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2013-03-12 20:53:22 +0000
commit9a8bf36157644e4f52c9bb3561575e6bdfcdb36a (patch)
tree73ea48800e4cb5acd5327fbd3dc7422089e8c5a5 /src
parent2594ea2c0c650c6f0d03ce5575315dfd0787d189 (diff)
parent9bd3f529ee0dc79c9c9c5c9aa89309336e232a49 (diff)
downloadandroid_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.java21
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);