]> gitweb.fperrin.net Git - Dictionary.git/blobdiff - src/com/hughes/android/dictionary/DictionaryActivity.java
New icons, fixes to strings, trying to handle bad typeface.
[Dictionary.git] / src / com / hughes / android / dictionary / DictionaryActivity.java
index eb907f8150ef02bf9ed4af80d4f6209b77af8918..5d937f8078a0179a1c2e26f0359eadf9211664a3 100644 (file)
@@ -118,6 +118,7 @@ public class DictionaryActivity extends ListActivity {
   private SearchOperation currentSearchOperation = null;\r
 \r
   C.Theme theme = C.Theme.LIGHT;\r
+  Typeface typeface;\r
   int fontSizeSp;\r
   EditText searchText;\r
   Button langButton;\r
@@ -169,7 +170,10 @@ public class DictionaryActivity extends ListActivity {
   }\r
 \r
   @Override\r
-  public void onCreate(Bundle savedInstanceState) { \r
+  public void onCreate(Bundle savedInstanceState) {\r
+    final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);\r
+    prefs.edit().remove(C.INDEX_INDEX).commit();  // Don't auto-launch if this fails.\r
+\r
     setTheme(((DictionaryApplication)getApplication()).getSelectedTheme().themeId);\r
 \r
     Log.d(LOG, "onCreate:" + this);\r
@@ -243,17 +247,31 @@ public class DictionaryActivity extends ListActivity {
       }\r
     }).start();\r
     \r
-    final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);\r
-    \r
+    final String fontName = prefs.getString(getString(R.string.fontKey), "FreeSerif.ttf.jpg");\r
+    if ("SYSTEM".equals(fontName)) {\r
+      typeface = Typeface.DEFAULT;\r
+    } else {\r
+      try {\r
+        typeface = Typeface.createFromAsset(getAssets(), fontName);\r
+      } catch (Exception e) {\r
+        Log.w(LOG, "Exception trying to use typeface, using default.", e);\r
+        Toast.makeText(this, getString(R.string.fontFailure, e.getLocalizedMessage()), Toast.LENGTH_LONG).show();\r
+      }\r
+    }\r
+    if (typeface == null) {\r
+      Log.w(LOG, "Unable to create typeface, using default.");\r
+      typeface = Typeface.DEFAULT;\r
+    }\r
     final String fontSize = prefs.getString(getString(R.string.fontSizeKey), "14");\r
     try {\r
       fontSizeSp = Integer.parseInt(fontSize.trim());\r
     } catch (NumberFormatException e) {\r
-      fontSizeSp = 12;\r
+      fontSizeSp = 14;\r
     }\r
 \r
     setContentView(R.layout.dictionary_activity);\r
     searchText = (EditText) findViewById(R.id.SearchText);\r
+    searchText.setTypeface(typeface);\r
     searchText.setTextSize(TypedValue.COMPLEX_UNIT_SP, fontSizeSp);\r
     \r
     langButton = (Button) findViewById(R.id.LangButton);\r
@@ -431,16 +449,38 @@ public class DictionaryActivity extends ListActivity {
     dialog.setTitle(R.string.selectDictionary);\r
 \r
     final List<DictionaryInfo> installedDicts = ((DictionaryApplication)getApplication()).getUsableDicts();\r
+    \r
     ListView listView = (ListView) dialog.findViewById(android.R.id.list);\r
+\r
+//    final LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);\r
+//    layoutParams.width = 0;\r
+//    layoutParams.weight = 1.0f;\r
+\r
+    final Button button = new Button(listView.getContext());\r
+    final String name = getString(R.string.dictionaryManager);\r
+    button.setText(name);\r
+    final IntentLauncher intentLauncher = new IntentLauncher(listView.getContext(), DictionaryManagerActivity.getLaunchIntent()) {\r
+      @Override\r
+      protected void onGo() {\r
+        dialog.dismiss();\r
+        DictionaryActivity.this.finish();\r
+      };\r
+    };\r
+    button.setOnClickListener(intentLauncher);\r
+//    button.setLayoutParams(layoutParams);\r
+    listView.addHeaderView(button);\r
+//    listView.setHeaderDividersEnabled(true);\r
+    \r
     listView.setAdapter(new BaseAdapter() {\r
       @Override\r
       public View getView(int position, View convertView, ViewGroup parent) {\r
         final LinearLayout result = new LinearLayout(parent.getContext());\r
+\r
         final DictionaryInfo dictionaryInfo = getItem(position);\r
           final Button button = new Button(parent.getContext());\r
           final String name = application.getDictionaryName(dictionaryInfo.uncompressedFilename);\r
           button.setText(name);\r
-          final IntentLauncher intentLauncher = new IntentLauncher(parent.getContext(), getLaunchIntent(application.getPath(dictionaryInfo.uncompressedFilename), 0, "")) {\r
+          final IntentLauncher intentLauncher = new IntentLauncher(parent.getContext(), getLaunchIntent(application.getPath(dictionaryInfo.uncompressedFilename), 0, searchText.getText().toString())) {\r
             @Override\r
             protected void onGo() {\r
               dialog.dismiss();\r
@@ -448,12 +488,10 @@ public class DictionaryActivity extends ListActivity {
             };\r
           };\r
           button.setOnClickListener(intentLauncher);\r
-          \r
           final LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);\r
           layoutParams.width = 0;\r
           layoutParams.weight = 1.0f;\r
           button.setLayoutParams(layoutParams);\r
-\r
           result.addView(button);\r
         return result;\r
       }\r
@@ -734,9 +772,9 @@ public class DictionaryActivity extends ListActivity {
       return true;\r
     }\r
     if (keyCode == KeyEvent.KEYCODE_BACK) {\r
-      Log.d(LOG, "Clearing dictionary prefs.");\r
+      //Log.d(LOG, "Clearing dictionary prefs.");\r
       // Pretend that we just autolaunched so that we won't do it again.\r
-      DictionaryManagerActivity.lastAutoLaunchMillis = System.currentTimeMillis();\r
+      //DictionaryManagerActivity.lastAutoLaunchMillis = System.currentTimeMillis();\r
     }\r
     if (keyCode == KeyEvent.KEYCODE_ENTER) {\r
       Log.d(LOG, "Trying to hide soft keyboard.");\r
@@ -979,6 +1017,8 @@ public class DictionaryActivity extends ListActivity {
         createTokenLinkSpans(col1, col1Spannable, col1Text);\r
         createTokenLinkSpans(col2, (Spannable) col2.getText(), col2Text);\r
         \r
+        col1.setTypeface(typeface);\r
+        col2.setTypeface(typeface);\r
         col1.setTextSize(TypedValue.COMPLEX_UNIT_SP, fontSizeSp);\r
         col2.setTextSize(TypedValue.COMPLEX_UNIT_SP, fontSizeSp);\r
         // col2.setBackgroundResource(theme.otherLangBg);\r
@@ -1018,6 +1058,7 @@ public class DictionaryActivity extends ListActivity {
       // Doesn't work:\r
       //textView.setTextColor(android.R.color.secondary_text_light);\r
       textView.setTextAppearance(context, theme.tokenRowFg);\r
+      textView.setTypeface(typeface);\r
       textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 5 * fontSizeSp / 4);\r
       \r
       final TableRow tableRow = new TableRow(result.getContext());\r