aboutsummaryrefslogtreecommitdiffstats
path: root/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/ProgressDialogFragment.java
diff options
context:
space:
mode:
authorJessica Yuen <jyuen@ualberta.ca>2014-03-02 20:55:13 -0500
committerJessica Yuen <jyuen@ualberta.ca>2014-03-02 20:55:13 -0500
commite4e3c555e9ac89cffad594dfc922715309b3b299 (patch)
tree7299299be1f1a6322cb982d7e5b15953bcbd1773 /OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/ProgressDialogFragment.java
parent91a2ecb15ce5acd720c8f23c3a09e60aad2baa1a (diff)
downloadopen-keychain-e4e3c555e9ac89cffad594dfc922715309b3b299.tar.gz
open-keychain-e4e3c555e9ac89cffad594dfc922715309b3b299.tar.bz2
open-keychain-e4e3c555e9ac89cffad594dfc922715309b3b299.zip
#226: Async key gen task is stopped if progress is canceled
Diffstat (limited to 'OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/ProgressDialogFragment.java')
-rw-r--r--OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/ProgressDialogFragment.java23
1 files changed, 14 insertions, 9 deletions
diff --git a/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/ProgressDialogFragment.java b/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/ProgressDialogFragment.java
index 0bfd4185e..6c62d14e0 100644
--- a/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/ProgressDialogFragment.java
+++ b/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/dialog/ProgressDialogFragment.java
@@ -21,6 +21,7 @@ import android.app.Activity;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
+import android.content.DialogInterface.OnCancelListener;
import android.content.DialogInterface.OnKeyListener;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
@@ -32,7 +33,8 @@ public class ProgressDialogFragment extends DialogFragment {
private static final String ARG_MESSAGE_ID = "message_id";
private static final String ARG_STYLE = "style";
private static final String ARG_CANCELABLE = "cancelable";
- private static final String ARG_FINISH_ON_CANCEL = "finish_activity_on_cancel";
+
+ private OnCancelListener mOnCancelListener;
/**
* Creates new instance of this fragment
@@ -43,15 +45,16 @@ public class ProgressDialogFragment extends DialogFragment {
* @return
*/
public static ProgressDialogFragment newInstance(int messageId, int style, boolean cancelable,
- boolean finishActivityOnCancel) {
+ OnCancelListener onCancelListener) {
ProgressDialogFragment frag = new ProgressDialogFragment();
Bundle args = new Bundle();
args.putInt(ARG_MESSAGE_ID, messageId);
args.putInt(ARG_STYLE, style);
args.putBoolean(ARG_CANCELABLE, cancelable);
- args.putBoolean(ARG_FINISH_ON_CANCEL, finishActivityOnCancel);
frag.setArguments(args);
+ frag.mOnCancelListener = onCancelListener;
+
return frag;
}
@@ -94,6 +97,14 @@ public class ProgressDialogFragment extends DialogFragment {
dialog.setMax(max);
}
+ @Override
+ public void onCancel(DialogInterface dialog) {
+ super.onCancel(dialog);
+
+ if (this.mOnCancelListener != null)
+ this.mOnCancelListener.onCancel(dialog);
+ }
+
/**
* Creates dialog
*/
@@ -120,12 +131,6 @@ public class ProgressDialogFragment extends DialogFragment {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
-
- boolean finishActivity = getArguments().getBoolean(ARG_FINISH_ON_CANCEL);
- if (finishActivity) {
- activity.setResult(Activity.RESULT_CANCELED);
- activity.finish();
- }
}
});
}