]> gitweb.fperrin.net Git - Dictionary.git/blobdiff - src/com/hughes/android/dictionary/DictionaryActivity.java
Apply theme and font selection also to HTML for web view.
[Dictionary.git] / src / com / hughes / android / dictionary / DictionaryActivity.java
index 837097adecae3df96ad8e5157e6bd73734dcc90b..8d1f6fc03b3f347b33ea6c80c5521eb7df4246b5 100644 (file)
@@ -285,7 +285,7 @@ public class DictionaryActivity extends AppCompatActivity {
          *         -> language in which the phrase is written to -> to which
          *         language shall be translated
          */
-        if (intentAction != null && intentAction.equals("com.hughes.action.ACTION_SEARCH_DICT")) {
+        if ("com.hughes.action.ACTION_SEARCH_DICT".equals(intentAction)) {
             String query = intent.getStringExtra(SearchManager.QUERY);
             String from = intent.getStringExtra("from");
             if (from != null)
@@ -846,7 +846,7 @@ public class DictionaryActivity extends AppCompatActivity {
 
                 final LinearLayout result = new LinearLayout(parent.getContext());
 
-                for (int i = 0; dictionaryInfo.indexInfos != null && i < dictionaryInfo.indexInfos.size(); ++i) {
+                for (int i = 0; i < dictionaryInfo.indexInfos.size(); ++i) {
                     final IndexInfo indexInfo = dictionaryInfo.indexInfos.get(i);
                     final View button = IsoUtils.INSTANCE.createButton(parent.getContext(),
                             indexInfo, application.languageButtonPixels);
@@ -1243,7 +1243,7 @@ public class DictionaryActivity extends AppCompatActivity {
         try {
             wordList.getParentFile().mkdirs();
             final PrintWriter out = new PrintWriter(new FileWriter(wordList, true));
-            out.println(rawText.toString());
+            out.println(rawText);
             out.close();
         } catch (Exception e) {
             Log.e(LOG, "Unable to append to " + wordList.getAbsolutePath(), e);
@@ -1351,7 +1351,9 @@ public class DictionaryActivity extends AppCompatActivity {
         Log.d(LOG, "searchFinished: " + searchOperation + ", searchResult=" + searchResult);
 
         currentSearchOperation = null;
-        uiHandler.postDelayed(new Runnable() {
+        // Note: it's important to post to the ListView, otherwise
+        // the jumpToRow will randomly not work.
+        getListView().post(new Runnable() {
             @Override
             public void run() {
                 if (currentSearchOperation == null) {
@@ -1370,10 +1372,10 @@ public class DictionaryActivity extends AppCompatActivity {
                     Log.d(LOG, "More coming, waiting for currentSearchOperation.");
                 }
             }
-        }, 20);
+        });
     }
 
-    private final void jumpToRow(final int row) {
+    private void jumpToRow(final int row) {
         Log.d(LOG, "jumpToRow: " + row + ", refocusSearchText=" + false);
         // getListView().requestFocusFromTouch();
         getListView().setSelectionFromTop(row, 0);
@@ -1406,7 +1408,7 @@ public class DictionaryActivity extends AppCompatActivity {
         }
 
         public String toString() {
-            return String.format("SearchOperation(%s,%s)", searchText, interrupted.toString());
+            return String.format("SearchOperation(%s,%s)", searchText, interrupted);
         }
 
         @Override
@@ -1452,10 +1454,16 @@ public class DictionaryActivity extends AppCompatActivity {
 
     private void showHtml(final List<HtmlEntry> htmlEntries, final String htmlTextToHighlight) {
         String html = HtmlEntry.htmlBody(htmlEntries, index.shortName);
+        String style = "";
+        if (typeface == Typeface.SERIF) { style = "font-family: serif;"; }
+        else if (typeface == Typeface.SANS_SERIF) { style = "font-family: sans-serif;"; }
+        else if (typeface == Typeface.MONOSPACE) { style = "font-family: monospace;"; }
+        if (application.getSelectedTheme() == DictionaryApplication.Theme.DEFAULT)
+            style += "background-color: black; color: white;";
         // Log.d(LOG, "html=" + html);
         startActivityForResult(
             HtmlDisplayActivity.getHtmlIntent(getApplicationContext(), String.format(
-                    "<html><head><meta name=\"viewport\" content=\"width=device-width\"></head><body>%s</body></html>", html),
+                    "<html><head><meta name=\"viewport\" content=\"width=device-width\"></head><body style=\"%s\">%s</body></html>", style, html),
                                               htmlTextToHighlight, false),
             0);
     }