Methods Summary |
---|
private android.widget.ListAdapter | createAdapter()
return new MyAdapter(this,
android.R.layout.simple_list_item_1, mCursor,
new String[] { UserDictionary.Words.WORD },
new int[] { android.R.id.text1 });
|
private android.database.Cursor | createCursor()
String currentLocale = Locale.getDefault().toString();
// Case-insensitive sort
return managedQuery(UserDictionary.Words.CONTENT_URI, QUERY_PROJECTION,
QUERY_SELECTION, new String[] { currentLocale },
"UPPER(" + UserDictionary.Words.WORD + ")");
|
private void | deleteWord(java.lang.String word)
getContentResolver().delete(UserDictionary.Words.CONTENT_URI, DELETE_SELECTION,
new String[] { word });
|
private java.lang.String | getWord(int position)
mCursor.moveToPosition(position);
return mCursor.getString(
mCursor.getColumnIndexOrThrow(UserDictionary.Words.WORD));
|
private void | onAddOrEditFinished(java.lang.String word)
if (mDialogEditingWord != null) {
// The user was editing a word, so do a delete/add
deleteWord(mDialogEditingWord);
}
// Disallow duplicates
deleteWord(word);
// TODO: present UI for picking whether to add word to all locales, or current.
UserDictionary.Words.addWord(this, word.toString(),
250, UserDictionary.Words.LOCALE_TYPE_ALL);
mCursor.requery();
mAddedWordAlready = true;
|
public boolean | onContextItemSelected(android.view.MenuItem item)
ContextMenuInfo menuInfo = item.getMenuInfo();
if (!(menuInfo instanceof AdapterContextMenuInfo)) return false;
AdapterContextMenuInfo adapterMenuInfo = (AdapterContextMenuInfo) menuInfo;
String word = getWord(adapterMenuInfo.position);
switch (item.getItemId()) {
case CONTEXT_MENU_DELETE:
deleteWord(word);
return true;
case CONTEXT_MENU_EDIT:
showAddOrEditDialog(word);
return true;
}
return false;
|
protected void | onCreate(android.os.Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.list_content_with_empty_view);
mCursor = createCursor();
setListAdapter(createAdapter());
TextView emptyView = (TextView) findViewById(R.id.empty);
emptyView.setText(R.string.user_dict_settings_empty_text);
ListView listView = getListView();
listView.setFastScrollEnabled(true);
listView.setEmptyView(emptyView);
registerForContextMenu(listView);
|
public void | onCreateContextMenu(android.view.ContextMenu menu, android.view.View v, android.view.ContextMenu.ContextMenuInfo menuInfo)
if (!(menuInfo instanceof AdapterContextMenuInfo)) return;
AdapterContextMenuInfo adapterMenuInfo = (AdapterContextMenuInfo) menuInfo;
menu.setHeaderTitle(getWord(adapterMenuInfo.position));
menu.add(0, CONTEXT_MENU_EDIT, 0,
R.string.user_dict_settings_context_menu_edit_title);
menu.add(0, CONTEXT_MENU_DELETE, 0,
R.string.user_dict_settings_context_menu_delete_title);
|
protected android.app.Dialog | onCreateDialog(int id)
View content = getLayoutInflater().inflate(R.layout.dialog_edittext, null);
final EditText editText = (EditText) content.findViewById(R.id.edittext);
// No prediction in soft keyboard mode. TODO: Create a better way to disable prediction
editText.setInputType(InputType.TYPE_CLASS_TEXT
| InputType.TYPE_TEXT_FLAG_AUTO_COMPLETE);
return new AlertDialog.Builder(this)
.setTitle(mDialogEditingWord != null
? R.string.user_dict_settings_edit_dialog_title
: R.string.user_dict_settings_add_dialog_title)
.setView(content)
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
onAddOrEditFinished(editText.getText().toString());
if (mAutoReturn) finish();
}})
.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
if (mAutoReturn) finish();
}})
.create();
|
public boolean | onCreateOptionsMenu(android.view.Menu menu)
menu.add(0, OPTIONS_MENU_ADD, 0, R.string.user_dict_settings_add_menu_title)
.setIcon(R.drawable.ic_menu_add);
return true;
|
protected void | onListItemClick(android.widget.ListView l, android.view.View v, int position, long id)
openContextMenu(v);
|
public boolean | onOptionsItemSelected(android.view.MenuItem item)
showAddOrEditDialog(null);
return true;
|
protected void | onPrepareDialog(int id, android.app.Dialog d)
AlertDialog dialog = (AlertDialog) d;
d.setTitle(mDialogEditingWord != null
? R.string.user_dict_settings_edit_dialog_title
: R.string.user_dict_settings_add_dialog_title);
EditText editText = (EditText) dialog.findViewById(R.id.edittext);
editText.setText(mDialogEditingWord);
|
protected void | onRestoreInstanceState(android.os.Bundle state)
super.onRestoreInstanceState(state);
mDialogEditingWord = state.getString(INSTANCE_KEY_DIALOG_EDITING_WORD);
mAddedWordAlready = state.getBoolean(INSTANCE_KEY_ADDED_WORD, false);
|
protected void | onResume()
super.onResume();
if (!mAddedWordAlready
&& getIntent().getAction().equals("com.android.settings.USER_DICTIONARY_INSERT")) {
String word = getIntent().getStringExtra(EXTRA_WORD);
mAutoReturn = true;
if (word != null) {
showAddOrEditDialog(word);
}
}
|
protected void | onSaveInstanceState(android.os.Bundle outState)
super.onSaveInstanceState(outState);
outState.putString(INSTANCE_KEY_DIALOG_EDITING_WORD, mDialogEditingWord);
outState.putBoolean(INSTANCE_KEY_ADDED_WORD, mAddedWordAlready);
|
private void | showAddOrEditDialog(java.lang.String editingWord)
mDialogEditingWord = editingWord;
showDialog(DIALOG_ADD_OR_EDIT);
|