aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/CertifyKeySpinner.java
diff options
context:
space:
mode:
authorDominik Schürmann <dominik@dominikschuermann.de>2014-09-17 23:06:49 +0200
committerDominik Schürmann <dominik@dominikschuermann.de>2014-09-17 23:06:49 +0200
commit9586d6b9b8193d3b7d990578eb97fab35c3e11eb (patch)
tree8e821c8f6ed1fa5dd6433565a146064e708a2ecf /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/CertifyKeySpinner.java
parentb09d222f3416d155153a681ed256c46fbf5b386a (diff)
downloadopen-keychain-9586d6b9b8193d3b7d990578eb97fab35c3e11eb.tar.gz
open-keychain-9586d6b9b8193d3b7d990578eb97fab35c3e11eb.tar.bz2
open-keychain-9586d6b9b8193d3b7d990578eb97fab35c3e11eb.zip
Use key icons in spinners
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/CertifyKeySpinner.java')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/CertifyKeySpinner.java35
1 files changed, 31 insertions, 4 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/CertifyKeySpinner.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/CertifyKeySpinner.java
index 7224c4b03..07f6529f1 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/CertifyKeySpinner.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/CertifyKeySpinner.java
@@ -24,10 +24,13 @@ import android.os.Bundle;
import android.support.v4.content.CursorLoader;
import android.support.v4.content.Loader;
import android.util.AttributeSet;
+import android.widget.ImageView;
+
import org.sufficientlysecure.keychain.Constants;
import org.sufficientlysecure.keychain.provider.KeychainContract;
import org.sufficientlysecure.keychain.provider.KeychainDatabase;
import org.sufficientlysecure.keychain.provider.KeychainDatabase.Tables;
+import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils;
public class CertifyKeySpinner extends KeySpinner {
private long mHiddenMasterKeyId = Constants.key.none;
@@ -61,22 +64,23 @@ public class CertifyKeySpinner extends KeySpinner {
KeychainContract.KeyRings.MASTER_KEY_ID,
KeychainContract.KeyRings.KEY_ID,
KeychainContract.KeyRings.USER_ID,
+ KeychainContract.KeyRings.IS_REVOKED,
KeychainContract.KeyRings.IS_EXPIRED,
KeychainContract.KeyRings.HAS_CERTIFY,
KeychainContract.KeyRings.HAS_ANY_SECRET
};
String where = KeychainContract.KeyRings.HAS_ANY_SECRET + " = 1 AND "
- + KeychainContract.KeyRings.HAS_CERTIFY + " NOT NULL AND "
- + Tables.KEYS + "." + KeychainContract.KeyRings.IS_REVOKED + " = 0 AND "
- + KeychainContract.KeyRings.IS_EXPIRED + " = 0 AND " + KeychainDatabase.Tables.KEYS + "."
- + KeychainContract.KeyRings.MASTER_KEY_ID + " != " + mHiddenMasterKeyId;
+ + KeychainDatabase.Tables.KEYS + "." + KeychainContract.KeyRings.MASTER_KEY_ID
+ + " != " + mHiddenMasterKeyId;
// Now create and return a CursorLoader that will take care of
// creating a Cursor for the data being displayed.
return new CursorLoader(getContext(), baseUri, projection, where, null, null);
}
+ private int mIndexHasCertify, mIndexIsRevoked, mIndexIsExpired;
+
@Override
public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
super.onLoadFinished(loader, data);
@@ -84,6 +88,29 @@ public class CertifyKeySpinner extends KeySpinner {
if (mAdapter.getCount() == 2) {
setSelection(1);
}
+ mIndexHasCertify = data.getColumnIndex(KeychainContract.KeyRings.HAS_CERTIFY);
+ mIndexIsRevoked = data.getColumnIndex(KeychainContract.KeyRings.IS_REVOKED);
+ mIndexIsExpired = data.getColumnIndex(KeychainContract.KeyRings.IS_EXPIRED);
+ }
+
+ @Override
+ boolean setStatus(Context context, Cursor cursor, ImageView statusView) {
+ if (cursor.getInt(mIndexIsRevoked) != 0) {
+ KeyFormattingUtils.setStatusImage(getContext(), statusView, KeyFormattingUtils.STATE_REVOKED);
+ return false;
+ }
+ if (cursor.getInt(mIndexIsExpired) != 0) {
+ KeyFormattingUtils.setStatusImage(getContext(), statusView, KeyFormattingUtils.STATE_EXPIRED);
+ return false;
+ }
+ // don't invalidate the "None" entry, which is also null!
+ if (cursor.getPosition() != 0 && cursor.isNull(mIndexHasCertify)) {
+ KeyFormattingUtils.setStatusImage(getContext(), statusView, KeyFormattingUtils.STATE_UNAVAILABLE);
+ return false;
+ }
+
+ // valid key
+ return true;
}
}