aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyKeyFragment.java
diff options
context:
space:
mode:
authorVincent Breitmoser <valodim@mugenguild.com>2015-06-06 23:17:42 +0200
committerVincent Breitmoser <valodim@mugenguild.com>2015-06-06 23:17:42 +0200
commit074b6633b015aba84f8f60a05878a93d4b8ec9b2 (patch)
treeb7d11a8df2bc0ff93b245fbc67d7c7ba6bf9dd18 /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyKeyFragment.java
parent7cfc0d80d0b4318ce1ae027536d70c2cda4c8605 (diff)
downloadopen-keychain-074b6633b015aba84f8f60a05878a93d4b8ec9b2.tar.gz
open-keychain-074b6633b015aba84f8f60a05878a93d4b8ec9b2.tar.bz2
open-keychain-074b6633b015aba84f8f60a05878a93d4b8ec9b2.zip
eventbus: initial attempt, replace messenger hack with eventbus communication
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyKeyFragment.java')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyKeyFragment.java112
1 files changed, 25 insertions, 87 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyKeyFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyKeyFragment.java
index 6afe2256b..e39a3a0bf 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyKeyFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyKeyFragment.java
@@ -64,7 +64,8 @@ import org.sufficientlysecure.keychain.util.Preferences;
import java.util.ArrayList;
-public class CertifyKeyFragment extends CachingCryptoOperationFragment<CertifyActionsParcel>
+public class CertifyKeyFragment
+ extends CachingCryptoOperationFragment<CertifyActionsParcel, CertifyResult>
implements LoaderManager.LoaderCallbacks<Cursor> {
public static final String ARG_CHECK_STATES = "check_states";
@@ -89,7 +90,6 @@ public class CertifyKeyFragment extends CachingCryptoOperationFragment<CertifyAc
private static final int INDEX_IS_REVOKED = 4;
private MultiUserIdsAdapter mUserIdsAdapter;
- private Messenger mPassthroughMessenger;
@Override
public void onActivityCreated(Bundle savedInstanceState) {
@@ -102,10 +102,6 @@ public class CertifyKeyFragment extends CachingCryptoOperationFragment<CertifyAc
return;
}
- mPassthroughMessenger = getActivity().getIntent().getParcelableExtra(
- KeychainService.EXTRA_MESSENGER);
- mPassthroughMessenger = null; // TODO doesn't work with CryptoOperationFragment, disabled for now
-
ArrayList<Boolean> checkedStates;
if (savedInstanceState != null) {
checkedStates = (ArrayList<Boolean>) savedInstanceState.getSerializable(ARG_CHECK_STATES);
@@ -306,97 +302,39 @@ public class CertifyKeyFragment extends CachingCryptoOperationFragment<CertifyAc
}
@Override
- protected void cryptoOperation(CryptoInputParcel cryptoInput, CertifyActionsParcel actionsParcel) {
- Bundle data = new Bundle();
- {
-
- if (actionsParcel == null) {
- // Bail out if there is not at least one user id selected
- ArrayList<CertifyAction> certifyActions = mUserIdsAdapter.getSelectedCertifyActions();
- if (certifyActions.isEmpty()) {
- Notify.create(getActivity(), "No identities selected!",
- Notify.Style.ERROR).show();
- return;
- }
-
- long selectedKeyId = mCertifyKeySpinner.getSelectedKeyId();
-
- // fill values for this action
- actionsParcel = new CertifyActionsParcel(selectedKeyId);
- actionsParcel.mCertifyActions.addAll(certifyActions);
-
- // cached for next cryptoOperation loop
- cacheActionsParcel(actionsParcel);
- }
-
- data.putParcelable(KeychainService.EXTRA_CRYPTO_INPUT, cryptoInput);
- data.putParcelable(KeychainService.CERTIFY_PARCEL, actionsParcel);
-
- if (mUploadKeyCheckbox.isChecked()) {
- String keyserver = Preferences.getPreferences(getActivity()).getPreferredKeyserver();
- data.putString(KeychainService.UPLOAD_KEY_SERVER, keyserver);
- }
+ protected CertifyActionsParcel createOperationInput() {
+
+ // Bail out if there is not at least one user id selected
+ ArrayList<CertifyAction> certifyActions = mUserIdsAdapter.getSelectedCertifyActions();
+ if (certifyActions.isEmpty()) {
+ Notify.create(getActivity(), "No identities selected!",
+ Notify.Style.ERROR).show();
+ return null;
}
- // Send all information needed to service to sign key in other thread
- Intent intent = new Intent(getActivity(), KeychainService.class);
- intent.setAction(KeychainService.ACTION_CERTIFY_KEYRING);
- intent.putExtra(KeychainService.EXTRA_DATA, data);
+ long selectedKeyId = mCertifyKeySpinner.getSelectedKeyId();
- if (mPassthroughMessenger != null) {
- intent.putExtra(KeychainService.EXTRA_MESSENGER, mPassthroughMessenger);
- } else {
+ // fill values for this action
+ CertifyActionsParcel actionsParcel = new CertifyActionsParcel(selectedKeyId);
+ actionsParcel.mCertifyActions.addAll(certifyActions);
- // Message is received after signing is done in KeychainService
- ServiceProgressHandler saveHandler = new ServiceProgressHandler(
- getActivity(),
- getString(R.string.progress_certifying),
- ProgressDialog.STYLE_SPINNER,
- true
- ) {
- @Override
- public void handleMessage(Message message) {
- // handle messages by KeychainIntentCryptoServiceHandler first
- super.handleMessage(message);
-
- // handle pending messages
- if (handlePendingMessage(message)) {
- return;
- }
+ // cached for next cryptoOperation loop
+ cacheActionsParcel(actionsParcel);
- if (message.arg1 == MessageStatus.OKAY.ordinal()) {
- Bundle data = message.getData();
-
- CertifyResult result = data.getParcelable(CertifyResult.EXTRA_RESULT);
-
- Intent intent = new Intent();
- intent.putExtra(CertifyResult.EXTRA_RESULT, result);
- getActivity().setResult(Activity.RESULT_OK, intent);
- getActivity().finish();
- }
- }
- };
-
- // Create a new Messenger for the communication back
- Messenger messenger = new Messenger(saveHandler);
- intent.putExtra(KeychainService.EXTRA_MESSENGER, messenger);
-
- // show progress dialog
- saveHandler.showProgressDialog(getActivity());
- }
-
- // start service with intent
- getActivity().startService(intent);
-
- if (mPassthroughMessenger != null) {
- getActivity().setResult(Activity.RESULT_OK);
- getActivity().finish();
- }
+ return actionsParcel;
+ }
+ @Override
+ protected void onCryptoOperationSuccess(CertifyResult result) {
+ Intent intent = new Intent();
+ intent.putExtra(CertifyResult.EXTRA_RESULT, result);
+ getActivity().setResult(Activity.RESULT_OK, intent);
+ getActivity().finish();
}
@Override
protected void onCryptoOperationCancelled() {
super.onCryptoOperationCancelled();
}
+
}