diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/OpenPgpService.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/OpenPgpService.java index 06608a0f6..622e9469b 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/OpenPgpService.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/remote/OpenPgpService.java @@ -467,11 +467,8 @@ public class OpenPgpService extends Service { cryptoInput.mPassphrase = new Passphrase(data.getCharArrayExtra(OpenPgpApi.EXTRA_PASSPHRASE)); } - if (data.hasExtra(OpenPgpApi.EXTRA_DECRYPTION_RESULT_WRAPPER)) { - // this is wrapped in a Bundle to avoid ClassLoader problems - Bundle wrapperBundle = data.getBundleExtra(OpenPgpApi.EXTRA_DECRYPTION_RESULT_WRAPPER); - wrapperBundle.setClassLoader(getClassLoader()); - OpenPgpDecryptionResult decryptionResult = wrapperBundle.getParcelable(OpenPgpApi.EXTRA_DECRYPTION_RESULT); + if (data.hasExtra(OpenPgpApi.EXTRA_DECRYPTION_RESULT)) { + OpenPgpDecryptionResult decryptionResult = data.getParcelableExtra(OpenPgpApi.EXTRA_DECRYPTION_RESULT); if (decryptionResult != null && decryptionResult.hasDecryptedSessionKey()) { cryptoInput.addCryptoData(decryptionResult.getSessionKey(), decryptionResult.getDecryptedSessionKey()); } @@ -916,6 +913,9 @@ public class OpenPgpService extends Service { @Nullable InputStream inputStream, @Nullable OutputStream outputStream) { + // We need to be able to load our own parcelables + data.setExtrasClassLoader(getClassLoader()); + Intent errorResult = checkRequirements(data); if (errorResult != null) { return errorResult; diff --git a/extern/openpgp-api-lib b/extern/openpgp-api-lib index ff848daa5..16409bfab 160000 --- a/extern/openpgp-api-lib +++ b/extern/openpgp-api-lib @@ -1 +1 @@ -Subproject commit ff848daa518ad5199ec1e76bd640498daa7db562 +Subproject commit 16409bfab3a6ee8ec85aee1d0f1bca70c22286a6