diff options
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/KeyAdapter.java')
-rw-r--r-- | OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/KeyAdapter.java | 44 |
1 files changed, 29 insertions, 15 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/KeyAdapter.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/KeyAdapter.java index e545b007b..aba1eb0d8 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/KeyAdapter.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/ui/adapter/KeyAdapter.java @@ -21,7 +21,6 @@ package org.sufficientlysecure.keychain.ui.adapter; import java.io.Serializable; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collection; import java.util.Date; import java.util.List; @@ -43,6 +42,7 @@ import org.sufficientlysecure.keychain.pgp.CanonicalizedPublicKeyRing; import org.sufficientlysecure.keychain.pgp.KeyRing; import org.sufficientlysecure.keychain.provider.KeychainContract.KeyRings; import org.sufficientlysecure.keychain.ui.util.Highlighter; +import org.sufficientlysecure.keychain.ui.util.FormattingUtils; import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils; import org.sufficientlysecure.keychain.ui.util.KeyFormattingUtils.State; @@ -50,6 +50,7 @@ public class KeyAdapter extends CursorAdapter { protected String mQuery; protected LayoutInflater mInflater; + protected Context mContext; // These are the rows that we will retrieve. public static final String[] PROJECTION = new String[]{ @@ -78,6 +79,7 @@ public class KeyAdapter extends CursorAdapter { public KeyAdapter(Context context, Cursor c, int flags) { super(context, c, flags); + mContext = context; mInflater = LayoutInflater.from(context); } @@ -107,7 +109,7 @@ public class KeyAdapter extends CursorAdapter { mCreationDate = (TextView) view.findViewById(R.id.key_list_item_creation); } - public void setData(Context context, KeyItem item, Highlighter highlighter) { + public void setData(Context context, KeyItem item, Highlighter highlighter, boolean enabled) { mDisplayedItem = item; @@ -126,36 +128,39 @@ public class KeyAdapter extends CursorAdapter { } } + // sort of a hack: if this item isn't enabled, we make it clickable + // to intercept its click events + mView.setClickable(!enabled); + { // set edit button and status, specific by key type mMasterKeyId = item.mKeyId; + int textColor; + // Note: order is important! if (item.mIsRevoked) { KeyFormattingUtils - .setStatusImage(context, mStatus, null, State.REVOKED, R.color.bg_gray); + .setStatusImage(context, mStatus, null, State.REVOKED, R.color.key_flag_gray); mStatus.setVisibility(View.VISIBLE); mSlinger.setVisibility(View.GONE); - mMainUserId.setTextColor(context.getResources().getColor(R.color.bg_gray)); - mMainUserIdRest.setTextColor(context.getResources().getColor(R.color.bg_gray)); + textColor = context.getResources().getColor(R.color.key_flag_gray); } else if (item.mIsExpired) { - KeyFormattingUtils.setStatusImage(context, mStatus, null, State.EXPIRED, R.color.bg_gray); + KeyFormattingUtils.setStatusImage(context, mStatus, null, State.EXPIRED, R.color.key_flag_gray); mStatus.setVisibility(View.VISIBLE); mSlinger.setVisibility(View.GONE); - mMainUserId.setTextColor(context.getResources().getColor(R.color.bg_gray)); - mMainUserIdRest.setTextColor(context.getResources().getColor(R.color.bg_gray)); + textColor = context.getResources().getColor(R.color.key_flag_gray); } else if (item.mIsSecret) { mStatus.setVisibility(View.GONE); if (mSlingerButton.hasOnClickListeners()) { mSlingerButton.setColorFilter( - context.getResources().getColor(R.color.tertiary_text_light), + FormattingUtils.getColorFromAttr(context, R.attr.colorTertiaryText), PorterDuff.Mode.SRC_IN); mSlinger.setVisibility(View.VISIBLE); } else { mSlinger.setVisibility(View.GONE); } - mMainUserId.setTextColor(context.getResources().getColor(R.color.black)); - mMainUserIdRest.setTextColor(context.getResources().getColor(R.color.black)); + textColor = FormattingUtils.getColorFromAttr(context, R.attr.colorText); } else { // this is a public key - show if it's verified if (item.mIsVerified) { @@ -166,10 +171,16 @@ public class KeyAdapter extends CursorAdapter { mStatus.setVisibility(View.VISIBLE); } mSlinger.setVisibility(View.GONE); - mMainUserId.setTextColor(context.getResources().getColor(R.color.black)); - mMainUserIdRest.setTextColor(context.getResources().getColor(R.color.black)); + textColor = FormattingUtils.getColorFromAttr(context, R.attr.colorText); + } + + if (!enabled) { + textColor = context.getResources().getColor(R.color.key_flag_gray); } + mMainUserId.setTextColor(textColor); + mMainUserIdRest.setTextColor(textColor); + if (item.mHasDuplicate) { String dateTime = DateUtils.formatDateTime(context, item.mCreation.getTime(), @@ -179,6 +190,7 @@ public class KeyAdapter extends CursorAdapter { mCreationDate.setText(context.getString(R.string.label_key_created, dateTime)); + mCreationDate.setTextColor(textColor); mCreationDate.setVisibility(View.VISIBLE); } else { mCreationDate.setVisibility(View.GONE); @@ -205,9 +217,11 @@ public class KeyAdapter extends CursorAdapter { @Override public void bindView(View view, Context context, Cursor cursor) { Highlighter highlighter = new Highlighter(context, mQuery); - KeyItemViewHolder h = (KeyItemViewHolder) view.getTag(); KeyItem item = new KeyItem(cursor); - h.setData(context, item, highlighter); + boolean isEnabled = isEnabled(cursor); + + KeyItemViewHolder h = (KeyItemViewHolder) view.getTag(); + h.setData(context, item, highlighter, isEnabled); } public boolean isSecretAvailable(int id) { |