Log.e(LOG, "TTS not available in this language: ttsResult=" + ttsResult);
}
} catch (Exception e) {
- Toast.makeText(this, getString(R.string.TTSbroken), Toast.LENGTH_LONG).show();
+ if (!isFinishing())
+ Toast.makeText(this, getString(R.string.TTSbroken), Toast.LENGTH_LONG).show();
}
}
final List<DictionaryInfo> installedDicts = application.getDictionariesOnDevice(null);
- ListView listView = (ListView) dialog.findViewById(android.R.id.list);
+ ListView listView = dialog.findViewById(android.R.id.list);
final Button button = new Button(listView.getContext());
final String name = getString(R.string.dictionaryManager);
button.setText(name);
}
});
- application.onCreateGlobalOptionsMenu(this, menu);
-
{
final MenuItem dictionaryManager = menu.add(getString(R.string.dictionaryManager));
MenuItemCompat.setShowAsAction(dictionaryManager, MenuItem.SHOW_AS_ACTION_NEVER);
final Context context = getListView().getContext();
final Dialog dialog = new Dialog(context);
dialog.setContentView(R.layout.about_dictionary_dialog);
- final TextView textView = (TextView) dialog.findViewById(R.id.text);
+ final TextView textView = dialog.findViewById(R.id.text);
dialog.setTitle(dictFileTitleName);
});
}
+ DictionaryApplication.onCreateGlobalOptionsMenu(this, menu);
+
return true;
}
if (clickOpensContextMenu && (row instanceof HtmlEntry.Row ||
(row instanceof TokenRow && ((TokenRow)row).getIndexEntry().htmlEntries.size() > 0))) {
final List<HtmlEntry> html = row instanceof TokenRow ? ((TokenRow)row).getIndexEntry().htmlEntries : Collections.singletonList(((HtmlEntry.Row)row).getEntry());
- final String highlight = row instanceof HtmlEntry.Row ? ((HtmlEntry.Row)row).getTokenRow(true).getToken() : null;
+ final String highlight = row instanceof HtmlEntry.Row ? row.getTokenRow(true).getToken() : null;
final MenuItem open = menu.add("Open");
open.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
}
}
+ 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();
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);
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());
col1.setTextIsSelectable(true);
col2.setTextIsSelectable(true);
}
+ col1.setTextColor(textColorFg);
+ col2.setTextColor(textColorFg);
// Set the columns in the table.
if (r > 0) {
final Spannable col2Spannable = new SpannableString(col2Text);
// Bold the token instances in col1.
- final Set<String> 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);
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);
} else {
textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, fontSizeSp);
}
+ textView.setTextColor(textColorFg);
if (!htmlEntries.isEmpty()) {
textView.setClickable(true);
textView.setMovementMethod(LinkMovementMethod.getInstance());
// Make it so we can long-click on these token rows, too:
final Spannable textSpannable = new SpannableString(text);
createTokenLinkSpans(textView, textSpannable, text);
- textView.setText(textSpannable);
if (!htmlEntries.isEmpty()) {
final ClickableSpan clickableSpan = new ClickableSpan() {
public void onClick(View widget) {
}
};
- ((Spannable) textView.getText()).setSpan(clickableSpan, 0, text.length(),
+ textSpannable.setSpan(clickableSpan, 0, text.length(),
Spannable.SPAN_INCLUSIVE_INCLUSIVE);
textView.setOnClickListener(new OnClickListener() {
@Override
}
});
}
+ textView.setText(textSpannable);
return textView;
}
final Dialog dialog = new Dialog(getListView().getContext());
dialog.setContentView(R.layout.thadolina_dialog);
dialog.setTitle("Ti amo, amore mio!");
- final ImageView imageView = (ImageView) dialog.findViewById(R.id.thadolina_image);
+ final ImageView imageView = dialog.findViewById(R.id.thadolina_image);
imageView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {