diff options
author | Vincent Breitmoser <valodim@mugenguild.com> | 2015-06-23 21:56:23 +0200 |
---|---|---|
committer | Vincent Breitmoser <valodim@mugenguild.com> | 2015-06-23 21:56:27 +0200 |
commit | 8d141176bd3bf8f67b04580dd7e988d8a846c0f5 (patch) | |
tree | f3fac210ff1436607e976d22298748ed89e102aa /OpenKeychain/src/main | |
parent | 45a8510bf0d0f3501d7226234a791908cf06d72a (diff) | |
download | open-keychain-8d141176bd3bf8f67b04580dd7e988d8a846c0f5.tar.gz open-keychain-8d141176bd3bf8f67b04580dd7e988d8a846c0f5.tar.bz2 open-keychain-8d141176bd3bf8f67b04580dd7e988d8a846c0f5.zip |
fix original file deletion (and instrumentation)
Diffstat (limited to 'OpenKeychain/src/main')
3 files changed, 28 insertions, 10 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/TemporaryStorageProvider.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/TemporaryStorageProvider.java index fc3d43eaf..b1f1a7d9e 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/TemporaryStorageProvider.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/TemporaryStorageProvider.java @@ -210,10 +210,13 @@ public class TemporaryStorageProvider extends ContentProvider { @Override public int delete(Uri uri, String selection, String[] selectionArgs) { - if (uri.getLastPathSegment() != null) { - selection = DatabaseUtil.concatenateWhere(selection, COLUMN_ID + "=?"); - selectionArgs = DatabaseUtil.appendSelectionArgs(selectionArgs, new String[]{uri.getLastPathSegment()}); + if (uri == null || uri.getLastPathSegment() == null) { + return 0; } + + selection = DatabaseUtil.concatenateWhere(selection, COLUMN_ID + "=?"); + selectionArgs = DatabaseUtil.appendSelectionArgs(selectionArgs, new String[]{uri.getLastPathSegment()}); + Cursor files = db.getReadableDatabase().query(TABLE_FILES, new String[]{COLUMN_ID}, selection, selectionArgs, null, null, null); if (files != null) { diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptListFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptListFragment.java index 549922526..092c5f832 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptListFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/DecryptListFragment.java @@ -499,18 +499,33 @@ public class DecryptListFragment private void deleteFile(Activity activity, Uri uri) { - try { - int deleted = activity.getContentResolver().delete(uri, null, null); - if (deleted > 0) { + if ("file".equals(uri.getScheme())) { + File file = new File(uri.getPath()); + if (file.delete()) { Notify.create(activity, R.string.file_delete_ok, Style.OK).show(); } else { Notify.create(activity, R.string.file_delete_none, Style.WARN).show(); } - } catch (Exception e) { - Log.e(Constants.TAG, "exception deleting file", e); - Notify.create(activity, R.string.file_delete_exception, Style.ERROR).show(); + return; + } + + if ("content".equals(uri.getScheme())) { + try { + int deleted = activity.getContentResolver().delete(uri, null, null); + if (deleted > 0) { + Notify.create(activity, R.string.file_delete_ok, Style.OK).show(); + } else { + Notify.create(activity, R.string.file_delete_none, Style.WARN).show(); + } + } catch (Exception e) { + Log.e(Constants.TAG, "exception deleting file", e); + Notify.create(activity, R.string.file_delete_exception, Style.ERROR).show(); + } + return; } + Notify.create(activity, R.string.file_delete_exception, Style.ERROR).show(); + } public static class DecryptFilesAdapter extends RecyclerView.Adapter<ViewHolder> { diff --git a/OpenKeychain/src/main/res/values/strings.xml b/OpenKeychain/src/main/res/values/strings.xml index 7f5998772..1f1acc2a8 100644 --- a/OpenKeychain/src/main/res/values/strings.xml +++ b/OpenKeychain/src/main/res/values/strings.xml @@ -1347,6 +1347,6 @@ <string name="file_saved">"File saved!"</string> <string name="file_delete_ok">"Original file deleted."</string> <string name="file_delete_none">"No file deleted! (Already deleted?)"</string> - <string name="file_delete_exception">"Could not delete original file!"</string> + <string name="file_delete_exception">"Original file could not be deleted!"</string> </resources> |