aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/ServiceProgressHandler.java
diff options
context:
space:
mode:
authorVincent <valodim@mugenguild.com>2015-06-26 16:41:17 +0200
committerVincent <valodim@mugenguild.com>2015-06-26 16:41:17 +0200
commitc3d5160f17718ad19f38b1aacbb966c4b00e7909 (patch)
tree02be170836f92fb81c55b558f6f6b10da12ffa46 /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/ServiceProgressHandler.java
parent56ef0f320b24f1a40017bd8d0cb8f80c611f2abd (diff)
parentbda15ff92d1c4d8ba6bd43c9d7736adde895bd66 (diff)
downloadopen-keychain-c3d5160f17718ad19f38b1aacbb966c4b00e7909.tar.gz
open-keychain-c3d5160f17718ad19f38b1aacbb966c4b00e7909.tar.bz2
open-keychain-c3d5160f17718ad19f38b1aacbb966c4b00e7909.zip
Merge pull request #1324 from open-keychain/v/multi-decrypt
finished encrypt/decrypt rewrite
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/ServiceProgressHandler.java')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/ServiceProgressHandler.java76
1 files changed, 57 insertions, 19 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/ServiceProgressHandler.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/ServiceProgressHandler.java
index 76aa1a618..989b0c4bd 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/ServiceProgressHandler.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/service/ServiceProgressHandler.java
@@ -17,6 +17,7 @@
package org.sufficientlysecure.keychain.service;
+
import android.app.ProgressDialog;
import android.os.Bundle;
import android.os.Handler;
@@ -97,24 +98,15 @@ public class ServiceProgressHandler extends Handler {
public void handleMessage(Message message) {
Bundle data = message.getData();
- ProgressDialogFragment progressDialogFragment =
- (ProgressDialogFragment) mActivity.getSupportFragmentManager()
- .findFragmentByTag("progressDialog");
-
- if (progressDialogFragment == null) {
- Log.e(Constants.TAG, "Progress has not been updated because mProgressDialogFragment was null!");
- return;
- }
-
MessageStatus status = MessageStatus.fromInt(message.arg1);
switch (status) {
case OKAY:
- progressDialogFragment.dismissAllowingStateLoss();
+ dismissAllowingStateLoss();
break;
case EXCEPTION:
- progressDialogFragment.dismissAllowingStateLoss();
+ dismissAllowingStateLoss();
// show error from service
if (data.containsKey(DATA_ERROR)) {
@@ -128,23 +120,25 @@ public class ServiceProgressHandler extends Handler {
case UPDATE_PROGRESS:
if (data.containsKey(DATA_PROGRESS) && data.containsKey(DATA_PROGRESS_MAX)) {
+ String msg = null;
+ int progress = data.getInt(DATA_PROGRESS);
+ int max = data.getInt(DATA_PROGRESS_MAX);
+
// update progress from service
if (data.containsKey(DATA_MESSAGE)) {
- progressDialogFragment.setProgress(data.getString(DATA_MESSAGE),
- data.getInt(DATA_PROGRESS), data.getInt(DATA_PROGRESS_MAX));
+ msg = data.getString(DATA_MESSAGE);
} else if (data.containsKey(DATA_MESSAGE_ID)) {
- progressDialogFragment.setProgress(data.getInt(DATA_MESSAGE_ID),
- data.getInt(DATA_PROGRESS), data.getInt(DATA_PROGRESS_MAX));
- } else {
- progressDialogFragment.setProgress(data.getInt(DATA_PROGRESS),
- data.getInt(DATA_PROGRESS_MAX));
+ msg = mActivity.getString(data.getInt(DATA_MESSAGE_ID));
}
+
+ onSetProgress(msg, progress, max);
+
}
break;
case PREVENT_CANCEL:
- progressDialogFragment.setPreventCancel(true);
+ setPreventCancel(true);
break;
default:
@@ -152,4 +146,48 @@ public class ServiceProgressHandler extends Handler {
break;
}
}
+
+ private void setPreventCancel(boolean preventCancel) {
+ ProgressDialogFragment progressDialogFragment =
+ (ProgressDialogFragment) mActivity.getSupportFragmentManager()
+ .findFragmentByTag("progressDialog");
+
+ if (progressDialogFragment == null) {
+ return;
+ }
+
+ progressDialogFragment.setPreventCancel(preventCancel);
+ }
+
+ protected void dismissAllowingStateLoss() {
+ ProgressDialogFragment progressDialogFragment =
+ (ProgressDialogFragment) mActivity.getSupportFragmentManager()
+ .findFragmentByTag("progressDialog");
+
+ if (progressDialogFragment == null) {
+ return;
+ }
+
+ progressDialogFragment.dismissAllowingStateLoss();
+ }
+
+
+ protected void onSetProgress(String msg, int progress, int max) {
+
+ ProgressDialogFragment progressDialogFragment =
+ (ProgressDialogFragment) mActivity.getSupportFragmentManager()
+ .findFragmentByTag("progressDialog");
+
+ if (progressDialogFragment == null) {
+ return;
+ }
+
+ if (msg != null) {
+ progressDialogFragment.setProgress(msg, progress, max);
+ } else {
+ progressDialogFragment.setProgress(progress, max);
+ }
+
+ }
+
}