allow progress message to be set later

This commit is contained in:
Adithya Abraham Philip
2015-06-23 20:20:13 +05:30
parent 93dc11edcf
commit 6008353df8
3 changed files with 17 additions and 47 deletions

View File

@@ -183,45 +183,6 @@ public class CreateKeyYubiKeyImportFragment
public void importKey() {
// Message is received after decrypting 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();
ImportKeyResult result =
returnData.getParcelable(DecryptVerifyResult.EXTRA_RESULT);
long[] masterKeyIds = result.getImportedMasterKeyIds();
// TODO handle masterKeyIds.length != 1...? sorta outlandish scenario
if (!result.success() || masterKeyIds.length == 0) {
result.createNotify(getActivity()).show();
return;
}
Intent intent = new Intent(getActivity(), ViewKeyActivity.class);
// use the imported masterKeyId, not the one from the yubikey, because
// that one might* just have been a subkey of the imported key
intent.setData(KeyRings.buildGenericKeyRingUri(masterKeyIds[0]));
intent.putExtra(ViewKeyActivity.EXTRA_DISPLAY_RESULT, result);
intent.putExtra(ViewKeyActivity.EXTRA_NFC_AID, mNfcAid);
intent.putExtra(ViewKeyActivity.EXTRA_NFC_USER_ID, mNfcUserId);
intent.putExtra(ViewKeyActivity.EXTRA_NFC_FINGERPRINTS, mNfcFingerprints);
startActivity(intent);
getActivity().finish();
}
}
};
ArrayList<ParcelableKeyRing> keyList = new ArrayList<>();
keyList.add(new ParcelableKeyRing(mNfcFingerprint, null, null));
mKeyList = keyList;
@@ -233,9 +194,9 @@ public class CreateKeyYubiKeyImportFragment
mKeyserver = cloudPrefs.keyserver;
}
// TODO: PHILIP make the progress dialog show importing
super.setProgressMessageResource(R.string.progress_importing);
cryptoOperation();
super.cryptoOperation();
}
@@ -267,7 +228,7 @@ public class CreateKeyYubiKeyImportFragment
super.onCryptoOperationError(result);
return;
}
Intent intent = new Intent(getActivity(), ViewKeyActivity.class);
// use the imported masterKeyId, not the one from the yubikey, because
// that one might* just have been a subkey of the imported key

View File

@@ -63,6 +63,11 @@ public abstract class CryptoOperationFragment<T extends Parcelable, S extends Op
mOperationHelper = new CryptoOperationHelper<>(this, callback);
}
public void setProgressMessageResource(int id) {
mOperationHelper.setProgressMessageResource(id);
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
mOperationHelper.handleActivityResult(requestCode, resultCode, data);

View File

@@ -67,7 +67,7 @@ public class CryptoOperationHelper<T extends Parcelable, S extends OperationResu
// otherwise all CryptoOperationHandlers may respond to the same onActivityResult
private int mRequestedCode = -1;
private int mProgressMessageString;
private int mProgressMessageResource;
private FragmentActivity mActivity;
private Fragment mFragment;
@@ -84,7 +84,7 @@ public class CryptoOperationHelper<T extends Parcelable, S extends OperationResu
mActivity = activity;
mUseFragment = false;
mCallback = callback;
mProgressMessageString = progressMessageString;
mProgressMessageResource = progressMessageString;
}
/**
@@ -95,7 +95,7 @@ public class CryptoOperationHelper<T extends Parcelable, S extends OperationResu
public CryptoOperationHelper(Fragment fragment, Callback<T, S> callback, int progressMessageString) {
mFragment = fragment;
mUseFragment = true;
mProgressMessageString = progressMessageString;
mProgressMessageResource = progressMessageString;
mCallback = callback;
}
@@ -107,10 +107,14 @@ public class CryptoOperationHelper<T extends Parcelable, S extends OperationResu
public CryptoOperationHelper(Fragment fragment, Callback<T, S> callback) {
mFragment = fragment;
mUseFragment = true;
mProgressMessageString = R.string.progress_building_key;
mProgressMessageResource = R.string.progress_building_key;
mCallback = callback;
}
public void setProgressMessageResource(int id) {
mProgressMessageResource = id;
}
private void initiateInputActivity(RequiredInputParcel requiredInput) {
Activity activity = mUseFragment ? mFragment.getActivity() : mActivity;
@@ -254,7 +258,7 @@ public class CryptoOperationHelper<T extends Parcelable, S extends OperationResu
};
saveHandler.showProgressDialog(
activity.getString(mProgressMessageString),
activity.getString(mProgressMessageResource),
ProgressDialog.STYLE_HORIZONTAL, false);
// Create a new Messenger for the communication back