aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java
diff options
context:
space:
mode:
authorAdithya Abraham Philip <adithyaphilip@gmail.com>2015-06-24 03:51:53 +0530
committerAdithya Abraham Philip <adithyaphilip@gmail.com>2015-06-27 01:20:23 +0530
commitb33004a2f599d34035c0b49dff75cf00a21adb7e (patch)
tree238b8c619106219ddc79bf8777cfcc35b3712e50 /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java
parent6f3be84c43365b081040e8cefc571fa3db0550aa (diff)
downloadopen-keychain-b33004a2f599d34035c0b49dff75cf00a21adb7e.tar.gz
open-keychain-b33004a2f599d34035c0b49dff75cf00a21adb7e.tar.bz2
open-keychain-b33004a2f599d34035c0b49dff75cf00a21adb7e.zip
migrated consolidation
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java71
1 files changed, 30 insertions, 41 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java
index b52640d86..379f4c6b9 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/KeyListFragment.java
@@ -64,10 +64,7 @@ import org.sufficientlysecure.keychain.provider.KeychainContract;
import org.sufficientlysecure.keychain.provider.KeychainContract.KeyRings;
import org.sufficientlysecure.keychain.provider.KeychainDatabase;
import org.sufficientlysecure.keychain.provider.ProviderHelper;
-import org.sufficientlysecure.keychain.service.ImportKeyringParcel;
-import org.sufficientlysecure.keychain.service.KeychainService;
-import org.sufficientlysecure.keychain.service.ServiceProgressHandler;
-import org.sufficientlysecure.keychain.service.PassphraseCacheService;
+import org.sufficientlysecure.keychain.service.*;
import org.sufficientlysecure.keychain.ui.base.CryptoOperationHelper;
import org.sufficientlysecure.keychain.ui.dialog.DeleteKeyDialogFragment;
import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils;
@@ -115,6 +112,9 @@ public class KeyListFragment extends LoaderFragment
private String mKeyserver;
private CryptoOperationHelper<ImportKeyringParcel, ImportKeyResult> mImportOpHelper;
+ // for ConsolidateOperation
+ private CryptoOperationHelper<ConsolidateInputParcel, ConsolidateResult> mConsolidateOpHelper;
+
// This ids for multiple key export.
private ArrayList<Long> mIdsForRepeatAskPassphrase;
// This index for remembering the number of master key.
@@ -607,51 +607,35 @@ public class KeyListFragment extends LoaderFragment
}
private void consolidate() {
- // Message is received after importing is done in KeychainService
- 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 ConsolidateResult result =
- returnData.getParcelable(OperationResult.EXTRA_RESULT);
- if (result == null) {
- return;
- }
- result.createNotify(getActivity()).show();
- }
- }
- };
+ CryptoOperationHelper.Callback<ConsolidateInputParcel, ConsolidateResult> callback
+ = new CryptoOperationHelper.Callback<ConsolidateInputParcel, ConsolidateResult>() {
- // Send all information needed to service to import key in other thread
- Intent intent = new Intent(getActivity(), KeychainService.class);
+ @Override
+ public ConsolidateInputParcel createOperationInput() {
+ return new ConsolidateInputParcel(false); // we want to perform a full consolidate
+ }
- intent.setAction(KeychainService.ACTION_CONSOLIDATE);
+ @Override
+ public void onCryptoOperationSuccess(ConsolidateResult result) {
+ result.createNotify(getActivity()).show();
+ }
- // fill values for this action
- Bundle data = new Bundle();
+ @Override
+ public void onCryptoOperationCancelled() {
- intent.putExtra(KeychainService.EXTRA_DATA, data);
+ }
- // Create a new Messenger for the communication back
- Messenger messenger = new Messenger(saveHandler);
- intent.putExtra(KeychainService.EXTRA_MESSENGER, messenger);
+ @Override
+ public void onCryptoOperationError(ConsolidateResult result) {
+ result.createNotify(getActivity()).show();
+ }
+ };
- // show progress dialog
- saveHandler.showProgressDialog(
- getString(R.string.progress_importing),
- ProgressDialog.STYLE_HORIZONTAL, false);
+ mConsolidateOpHelper =
+ new CryptoOperationHelper<>(this, callback, R.string.progress_importing);
- // start service with intent
- getActivity().startService(intent);
+ mConsolidateOpHelper.cryptoOperation();
}
private void showMultiExportDialog(long[] masterKeyIds) {
@@ -693,6 +677,11 @@ public class KeyListFragment extends LoaderFragment
if (mImportOpHelper != null) {
mImportOpHelper.handleActivityResult(requestCode, resultCode, data);
}
+
+ if (mConsolidateOpHelper != null) {
+ mConsolidateOpHelper.handleActivityResult(requestCode, resultCode, data);
+ }
+
if (requestCode == REQUEST_REPEAT_PASSPHRASE) {
if (resultCode != Activity.RESULT_OK) {
return;