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>
--- /dev/null
+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
+ }
+}
+++ /dev/null
-# 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
<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>
+++ /dev/null
-<?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
\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
<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">
<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
<item name="searchViewSearchIcon">@android:color/transparent</item>
<item name="searchViewCloseIcon">@android:color/transparent</item>
-->
- <item name="actionButtonStyle">@style/MyActionButtonStyle</item>
</style>
<!-- Dark theme -->
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;
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;
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";
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;
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);
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);
}
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 {
}
});
// 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) {
// searchView.selectAll();
}
- @Override
protected void onListItemClick(ListView l, View v, int row, long id) {
defocusSearchText();
if (clickOpensContextMenu && dictRaf != null) {
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;
// 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
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;
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) {
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;
// 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;
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
package com.hughes.android.dictionary;
+import com.hughes.util.StringUtil;
+
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
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