diff options
author | Dominik Schürmann <dominik@dominikschuermann.de> | 2014-09-17 23:06:49 +0200 |
---|---|---|
committer | Dominik Schürmann <dominik@dominikschuermann.de> | 2014-09-17 23:06:49 +0200 |
commit | 9586d6b9b8193d3b7d990578eb97fab35c3e11eb (patch) | |
tree | 8e821c8f6ed1fa5dd6433565a146064e708a2ecf /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/widget/CertifyKeySpinner.java | |
parent | b09d222f3416d155153a681ed256c46fbf5b386a (diff) | |
download | open-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.java | 35 |
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; } } |