Fix key list views in main key view

Since the views are being reused, a revoked key might set the text
color of a view and when the view is being reused for a non-revoked
key it is still red. So grab the default text colour and set it
explicitly when the key is not revoked.
This commit is contained in:
Thialfihar 2014-03-20 00:29:40 +01:00
parent 107affcb34
commit 62fb1fb579

View File

@ -18,6 +18,7 @@
package org.sufficientlysecure.keychain.ui.adapter;
import android.content.Context;
import android.content.res.ColorStateList;
import android.database.Cursor;
import android.graphics.Color;
import android.support.v4.widget.CursorAdapter;
@ -42,6 +43,8 @@ public class ViewKeyKeysAdapter extends CursorAdapter {
private int mIndexCanSign;
private int mIndexRevokedKey;
private ColorStateList mDefaultTextColor;
public ViewKeyKeysAdapter(Context context, Cursor c, int flags) {
super(context, c, flags);
@ -122,13 +125,20 @@ public class ViewKeyKeysAdapter extends CursorAdapter {
keyId.setTextColor(Color.RED);
keyDetails.setTextColor(Color.RED);
} else {
keyId.setTextColor(mDefaultTextColor);
keyDetails.setTextColor(mDefaultTextColor);
revokedKeyIcon.setVisibility(View.GONE);
}
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
return mInflater.inflate(R.layout.view_key_keys_item, null);
View view = mInflater.inflate(R.layout.view_key_keys_item, null);
if (mDefaultTextColor == null) {
TextView keyId = (TextView) view.findViewById(R.id.keyId);
mDefaultTextColor = keyId.getTextColors();
}
return view;
}
}