summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/UserDictionarySettings.java
diff options
context:
space:
mode:
authorThe Android Open Source Project <initial-contribution@android.com>2009-03-03 18:28:52 -0800
committerThe Android Open Source Project <initial-contribution@android.com>2009-03-03 18:28:52 -0800
commit4e14e5ccbf1ef27220419849133d482a546d5c04 (patch)
tree4b825dc642cb6eb9a060e54bf8d69288fbee4904 /src/com/android/settings/UserDictionarySettings.java
parenta578a6c4ad2924236a8882e3eb794474d57ca450 (diff)
downloadpackages_apps_Settings-4e14e5ccbf1ef27220419849133d482a546d5c04.zip
packages_apps_Settings-4e14e5ccbf1ef27220419849133d482a546d5c04.tar.gz
packages_apps_Settings-4e14e5ccbf1ef27220419849133d482a546d5c04.tar.bz2
auto import from //depot/cupcake/@135843
Diffstat (limited to 'src/com/android/settings/UserDictionarySettings.java')
-rw-r--r--src/com/android/settings/UserDictionarySettings.java268
1 files changed, 0 insertions, 268 deletions
diff --git a/src/com/android/settings/UserDictionarySettings.java b/src/com/android/settings/UserDictionarySettings.java
deleted file mode 100644
index 89d5279..0000000
--- a/src/com/android/settings/UserDictionarySettings.java
+++ /dev/null
@@ -1,268 +0,0 @@
-/**
- * Copyright (C) 2007 Google Inc.
- *
- * 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.android.settings;
-
-import android.app.AlertDialog;
-import android.app.Dialog;
-import android.app.ListActivity;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.content.Intent;
-import android.database.Cursor;
-import android.os.Bundle;
-import android.provider.UserDictionary;
-import android.view.ContextMenu;
-import android.view.Menu;
-import android.view.MenuItem;
-import android.view.View;
-import android.view.ContextMenu.ContextMenuInfo;
-import android.widget.AlphabetIndexer;
-import android.widget.EditText;
-import android.widget.ListAdapter;
-import android.widget.ListView;
-import android.widget.SectionIndexer;
-import android.widget.SimpleCursorAdapter;
-import android.widget.TextView;
-import android.widget.AdapterView.AdapterContextMenuInfo;
-
-import java.util.Locale;
-
-public class UserDictionarySettings extends ListActivity {
-
- private static final String INSTANCE_KEY_DIALOG_EDITING_WORD = "DIALOG_EDITING_WORD";
- private static final String INSTANCE_KEY_ADDED_WORD = "DIALOG_ADDED_WORD";
-
- private static final String[] QUERY_PROJECTION = {
- UserDictionary.Words._ID, UserDictionary.Words.WORD
- };
-
- // Either the locale is empty (means the word is applicable to all locales)
- // or the word equals our current locale
- private static final String QUERY_SELECTION = UserDictionary.Words.LOCALE + "=? OR "
- + UserDictionary.Words.LOCALE + " is null";
-
- private static final String DELETE_SELECTION = UserDictionary.Words.WORD + "=?";
-
- private static final String EXTRA_WORD = "word";
-
- private static final int CONTEXT_MENU_EDIT = Menu.FIRST;
- private static final int CONTEXT_MENU_DELETE = Menu.FIRST + 1;
-
- private static final int OPTIONS_MENU_ADD = Menu.FIRST;
-
- private static final int DIALOG_ADD_OR_EDIT = 0;
-
- /** The word being edited in the dialog (null means the user is adding a word). */
- private String mDialogEditingWord;
-
- private Cursor mCursor;
-
- private boolean mAddedWordAlready;
- private boolean mAutoReturn;
-
- @Override
- protected void onCreate(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);
- }
-
- @Override
- 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);
- }
- }
- }
- @Override
- protected void onRestoreInstanceState(Bundle state) {
- super.onRestoreInstanceState(state);
- mDialogEditingWord = state.getString(INSTANCE_KEY_DIALOG_EDITING_WORD);
- mAddedWordAlready = state.getBoolean(INSTANCE_KEY_ADDED_WORD, false);
- }
-
- @Override
- protected void onSaveInstanceState(Bundle outState) {
- super.onSaveInstanceState(outState);
- outState.putString(INSTANCE_KEY_DIALOG_EDITING_WORD, mDialogEditingWord);
- outState.putBoolean(INSTANCE_KEY_ADDED_WORD, mAddedWordAlready);
- }
-
- private 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 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 });
- }
-
- @Override
- protected void onListItemClick(ListView l, View v, int position, long id) {
- showAddOrEditDialog(getWord(position));
- }
-
- @Override
- public void onCreateContextMenu(ContextMenu menu, View v, 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);
- }
-
- @Override
- public boolean onContextItemSelected(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;
- }
-
- @Override
- public boolean onCreateOptionsMenu(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;
- }
-
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- showAddOrEditDialog(null);
- return true;
- }
-
- private void showAddOrEditDialog(String editingWord) {
- mDialogEditingWord = editingWord;
- showDialog(DIALOG_ADD_OR_EDIT);
- }
-
- private String getWord(int position) {
- mCursor.moveToPosition(position);
- return mCursor.getString(
- mCursor.getColumnIndexOrThrow(UserDictionary.Words.WORD));
- }
-
- @Override
- protected Dialog onCreateDialog(int id) {
- View content = getLayoutInflater().inflate(R.layout.dialog_edittext, null);
- final EditText editText = (EditText) content.findViewById(R.id.edittext);
-
- return new AlertDialog.Builder(this)
- .setTitle(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();
- }
-
- @Override
- protected void onPrepareDialog(int id, Dialog d) {
- AlertDialog dialog = (AlertDialog) d;
- EditText editText = (EditText) dialog.findViewById(R.id.edittext);
- editText.setText(mDialogEditingWord);
- }
-
- private void onAddOrEditFinished(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;
- }
-
- private void deleteWord(String word) {
- getContentResolver().delete(UserDictionary.Words.CONTENT_URI, DELETE_SELECTION,
- new String[] { word });
- }
-
- private static class MyAdapter extends SimpleCursorAdapter implements SectionIndexer {
- private AlphabetIndexer mIndexer;
-
- public MyAdapter(Context context, int layout, Cursor c, String[] from, int[] to) {
- super(context, layout, c, from, to);
-
- int wordColIndex = c.getColumnIndexOrThrow(UserDictionary.Words.WORD);
- String alphabet = context.getString(com.android.internal.R.string.fast_scroll_alphabet);
- mIndexer = new AlphabetIndexer(c, wordColIndex, alphabet);
- }
-
- public int getPositionForSection(int section) {
- return mIndexer.getPositionForSection(section);
- }
-
- public int getSectionForPosition(int position) {
- return mIndexer.getSectionForPosition(position);
- }
-
- public Object[] getSections() {
- return mIndexer.getSections();
- }
- }
-}