aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain
diff options
context:
space:
mode:
authorVincent Breitmoser <valodim@mugenguild.com>2014-09-07 16:55:07 +0200
committerVincent Breitmoser <valodim@mugenguild.com>2014-09-07 16:55:07 +0200
commit31cc004fe144b654533f04ed5291ea77c80d5f1c (patch)
tree1b8f4b5318129291abbd421c2e8bbb0c6a8ee342 /OpenKeychain
parentfd7bdbf54f4805e0346972700dc2cd3680532059 (diff)
downloadopen-keychain-31cc004fe144b654533f04ed5291ea77c80d5f1c.tar.gz
open-keychain-31cc004fe144b654533f04ed5291ea77c80d5f1c.tar.bz2
open-keychain-31cc004fe144b654533f04ed5291ea77c80d5f1c.zip
make EditKeyFragment work with new PassphraseDialog
Diffstat (limited to 'OpenKeychain')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java80
1 files changed, 40 insertions, 40 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java
index 2137af65f..11d5292bb 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyFragment.java
@@ -41,9 +41,9 @@ import org.sufficientlysecure.keychain.Constants;
import org.sufficientlysecure.keychain.R;
import org.sufficientlysecure.keychain.compatibility.DialogFragmentWorkaround;
import org.sufficientlysecure.keychain.helper.ActionBarHelper;
-import org.sufficientlysecure.keychain.pgp.CanonicalizedSecretKeyRing;
import org.sufficientlysecure.keychain.pgp.KeyRing;
import org.sufficientlysecure.keychain.pgp.exception.PgpGeneralException;
+import org.sufficientlysecure.keychain.provider.CachedPublicKeyRing;
import org.sufficientlysecure.keychain.provider.KeychainContract;
import org.sufficientlysecure.keychain.provider.ProviderHelper;
import org.sufficientlysecure.keychain.service.KeychainIntentService;
@@ -164,25 +164,56 @@ public class EditKeyFragment extends LoaderFragment implements
Log.i(Constants.TAG, "mDataUri: " + mDataUri.toString());
+ // load the secret key ring. we do verify here that the passphrase is correct, so cached won't do
try {
Uri secretUri = KeychainContract.KeyRings.buildUnifiedKeyRingUri(mDataUri);
- CanonicalizedSecretKeyRing keyRing =
- new ProviderHelper(getActivity()).getCanonicalizedSecretKeyRing(secretUri);
+ CachedPublicKeyRing keyRing =
+ new ProviderHelper(getActivity()).getCachedPublicKeyRing(secretUri);
mSaveKeyringParcel = new SaveKeyringParcel(keyRing.getMasterKeyId(),
- keyRing.getUncachedKeyRing().getFingerprint());
+ keyRing.getFingerprint());
mPrimaryUserId = keyRing.getPrimaryUserIdWithFallback();
- } catch (ProviderHelper.NotFoundException e) {
- Log.e(Constants.TAG, "Keyring not found", e);
- Toast.makeText(getActivity(), R.string.error_no_secret_key_found, Toast.LENGTH_SHORT).show();
- getActivity().finish();
+
} catch (PgpGeneralException e) {
Log.e(Constants.TAG, "PgpGeneralException", e);
Toast.makeText(getActivity(), R.string.error_no_secret_key_found, Toast.LENGTH_SHORT).show();
getActivity().finish();
+ return;
}
- cachePassphraseForEdit();
+ try {
+ mCurrentPassphrase = PassphraseCacheService.getCachedPassphrase(getActivity(),
+ mSaveKeyringParcel.mMasterKeyId);
+ } catch (PassphraseCacheService.KeyNotFoundException e) {
+ Log.e(Constants.TAG, "Key not found!", e);
+ getActivity().finish();
+ return;
+ }
+
+ if (mCurrentPassphrase == null) {
+ PassphraseDialogFragment.show(getActivity(), mSaveKeyringParcel.mMasterKeyId,
+ new Handler() {
+ @Override
+ public void handleMessage(Message message) {
+ if (message.what == PassphraseDialogFragment.MESSAGE_OKAY) {
+ mCurrentPassphrase = message.getData().getString(
+ PassphraseDialogFragment.MESSAGE_DATA_PASSPHRASE);
+ // Prepare the loaders. Either re-connect with an existing ones,
+ // or start new ones.
+ getLoaderManager().initLoader(LOADER_ID_USER_IDS, null, EditKeyFragment.this);
+ getLoaderManager().initLoader(LOADER_ID_SUBKEYS, null, EditKeyFragment.this);
+ } else {
+ EditKeyFragment.this.getActivity().finish();
+ }
+ }
+ }
+ );
+ } else {
+ // Prepare the loaders. Either re-connect with an existing ones,
+ // or start new ones.
+ getLoaderManager().initLoader(LOADER_ID_USER_IDS, null, EditKeyFragment.this);
+ getLoaderManager().initLoader(LOADER_ID_SUBKEYS, null, EditKeyFragment.this);
+ }
mChangePassphrase.setOnClickListener(new View.OnClickListener() {
@Override
@@ -232,10 +263,6 @@ public class EditKeyFragment extends LoaderFragment implements
mSubkeysAddedAdapter = new SubkeysAddedAdapter(getActivity(), mSaveKeyringParcel.mAddSubKeys);
mSubkeysAddedList.setAdapter(mSubkeysAddedAdapter);
- // Prepare the loaders. Either re-connect with an existing ones,
- // or start new ones.
- getLoaderManager().initLoader(LOADER_ID_USER_IDS, null, this);
- getLoaderManager().initLoader(LOADER_ID_SUBKEYS, null, this);
}
public Loader<Cursor> onCreateLoader(int id, Bundle args) {
@@ -474,33 +501,6 @@ public class EditKeyFragment extends LoaderFragment implements
addSubkeyDialogFragment.show(getActivity().getSupportFragmentManager(), "addSubkeyDialog");
}
- private void cachePassphraseForEdit() {
- try {
- mCurrentPassphrase = PassphraseCacheService.getCachedPassphrase(getActivity(),
- mSaveKeyringParcel.mMasterKeyId);
- } catch (PassphraseCacheService.KeyNotFoundException e) {
- Log.e(Constants.TAG, "Key not found!", e);
- getActivity().finish();
- return;
- }
- if (mCurrentPassphrase == null) {
- PassphraseDialogFragment.show(getActivity(), mSaveKeyringParcel.mMasterKeyId,
- new Handler() {
- @Override
- public void handleMessage(Message message) {
- if (message.what == PassphraseDialogFragment.MESSAGE_OKAY) {
- mCurrentPassphrase =
- message.getData().getString(PassphraseDialogFragment.MESSAGE_DATA_PASSPHRASE);
- Log.d(Constants.TAG, "after caching passphrase");
- } else {
- EditKeyFragment.this.getActivity().finish();
- }
- }
- }
- );
- }
- }
-
private void save(String passphrase) {
Log.d(Constants.TAG, "mSaveKeyringParcel:\n" + mSaveKeyringParcel.toString());