aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/CryptoOperationFragment.java
diff options
context:
space:
mode:
authorVincent Breitmoser <valodim@mugenguild.com>2015-06-10 17:12:22 +0200
committerVincent Breitmoser <valodim@mugenguild.com>2015-06-10 17:12:22 +0200
commit1697e22d1954d90289bac06abe23778c371337da (patch)
tree39820a156392e15be5fb7d8d33cf6a23aa1c6625 /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/CryptoOperationFragment.java
parentd43671b2ed42dba8c0ab8c43a5d171bf842e2782 (diff)
parent8da88f33bc3991653f91ccfd589cded23a9653b1 (diff)
downloadopen-keychain-1697e22d1954d90289bac06abe23778c371337da.tar.gz
open-keychain-1697e22d1954d90289bac06abe23778c371337da.tar.bz2
open-keychain-1697e22d1954d90289bac06abe23778c371337da.zip
Merge branch 'v/eventbus' into v/multi-decrypt
Conflicts: OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/CryptoOperationFragment.java
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/CryptoOperationFragment.java')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/CryptoOperationFragment.java91
1 files changed, 35 insertions, 56 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/CryptoOperationFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/CryptoOperationFragment.java
index eb8b7cf3e..e21589bcd 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/CryptoOperationFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/CryptoOperationFragment.java
@@ -21,16 +21,18 @@ package org.sufficientlysecure.keychain.ui.base;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
+import android.os.Bundle;
+import android.os.Message;
+import android.os.Messenger;
import android.os.Parcelable;
import android.support.v4.app.Fragment;
-import android.support.v4.app.FragmentManager;
-import de.greenrobot.event.EventBus;
import org.sufficientlysecure.keychain.R;
import org.sufficientlysecure.keychain.operations.results.InputPendingResult;
import org.sufficientlysecure.keychain.operations.results.OperationResult;
import org.sufficientlysecure.keychain.service.KeychainNewService;
-import org.sufficientlysecure.keychain.service.ProgressEvent;
+import org.sufficientlysecure.keychain.service.KeychainService;
+import org.sufficientlysecure.keychain.service.ServiceProgressHandler;
import org.sufficientlysecure.keychain.service.input.CryptoInputParcel;
import org.sufficientlysecure.keychain.service.input.RequiredInputParcel;
import org.sufficientlysecure.keychain.ui.NfcOperationActivity;
@@ -47,18 +49,6 @@ public abstract class CryptoOperationFragment <T extends Parcelable, S extends O
public static final int REQUEST_CODE_PASSPHRASE = 0x00008001;
public static final int REQUEST_CODE_NFC = 0x00008002;
- @Override
- public void onStart() {
- super.onStart();
- EventBus.getDefault().register(this);
- }
-
- @Override
- public void onStop() {
- EventBus.getDefault().unregister(this);
- super.onStop();
- }
-
private void initiateInputActivity(RequiredInputParcel requiredInput) {
switch (requiredInput.mType) {
@@ -130,22 +120,6 @@ public abstract class CryptoOperationFragment <T extends Parcelable, S extends O
}
- public void showProgressFragment(String progressDialogMessage,
- int progressDialogStyle,
- boolean cancelable) {
-
- if (getFragmentManager().findFragmentByTag("progressDialog") != null) {
- return;
- }
-
- ProgressDialogFragment progressDialogFragment = ProgressDialogFragment.newInstance(
- progressDialogMessage, progressDialogStyle, cancelable);
-
- FragmentManager manager = getFragmentManager();
- progressDialogFragment.show(manager, "progressDialog");
-
- }
-
protected abstract T createOperationInput();
protected void cryptoOperation(CryptoInputParcel cryptoInput) {
@@ -161,12 +135,36 @@ public abstract class CryptoOperationFragment <T extends Parcelable, S extends O
intent.putExtra(KeychainNewService.EXTRA_OPERATION_INPUT, operationInput);
intent.putExtra(KeychainNewService.EXTRA_CRYPTO_INPUT, cryptoInput);
- showProgressFragment(
- getString(R.string.progress_start),
- ProgressDialog.STYLE_HORIZONTAL,
- false);
+ ServiceProgressHandler saveHandler = new ServiceProgressHandler(getActivity()) {
+ @Override
+ public void handleMessage(Message message) {
+ // handle messages by standard KeychainIntentServiceHandler first
+ super.handleMessage(message);
+
+ if (message.arg1 == MessageStatus.OKAY.ordinal()) {
+
+ // get returned data bundle
+ Bundle returnData = message.getData();
+ if (returnData == null) {
+ return;
+ }
+
+ final OperationResult result =
+ returnData.getParcelable(OperationResult.EXTRA_RESULT);
+
+ onHandleResult(result);
+ }
+ }
+ };
+
+ // Create a new Messenger for the communication back
+ Messenger messenger = new Messenger(saveHandler);
+ intent.putExtra(KeychainService.EXTRA_MESSENGER, messenger);
+
+ saveHandler.showProgressDialog(
+ getString(R.string.progress_building_key),
+ ProgressDialog.STYLE_HORIZONTAL, false);
- // start service with intent
getActivity().startService(intent);
}
@@ -190,23 +188,9 @@ public abstract class CryptoOperationFragment <T extends Parcelable, S extends O
}
protected void onCryptoOperationCancelled() {
- dismissProgress();
}
- protected void onCryptoSetProgress(String msg, int progress, int max) {
- ProgressDialogFragment progressDialogFragment =
- (ProgressDialogFragment) getFragmentManager().findFragmentByTag("progressDialog");
-
- if (progressDialogFragment == null) {
- return;
- }
-
- progressDialogFragment.setProgress(msg, progress, max);
-
- }
-
- @SuppressWarnings("unused") // it's an EventBus method
- public void onEventMainThread(OperationResult result) {
+ public void onHandleResult(OperationResult result) {
if (result instanceof InputPendingResult) {
InputPendingResult pendingResult = (InputPendingResult) result;
@@ -229,9 +213,4 @@ public abstract class CryptoOperationFragment <T extends Parcelable, S extends O
}
- @SuppressWarnings("unused") // it's an EventBus method
- public void onEventMainThread(ProgressEvent event) {
- onCryptoSetProgress(event.mMessage, event.mProgress, event.mMax);
- }
-
}