]> gitweb.fperrin.net Git - Dictionary.git/commitdiff
Many fixes/hack to get a compilable version.
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>
Thu, 20 Aug 2015 22:58:04 +0000 (00:58 +0200)
committerReimar Döffinger <Reimar.Doeffinger@gmx.de>
Thu, 20 Aug 2015 22:58:04 +0000 (00:58 +0200)
14 files changed:
AndroidManifest.xml
build.gradle [new file with mode: 0644]
project.properties [deleted file]
res/values-de/strings.xml
res/values-fr/p.xml [deleted file]
res/values-fr/strings.xml
res/values-v11/styles.xml
res/values/styles.xml
src/com/hughes/android/dictionary/DictionaryActivity.java
src/com/hughes/android/dictionary/DictionaryApplication.java
src/com/hughes/android/dictionary/DictionaryManagerActivity.java
src/com/hughes/android/dictionary/HtmlDisplayActivity.java
src/com/hughes/android/dictionary/MyWebView.java
src/com/hughes/android/dictionary/engine/Language.java

index a303ab17c9b7ad34c5115eaf825f3eaf73e4b1d3..0bbd5de9ad6f11afd05da004aea346f438ee3bd5 100644 (file)
@@ -22,7 +22,7 @@
         android:allowBackup="true"
         android:icon="@drawable/icon"
         android:label="@string/app_name"
-        android:theme="@style/AppTheme" >
+        android:theme="@style/AppBaseThemeDark" >
         <meta-data
             android:name="com.google.android.backup.api_key"
             android:value="AEdPqrEAAAAIUa0cU0ZHbBpYXJqm0vVUP5IAjr5D4iUeX7UwiQ" />
         </activity>
     </application>
 
-</manifest>
\ No newline at end of file
+</manifest>
diff --git a/build.gradle b/build.gradle
new file mode 100644 (file)
index 0000000..56b374b
--- /dev/null
@@ -0,0 +1,46 @@
+buildscript {
+    repositories {
+        jcenter()
+    }
+    dependencies {
+        classpath 'com.android.tools.build:gradle:1.2.3'
+    }
+}
+
+apply plugin: 'com.android.application'
+
+repositories {
+    jcenter()
+}
+dependencies {
+    compile 'com.android.support:appcompat-v7:21.0.3'
+    compile 'com.ibm.icu:icu4j:55.1'
+}
+
+android {
+    compileSdkVersion 21
+    buildToolsVersion "22.0.1"
+    sourceSets {
+        main {
+            manifest.srcFile 'AndroidManifest.xml'
+            java.srcDirs = ['src', '../Util/src']
+            res.srcDirs = ['res']
+            assets.srcDirs = ['assets']
+        }
+
+        // Move the tests to tests/java, tests/res, etc...
+        instrumentTest.setRoot('tests')
+
+        // Move the build types to build-types/<type>
+        // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
+        // This moves them out of them default location under src/<type>/... which would
+        // conflict with src/ being used by the main source set.
+        // Adding new build types or product flavors should be accompanied
+        // by a similar customization.
+        debug.setRoot('build-types/debug')
+        release.setRoot('build-types/release')
+    }
+    defaultConfig {
+        targetSdkVersion 22
+    }
+}
diff --git a/project.properties b/project.properties
deleted file mode 100644 (file)
index 9fd6c00..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-# This file is automatically generated by Android Tools.
-# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
-#
-# This file must be checked in Version Control Systems.
-#
-# To customize properties used by the Ant build system use,
-# "ant.properties", and override values to adapt the script to your
-# project structure.
-
-# Indicates whether an apk should be generated for each density.
-split.density=false
-# Project target.
-target=android-19
-android.library.reference.1=../Util
-android.library.reference.1=../Util
-android.library.reference.2=../JakeWharton-ActionBarSherlock/actionbarsherlock
index 2c4a2ba296fc16136a8722a218f0913306c202ac..310d7c023218d64120605b244ace860268163bf6 100644 (file)
@@ -3,8 +3,7 @@
 
     <string name="app_name">QuickDic</string>
     <string name="titleWithVersion">QuickDic 5.0.1</string>
-    <string name="thanksForUpdatingVersion">5.0.1</string>
-    
+
     <!-- Global. -->
     <string name="about">Über QuickDic…</string>
     <string name="settings">Einstellungen…</string>
diff --git a/res/values-fr/p.xml b/res/values-fr/p.xml
deleted file mode 100644 (file)
index 9302922..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>\r
-<resources>\r
-\r
-  <string-array name="fontKeys">\r
-    <item>FreeSerif.ttf.jpg</item>\r
-    <item>SYSTEM</item>\r
-  </string-array>\r
-\r
-  <string-array name="fonts">\r
-    <item>FreeSerif</item>\r
-    <item>System standard</item>\r
-  </string-array>\r
-    \r
-  <string-array name="themeKeys">\r
-    <item>themeLight</item>\r
-    <item>themeDefault</item>\r
-  </string-array>\r
-\r
-  <string-array name="themes">\r
-    <item>theme clair</item>\r
-    <item>theme standard</item>\r
-  </string-array>\r
-  \r
-</resources>
\ No newline at end of file
index 107fd907ff7ab3c5a8e13050173652b08dbc48f3..d043f189f9bb5310acb2d1762011d2a05286c9c0 100644 (file)
@@ -3,8 +3,7 @@
 \r
     <string name="app_name">QuickDic</string>\r
     <string name="titleWithVersion">QuickDic 5.0.1</string>\r
-    <string name="thanksForUpdatingVersion">5.0.1</string>\r
-    \r
+\r
     <!-- Global. -->\r
     <string name="about">À propos de QuickDic</string>\r
     <string name="settings">Configuration</string>\r
index 5b00ba21ff125eef6dc2838a482370af022f6d52..dae0c37e5f610e5e4e805c82c085798991c87ea4 100644 (file)
@@ -1,23 +1,19 @@
 <resources>
     
-    <style name="AppBaseThemeLight" parent="Theme.Sherlock.Light">
+    <style name="AppBaseThemeLight" parent="@style/Theme.AppCompat.Light">
         <!--
             Theme customizations available in newer API levels can go in
             res/values-vXX/styles.xml, while customizations related to
             backward-compatibility can go here.
         -->
-      <item name="actionButtonStyle">@style/MyActionButtonStyle</item>
-      <item name="android:actionButtonStyle">@style/MyActionButtonStyle</item>
     </style>
     
-    <style name="AppBaseThemeDark" parent="Theme.Sherlock">
+    <style name="AppBaseThemeDark" parent="@style/Theme.AppCompat">
         <!--
             Theme customizations available in newer API levels can go in
             res/values-vXX/styles.xml, while customizations related to
             backward-compatibility can go here.
         -->
-        <item name="actionButtonStyle">@style/MyActionButtonStyle</item>
-        <item name="android:actionButtonStyle">@style/MyActionButtonStyle</item>
     </style>
 
     <style name="BorderlessButton">
index bce60d946f2dd8e9da735d400c1135c1bb7bc947..0152f2cdb6386544ad18bb260edfb92c8a6ab3a3 100644 (file)
@@ -1,18 +1,10 @@
 <resources>
 
-    <style name="MyActionButtonStyle" parent="Widget.Sherlock.ActionButton">
-        <item name="android:minWidth">28dip</item>
-        <!--
-        <item name="android:paddingLeft">0dip</item>
-        <item name="android:paddingRight">0dip</item>
-        -->
-    </style>
-
     <!--
         Base application theme, dependent on API level. This theme is replaced
         by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
     -->
-    <style name="AppBaseThemeLight" parent="Theme.Sherlock.Light">
+    <style name="AppBaseThemeLight" parent="@style/Theme.AppCompat.Light">
 
         <!--
             Theme customizations available in newer API levels can go in
       <item name="searchViewSearchIcon">@android:color/transparent</item>
       <item name="searchViewCloseIcon">@android:color/transparent</item>
         -->
-        <item name="actionButtonStyle">@style/MyActionButtonStyle</item>
     </style>
 
-    <style name="AppBaseThemeDark" parent="Theme.Sherlock">
+    <style name="AppBaseThemeDark" parent="@style/Theme.AppCompat">
         <!--
             Theme customizations available in newer API levels can go in
             res/values-vXX/styles.xml, while customizations related to
@@ -44,7 +35,6 @@
       <item name="searchViewSearchIcon">@android:color/transparent</item>
       <item name="searchViewCloseIcon">@android:color/transparent</item>
         -->
-        <item name="actionButtonStyle">@style/MyActionButtonStyle</item>
     </style>
 
     <!-- Dark theme -->
index 11606bc74f59d0e191114e09e5b17f72e2c72366..f932fbc7c1369abd81acfda3b4824409889493b7 100644 (file)
@@ -47,7 +47,9 @@ import android.view.ViewGroup;
 import android.view.WindowManager;
 import android.view.inputmethod.EditorInfo;
 import android.view.inputmethod.InputMethodManager;
+import android.widget.AdapterView;
 import android.widget.AdapterView.AdapterContextMenuInfo;
+import android.widget.AdapterView.OnItemClickListener;
 import android.widget.BaseAdapter;
 import android.widget.Button;
 import android.widget.FrameLayout;
@@ -63,13 +65,13 @@ import android.widget.TextView;
 import android.widget.TextView.BufferType;
 import android.widget.Toast;
 
-import com.actionbarsherlock.app.ActionBar;
-import com.actionbarsherlock.app.SherlockListActivity;
-import com.actionbarsherlock.view.Menu;
-import com.actionbarsherlock.view.MenuItem;
-import com.actionbarsherlock.view.MenuItem.OnMenuItemClickListener;
-import com.actionbarsherlock.widget.SearchView;
-import com.actionbarsherlock.widget.SearchView.OnQueryTextListener;
+import android.support.v7.app.ActionBar;
+import android.support.v7.app.ActionBarActivity;
+import android.support.v7.widget.SearchView;
+import android.support.v7.widget.SearchView.OnQueryTextListener;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.MenuItem.OnMenuItemClickListener;
 import com.hughes.android.dictionary.DictionaryInfo.IndexInfo;
 import com.hughes.android.dictionary.engine.Dictionary;
 import com.hughes.android.dictionary.engine.EntrySource;
@@ -109,7 +111,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
-public class DictionaryActivity extends SherlockListActivity {
+public class DictionaryActivity extends ActionBarActivity {
 
     static final String LOG = "QuickDic";
 
@@ -145,6 +147,22 @@ public class DictionaryActivity extends SherlockListActivity {
     int textColorFg = Color.BLACK;
     int fontSizeSp;
 
+    private ListView listView;
+    private ListView getListView() {
+        if (listView == null) {
+            listView = (ListView)findViewById(android.R.id.list);
+        }
+        return listView;
+    }
+
+    private void setListAdapter(ListAdapter adapter) {
+        getListView().setAdapter(adapter);
+    }
+
+    private ListAdapter getListAdapter() {
+        return getListView().getAdapter();
+    }
+
     SearchView searchView;
     ImageButton languageButton;
     SearchView.OnQueryTextListener onQueryTextListener;
@@ -460,6 +478,13 @@ public class DictionaryActivity extends SherlockListActivity {
                 width, ViewGroup.LayoutParams.WRAP_CONTENT);
         customSearchView.setLayoutParams(layoutParams);
 
+        listView.setOnItemClickListener(new OnItemClickListener() {
+            @Override
+            public void onItemClick(AdapterView<?> parent, View view, int row, long id) {
+                onListItemClick(getListView(), view, row, id);
+            }
+        });
+
         languageButton = new ImageButton(customSearchView.getContext());
         languageButton.setMinimumWidth(application.languageButtonPixels);
         languageButton.setMinimumHeight(application.languageButtonPixels * 2 / 3);
@@ -515,13 +540,6 @@ public class DictionaryActivity extends SherlockListActivity {
         searchView.setFocusable(true);
         customSearchView.addView(searchView);
 
-        // Clear the searchHint icon so that it takes as little space as possible.
-        ImageView searchHintIcon = (ImageView) searchView.findViewById(R.id.abs__search_mag_icon);
-        searchHintIcon.setBackgroundResource(android.R.color.transparent);
-        searchHintIcon.setLayoutParams(new LinearLayout.LayoutParams(1, 1));
-        searchHintIcon.setAdjustViewBounds(true);
-        searchHintIcon.setPadding(0, 0, 0, 0);
-        
         actionBar.setCustomView(customSearchView);
         actionBar.setDisplayShowCustomEnabled(true);
     }
@@ -619,7 +637,7 @@ public class DictionaryActivity extends SherlockListActivity {
 
     void updateLangButton() {
         final LanguageResources languageResources =
-                Language.isoCodeToResources.get(index.shortName);
+                DictionaryApplication.isoCodeToResources.get(index.shortName);
         if (languageResources != null && languageResources.flagId != 0) {
             languageButton.setImageResource(languageResources.flagId);
         } else {
@@ -924,7 +942,7 @@ public class DictionaryActivity extends SherlockListActivity {
                         }
                     });
             // Rats, this won't be shown:
-            searchForSelection.setIcon(R.drawable.abs__ic_search);
+            //searchForSelection.setIcon(R.drawable.abs__ic_search);
         }
 
         if (row instanceof TokenRow && ttsReady) {
@@ -989,7 +1007,6 @@ public class DictionaryActivity extends SherlockListActivity {
         // searchView.selectAll();
     }
 
-    @Override
     protected void onListItemClick(ListView l, View v, int row, long id) {
         defocusSearchText();
         if (clickOpensContextMenu && dictRaf != null) {
index a4e0afe20af21b31d53b3aa165949379ab47a9cf..90027a01d7206ca2456f158068b5c21a6907f0aa 100644 (file)
@@ -29,9 +29,9 @@ import android.widget.Button;
 import android.widget.ImageButton;
 import android.widget.ImageView.ScaleType;
 
-import com.actionbarsherlock.view.Menu;
-import com.actionbarsherlock.view.MenuItem;
-import com.actionbarsherlock.view.MenuItem.OnMenuItemClickListener;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.MenuItem.OnMenuItemClickListener;
 import com.hughes.android.dictionary.DictionaryInfo.IndexInfo;
 import com.hughes.android.dictionary.engine.Dictionary;
 import com.hughes.android.dictionary.engine.Language;
@@ -62,6 +62,171 @@ public class DictionaryApplication extends Application {
     // Unordered.
     static Map<String, DictionaryInfo> DOWNLOADABLE_UNCOMPRESSED_FILENAME_NAME_TO_DICTIONARY_INFO = null;
 
+    // Useful:
+    // http://www.loc.gov/standards/iso639-2/php/code_list.php
+    public static final Map<String, LanguageResources> isoCodeToResources = new LinkedHashMap<String, LanguageResources>();
+    static {
+        isoCodeToResources.put("AF", new LanguageResources("Afrikaans", R.string.AF,
+                R.drawable.flag_of_south_africa));
+        isoCodeToResources.put("SQ", new LanguageResources("Albanian", R.string.SQ,
+                R.drawable.flag_of_albania));
+        isoCodeToResources.put("AR",
+                new LanguageResources("Arabic", R.string.AR, R.drawable.arabic));
+        isoCodeToResources.put("HY", new LanguageResources("Armenian", R.string.HY,
+                R.drawable.flag_of_armenia));
+        isoCodeToResources.put("BE", new LanguageResources("Belarusian", R.string.BE,
+                R.drawable.flag_of_belarus));
+        isoCodeToResources.put("BN", new LanguageResources("Bengali", R.string.BN));
+        isoCodeToResources.put("BS", new LanguageResources("Bosnian", R.string.BS,
+                R.drawable.flag_of_bosnia_and_herzegovina));
+        isoCodeToResources.put("BG", new LanguageResources("Bulgarian", R.string.BG,
+                R.drawable.flag_of_bulgaria));
+        isoCodeToResources.put("MY", new LanguageResources("Burmese", R.string.MY,
+                R.drawable.flag_of_myanmar));
+        isoCodeToResources.put("ZH", new LanguageResources("Chinese", R.string.ZH,
+                R.drawable.flag_of_the_peoples_republic_of_china));
+        isoCodeToResources.put("cmn", new LanguageResources("Mandarin", R.string.cmn,
+                R.drawable.flag_of_the_peoples_republic_of_china));
+        isoCodeToResources.put("yue", new LanguageResources("Cantonese", R.string.yue,
+                R.drawable.flag_of_hong_kong));
+        isoCodeToResources.put("CA", new LanguageResources("Catalan", R.string.CA));
+        isoCodeToResources.put("HR", new LanguageResources("Croatian", R.string.HR,
+                R.drawable.flag_of_croatia));
+        isoCodeToResources.put("CS", new LanguageResources("Czech", R.string.CS,
+                R.drawable.flag_of_the_czech_republic));
+        isoCodeToResources.put("DA", new LanguageResources("Danish", R.string.DA,
+                R.drawable.flag_of_denmark));
+        isoCodeToResources.put("NL", new LanguageResources("Dutch", R.string.NL,
+                R.drawable.flag_of_the_netherlands));
+        isoCodeToResources.put("EN", new LanguageResources("English", R.string.EN,
+                R.drawable.flag_of_the_united_kingdom));
+        isoCodeToResources.put("EO", new LanguageResources("Esperanto", R.string.EO,
+                R.drawable.flag_of_esperanto));
+        isoCodeToResources.put("ET", new LanguageResources("Estonian", R.string.ET,
+                R.drawable.flag_of_estonia));
+        isoCodeToResources.put("FI", new LanguageResources("Finnish", R.string.FI,
+                R.drawable.flag_of_finland));
+        isoCodeToResources.put("FR", new LanguageResources("French", R.string.FR,
+                R.drawable.flag_of_france));
+        isoCodeToResources.put("DE", new LanguageResources("German", R.string.DE,
+                R.drawable.flag_of_germany));
+        isoCodeToResources.put("EL", new LanguageResources("Greek", R.string.EL,
+                R.drawable.flag_of_greece));
+        isoCodeToResources.put("grc", new LanguageResources("Ancient Greek", R.string.grc));
+        isoCodeToResources.put("haw", new LanguageResources("Hawaiian", R.string.haw,
+                R.drawable.flag_of_hawaii));
+        isoCodeToResources.put("HE", new LanguageResources("Hebrew", R.string.HE,
+                R.drawable.flag_of_israel));
+        isoCodeToResources.put("HI", new LanguageResources("Hindi", R.string.HI, R.drawable.hindi));
+        isoCodeToResources.put("HU", new LanguageResources("Hungarian", R.string.HU,
+                R.drawable.flag_of_hungary));
+        isoCodeToResources.put("IS", new LanguageResources("Icelandic", R.string.IS,
+                R.drawable.flag_of_iceland));
+        isoCodeToResources.put("ID", new LanguageResources("Indonesian", R.string.ID,
+                R.drawable.flag_of_indonesia));
+        isoCodeToResources.put("GA", new LanguageResources("Irish", R.string.GA,
+                R.drawable.flag_of_ireland));
+        isoCodeToResources.put("GD", new LanguageResources("Scottish Gaelic", R.string.GD,
+                R.drawable.flag_of_scotland));
+        isoCodeToResources.put("GV", new LanguageResources("Manx", R.string.GV,
+                R.drawable.flag_of_the_isle_of_man));
+        isoCodeToResources.put("IT", new LanguageResources("Italian", R.string.IT,
+                R.drawable.flag_of_italy));
+        isoCodeToResources.put("LA", new LanguageResources("Latin", R.string.LA));
+        isoCodeToResources.put("LV", new LanguageResources("Latvian", R.string.LV,
+                R.drawable.flag_of_latvia));
+        isoCodeToResources.put("LT", new LanguageResources("Lithuanian", R.string.LT,
+                R.drawable.flag_of_lithuania));
+        isoCodeToResources.put("JA", new LanguageResources("Japanese", R.string.JA,
+                R.drawable.flag_of_japan));
+        isoCodeToResources.put("KO", new LanguageResources("Korean", R.string.KO,
+                R.drawable.flag_of_south_korea));
+        isoCodeToResources.put("KU", new LanguageResources("Kurdish", R.string.KU));
+        isoCodeToResources.put("MS", new LanguageResources("Malay", R.string.MS,
+                R.drawable.flag_of_malaysia));
+        isoCodeToResources.put("MI", new LanguageResources("Maori", R.string.MI,
+                R.drawable.flag_of_new_zealand));
+        isoCodeToResources.put("MN", new LanguageResources("Mongolian", R.string.MN,
+                R.drawable.flag_of_mongolia));
+        isoCodeToResources.put("NE", new LanguageResources("Nepali", R.string.NE,
+                R.drawable.flag_of_nepal));
+        isoCodeToResources.put("NO", new LanguageResources("Norwegian", R.string.NO,
+                R.drawable.flag_of_norway));
+        isoCodeToResources.put("FA", new LanguageResources("Persian", R.string.FA,
+                R.drawable.flag_of_iran));
+        isoCodeToResources.put("PL", new LanguageResources("Polish", R.string.PL,
+                R.drawable.flag_of_poland));
+        isoCodeToResources.put("PT", new LanguageResources("Portuguese", R.string.PT,
+                R.drawable.flag_of_portugal));
+        isoCodeToResources.put("PA", new LanguageResources("Punjabi", R.string.PA));
+        isoCodeToResources.put("RO", new LanguageResources("Romanian", R.string.RO,
+                R.drawable.flag_of_romania));
+        isoCodeToResources.put("RU", new LanguageResources("Russian", R.string.RU,
+                R.drawable.flag_of_russia));
+        isoCodeToResources.put("SA", new LanguageResources("Sanskrit", R.string.SA));
+        isoCodeToResources.put("SR", new LanguageResources("Serbian", R.string.SR,
+                R.drawable.flag_of_serbia));
+        isoCodeToResources.put("SK", new LanguageResources("Slovak", R.string.SK,
+                R.drawable.flag_of_slovakia));
+        isoCodeToResources.put("SL", new LanguageResources("Slovenian", R.string.SL,
+                R.drawable.flag_of_slovenia));
+        isoCodeToResources.put("SO", new LanguageResources("Somali", R.string.SO,
+                R.drawable.flag_of_somalia));
+        isoCodeToResources.put("ES", new LanguageResources("Spanish", R.string.ES,
+                R.drawable.flag_of_spain));
+        isoCodeToResources.put("SW", new LanguageResources("Swahili", R.string.SW));
+        isoCodeToResources.put("SV", new LanguageResources("Swedish", R.string.SV,
+                R.drawable.flag_of_sweden));
+        isoCodeToResources.put("TL", new LanguageResources("Tagalog", R.string.TL));
+        isoCodeToResources.put("TG", new LanguageResources("Tajik", R.string.TG,
+                R.drawable.flag_of_tajikistan));
+        isoCodeToResources.put("TH", new LanguageResources("Thai", R.string.TH,
+                R.drawable.flag_of_thailand));
+        isoCodeToResources.put("BO", new LanguageResources("Tibetan", R.string.BO));
+        isoCodeToResources.put("TR", new LanguageResources("Turkish", R.string.TR,
+                R.drawable.flag_of_turkey));
+        isoCodeToResources.put("UK", new LanguageResources("Ukrainian", R.string.UK,
+                R.drawable.flag_of_ukraine));
+        isoCodeToResources.put("UR", new LanguageResources("Urdu", R.string.UR));
+        isoCodeToResources.put("VI", new LanguageResources("Vietnamese", R.string.VI,
+                R.drawable.flag_of_vietnam));
+        isoCodeToResources.put("CI", new LanguageResources("Welsh", R.string.CI,
+                R.drawable.flag_of_wales_2));
+        isoCodeToResources.put("YI", new LanguageResources("Yiddish", R.string.YI));
+        isoCodeToResources.put("ZU", new LanguageResources("Zulu", R.string.ZU));
+        isoCodeToResources.put("AZ", new LanguageResources("Azeri", R.string.AZ,
+                R.drawable.flag_of_azerbaijan));
+        isoCodeToResources.put("EU", new LanguageResources("Basque", R.string.EU,
+                R.drawable.flag_of_the_basque_country));
+        isoCodeToResources.put("BR", new LanguageResources("Breton", R.string.BR));
+        isoCodeToResources.put("MR", new LanguageResources("Marathi", R.string.MR));
+        isoCodeToResources.put("FO", new LanguageResources("Faroese", R.string.FO));
+        isoCodeToResources.put("GL", new LanguageResources("Galician", R.string.GL,
+                R.drawable.flag_of_galicia));
+        isoCodeToResources.put("KA", new LanguageResources("Georgian", R.string.KA,
+                R.drawable.flag_of_georgia));
+        isoCodeToResources.put("HT", new LanguageResources("Haitian Creole", R.string.HT,
+                R.drawable.flag_of_haiti));
+        isoCodeToResources.put("LB", new LanguageResources("Luxembourgish", R.string.LB,
+                R.drawable.flag_of_luxembourg));
+        isoCodeToResources.put("MK", new LanguageResources("Macedonian", R.string.MK,
+                R.drawable.flag_of_macedonia));
+        isoCodeToResources.put("LO", new LanguageResources("Lao", R.string.LO,
+                R.drawable.flag_of_laos));
+        isoCodeToResources.put("ML", new LanguageResources("Malayalam", R.string.ML));
+        isoCodeToResources.put("SL", new LanguageResources("Slovenian", R.string.SL,
+                R.drawable.flag_of_slovenia));
+        isoCodeToResources.put("TA", new LanguageResources("Tamil", R.string.TA));
+        isoCodeToResources.put("SH", new LanguageResources("Serbo-Croatian", R.string.SH));
+        isoCodeToResources.put("SD", new LanguageResources("Sindhi", R.string.SD));
+
+        // Hack to allow lower-case ISO codes to work:
+        for (final String isoCode : new ArrayList<String>(isoCodeToResources.keySet())) {
+            isoCodeToResources.put(isoCode.toLowerCase(), isoCodeToResources.get(isoCode));
+        }
+
+    }
+
     static final class DictionaryConfig implements Serializable {
         private static final long serialVersionUID = -1444177164708201263L;
         // User-ordered list, persisted, just the ones that are/have been
@@ -232,7 +397,7 @@ public class DictionaryApplication extends Application {
     final Map<String, String> fileToNameCache = new LinkedHashMap<String, String>();
 
     public String isoCodeToLocalizedLanguageName(final String isoCode) {
-        final Language.LanguageResources languageResources = Language.isoCodeToResources
+        final Language.LanguageResources languageResources = isoCodeToResources
                 .get(isoCode);
         final String lang = languageResources != null ? getApplicationContext().getString(
                 languageResources.nameId) : isoCode;
@@ -289,7 +454,7 @@ public class DictionaryApplication extends Application {
 
     public View createButton(final Context context, final DictionaryInfo dictionaryInfo,
             final IndexInfo indexInfo) {
-        LanguageResources languageResources = Language.isoCodeToResources.get(indexInfo.shortName);
+        LanguageResources languageResources = isoCodeToResources.get(indexInfo.shortName);
         View result;
 
         if (languageResources == null || languageResources.flagId <= 0) {
index 1649144492e768c5a756ca97465053ce59c90bf0..3070af161c80f0b3cf623adc8e652a82d0482698 100644 (file)
@@ -45,15 +45,17 @@ import android.widget.CompoundButton;
 import android.widget.CompoundButton.OnCheckedChangeListener;
 import android.widget.FrameLayout;
 import android.widget.LinearLayout;
+import android.widget.ListView;
 import android.widget.TextView;
 import android.widget.Toast;
 import android.widget.ToggleButton;
 
-import com.actionbarsherlock.app.ActionBar;
-import com.actionbarsherlock.app.SherlockListActivity;
-import com.actionbarsherlock.view.Menu;
-import com.actionbarsherlock.widget.SearchView;
-import com.actionbarsherlock.widget.SearchView.OnQueryTextListener;
+import android.support.v7.app.ActionBar;
+import android.support.v7.app.ActionBarActivity;
+import android.support.v7.widget.SearchView;
+import android.support.v7.widget.SearchView.OnQueryTextListener;
+import android.view.Menu;
+import android.widget.ListAdapter;
 import com.hughes.android.dictionary.DictionaryInfo.IndexInfo;
 import com.hughes.android.util.IntentLauncher;
 
@@ -72,11 +74,25 @@ import java.util.zip.ZipFile;
 // Right-click:
 //  Delete, move to top.
 
-public class DictionaryManagerActivity extends SherlockListActivity {
+public class DictionaryManagerActivity extends ActionBarActivity {
 
     static final String LOG = "QuickDic";
     static boolean blockAutoLaunch = false;
 
+    private ListView listView;
+    private ListView getListView() {
+        if (listView == null) {
+            listView = (ListView)findViewById(android.R.id.list);
+        }
+        return listView;
+    }
+    private void setListAdapter(ListAdapter adapter) {
+        getListView().setAdapter(adapter);
+    }
+    private ListAdapter getListAdapter() {
+        return getListView().getAdapter();
+    }
+
     DictionaryApplication application;
 
     SearchView filterSearchView;
index 6abb525b1974479eef7122f3659f62b4ac5fcbb5..1a304876e2b003adf5820f1e7093e2503aa7c9fe 100644 (file)
@@ -21,11 +21,11 @@ import android.view.View;
 import android.view.View.OnClickListener;\r
 import android.widget.Button;\r
 \r
-import com.actionbarsherlock.app.ActionBar;\r
-import com.actionbarsherlock.app.SherlockActivity;\r
+import android.support.v7.app.ActionBar;\r
+import android.support.v7.app.ActionBarActivity;\r
 import com.hughes.util.StringUtil;\r
 \r
-public final class HtmlDisplayActivity extends SherlockActivity {\r
+public final class HtmlDisplayActivity extends ActionBarActivity {\r
 \r
     static final String LOG = "QuickDic";\r
 \r
index d0fdd5b48f0f010e3e83f0469dc9c599bd66cdc9..abb7fdc9b6ed37b41673afd7ca9b32772266b5d3 100644 (file)
@@ -1,6 +1,8 @@
 
 package com.hughes.android.dictionary;
 
+import com.hughes.util.StringUtil;
+
 import android.app.Activity;
 import android.content.Context;
 import android.content.Intent;
index dc5a845a1803f9cd431c474467262e1d4f265759..9e729a8655c448241dd53e54164f9a599fc9779a 100644 (file)
@@ -30,182 +30,17 @@ public class Language {
         public final int nameId;\r
         public final int flagId;\r
 \r
-        private LanguageResources(final String englishName, int nameId, int flagId) {\r
+        public LanguageResources(final String englishName, int nameId, int flagId) {\r
             this.englishName = englishName;\r
             this.nameId = nameId;\r
             this.flagId = flagId;\r
         }\r
 \r
-        private LanguageResources(final String englishName, int nameId) {\r
+        public LanguageResources(final String englishName, int nameId) {\r
             this(englishName, nameId, 0);\r
         }\r
     }\r
 \r
-    // Useful:\r
-    // http://www.loc.gov/standards/iso639-2/php/code_list.php\r
-    public static final Map<String, LanguageResources> isoCodeToResources = new LinkedHashMap<String, LanguageResources>();\r
-    static {\r
-        isoCodeToResources.put("AF", new LanguageResources("Afrikaans", R.string.AF,\r
-                R.drawable.flag_of_south_africa));\r
-        isoCodeToResources.put("SQ", new LanguageResources("Albanian", R.string.SQ,\r
-                R.drawable.flag_of_albania));\r
-        isoCodeToResources.put("AR",\r
-                new LanguageResources("Arabic", R.string.AR, R.drawable.arabic));\r
-        isoCodeToResources.put("HY", new LanguageResources("Armenian", R.string.HY,\r
-                R.drawable.flag_of_armenia));\r
-        isoCodeToResources.put("BE", new LanguageResources("Belarusian", R.string.BE,\r
-                R.drawable.flag_of_belarus));\r
-        isoCodeToResources.put("BN", new LanguageResources("Bengali", R.string.BN));\r
-        isoCodeToResources.put("BS", new LanguageResources("Bosnian", R.string.BS,\r
-                R.drawable.flag_of_bosnia_and_herzegovina));\r
-        isoCodeToResources.put("BG", new LanguageResources("Bulgarian", R.string.BG,\r
-                R.drawable.flag_of_bulgaria));\r
-        isoCodeToResources.put("MY", new LanguageResources("Burmese", R.string.MY,\r
-                R.drawable.flag_of_myanmar));\r
-        isoCodeToResources.put("ZH", new LanguageResources("Chinese", R.string.ZH,\r
-                R.drawable.flag_of_the_peoples_republic_of_china));\r
-        isoCodeToResources.put("cmn", new LanguageResources("Mandarin", R.string.cmn,\r
-                R.drawable.flag_of_the_peoples_republic_of_china));\r
-        isoCodeToResources.put("yue", new LanguageResources("Cantonese", R.string.yue,\r
-                R.drawable.flag_of_hong_kong));\r
-        isoCodeToResources.put("CA", new LanguageResources("Catalan", R.string.CA));\r
-        isoCodeToResources.put("HR", new LanguageResources("Croatian", R.string.HR,\r
-                R.drawable.flag_of_croatia));\r
-        isoCodeToResources.put("CS", new LanguageResources("Czech", R.string.CS,\r
-                R.drawable.flag_of_the_czech_republic));\r
-        isoCodeToResources.put("DA", new LanguageResources("Danish", R.string.DA,\r
-                R.drawable.flag_of_denmark));\r
-        isoCodeToResources.put("NL", new LanguageResources("Dutch", R.string.NL,\r
-                R.drawable.flag_of_the_netherlands));\r
-        isoCodeToResources.put("EN", new LanguageResources("English", R.string.EN,\r
-                R.drawable.flag_of_the_united_kingdom));\r
-        isoCodeToResources.put("EO", new LanguageResources("Esperanto", R.string.EO,\r
-                R.drawable.flag_of_esperanto));\r
-        isoCodeToResources.put("ET", new LanguageResources("Estonian", R.string.ET,\r
-                R.drawable.flag_of_estonia));\r
-        isoCodeToResources.put("FI", new LanguageResources("Finnish", R.string.FI,\r
-                R.drawable.flag_of_finland));\r
-        isoCodeToResources.put("FR", new LanguageResources("French", R.string.FR,\r
-                R.drawable.flag_of_france));\r
-        isoCodeToResources.put("DE", new LanguageResources("German", R.string.DE,\r
-                R.drawable.flag_of_germany));\r
-        isoCodeToResources.put("EL", new LanguageResources("Greek", R.string.EL,\r
-                R.drawable.flag_of_greece));\r
-        isoCodeToResources.put("grc", new LanguageResources("Ancient Greek", R.string.grc));\r
-        isoCodeToResources.put("haw", new LanguageResources("Hawaiian", R.string.haw,\r
-                R.drawable.flag_of_hawaii));\r
-        isoCodeToResources.put("HE", new LanguageResources("Hebrew", R.string.HE,\r
-                R.drawable.flag_of_israel));\r
-        isoCodeToResources.put("HI", new LanguageResources("Hindi", R.string.HI, R.drawable.hindi));\r
-        isoCodeToResources.put("HU", new LanguageResources("Hungarian", R.string.HU,\r
-                R.drawable.flag_of_hungary));\r
-        isoCodeToResources.put("IS", new LanguageResources("Icelandic", R.string.IS,\r
-                R.drawable.flag_of_iceland));\r
-        isoCodeToResources.put("ID", new LanguageResources("Indonesian", R.string.ID,\r
-                R.drawable.flag_of_indonesia));\r
-        isoCodeToResources.put("GA", new LanguageResources("Irish", R.string.GA,\r
-                R.drawable.flag_of_ireland));\r
-        isoCodeToResources.put("GD", new LanguageResources("Scottish Gaelic", R.string.GD,\r
-                R.drawable.flag_of_scotland));\r
-        isoCodeToResources.put("GV", new LanguageResources("Manx", R.string.GV,\r
-                R.drawable.flag_of_the_isle_of_man));\r
-        isoCodeToResources.put("IT", new LanguageResources("Italian", R.string.IT,\r
-                R.drawable.flag_of_italy));\r
-        isoCodeToResources.put("LA", new LanguageResources("Latin", R.string.LA));\r
-        isoCodeToResources.put("LV", new LanguageResources("Latvian", R.string.LV,\r
-                R.drawable.flag_of_latvia));\r
-        isoCodeToResources.put("LT", new LanguageResources("Lithuanian", R.string.LT,\r
-                R.drawable.flag_of_lithuania));\r
-        isoCodeToResources.put("JA", new LanguageResources("Japanese", R.string.JA,\r
-                R.drawable.flag_of_japan));\r
-        isoCodeToResources.put("KO", new LanguageResources("Korean", R.string.KO,\r
-                R.drawable.flag_of_south_korea));\r
-        isoCodeToResources.put("KU", new LanguageResources("Kurdish", R.string.KU));\r
-        isoCodeToResources.put("MS", new LanguageResources("Malay", R.string.MS,\r
-                R.drawable.flag_of_malaysia));\r
-        isoCodeToResources.put("MI", new LanguageResources("Maori", R.string.MI,\r
-                R.drawable.flag_of_new_zealand));\r
-        isoCodeToResources.put("MN", new LanguageResources("Mongolian", R.string.MN,\r
-                R.drawable.flag_of_mongolia));\r
-        isoCodeToResources.put("NE", new LanguageResources("Nepali", R.string.NE,\r
-                R.drawable.flag_of_nepal));\r
-        isoCodeToResources.put("NO", new LanguageResources("Norwegian", R.string.NO,\r
-                R.drawable.flag_of_norway));\r
-        isoCodeToResources.put("FA", new LanguageResources("Persian", R.string.FA,\r
-                R.drawable.flag_of_iran));\r
-        isoCodeToResources.put("PL", new LanguageResources("Polish", R.string.PL,\r
-                R.drawable.flag_of_poland));\r
-        isoCodeToResources.put("PT", new LanguageResources("Portuguese", R.string.PT,\r
-                R.drawable.flag_of_portugal));\r
-        isoCodeToResources.put("PA", new LanguageResources("Punjabi", R.string.PA));\r
-        isoCodeToResources.put("RO", new LanguageResources("Romanian", R.string.RO,\r
-                R.drawable.flag_of_romania));\r
-        isoCodeToResources.put("RU", new LanguageResources("Russian", R.string.RU,\r
-                R.drawable.flag_of_russia));\r
-        isoCodeToResources.put("SA", new LanguageResources("Sanskrit", R.string.SA));\r
-        isoCodeToResources.put("SR", new LanguageResources("Serbian", R.string.SR,\r
-                R.drawable.flag_of_serbia));\r
-        isoCodeToResources.put("SK", new LanguageResources("Slovak", R.string.SK,\r
-                R.drawable.flag_of_slovakia));\r
-        isoCodeToResources.put("SL", new LanguageResources("Slovenian", R.string.SL,\r
-                R.drawable.flag_of_slovenia));\r
-        isoCodeToResources.put("SO", new LanguageResources("Somali", R.string.SO,\r
-                R.drawable.flag_of_somalia));\r
-        isoCodeToResources.put("ES", new LanguageResources("Spanish", R.string.ES,\r
-                R.drawable.flag_of_spain));\r
-        isoCodeToResources.put("SW", new LanguageResources("Swahili", R.string.SW));\r
-        isoCodeToResources.put("SV", new LanguageResources("Swedish", R.string.SV,\r
-                R.drawable.flag_of_sweden));\r
-        isoCodeToResources.put("TL", new LanguageResources("Tagalog", R.string.TL));\r
-        isoCodeToResources.put("TG", new LanguageResources("Tajik", R.string.TG,\r
-                R.drawable.flag_of_tajikistan));\r
-        isoCodeToResources.put("TH", new LanguageResources("Thai", R.string.TH,\r
-                R.drawable.flag_of_thailand));\r
-        isoCodeToResources.put("BO", new LanguageResources("Tibetan", R.string.BO));\r
-        isoCodeToResources.put("TR", new LanguageResources("Turkish", R.string.TR,\r
-                R.drawable.flag_of_turkey));\r
-        isoCodeToResources.put("UK", new LanguageResources("Ukrainian", R.string.UK,\r
-                R.drawable.flag_of_ukraine));\r
-        isoCodeToResources.put("UR", new LanguageResources("Urdu", R.string.UR));\r
-        isoCodeToResources.put("VI", new LanguageResources("Vietnamese", R.string.VI,\r
-                R.drawable.flag_of_vietnam));\r
-        isoCodeToResources.put("CI", new LanguageResources("Welsh", R.string.CI,\r
-                R.drawable.flag_of_wales_2));\r
-        isoCodeToResources.put("YI", new LanguageResources("Yiddish", R.string.YI));\r
-        isoCodeToResources.put("ZU", new LanguageResources("Zulu", R.string.ZU));\r
-        isoCodeToResources.put("AZ", new LanguageResources("Azeri", R.string.AZ,\r
-                R.drawable.flag_of_azerbaijan));\r
-        isoCodeToResources.put("EU", new LanguageResources("Basque", R.string.EU,\r
-                R.drawable.flag_of_the_basque_country));\r
-        isoCodeToResources.put("BR", new LanguageResources("Breton", R.string.BR));\r
-        isoCodeToResources.put("MR", new LanguageResources("Marathi", R.string.MR));\r
-        isoCodeToResources.put("FO", new LanguageResources("Faroese", R.string.FO));\r
-        isoCodeToResources.put("GL", new LanguageResources("Galician", R.string.GL,\r
-                R.drawable.flag_of_galicia));\r
-        isoCodeToResources.put("KA", new LanguageResources("Georgian", R.string.KA,\r
-                R.drawable.flag_of_georgia));\r
-        isoCodeToResources.put("HT", new LanguageResources("Haitian Creole", R.string.HT,\r
-                R.drawable.flag_of_haiti));\r
-        isoCodeToResources.put("LB", new LanguageResources("Luxembourgish", R.string.LB,\r
-                R.drawable.flag_of_luxembourg));\r
-        isoCodeToResources.put("MK", new LanguageResources("Macedonian", R.string.MK,\r
-                R.drawable.flag_of_macedonia));\r
-        isoCodeToResources.put("LO", new LanguageResources("Lao", R.string.LO,\r
-                R.drawable.flag_of_laos));\r
-        isoCodeToResources.put("ML", new LanguageResources("Malayalam", R.string.ML));\r
-        isoCodeToResources.put("SL", new LanguageResources("Slovenian", R.string.SL,\r
-                R.drawable.flag_of_slovenia));\r
-        isoCodeToResources.put("TA", new LanguageResources("Tamil", R.string.TA));\r
-        isoCodeToResources.put("SH", new LanguageResources("Serbo-Croatian", R.string.SH));\r
-        isoCodeToResources.put("SD", new LanguageResources("Sindhi", R.string.SD, R.drawable.flag_of_sindhi));\r
-\r
-        // Hack to allow lower-case ISO codes to work:\r
-        for (final String isoCode : new ArrayList<String>(isoCodeToResources.keySet())) {\r
-            isoCodeToResources.put(isoCode.toLowerCase(), isoCodeToResources.get(isoCode));\r
-        }\r
-\r
-    }\r
-\r
     private static final Map<String, Language> registry = new LinkedHashMap<String, Language>();\r
 \r
     final String isoCode;\r