aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/DeleteFileDialogFragment.java
diff options
context:
space:
mode:
authormar-v-in <github@rvin.mooo.com>2014-06-10 21:53:02 +0200
committermar-v-in <github@rvin.mooo.com>2014-06-10 21:53:02 +0200
commite106079b90f7d596a254b223b6e8741fc6d94785 (patch)
tree397f0b394a8b442c5027aafb0dfcaaa94c877349 /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/DeleteFileDialogFragment.java
parentf55bc41682c3cfa06d34d6b9679ba7a720066a3f (diff)
downloadopen-keychain-e106079b90f7d596a254b223b6e8741fc6d94785.tar.gz
open-keychain-e106079b90f7d596a254b223b6e8741fc6d94785.tar.bz2
open-keychain-e106079b90f7d596a254b223b6e8741fc6d94785.zip
Delete using Document API (unsafe)
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/DeleteFileDialogFragment.java')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/DeleteFileDialogFragment.java24
1 files changed, 24 insertions, 0 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/DeleteFileDialogFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/DeleteFileDialogFragment.java
index b42a79993..cae6cf043 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/DeleteFileDialogFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/DeleteFileDialogFragment.java
@@ -21,9 +21,11 @@ import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.Intent;
+import android.net.Uri;
import android.os.Bundle;
import android.os.Message;
import android.os.Messenger;
+import android.provider.DocumentsContract;
import android.support.v4.app.DialogFragment;
import android.support.v4.app.FragmentActivity;
import android.widget.Toast;
@@ -34,6 +36,7 @@ import org.sufficientlysecure.keychain.service.KeychainIntentServiceHandler;
public class DeleteFileDialogFragment extends DialogFragment {
private static final String ARG_DELETE_FILE = "delete_file";
+ private static final String ARG_DELETE_URI = "delete_uri";
/**
* Creates new instance of this delete file dialog fragment
@@ -50,12 +53,27 @@ public class DeleteFileDialogFragment extends DialogFragment {
}
/**
+ * Creates new instance of this delete file dialog fragment
+ */
+ public static DeleteFileDialogFragment newInstance(Uri deleteUri) {
+ DeleteFileDialogFragment frag = new DeleteFileDialogFragment();
+ Bundle args = new Bundle();
+
+ args.putParcelable(ARG_DELETE_URI, deleteUri);
+
+ frag.setArguments(args);
+
+ return frag;
+ }
+
+ /**
* Creates dialog
*/
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final FragmentActivity activity = getActivity();
+ final Uri deleteUri = getArguments().containsKey(ARG_DELETE_URI) ? getArguments().<Uri>getParcelable(ARG_DELETE_URI) : null;
final String deleteFile = getArguments().getString(ARG_DELETE_FILE);
CustomAlertDialogBuilder alert = new CustomAlertDialogBuilder(activity);
@@ -71,6 +89,12 @@ public class DeleteFileDialogFragment extends DialogFragment {
public void onClick(DialogInterface dialog, int id) {
dismiss();
+ if (deleteUri != null) {
+ // We can not securely delete Documents, so just use usual delete on them
+ DocumentsContract.deleteDocument(getActivity().getContentResolver(), deleteUri);
+ return;
+ }
+
// Send all information needed to service to edit key in other thread
Intent intent = new Intent(activity, KeychainIntentService.class);