X-Git-Url: http://gitweb.fperrin.net/?a=blobdiff_plain;f=src%2Fcom%2Fhughes%2Fandroid%2Fdictionary%2FDictionaryActivity.java;h=b017e9c500cab93b2d2d509aed15cc2ee64c9740;hb=6b644923a4852ca8b0b2769817913396ddeb49ce;hp=9bf6dbabe9e159102dbfbde3d618ace30e6358a1;hpb=8eeb57a0089f84abe9dc14e4b199b92bd04b2d11;p=Dictionary.git diff --git a/src/com/hughes/android/dictionary/DictionaryActivity.java b/src/com/hughes/android/dictionary/DictionaryActivity.java index 9bf6dba..b017e9c 100644 --- a/src/com/hughes/android/dictionary/DictionaryActivity.java +++ b/src/com/hughes/android/dictionary/DictionaryActivity.java @@ -1582,6 +1582,15 @@ public class DictionaryActivity extends ActionBarActivity { } } + private void addBoldSpans(String token, String col1Text, Spannable col1Spannable) { + int startPos = 0; + while ((startPos = col1Text.indexOf(token, startPos)) != -1) { + col1Spannable.setSpan(new StyleSpan(Typeface.BOLD), startPos, startPos + + token.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE); + startPos += token.length(); + } + } + private TableLayout getView(final int position, PairEntry.Row row, ViewGroup parent, TableLayout result) { final Context context = parent.getContext(); @@ -1589,6 +1598,7 @@ public class DictionaryActivity extends ActionBarActivity { final int rowCount = entry.pairs.size(); if (result == null) { result = new TableLayout(context); + result.setStretchAllColumns(true); // Because we have a Button inside a ListView row: // http://groups.google.com/group/android-developers/browse_thread/thread/3d96af1530a7d62a?pli=1 result.setDescendantFocusability(ViewGroup.FOCUS_BLOCK_DESCENDANTS); @@ -1602,11 +1612,10 @@ public class DictionaryActivity extends ActionBarActivity { result.removeViews(rowCount, result.getChildCount() - rowCount); } - final TableRow.LayoutParams layoutParams = new TableRow.LayoutParams(); - layoutParams.weight = 0.5f; - layoutParams.leftMargin = mPaddingLarge; - for (int r = result.getChildCount(); r < rowCount; ++r) { + final TableRow.LayoutParams layoutParams = new TableRow.LayoutParams(0, LinearLayout.LayoutParams.WRAP_CONTENT); + layoutParams.leftMargin = mPaddingLarge; + final TableRow tableRow = new TableRow(result.getContext()); final TextView col1 = new TextView(tableRow.getContext()); @@ -1615,6 +1624,8 @@ public class DictionaryActivity extends ActionBarActivity { col1.setTextIsSelectable(true); col2.setTextIsSelectable(true); } + col1.setTextColor(textColorFg); + col2.setTextColor(textColorFg); // Set the columns in the table. if (r > 0) { @@ -1662,16 +1673,12 @@ public class DictionaryActivity extends ActionBarActivity { final Spannable col2Spannable = new SpannableString(col2Text); // Bold the token instances in col1. - final Set toBold = toHighlight != null ? this.toHighlight : Collections - .singleton(row.getTokenRow(true).getToken()); - for (final String token : toBold) { - int startPos = 0; - while ((startPos = col1Text.indexOf(token, startPos)) != -1) { - col1Spannable.setSpan(new StyleSpan(Typeface.BOLD), startPos, startPos - + token.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE); - startPos += token.length(); + if (toHighlight != null) { + for (final String token : toHighlight) { + addBoldSpans(token, col1Text, col1Spannable); } - } + } else + addBoldSpans(row.getTokenRow(true).getToken(), col1Text, col1Spannable); createTokenLinkSpans(col1, col1Spannable, col1Text); createTokenLinkSpans(col2, col2Spannable, col2Text); @@ -1705,8 +1712,6 @@ public class DictionaryActivity extends ActionBarActivity { textView.setOnLongClickListener(indexIndex > 0 ? textViewLongClickListenerIndex1 : textViewLongClickListenerIndex0); textView.setLongClickable(true); - // Doesn't work: - // textView.setTextColor(android.R.color.secondary_text_light); textView.setTypeface(typeface); if (isTokenRow) { textView.setTextAppearance(context, theme.tokenRowFg); @@ -1714,6 +1719,7 @@ public class DictionaryActivity extends ActionBarActivity { } else { textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, fontSizeSp); } + textView.setTextColor(textColorFg); if (!htmlEntries.isEmpty()) { textView.setClickable(true); textView.setMovementMethod(LinkMovementMethod.getInstance());