aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure/keychain
diff options
context:
space:
mode:
authorDominik Schürmann <dominik@dominikschuermann.de>2014-09-21 12:03:25 +0200
committerDominik Schürmann <dominik@dominikschuermann.de>2014-09-21 12:03:25 +0200
commit1d38365a61cb3580978238c6768831680673b682 (patch)
tree16a6e43aa2c2bda315f65650dcabef62509c7506 /OpenKeychain/src/main/java/org/sufficientlysecure/keychain
parent08ad0cb30533d8aa31963c0fa84acad2d4f4d4ad (diff)
downloadopen-keychain-1d38365a61cb3580978238c6768831680673b682.tar.gz
open-keychain-1d38365a61cb3580978238c6768831680673b682.tar.bz2
open-keychain-1d38365a61cb3580978238c6768831680673b682.zip
key spinner fixes
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainProvider.java12
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyKeyFragment.java2
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/KeySpinner.java69
3 files changed, 50 insertions, 33 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainProvider.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainProvider.java
index 4e63656ec..80f4610a4 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainProvider.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/provider/KeychainProvider.java
@@ -335,13 +335,13 @@ public class KeychainProvider extends ContentProvider {
+ " >= " + new Date().getTime() / 1000 + " )"
+ ")" : "")
+ (plist.contains(KeyRings.HAS_AUTHENTICATE) ?
- " LEFT JOIN " + Tables.KEYS + " AS kS ON ("
- +"kS." + Keys.MASTER_KEY_ID
+ " LEFT JOIN " + Tables.KEYS + " AS kA ON ("
+ +"kA." + Keys.MASTER_KEY_ID
+ " = " + Tables.KEYS + "." + Keys.MASTER_KEY_ID
- + " AND kS." + Keys.IS_REVOKED + " = 0"
- + " AND kS." + Keys.CAN_AUTHENTICATE + " = 1"
- + " AND kS." + Keys.HAS_SECRET + " > 1"
- + " AND ( kS." + Keys.EXPIRY + " IS NULL OR kS." + Keys.EXPIRY
+ + " AND kA." + Keys.IS_REVOKED + " = 0"
+ + " AND kA." + Keys.CAN_AUTHENTICATE + " = 1"
+ + " AND kA." + Keys.HAS_SECRET + " > 1"
+ + " AND ( kA." + Keys.EXPIRY + " IS NULL OR kA." + Keys.EXPIRY
+ " >= " + new Date().getTime() / 1000 + " )"
+ ")" : "")
+ (plist.contains(KeyRings.HAS_CERTIFY) ?
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyKeyFragment.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyKeyFragment.java
index 5aadaa2a2..70276bba3 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyKeyFragment.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/CertifyKeyFragment.java
@@ -237,7 +237,7 @@ public class CertifyKeyFragment extends LoaderFragment
if (data.moveToFirst()) {
mPubKeyId = data.getLong(INDEX_MASTER_KEY_ID);
mCertifyKeySpinner.setHiddenMasterKeyId(mPubKeyId);
- String keyIdStr = KeyFormattingUtils.convertKeyIdToHex(mPubKeyId);
+ String keyIdStr = KeyFormattingUtils.beautifyKeyId(mPubKeyId);
mInfoKeyId.setText(keyIdStr);
String mainUserId = data.getString(INDEX_USER_ID);
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/KeySpinner.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/KeySpinner.java
index 975ea17c7..bb4ae3ab6 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/KeySpinner.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/KeySpinner.java
@@ -151,21 +151,7 @@ public abstract class KeySpinner extends Spinner implements LoaderManager.Loader
vKeyId.setText(KeyFormattingUtils.beautifyKeyIdWithPrefix(getContext(), cursor.getLong(mIndexKeyId)));
boolean valid = setStatus(getContext(), cursor, vKeyStatus);
- if (valid) {
- vKeyName.setTextColor(Color.BLACK);
- vKeyEmail.setTextColor(Color.BLACK);
- vKeyId.setTextColor(Color.BLACK);
- vKeyStatus.setVisibility(View.GONE);
- view.setClickable(false);
- } else {
- vKeyName.setTextColor(Color.GRAY);
- vKeyEmail.setTextColor(Color.GRAY);
- vKeyId.setTextColor(Color.GRAY);
- vKeyStatus.setVisibility(View.VISIBLE);
- // this is a HACK. the trick is, if the element itself is clickable, the
- // click is not passed on to the view list
- view.setClickable(true);
- }
+ setItemEnabled(view, valid);
}
@Override
@@ -180,6 +166,29 @@ public abstract class KeySpinner extends Spinner implements LoaderManager.Loader
};
}
+ private void setItemEnabled(View view, boolean enabled) {
+ TextView vKeyName = (TextView) view.findViewById(R.id.keyspinner_key_name);
+ ImageView vKeyStatus = (ImageView) view.findViewById(R.id.keyspinner_key_status);
+ TextView vKeyEmail = (TextView) view.findViewById(R.id.keyspinner_key_email);
+ TextView vKeyId = (TextView) view.findViewById(R.id.keyspinner_key_id);
+
+ if (enabled) {
+ vKeyName.setTextColor(Color.BLACK);
+ vKeyEmail.setTextColor(Color.BLACK);
+ vKeyId.setTextColor(Color.BLACK);
+ vKeyStatus.setVisibility(View.GONE);
+ view.setClickable(false);
+ } else {
+ vKeyName.setTextColor(Color.GRAY);
+ vKeyEmail.setTextColor(Color.GRAY);
+ vKeyId.setTextColor(Color.GRAY);
+ vKeyStatus.setVisibility(View.VISIBLE);
+ // this is a HACK. the trick is, if the element itself is clickable, the
+ // click is not passed on to the view list
+ view.setClickable(true);
+ }
+ }
+
public Cursor swapCursor(Cursor newCursor) {
if (newCursor == null) return inner.swapCursor(null);
@@ -227,23 +236,31 @@ public abstract class KeySpinner extends Spinner implements LoaderManager.Loader
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
- View v;
+ View view;
if (position == 0) {
if (convertView == null) {
- v = inner.newView(null, null, parent);
+ view = inner.newView(null, null, parent);
} else {
- v = convertView;
+ view = convertView;
}
- ((TextView) v.findViewById(R.id.keyspinner_key_name)).setText(R.string.choice_none);
- v.findViewById(R.id.keyspinner_key_email).setVisibility(View.GONE);
- v.findViewById(R.id.keyspinner_key_id).setVisibility(View.GONE);
- v.findViewById(R.id.keyspinner_key_status).setVisibility(View.GONE);
+ TextView vKeyName = (TextView) view.findViewById(R.id.keyspinner_key_name);
+ ImageView vKeyStatus = (ImageView) view.findViewById(R.id.keyspinner_key_status);
+ TextView vKeyEmail = (TextView) view.findViewById(R.id.keyspinner_key_email);
+ TextView vKeyId = (TextView) view.findViewById(R.id.keyspinner_key_id);
+
+ vKeyName.setText(R.string.choice_none);
+ vKeyEmail.setVisibility(View.GONE);
+ vKeyId.setVisibility(View.GONE);
+ vKeyStatus.setVisibility(View.GONE);
+ setItemEnabled(view, true);
} else {
- v = inner.getView(position - 1, convertView, parent);
- v.findViewById(R.id.keyspinner_key_email).setVisibility(View.VISIBLE);
- v.findViewById(R.id.keyspinner_key_id).setVisibility(View.VISIBLE);
+ view = inner.getView(position - 1, convertView, parent);
+ TextView vKeyEmail = (TextView) view.findViewById(R.id.keyspinner_key_email);
+ TextView vKeyId = (TextView) view.findViewById(R.id.keyspinner_key_id);
+ vKeyEmail.setVisibility(View.VISIBLE);
+ vKeyId.setVisibility(View.VISIBLE);
}
- return v;
+ return view;
}
}