aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyFinalFragment.java
diff options
context:
space:
mode:
authorAdithya Abraham Philip <adithyaphilip@gmail.com>2015-06-23 23:51:31 +0530
committerAdithya Abraham Philip <adithyaphilip@gmail.com>2015-06-27 01:20:23 +0530
commitaf6a37f02b0fd51bc895e1b9aa5fea2fc0c209be (patch)
treefa7b68603b1bdf977e475ef143615b54cf61891f /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyFinalFragment.java
parent5a5d66009f22eb93874acd369443acb25700456c (diff)
downloadopen-keychain-af6a37f02b0fd51bc895e1b9aa5fea2fc0c209be.tar.gz
open-keychain-af6a37f02b0fd51bc895e1b9aa5fea2fc0c209be.tar.bz2
open-keychain-af6a37f02b0fd51bc895e1b9aa5fea2fc0c209be.zip
migrated key creation to KeychainNewService
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyFinalFragment.java')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyFinalFragment.java109
1 files changed, 40 insertions, 69 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyFinalFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyFinalFragment.java
index 7a580c541..1a5c3cd96 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyFinalFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyFinalFragment.java
@@ -24,7 +24,6 @@ import android.net.Uri;
import android.os.Bundle;
import android.os.Message;
import android.os.Messenger;
-import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@@ -46,13 +45,15 @@ import org.sufficientlysecure.keychain.service.SaveKeyringParcel;
import org.sufficientlysecure.keychain.service.SaveKeyringParcel.Algorithm;
import org.sufficientlysecure.keychain.service.SaveKeyringParcel.ChangeUnlockParcel;
import org.sufficientlysecure.keychain.ui.CreateKeyActivity.FragAction;
+import org.sufficientlysecure.keychain.ui.base.CryptoOperationFragment;
import org.sufficientlysecure.keychain.ui.base.CryptoOperationHelper;
import org.sufficientlysecure.keychain.util.Log;
import org.sufficientlysecure.keychain.util.Preferences;
import java.util.Iterator;
-public class CreateKeyFinalFragment extends Fragment {
+public class CreateKeyFinalFragment
+ extends CryptoOperationFragment<SaveKeyringParcel, EditKeyResult> {
public static final int REQUEST_EDIT_KEY = 0x00008007;
@@ -66,7 +67,7 @@ public class CreateKeyFinalFragment extends Fragment {
SaveKeyringParcel mSaveKeyringParcel;
- private CryptoOperationHelper<ExportKeyringParcel, ExportResult> mOperationHelper;
+ private CryptoOperationHelper<ExportKeyringParcel, ExportResult> mUploadOpHelper;
public static CreateKeyFinalFragment newInstance() {
CreateKeyFinalFragment frag = new CreateKeyFinalFragment();
@@ -139,8 +140,8 @@ public class CreateKeyFinalFragment extends Fragment {
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
- if (mOperationHelper != null) {
- mOperationHelper.handleActivityResult(requestCode, resultCode, data);
+ if (mUploadOpHelper != null) {
+ mUploadOpHelper.handleActivityResult(requestCode, resultCode, data);
}
switch (requestCode) {
case REQUEST_EDIT_KEY: {
@@ -157,6 +158,30 @@ public class CreateKeyFinalFragment extends Fragment {
}
@Override
+ protected SaveKeyringParcel createOperationInput() {
+ return mSaveKeyringParcel;
+ }
+
+ @Override
+ protected void onCryptoOperationSuccess(EditKeyResult result) {
+ if (result.mMasterKeyId != null && mUploadCheckbox.isChecked()) {
+ // result will be displayed after upload
+ uploadKey(result);
+ } else {
+ Intent data = new Intent();
+ data.putExtra(OperationResult.EXTRA_RESULT, result);
+ getActivity().setResult(Activity.RESULT_OK, data);
+ getActivity().finish();
+ }
+ }
+
+ @Override
+ protected void onCryptoOperationResult(EditKeyResult result) {
+ // do something else?
+ super.onCryptoOperationResult(result);
+ }
+
+ @Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
@@ -202,57 +227,8 @@ public class CreateKeyFinalFragment extends Fragment {
private void createKey() {
- Intent intent = new Intent(getActivity(), KeychainService.class);
- intent.setAction(KeychainService.ACTION_EDIT_KEYRING);
-
- 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 EditKeyResult result =
- returnData.getParcelable(OperationResult.EXTRA_RESULT);
- if (result == null) {
- Log.e(Constants.TAG, "result == null");
- return;
- }
-
- if (result.mMasterKeyId != null && mUploadCheckbox.isChecked()) {
- // result will be displayed after upload
- uploadKey(result);
- } else {
- Intent data = new Intent();
- data.putExtra(OperationResult.EXTRA_RESULT, result);
- getActivity().setResult(Activity.RESULT_OK, data);
- getActivity().finish();
- }
- }
- }
- };
-
- // fill values for this action
- Bundle data = new Bundle();
-
- // get selected key entries
- data.putParcelable(KeychainService.EDIT_KEYRING_PARCEL, mSaveKeyringParcel);
-
- 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);
-
- saveHandler.showProgressDialog(getString(R.string.progress_building_key),
- ProgressDialog.STYLE_HORIZONTAL, false);
-
- getActivity().startService(intent);
+ super.setProgressMessageResource(R.string.progress_building_key);
+ super.cryptoOperation();
}
// TODO move into EditKeyOperation
@@ -274,16 +250,7 @@ public class CreateKeyFinalFragment extends Fragment {
@Override
public void onCryptoOperationSuccess(ExportResult result) {
- // TODO: upload operation needs a result!
- // TODO: then combine these results (saveKeyResult and update op result)
- //if (result.getResult() == OperationResultParcel.RESULT_OK) {
- //Notify.create(getActivity(), R.string.key_send_success,
- //Notify.Style.OK).show();
-
- Intent data = new Intent();
- data.putExtra(OperationResult.EXTRA_RESULT, saveKeyResult);
- getActivity().setResult(Activity.RESULT_OK, data);
- getActivity().finish();
+ handleResult(result);
}
@Override
@@ -293,8 +260,11 @@ public class CreateKeyFinalFragment extends Fragment {
@Override
public void onCryptoOperationError(ExportResult result) {
+ handleResult(result);
+ }
- // TODO: upload operation needs a result!
+ public void handleResult(ExportResult result) {
+ // TODO: upload operation needs a result! "result" is not currenlty used
// TODO: then combine these results (saveKeyResult and update op result)
//if (result.getResult() == OperationResultParcel.RESULT_OK) {
//Notify.create(getActivity(), R.string.key_send_success,
@@ -307,8 +277,9 @@ public class CreateKeyFinalFragment extends Fragment {
}
};
- mOperationHelper = new CryptoOperationHelper<>(this, callback, R.string.progress_uploading);
- mOperationHelper.cryptoOperation();
+
+ mUploadOpHelper = new CryptoOperationHelper<>(this, callback, R.string.progress_uploading);
+ mUploadOpHelper.cryptoOperation();
}
}