public DictionaryActivity() {\r
}\r
\r
- public static Intent getIntent(final Context context, final int dictIndex, final int indexIndex, final String searchToken) {\r
- setDictionaryPrefs(context, dictIndex, indexIndex, searchToken);\r
+ public static Intent getLaunchIntent(final String dictFile, final int indexIndex, final String searchToken) {\r
final Intent intent = new Intent();\r
intent.setClassName(DictionaryActivity.class.getPackage().getName(), DictionaryActivity.class.getName());\r
+ intent.putExtra(C.DICT_FILE, dictFile);\r
+ intent.putExtra(C.INDEX_INDEX, indexIndex);\r
+ intent.putExtra(C.SEARCH_TOKEN, searchToken);\r
return intent;\r
}\r
\r
- // TODO: Can we trigger an App restart when the preferences activity gets opened?\r
// TODO: fix these...\r
\r
@Override\r
protected void onSaveInstanceState(final Bundle outState) {\r
super.onSaveInstanceState(outState);\r
- setDictionaryPrefs(this, dictIndex, indexIndex, searchText.getText().toString());\r
- }\r
-\r
- public static void setDictionaryPrefs(final Context context,\r
- final int dictIndex, final int indexIndex, final String searchToken) {\r
- final SharedPreferences.Editor prefs = PreferenceManager.getDefaultSharedPreferences(context).edit();\r
- prefs.putInt(C.DICT_INDEX, dictIndex);\r
- prefs.putInt(C.INDEX_INDEX, indexIndex);\r
- prefs.putString(C.SEARCH_TOKEN, searchToken);\r
- prefs.commit();\r
+ outState.putString(C.SEARCH_TOKEN, searchText.getText().toString());\r
}\r
\r
- public static void clearDictionaryPrefs(final Context context) {\r
- final SharedPreferences.Editor prefs = PreferenceManager\r
- .getDefaultSharedPreferences(context).edit();\r
- prefs.remove(C.DICT_INDEX);\r
- prefs.remove(C.INDEX_INDEX);\r
- prefs.remove(C.SEARCH_TOKEN);\r
- prefs.commit();\r
- Log.d(LOG, "Removed default dictionary prefs.");\r
- }\r
-\r
@Override\r
public void onCreate(Bundle savedInstanceState) {\r
+ clearDictionaryPrefs(this);\r
+ \r
Log.d(LOG, "onCreate:" + this);\r
theme = ((DictionaryApplication)getApplication()).getSelectedTheme();\r
super.onCreate(savedInstanceState);\r
\r
- final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);\r
- \r
+ final Intent intent = getIntent();\r
+ dictFile = intent.getStringExtra(C.DICT_FILE);\r
+\r
try {\r
PersistentObjectCache.init(this);\r
QuickDicConfig quickDicConfig = PersistentObjectCache.init(\r
this).read(C.DICTIONARY_CONFIGS, QuickDicConfig.class);\r
- dictIndex = prefs.getInt(C.DICT_INDEX, 0) ;\r
- final DictionaryInfo dictionaryConfig = quickDicConfig.dictionaryInfos.get(dictIndex);\r
+ final DictionaryInfo dictionaryConfig = quickDicConfig.getDictionaryInfoByFile(dictFile);\r
this.setTitle("QuickDic: " + dictionaryConfig.name);\r
dictRaf = new RandomAccessFile(dictionaryConfig.localFile, "r");\r
dictionary = new Dictionary(dictRaf); \r
dictRaf = null;\r
}\r
Toast.makeText(this, getString(R.string.invalidDictionary, "", e.getMessage()), Toast.LENGTH_LONG);\r
- startActivity(DictionaryManagerActivity.getIntent(this));\r
+ startActivity(DictionaryEditActivity.getLaunchIntent(dictFile));\r
finish();\r
return;\r
}\r
\r
- indexIndex = prefs.getInt(C.INDEX_INDEX, 0) % dictionary.indices.size();\r
Log.d(LOG, "Loading index.");\r
+ indexIndex = intent.getIntExtra(C.INDEX_INDEX, 0) % dictionary.indices.size();\r
index = dictionary.indices.get(indexIndex);\r
setListAdapter(new IndexAdapter(index));\r
-\r
+ \r
// Pre-load the collators.\r
searchExecutor.execute(new Runnable() {\r
public void run() {\r
}\r
});\r
\r
- final String fontSize = prefs.getString(getString(R.string.fontSizeKey), "12");\r
+ final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);\r
+ \r
+ final String fontSize = prefs.getString(getString(R.string.fontSizeKey), "14");\r
try {\r
- fontSizeSp = Integer.parseInt(fontSize);\r
+ fontSizeSp = Integer.parseInt(fontSize.trim());\r
} catch (NumberFormatException e) {\r
fontSizeSp = 12;\r
}\r
// vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);\r
//}\r
Log.d(LOG, "wordList=" + wordList + ", saveOnlyFirstSubentry=" + saveOnlyFirstSubentry);\r
+ \r
+ setDictionaryPrefs(this, dictFile, indexIndex, searchText.getText().toString());\r
}\r
\r
@Override\r
protected void onPause() {\r
super.onPause();\r
}\r
+ \r
+ private static void setDictionaryPrefs(final Context context,\r
+ final String dictFile, final int indexIndex, final String searchToken) {\r
+ final SharedPreferences.Editor prefs = PreferenceManager.getDefaultSharedPreferences(context).edit();\r
+ prefs.putString(C.DICT_FILE, dictFile);\r
+ prefs.putInt(C.INDEX_INDEX, indexIndex);\r
+ prefs.putString(C.SEARCH_TOKEN, searchToken);\r
+ prefs.commit();\r
+ }\r
+\r
+ private static void clearDictionaryPrefs(final Context context) {\r
+ final SharedPreferences.Editor prefs = PreferenceManager.getDefaultSharedPreferences(context).edit();\r
+ prefs.remove(C.DICT_FILE);\r
+ prefs.remove(C.INDEX_INDEX);\r
+ prefs.remove(C.SEARCH_TOKEN);\r
+ prefs.commit();\r
+ }\r
+\r
\r
@Override\r
protected void onDestroy() {\r
if (dictRaf == null) {\r
return;\r
}\r
- setDictionaryPrefs(this, dictIndex, indexIndex, searchText.getText().toString());\r
\r
// Before we close the RAF, we have to wind the current search down.\r
if (currentSearchOperation != null) {\r
currentSearchOperation.interrupted.set(true);\r
currentSearchOperation = null;\r
}\r
- \r
changeIndex((indexIndex + 1)% dictionary.indices.size());\r
- onSearchTextChange(searchText.getText().toString());\r
}\r
\r
static class OpenIndexButton extends Button implements OnClickListener {\r
\r
final Activity activity;\r
- final int dictionaryIndex;\r
+ final String dictFile;\r
final int indexIndex;\r
\r
- public OpenIndexButton(final Context context, final Activity activity, final String text, final int dictionaryIndex, final int indexIndex) {\r
+ public OpenIndexButton(final Context context, final Activity activity, final String text, final String dictFile, final int indexIndex) {\r
super(context);\r
this.activity = activity;\r
- this.dictionaryIndex = dictionaryIndex;\r
+ this.dictFile = dictFile;\r
this.indexIndex = indexIndex;\r
setOnClickListener(this);\r
setText(text, BufferType.NORMAL);\r
@Override\r
public void onClick(View v) {\r
activity.finish();\r
- getContext().startActivity(DictionaryActivity.getIntent(getContext(), dictionaryIndex, indexIndex, ""));\r
+ getContext().startActivity(DictionaryActivity.getLaunchIntent(dictFile, indexIndex, ""));\r
}\r
\r
}\r
@Override\r
public View getView(int position, View convertView, ViewGroup parent) {\r
final LinearLayout result = new LinearLayout(parent.getContext());\r
- result.addView(new Butt)\r
+ //result.addView(new Butt)\r
+ return result;\r
}\r
\r
@Override\r
Log.d(LOG, "changingIndex, newLang=" + index.longName);\r
setListAdapter(indexAdapter);\r
updateLangButton();\r
+ searchText.requestFocus(); // Otherwise, nothing may happen.\r
+ onSearchTextChange(searchText.getText().toString());\r
}\r
\r
void onUpDownButton(final boolean up) {\r
final MenuItem dictionaryList = menu.add(getString(R.string.dictionaryManager));\r
dictionaryList.setOnMenuItemClickListener(new OnMenuItemClickListener() {\r
public boolean onMenuItemClick(final MenuItem menuItem) {\r
- startActivity(DictionaryManagerActivity.getIntent(DictionaryActivity.this));\r
+ startActivity(DictionaryManagerActivity.getLaunchIntent());\r
finish();\r
return false;\r
}\r
if (indexIndex != selectedSpannableIndex) {\r
changeIndex(selectedSpannableIndex);\r
}\r
- searchText.setText(selectedText);\r
+ setSearchText(selectedText);\r
return false;\r
}\r
});\r
public boolean onKeyDown(final int keyCode, final KeyEvent event) {\r
if (event.getUnicodeChar() != 0) {\r
if (!searchText.hasFocus()) {\r
- searchText.setText("" + (char) event.getUnicodeChar());\r
- onSearchTextChange(searchText.getText().toString());\r
- searchText.requestFocus();\r
- Selection.moveToRightEdge(searchText.getText(), searchText.getLayout());\r
+ setSearchText("" + (char) event.getUnicodeChar());\r
}\r
return true;\r
}\r
return super.onKeyDown(keyCode, event);\r
}\r
\r
+ private void setSearchText(final String text) {\r
+ searchText.setText(text);\r
+ searchText.requestFocus();\r
+ onSearchTextChange(searchText.getText().toString());\r
+ Selection.moveToRightEdge(searchText.getText(), searchText.getLayout());\r
+ }\r
+\r
\r
// --------------------------------------------------------------------------\r
// SearchOperation\r
textView.setMovementMethod(LinkMovementMethod.getInstance());\r
final Matcher matcher = CHAR_DASH.matcher(text);\r
while (matcher.find()) {\r
- spannable.setSpan(new MyClickableSpan(), matcher.start(), matcher.end(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);\r
+ spannable.setSpan(new NonLinkClickableSpan(), matcher.start(), matcher.end(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE);\r
}\r
}\r
\r