diff options
author | Vincent Breitmoser <valodim@mugenguild.com> | 2015-06-10 15:43:00 +0200 |
---|---|---|
committer | Vincent Breitmoser <valodim@mugenguild.com> | 2015-06-10 15:45:10 +0200 |
commit | 61dce088c25ea68cbff59b5d8b1af80b39d5cc59 (patch) | |
tree | 8d2756bd493e005d96dc31f88b88fe4351fb5f43 /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/CachingCryptoOperationFragment.java | |
parent | 9b6416943b49d620c73bd24fb334ec338d95c5a8 (diff) | |
download | open-keychain-61dce088c25ea68cbff59b5d8b1af80b39d5cc59.tar.gz open-keychain-61dce088c25ea68cbff59b5d8b1af80b39d5cc59.tar.bz2 open-keychain-61dce088c25ea68cbff59b5d8b1af80b39d5cc59.zip |
backport CryptoOperationFragment changes without eventbus
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/CachingCryptoOperationFragment.java')
-rw-r--r-- | OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/CachingCryptoOperationFragment.java | 37 |
1 files changed, 32 insertions, 5 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/CachingCryptoOperationFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/CachingCryptoOperationFragment.java index e8e8c5363..8ed4cbc87 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/CachingCryptoOperationFragment.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/base/CachingCryptoOperationFragment.java @@ -5,11 +5,13 @@ 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 org.sufficientlysecure.keychain.R; import org.sufficientlysecure.keychain.operations.results.OperationResult; import org.sufficientlysecure.keychain.service.KeychainNewService; +import org.sufficientlysecure.keychain.service.KeychainService; import org.sufficientlysecure.keychain.service.ServiceProgressHandler; import org.sufficientlysecure.keychain.service.input.CryptoInputParcel; @@ -55,6 +57,7 @@ public abstract class CachingCryptoOperationFragment <T extends Parcelable, S ex // Notify was created by createCryptoInput. return; } + } // Send all information needed to service to edit key in other thread @@ -63,12 +66,36 @@ public abstract class CachingCryptoOperationFragment <T extends Parcelable, S ex intent.putExtra(KeychainNewService.EXTRA_OPERATION_INPUT, mCachedActionsParcel); 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); } |