aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyActivity.java
diff options
context:
space:
mode:
authorDominik Schürmann <dominik@dominikschuermann.de>2015-06-29 20:48:11 +0200
committerDominik Schürmann <dominik@dominikschuermann.de>2015-06-29 20:48:11 +0200
commita9c606d49bf7d4e7a30b7265cd1fb04ff1c3c01c (patch)
tree9d3bf539e11bfd7f9d1d4d58fc046aa27e180897 /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyActivity.java
parentcf59a8fc308a8988c949c1175c963977f84ee653 (diff)
downloadopen-keychain-a9c606d49bf7d4e7a30b7265cd1fb04ff1c3c01c.tar.gz
open-keychain-a9c606d49bf7d4e7a30b7265cd1fb04ff1c3c01c.tar.bz2
open-keychain-a9c606d49bf7d4e7a30b7265cd1fb04ff1c3c01c.zip
Create key wizard for blank YubiKey
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyActivity.java')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyActivity.java55
1 files changed, 27 insertions, 28 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyActivity.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyActivity.java
index 68a809b69..fbe7b4066 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyActivity.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CreateKeyActivity.java
@@ -17,8 +17,6 @@
package org.sufficientlysecure.keychain.ui;
-import android.app.AlertDialog;
-import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
@@ -89,13 +87,19 @@ public class CreateKeyActivity extends BaseNfcActivity {
String nfcUserId = intent.getStringExtra(EXTRA_NFC_USER_ID);
byte[] nfcAid = intent.getByteArrayExtra(EXTRA_NFC_AID);
- Fragment frag2 = CreateKeyYubiKeyImportFragment.createInstance(
- nfcFingerprints, nfcAid, nfcUserId);
- loadFragment(frag2, FragAction.START);
+ if (containsKeys(nfcFingerprints)) {
+ Fragment frag = CreateKeyYubiKeyImportFragment.newInstance(
+ nfcFingerprints, nfcAid, nfcUserId);
+ loadFragment(frag, FragAction.START);
- setTitle(R.string.title_import_keys);
+ setTitle(R.string.title_import_keys);
+ } else {
+ Fragment frag = CreateKeyYubiKeyBlankFragment.newInstance();
+ loadFragment(frag, FragAction.START);
+ }
return;
} else {
+ // normal key creation
CreateKeyStartFragment frag = CreateKeyStartFragment.newInstance();
loadFragment(frag, FragAction.START);
}
@@ -122,16 +126,7 @@ public class CreateKeyActivity extends BaseNfcActivity {
byte[] nfcAid = nfcGetAid();
String userId = nfcGetUserId();
- // If all fingerprint bytes are 0, the card contains no keys.
- boolean cardContainsKeys = false;
- for (byte b : scannedFingerprints) {
- if (b != 0) {
- cardContainsKeys = true;
- break;
- }
- }
-
- if (cardContainsKeys) {
+ if (containsKeys(scannedFingerprints)) {
try {
long masterKeyId = KeyFormattingUtils.getKeyIdFromFingerprint(scannedFingerprints);
CachedPublicKeyRing ring = new ProviderHelper(this).getCachedPublicKeyRing(masterKeyId);
@@ -146,25 +141,29 @@ public class CreateKeyActivity extends BaseNfcActivity {
finish();
} catch (PgpKeyNotFoundException e) {
- Fragment frag = CreateKeyYubiKeyImportFragment.createInstance(
+ Fragment frag = CreateKeyYubiKeyImportFragment.newInstance(
scannedFingerprints, nfcAid, userId);
loadFragment(frag, FragAction.TO_RIGHT);
}
} else {
- AlertDialog.Builder builder = new AlertDialog.Builder(this);
- builder.setTitle(R.string.first_time_blank_smartcard_title)
- .setMessage(R.string.first_time_blank_smartcard_message)
- .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int button) {
- CreateKeyActivity.this.mUseSmartCardSettings = true;
- }
- })
- .setNegativeButton(android.R.string.no, null).show();
+ Fragment frag = CreateKeyYubiKeyBlankFragment.newInstance();
+ loadFragment(frag, FragAction.TO_RIGHT);
}
}
+ private boolean containsKeys(byte[] scannedFingerprints) {
+ // If all fingerprint bytes are 0, the card contains no keys.
+ boolean cardContainsKeys = false;
+ for (byte b : scannedFingerprints) {
+ if (b != 0) {
+ cardContainsKeys = true;
+ break;
+ }
+ }
+ return cardContainsKeys;
+ }
+
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
@@ -182,7 +181,7 @@ public class CreateKeyActivity extends BaseNfcActivity {
setContentView(R.layout.create_key_activity);
}
- public static enum FragAction {
+ public enum FragAction {
START,
TO_RIGHT,
TO_LEFT