aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SubkeysAdapter.java
diff options
context:
space:
mode:
authorVincent Breitmoser <valodim@mugenguild.com>2014-09-02 01:24:16 +0200
committerVincent Breitmoser <valodim@mugenguild.com>2014-09-02 01:24:16 +0200
commite0905a3afbba7f96822becb378b7e8fd9c51e85a (patch)
tree72f463174e322bea66c7702c236739a196b6514d /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SubkeysAdapter.java
parenta97ebc1ec9afa4951f676b4483c6db871c4704ab (diff)
downloadopen-keychain-e0905a3afbba7f96822becb378b7e8fd9c51e85a.tar.gz
open-keychain-e0905a3afbba7f96822becb378b7e8fd9c51e85a.tar.bz2
open-keychain-e0905a3afbba7f96822becb378b7e8fd9c51e85a.zip
cache key s2k type in database, for later use
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SubkeysAdapter.java')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SubkeysAdapter.java23
1 files changed, 17 insertions, 6 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SubkeysAdapter.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SubkeysAdapter.java
index 489cbcefb..7dd61117c 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SubkeysAdapter.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/SubkeysAdapter.java
@@ -31,6 +31,7 @@ import android.widget.TextView;
import org.sufficientlysecure.keychain.R;
import org.sufficientlysecure.keychain.helper.OtherHelper;
+import org.sufficientlysecure.keychain.pgp.CanonicalizedSecretKey.SecretKeyType;
import org.sufficientlysecure.keychain.pgp.PgpKeyHelper;
import org.sufficientlysecure.keychain.provider.KeychainContract.Keys;
import org.sufficientlysecure.keychain.service.SaveKeyringParcel;
@@ -113,7 +114,8 @@ public class SubkeysAdapter extends CursorAdapter {
hasAnySecret = false;
if (newCursor != null && newCursor.moveToFirst()) {
do {
- if (newCursor.getInt(INDEX_HAS_SECRET) != 0) {
+ SecretKeyType hasSecret = SecretKeyType.fromNum(newCursor.getInt(INDEX_HAS_SECRET));
+ if (hasSecret.isUsable()) {
hasAnySecret = true;
break;
}
@@ -149,12 +151,21 @@ public class SubkeysAdapter extends CursorAdapter {
vKeyId.setText(keyIdStr);
// may be set with additional "stripped" later on
- if (hasAnySecret && cursor.getInt(INDEX_HAS_SECRET) == 0) {
- vKeyDetails.setText(algorithmStr + ", " +
- context.getString(R.string.key_stripped));
- } else {
- vKeyDetails.setText(algorithmStr);
+ switch (SecretKeyType.fromNum(cursor.getInt(INDEX_HAS_SECRET))) {
+ case GNU_DUMMY:
+ algorithmStr += ", " + context.getString(R.string.key_stripped);
+ break;
+ case DIVERT_TO_CARD:
+ algorithmStr += ", " + context.getString(R.string.key_divert);
+ break;
+ case PASSPHRASE_EMPTY:
+ algorithmStr += ", " + context.getString(R.string.key_no_passphrase);
+ break;
+ case UNAVAILABLE:
+ algorithmStr += ", " + context.getString(R.string.key_unavailable);
+ break;
}
+ vKeyDetails.setText(algorithmStr);
boolean isMasterKey = cursor.getInt(INDEX_RANK) == 0;
if (isMasterKey) {