From: Thad Hughes Date: Tue, 3 Dec 2013 18:49:47 +0000 (-0800) Subject: Merged. Switched back to name "Preferences" instead of "Settings". X-Git-Url: http://gitweb.fperrin.net/?a=commitdiff_plain;h=c625416a33f9da39bb8ec6a2c9a67a7d47e477d8;hp=14504fe036ef1463cc7b6adb1f08fc465af42843;p=Dictionary.git Merged. Switched back to name "Preferences" instead of "Settings". Merge branch 'master' of https://code.google.com/p/quickdic-dictionary.dictionary Conflicts: res/xml/preferences.xml src/com/hughes/android/dictionary/DictionaryActivity.java src/com/hughes/android/dictionary/PreferenceActivity.java --- diff --git a/AndroidManifest.xml b/AndroidManifest.xml index bb3843c..bdcaa59 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -36,15 +36,49 @@ + + - + + + + + + + + + + + + + + + + + + - + + + + \ No newline at end of file diff --git a/res/values-es/languages.xml b/res/values-es/languages.xml index 191f376..027b68e 100644 --- a/res/values-es/languages.xml +++ b/res/values-es/languages.xml @@ -12,7 +12,6 @@ Burmese Cantonés Catalán - Croata Checo Chino (Mandarín) Danés diff --git a/res/values/strings.xml b/res/values/strings.xml index 8185bb1..c925821 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -14,6 +14,10 @@ Clear search text + Please specify a default directory in the settings. + + + Dictionary manager Long-press a dictionary for more options. @@ -77,10 +81,19 @@ Unzipping: %1$,d of %2$,d bytes. Finished: %,d bytes. Error downloading file: \n%s - + + + An unknown word + + + defaultddic + Default Dic + The directory to fired up when nothing else mentioned. + + quickdicDirectory QuickDic directory The directory where QuickDic stores dictionaries. diff --git a/res/xml/settings.xml b/res/xml/preferences.xml similarity index 88% rename from res/xml/settings.xml rename to res/xml/preferences.xml index 1644b61..4b948a0 100644 --- a/res/xml/settings.xml +++ b/res/xml/preferences.xml @@ -1,5 +1,12 @@ + + + + \ No newline at end of file diff --git a/src/com/hughes/android/dictionary/DictionaryActivity.java b/src/com/hughes/android/dictionary/DictionaryActivity.java index 57a49e5..6e4bb91 100644 --- a/src/com/hughes/android/dictionary/DictionaryActivity.java +++ b/src/com/hughes/android/dictionary/DictionaryActivity.java @@ -1,5 +1,5 @@ // Copyright 2011 Google Inc. All Rights Reserved. -// +// Some Parts Copyright 2013 Dominik Köppl // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at @@ -16,6 +16,7 @@ package com.hughes.android.dictionary; import android.annotation.SuppressLint; import android.app.Dialog; +import android.app.SearchManager; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; @@ -28,10 +29,7 @@ import android.preference.PreferenceManager; import android.speech.tts.TextToSpeech; import android.speech.tts.TextToSpeech.OnInitListener; import android.text.ClipboardManager; -import android.text.Editable; -import android.text.Selection; import android.text.Spannable; -import android.text.TextWatcher; import android.text.method.LinkMovementMethod; import android.text.style.ClickableSpan; import android.text.style.StyleSpan; @@ -40,11 +38,9 @@ import android.util.TypedValue; import android.view.ContextMenu; import android.view.ContextMenu.ContextMenuInfo; import android.view.KeyEvent; -import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; import android.view.View.OnClickListener; -import android.view.View.OnFocusChangeListener; import android.view.View.OnLongClickListener; import android.view.ViewGroup; import android.view.WindowManager; @@ -53,9 +49,7 @@ import android.view.inputmethod.InputMethodManager; import android.widget.AdapterView.AdapterContextMenuInfo; import android.widget.BaseAdapter; import android.widget.Button; -import android.widget.EditText; import android.widget.FrameLayout; -import android.widget.ImageButton; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ListAdapter; @@ -215,15 +209,101 @@ public class DictionaryActivity extends SherlockListActivity { theme = application.getSelectedTheme(); textColorFg = getResources().getColor(theme.tokenRowFgColor); + + final Intent intent = getIntent(); - dictFile = new File(intent.getStringExtra(C.DICT_FILE)); + String intentAction = intent.getAction(); + /** + * @author Dominik Köppl + * Querying the Intent + * com.hughes.action.ACTION_SEARCH_DICT is the advanced query + * Arguments: + * SearchManager.QUERY -> the phrase to search + * from -> 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")) + { + String query = intent.getStringExtra(SearchManager.QUERY); + String from = intent.getStringExtra("from"); + if(from != null) from = from.toLowerCase(Locale.US); + String to = intent.getStringExtra("to"); + if(to != null) to = to.toLowerCase(Locale.US); + if(query != null) + { + getIntent().putExtra(C.SEARCH_TOKEN, query); + } + if(intent.getStringExtra(C.DICT_FILE) == null && (from != null || to != null)) + { + Log.d(LOG, "DictSearch: from: " + from + " to " + to); + List dicts = application.getUsableDicts(); + for(DictionaryInfo info : dicts) + { + boolean hasFrom = from == null; + boolean hasTo = to == null; + for(IndexInfo index : info.indexInfos) + { + if(!hasFrom && index.shortName.toLowerCase(Locale.US).equals(from)) hasFrom = true; + if(!hasTo && index.shortName.toLowerCase(Locale.US).equals(to)) hasTo = true; + } + if(hasFrom && hasTo) + { + if(from != null) + { + int which_index = 0; + for(;which_index < info.indexInfos.size(); ++which_index) + { + if(info.indexInfos.get(which_index).shortName.toLowerCase(Locale.US).equals(from)) + break; + } + intent.putExtra(C.INDEX_INDEX, which_index); + + } + intent.putExtra(C.DICT_FILE, application.getPath(info.uncompressedFilename).toString()); + break; + } + } + + } + } + /** + * @author Dominik Köppl + * Querying the Intent + * Intent.ACTION_SEARCH is a simple query + * Arguments follow from android standard (see documentation) + */ + if (intentAction != null && intentAction.equals(Intent.ACTION_SEARCH)) + { + String query = intent.getStringExtra(SearchManager.QUERY); + if(query != null) getIntent().putExtra(C.SEARCH_TOKEN,query); + } + /** + * @author Dominik Köppl + * If no dictionary is chosen, use the default dictionary specified in the preferences + * If this step does fail (no default directory specified), show a toast and abort. + */ + if(intent.getStringExtra(C.DICT_FILE) == null) + { + String dictfile = prefs.getString(getString(R.string.defaultDicKey), null); + if(dictfile != null) intent.putExtra(C.DICT_FILE, application.getPath(dictfile).toString()); + } + String dictFilename = intent.getStringExtra(C.DICT_FILE); + + if(dictFilename == null) + { + Toast.makeText(this, getString(R.string.no_dict_file), Toast.LENGTH_LONG).show(); + startActivity(DictionaryManagerActivity.getLaunchIntent()); + finish(); + return; + } + if(dictFilename != null) dictFile = new File(dictFilename); ttsReady = false; textToSpeech = new TextToSpeech(getApplicationContext(), new OnInitListener() { @Override public void onInit(int status) { ttsReady = true; - updateTTSLanuage(); + updateTTSLanguage(); } }); @@ -406,8 +486,8 @@ public class DictionaryActivity extends SherlockListActivity { protected void onResume() { Log.d(LOG, "onResume"); super.onResume(); - if (SettingsActivity.settingsMightHaveChanged) { - SettingsActivity.settingsMightHaveChanged = false; + if (PreferenceActivity.prefsMightHaveChanged) { + PreferenceActivity.prefsMightHaveChanged = false; finish(); startActivity(getIntent()); } @@ -499,10 +579,10 @@ public class DictionaryActivity extends SherlockListActivity { searchHintIcon.setImageResource(android.R.drawable.ic_media_previous); } } - updateTTSLanuage(); + updateTTSLanguage(); } - private void updateTTSLanuage() { + private void updateTTSLanguage() { if (!ttsReady || index == null || textToSpeech == null) { Log.d(LOG, "Can't updateTTSLanguage."); return; diff --git a/src/com/hughes/android/dictionary/DictionaryApplication.java b/src/com/hughes/android/dictionary/DictionaryApplication.java index 09e7ba4..ca8d4ac 100644 --- a/src/com/hughes/android/dictionary/DictionaryApplication.java +++ b/src/com/hughes/android/dictionary/DictionaryApplication.java @@ -147,9 +147,9 @@ public class DictionaryApplication extends Application { preferences.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER); preferences.setOnMenuItemClickListener(new OnMenuItemClickListener() { public boolean onMenuItemClick(final MenuItem menuItem) { - SettingsActivity.settingsMightHaveChanged = true; - final Intent intent = new Intent().setClassName(SettingsActivity.class - .getPackage().getName(), SettingsActivity.class.getCanonicalName()); + PreferenceActivity.prefsMightHaveChanged = true; + final Intent intent = new Intent().setClassName(PreferenceActivity.class + .getPackage().getName(), PreferenceActivity.class.getCanonicalName()); context.startActivity(intent); return false; } diff --git a/src/com/hughes/android/dictionary/DictionaryManagerActivity.java b/src/com/hughes/android/dictionary/DictionaryManagerActivity.java index 74ac895..af50112 100644 --- a/src/com/hughes/android/dictionary/DictionaryManagerActivity.java +++ b/src/com/hughes/android/dictionary/DictionaryManagerActivity.java @@ -154,8 +154,8 @@ public class DictionaryManagerActivity extends SherlockListActivity { protected void onResume() { super.onResume(); - if (SettingsActivity.settingsMightHaveChanged) { - SettingsActivity.settingsMightHaveChanged = false; + if (PreferenceActivity.prefsMightHaveChanged) { + PreferenceActivity.prefsMightHaveChanged = false; finish(); startActivity(getIntent()); } diff --git a/src/com/hughes/android/dictionary/PreferenceActivity.java b/src/com/hughes/android/dictionary/PreferenceActivity.java new file mode 100644 index 0000000..5e74a3c --- /dev/null +++ b/src/com/hughes/android/dictionary/PreferenceActivity.java @@ -0,0 +1,59 @@ +// Copyright 2011 Google Inc. All Rights Reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package com.hughes.android.dictionary; + +import java.util.List; + +import android.os.Bundle; +import android.preference.ListPreference; + +public class PreferenceActivity extends android.preference.PreferenceActivity { + + static boolean prefsMightHaveChanged = false; + + @SuppressWarnings("deprecation") + @Override + public void onCreate(Bundle savedInstanceState) { + setTheme(((DictionaryApplication)getApplication()).getSelectedTheme().themeId); + + /** + * @author Dominik Köppl + * Preference: select default dictionary + * As this list is dynamically generated, we have to do it in this fashion + */ + super.onCreate(savedInstanceState); + addPreferencesFromResource(R.xml.preferences); + ListPreference defaultDic = (ListPreference) findPreference(getResources().getString(R.string.defaultDicKey)); + DictionaryApplication application = (DictionaryApplication) getApplication(); + List dicts = application.getUsableDicts(); + + final CharSequence[] entries = new CharSequence[dicts.size()]; + final CharSequence[] entryvalues = new CharSequence[dicts.size()]; + + for(int i = 0; i < entries.length; ++i) + { + entries[i] = dicts.get(i).dictInfo; + entryvalues[i] = dicts.get(i).uncompressedFilename; + } + + defaultDic.setEntries(entries); + defaultDic.setEntryValues(entryvalues); + } + + @Override + public void onContentChanged() { + super.onContentChanged(); + } +} diff --git a/src/com/hughes/android/dictionary/SettingsActivity.java b/src/com/hughes/android/dictionary/SettingsActivity.java deleted file mode 100644 index 761f1ee..0000000 --- a/src/com/hughes/android/dictionary/SettingsActivity.java +++ /dev/null @@ -1,36 +0,0 @@ -// Copyright 2011 Google Inc. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package com.hughes.android.dictionary; - -import android.os.Bundle; - -public class SettingsActivity extends android.preference.PreferenceActivity { - - static boolean settingsMightHaveChanged = false; - - @SuppressWarnings("deprecation") -@Override - public void onCreate(Bundle savedInstanceState) { - setTheme(((DictionaryApplication)getApplication()).getSelectedTheme().themeId); - - super.onCreate(savedInstanceState); - addPreferencesFromResource(R.xml.settings); - } - - @Override - public void onContentChanged() { - super.onContentChanged(); - } -}