Use spannable directly instead of html conversion in SubkeysAdapter

This commit is contained in:
Dominik Schürmann 2014-09-13 19:49:16 +02:00
parent 0f88d5b024
commit 7d41800e57
2 changed files with 20 additions and 12 deletions

View file

@ -28,8 +28,6 @@ import android.support.v7.app.ActionBarActivity;
import android.text.Spannable; import android.text.Spannable;
import android.text.SpannableString; import android.text.SpannableString;
import android.text.SpannableStringBuilder; import android.text.SpannableStringBuilder;
import android.text.SpannedString;
import android.text.TextUtils;
import android.text.style.BulletSpan; import android.text.style.BulletSpan;
import android.text.style.StyleSpan; import android.text.style.StyleSpan;
import android.view.View; import android.view.View;

View file

@ -22,8 +22,11 @@ import android.content.res.ColorStateList;
import android.database.Cursor; import android.database.Cursor;
import android.graphics.Typeface; import android.graphics.Typeface;
import android.support.v4.widget.CursorAdapter; import android.support.v4.widget.CursorAdapter;
import android.text.Html; import android.text.Spannable;
import android.text.SpannableString;
import android.text.SpannableStringBuilder;
import android.text.format.DateFormat; import android.text.format.DateFormat;
import android.text.style.StyleSpan;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
@ -143,29 +146,36 @@ public class SubkeysAdapter extends CursorAdapter {
long keyId = cursor.getLong(INDEX_KEY_ID); long keyId = cursor.getLong(INDEX_KEY_ID);
String keyIdStr = PgpKeyHelper.convertKeyIdToHex(keyId); String keyIdStr = PgpKeyHelper.convertKeyIdToHex(keyId);
vKeyId.setText(keyIdStr);
// may be set with additional "stripped" later on // may be set with additional "stripped" later on
String algorithmStr = PgpKeyHelper.getAlgorithmInfo( SpannableStringBuilder algorithmStr = new SpannableStringBuilder();
algorithmStr.append(PgpKeyHelper.getAlgorithmInfo(
context, context,
cursor.getInt(INDEX_ALGORITHM), cursor.getInt(INDEX_ALGORITHM),
cursor.getInt(INDEX_KEY_SIZE), cursor.getInt(INDEX_KEY_SIZE),
cursor.getString(INDEX_KEY_CURVE_OID) cursor.getString(INDEX_KEY_CURVE_OID)
); ));
vKeyId.setText(keyIdStr);
if (mSaveKeyringParcel != null && mSaveKeyringParcel.mStripSubKeys.contains(keyId)) { if (mSaveKeyringParcel != null && mSaveKeyringParcel.mStripSubKeys.contains(keyId)) {
algorithmStr += ", <b>" + context.getString(R.string.key_stripped) + "</b>"; algorithmStr.append(", ");
final SpannableString boldStripped = new SpannableString(
context.getString(R.string.key_stripped)
);
boldStripped.setSpan(new StyleSpan(Typeface.BOLD), 0, boldStripped.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
} else { } else {
switch (SecretKeyType.fromNum(cursor.getInt(INDEX_HAS_SECRET))) { switch (SecretKeyType.fromNum(cursor.getInt(INDEX_HAS_SECRET))) {
case GNU_DUMMY: case GNU_DUMMY:
algorithmStr += ", " + context.getString(R.string.key_stripped); algorithmStr.append(", ");
algorithmStr.append(context.getString(R.string.key_stripped));
break; break;
case DIVERT_TO_CARD: case DIVERT_TO_CARD:
algorithmStr += ", " + context.getString(R.string.key_divert); algorithmStr.append(", ");
algorithmStr.append(context.getString(R.string.key_divert));
break; break;
case PASSPHRASE_EMPTY: case PASSPHRASE_EMPTY:
algorithmStr += ", " + context.getString(R.string.key_no_passphrase); algorithmStr.append(", ");
algorithmStr.append(context.getString(R.string.key_no_passphrase));
break; break;
case UNAVAILABLE: case UNAVAILABLE:
// don't show this on pub keys // don't show this on pub keys
@ -173,7 +183,7 @@ public class SubkeysAdapter extends CursorAdapter {
break; break;
} }
} }
vKeyDetails.setText(Html.fromHtml(algorithmStr)); vKeyDetails.setText(algorithmStr, TextView.BufferType.SPANNABLE);
boolean isMasterKey = cursor.getInt(INDEX_RANK) == 0; boolean isMasterKey = cursor.getInt(INDEX_RANK) == 0;
if (isMasterKey) { if (isMasterKey) {