public void onCreate(Bundle savedInstanceState) {
Log.d(LOG, "onCreate:" + this);
super.onCreate(savedInstanceState);
-
+
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
// Don't auto-launch if this fails.
- prefs.edit().remove(C.INDEX_SHORT_NAME).commit();
+ prefs.edit().remove(C.DICT_FILE).commit();
setTheme(((DictionaryApplication) getApplication()).getSelectedTheme().themeId);
if(intent.getStringExtra(C.DICT_FILE) == null && (from != null || to != null))
{
Log.d(LOG, "DictSearch: from: " + from + " to " + to);
- List<DictionaryInfo> dicts = application.getDictionariesOnDevice();
+ List<DictionaryInfo> dicts = application.getDictionariesOnDevice(null);
for(DictionaryInfo info : dicts)
{
boolean hasFrom = from == null;
break;
}
}
- indexIndex %= dictionary.indices.size();
Log.d(LOG, "Loading index " + indexIndex);
index = dictionary.indices.get(indexIndex);
setListAdapter(new IndexAdapter(index));
// Cache some prefs.
wordList = new File(prefs.getString(getString(R.string.wordListFileKey),
- getString(R.string.wordListFileDefault)));
+ new File(application.getDictDir(), "wordList.txt").getAbsolutePath()));
saveOnlyFirstSubentry = prefs.getBoolean(getString(R.string.saveOnlyFirstSubentryKey),
false);
clickOpensContextMenu = prefs.getBoolean(getString(R.string.clickOpensContextMenuKey),
searchView = new SearchView(getSupportActionBar().getThemedContext());
searchView.setIconifiedByDefault(false);
- // searchView.setIconified(false); // puts the magifying glass in the
+ // searchView.setIconified(false); // puts the magnifying glass in the
// wrong place.
searchView.setQueryHint(getString(R.string.searchText));
searchView.setSubmitButtonEnabled(false);
currentSearchOperation.interrupted.set(true);
currentSearchOperation = null;
}
- setIndexAndSearchText((indexIndex + 1) % dictionary.indices.size(), searchView.getQuery().toString());
+ setIndexAndSearchText((indexIndex + 1) % dictionary.indices.size(),
+ searchView.getQuery().toString());
}
void onLanguageButtonLongClick(final Context context) {
dialog.setContentView(R.layout.select_dictionary_dialog);
dialog.setTitle(R.string.selectDictionary);
- final List<DictionaryInfo> installedDicts = application.getDictionariesOnDevice();
+ final List<DictionaryInfo> installedDicts = application.getDictionariesOnDevice(null);
ListView listView = (ListView) dialog.findViewById(android.R.id.list);
final Button button = new Button(listView.getContext());
final LinearLayout result = new LinearLayout(parent.getContext());
for (int i = 0; i < dictionaryInfo.indexInfos.size(); ++i) {
- if (i > 0) {
- final TextView dash = new TextView(parent.getContext());
- dash.setText("-");
- result.addView(dash);
- }
-
final IndexInfo indexInfo = dictionaryInfo.indexInfos.get(i);
- final Button button = new Button(parent.getContext());
- button.setText(indexInfo.shortName);
+ final View button = application.createButton(parent.getContext(), dictionaryInfo, indexInfo);
final IntentLauncher intentLauncher = new IntentLauncher(parent.getContext(),
getLaunchIntent(
application.getPath(dictionaryInfo.uncompressedFilename),
};
button.setOnClickListener(intentLauncher);
result.addView(button);
-
}
final TextView nameView = new TextView(parent.getContext());
layoutParams.weight = 1.0f;
nameView.setLayoutParams(layoutParams);
result.addView(nameView);
-
return result;
}
if (indexToUse == -1) {
indexToUse = defaultIndexToUse;
}
- setIndexAndSearchText(indexToUse, selectedText);
+ // Without this extra indirection, the call to jumpToRow that this
+ // invokes didn't actually have any effect.
+ final int actualIndexToUse = indexToUse;
+ getListView().post(new Runnable() {
+ @Override
+ public void run() {
+ setIndexAndSearchText(actualIndexToUse, selectedText);
+ }
+ });
}
/**
}
private void setSearchText(final String text, final boolean triggerSearch) {
- if (!triggerSearch) {
- searchView.setOnQueryTextListener(null);
- }
+ Log.d(LOG, "setSearchText, text=" + text + ", triggerSearch=" + triggerSearch);
+ // Disable the listener, because sometimes it doesn't work.
+ searchView.setOnQueryTextListener(null);
searchView.setQuery(text, false);
moveCursorToRight();
- if (!triggerSearch) {
- searchView.setOnQueryTextListener(onQueryTextListener);
- } else {
+ searchView.setOnQueryTextListener(onQueryTextListener);
+ if (triggerSearch) {
onQueryTextListener.onQueryTextChange(text);
}
}