From 01951810ae1b3a0e4fefab7d55c090fc8f776ce5 Mon Sep 17 00:00:00 2001 From: Ashley Hughes Date: Thu, 6 Mar 2014 13:00:17 +0000 Subject: fix saving new key (tmp) --- .../java/org/sufficientlysecure/keychain/pgp/PgpKeyOperation.java | 4 +++- .../sufficientlysecure/keychain/service/KeychainIntentService.java | 7 ++++++- .../java/org/sufficientlysecure/keychain/ui/EditKeyActivity.java | 5 ++++- 3 files changed, 13 insertions(+), 3 deletions(-) (limited to 'OpenPGP-Keychain/src') diff --git a/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpKeyOperation.java b/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpKeyOperation.java index a52f247c6..66665df3c 100644 --- a/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpKeyOperation.java +++ b/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpKeyOperation.java @@ -361,8 +361,10 @@ public class PgpKeyOperation { newPassPhrase = ""; } - if (mKR == null) + if (mKR == null) { buildNewSecretKey(userIds, keys, keysExpiryDates, keysUsages, newPassPhrase, oldPassPhrase); //new Keyring + return; + } /* IDs - diff --git a/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainIntentService.java b/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainIntentService.java index 3610ddc9e..9d6e24d30 100644 --- a/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainIntentService.java +++ b/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/service/KeychainIntentService.java @@ -550,8 +550,13 @@ public class KeychainIntentService extends IntentService implements ProgressDial ArrayList deleted_ids = data.getStringArrayList(SAVE_KEYRING_DELETED_IDS); boolean[] modded_keys = data.getBooleanArray(SAVE_KEYRING_MODDED_KEYS); boolean[] new_keys = data.getBooleanArray(SAVE_KEYRING_NEW_KEYS); - ArrayList deletedKeys = PgpConversionHelper.BytesToPGPSecretKeyList(data + byte[] tmp = data.getByteArray(SAVE_KEYRING_DELETED_KEYS); + ArrayList deletedKeys; + if (tmp != null) + deletedKeys = PgpConversionHelper.BytesToPGPSecretKeyList(data .getByteArray(SAVE_KEYRING_DELETED_KEYS)); + else + deletedKeys = new ArrayList(); boolean primaryChanged = data.getBoolean(SAVE_KEYRING_PRIMARY_ID_CHANGED); long masterKeyId = data.getLong(SAVE_KEYRING_MASTER_KEY_ID); diff --git a/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyActivity.java b/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyActivity.java index bb38ac979..044d15ec7 100644 --- a/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyActivity.java +++ b/OpenPGP-Keychain/src/main/java/org/sufficientlysecure/keychain/ui/EditKeyActivity.java @@ -581,8 +581,11 @@ public class EditKeyActivity extends ActionBarActivity implements EditorListener data.putByteArray(KeychainIntentService.SAVE_KEYRING_KEYS, PgpConversionHelper.PGPSecretKeyArrayListToBytes(keys)); ArrayList dKeys = mKeysView.getDeletedKeys(); + byte[] tmp = null; + if (dKeys.size() != 0) + tmp = PgpConversionHelper.PGPSecretKeyArrayListToBytes(dKeys); data.putByteArray(KeychainIntentService.SAVE_KEYRING_DELETED_KEYS, - PgpConversionHelper.PGPSecretKeyArrayListToBytes(dKeys)); + tmp); data.putIntegerArrayList(KeychainIntentService.SAVE_KEYRING_KEYS_USAGES, getKeysUsages(mKeysView)); data.putSerializable(KeychainIntentService.SAVE_KEYRING_KEYS_EXPIRY_DATES, -- cgit v1.2.3