From 3acb7fb0878afb369e5bf91db3c6a83a10e0a6ed Mon Sep 17 00:00:00 2001 From: Vincent Breitmoser Date: Sat, 28 Jun 2014 20:12:50 +0200 Subject: fix nullpointerexception in importkeyactivity --- .../org/sufficientlysecure/keychain/pgp/PgpImportExport.java | 12 ++++++++++-- .../sufficientlysecure/keychain/ui/ImportKeysActivity.java | 7 ++++++- .../keychain/ui/adapter/ImportKeysAdapter.java | 4 ++++ 3 files changed, 20 insertions(+), 3 deletions(-) (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain') diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpImportExport.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpImportExport.java index c50d92f7a..6fc55cfb8 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpImportExport.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpImportExport.java @@ -123,11 +123,16 @@ public class PgpImportExport { } /** Imports keys from given data. If keyIds is given only those are imported */ - public ImportResult importKeyRings(List entries) - throws PgpGeneralException, PGPException, IOException { + public ImportResult importKeyRings(List entries) { updateProgress(R.string.progress_importing, 0, 100); + // If there aren't even any keys, do nothing here. + if (entries == null || entries.size() == 0) { + return new ImportResult( + ImportResult.RESULT_FAIL_NOTHING, mProviderHelper.getLog(), 0, 0, 0); + } + int newKeys = 0, oldKeys = 0, badKeys = 0; int position = 0; @@ -165,6 +170,9 @@ public class PgpImportExport { newKeys += 1; } + } catch (IOException e) { + Log.e(Constants.TAG, "Encountered bad key on import!", e); + ++badKeys; } catch (PgpGeneralException e) { Log.e(Constants.TAG, "Encountered bad key on import!", e); ++badKeys; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysActivity.java index fab394a14..81061501e 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysActivity.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysActivity.java @@ -428,9 +428,14 @@ public class ImportKeysActivity extends ActionBarActivity { if (message.arg1 == KeychainIntentServiceHandler.MESSAGE_OKAY) { // get returned data bundle Bundle returnData = message.getData(); + if (returnData == null) { + return; + } final ImportResult result = returnData.getParcelable(KeychainIntentService.RESULT); - + if (result == null) { + return; + } int resultType = result.getResult(); String str; diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysAdapter.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysAdapter.java index a44d32e5b..7a55f9aaa 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysAdapter.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysAdapter.java @@ -85,6 +85,10 @@ public class ImportKeysAdapter extends ArrayAdapter { public ArrayList getSelectedEntries() { ArrayList selectedData = new ArrayList(); + // Nothing to select, nvm. + if (mData == null) { + return selectedData; + } for (ImportKeysListEntry entry : mData) { if (entry.isSelected()) { selectedData.add(entry); -- cgit v1.2.3