From a82b25d779946ba5ad4abd3dee6022afd64f10ee Mon Sep 17 00:00:00 2001 From: thadh Date: Mon, 24 Sep 2012 22:28:38 -0700 Subject: [PATCH] Highlight text in WebView. --- .../hughes/android/dictionary/DictionaryActivity.java | 2 +- .../hughes/android/dictionary/HtmlDisplayActivity.java | 9 ++++++++- .../hughes/android/dictionary/engine/EntryTypeName.java | 3 +++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/com/hughes/android/dictionary/DictionaryActivity.java b/src/com/hughes/android/dictionary/DictionaryActivity.java index 7a0230f..0193355 100644 --- a/src/com/hughes/android/dictionary/DictionaryActivity.java +++ b/src/com/hughes/android/dictionary/DictionaryActivity.java @@ -1197,7 +1197,7 @@ public class DictionaryActivity extends ListActivity { public void onClick(View v) { final String html = HtmlEntry.htmlBody(htmlEntries); startActivity(HtmlDisplayActivity.getHtmlIntent(String.format( - "%s", html))); + "%s", html), text)); } }); tableRow.addView(button); diff --git a/src/com/hughes/android/dictionary/HtmlDisplayActivity.java b/src/com/hughes/android/dictionary/HtmlDisplayActivity.java index 4e12ebf..f4bc8ce 100644 --- a/src/com/hughes/android/dictionary/HtmlDisplayActivity.java +++ b/src/com/hughes/android/dictionary/HtmlDisplayActivity.java @@ -33,6 +33,7 @@ public final class HtmlDisplayActivity extends Activity { static final String HTML_RES = "html_res"; static final String HTML = "html"; + static final String TEXT_TO_HIGHLIGHT = "textToHighlight"; public static Intent getHelpLaunchIntent() { final Intent intent = new Intent(); @@ -48,10 +49,11 @@ public final class HtmlDisplayActivity extends Activity { return intent; } - public static Intent getHtmlIntent(final String html) { + public static Intent getHtmlIntent(final String html, final String textToHighlight) { final Intent intent = new Intent(); intent.setClassName(HtmlDisplayActivity.class.getPackage().getName(), HtmlDisplayActivity.class.getName()); intent.putExtra(HTML, html); + intent.putExtra(TEXT_TO_HIGHLIGHT, textToHighlight); return intent; } @@ -73,6 +75,11 @@ public final class HtmlDisplayActivity extends Activity { final WebView webView = (WebView) findViewById(R.id.webView); webView.loadData(html, "text/html", "utf-8"); + final String textToHighlight = getIntent().getStringExtra(TEXT_TO_HIGHLIGHT); + if (textToHighlight != null && "".equals(textToHighlight)) { + webView.findAllAsync(textToHighlight); + } + final Button okButton = (Button) findViewById(R.id.okButton); okButton.setOnClickListener(new OnClickListener() { @Override diff --git a/src/com/hughes/android/dictionary/engine/EntryTypeName.java b/src/com/hughes/android/dictionary/engine/EntryTypeName.java index 737ddbb..333ee20 100644 --- a/src/com/hughes/android/dictionary/engine/EntryTypeName.java +++ b/src/com/hughes/android/dictionary/engine/EntryTypeName.java @@ -29,6 +29,7 @@ public enum EntryTypeName { WIKTIONARY_TITLE_MULTI_DETAIL(false, true, WIKTIONARY_TITLE_SINGLE_DETAIL), WIKTIONARY_TITLE_MULTI(false, true, WIKTIONARY_TITLE_SINGLE), WIKTIONARY_TRANSLITERATION(), + // How we file "casa {f}, case {pl}" under "case" WIKTIONARY_INFLECTED_FORM_MULTI(false, true, WIKTIONARY_INFLECTD_FORM_SINGLE), WIKTIONARY_ENGLISH_DEF_WIKI_LINK(), WIKTIONARY_ENGLISH_DEF_OTHER_LANG(), @@ -41,11 +42,13 @@ public enum EntryTypeName { WIKTIONARY_TRANSLATION_WIKI_TEXT(), WIKTIONARY_TRANSLATION_OTHER_TEXT(), + // How we file entries like: "sono: {form of|essere}" under "sono.". WIKTIONARY_IS_FORM_OF_SOMETHING_ELSE(false, true, null), MULTIROW_HEAD_MANY_WORDS(), MULTIROW_TAIL_MANY_WORDS(), WIKTIONARY_EXAMPLE(), + // The next two are how we file entries like: "sono: {form of|essere}" under "essere". WIKTIONARY_BASE_FORM_SINGLE(), // These two should be eligible for removal if the links are otherwise present. WIKTIONARY_BASE_FORM_MULTI(false, false, WIKTIONARY_BASE_FORM_SINGLE), PART_OF_HYPHENATED(), -- 2.43.0