aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure/keychain
diff options
context:
space:
mode:
authorVincent Breitmoser <valodim@mugenguild.com>2014-06-28 20:12:50 +0200
committerVincent Breitmoser <valodim@mugenguild.com>2014-06-28 20:54:13 +0200
commit3acb7fb0878afb369e5bf91db3c6a83a10e0a6ed (patch)
treea5a4fa394a5404e928ba4081352a567461b555f6 /OpenKeychain/src/main/java/org/sufficientlysecure/keychain
parent0067cdf221be2189c06946f11fc94eada2afc7f1 (diff)
downloadopen-keychain-3acb7fb0878afb369e5bf91db3c6a83a10e0a6ed.tar.gz
open-keychain-3acb7fb0878afb369e5bf91db3c6a83a10e0a6ed.tar.bz2
open-keychain-3acb7fb0878afb369e5bf91db3c6a83a10e0a6ed.zip
fix nullpointerexception in importkeyactivity
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/PgpImportExport.java12
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/ImportKeysActivity.java7
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/ImportKeysAdapter.java4
3 files changed, 20 insertions, 3 deletions
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<ParcelableKeyRing> entries)
- throws PgpGeneralException, PGPException, IOException {
+ public ImportResult importKeyRings(List<ParcelableKeyRing> 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<ImportKeysListEntry> {
public ArrayList<ImportKeysListEntry> getSelectedEntries() {
ArrayList<ImportKeysListEntry> selectedData = new ArrayList<ImportKeysListEntry>();
+ // Nothing to select, nvm.
+ if (mData == null) {
+ return selectedData;
+ }
for (ImportKeysListEntry entry : mData) {
if (entry.isSelected()) {
selectedData.add(entry);