aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/latin/userdictionary
diff options
context:
space:
mode:
authorDan Zivkovic <zivkovic@google.com>2015-02-10 14:54:38 -0800
committerDan Zivkovic <zivkovic@google.com>2015-02-11 13:02:41 -0800
commit12d80ebead6a1d7f704a5a3af3b6fe3313ceab05 (patch)
tree3ab839123291ba254aec3189f6c2f20dd30016c8 /java/src/com/android/inputmethod/latin/userdictionary
parent2979fad21384bb595ba2baca8f5bbbfc053be921 (diff)
downloadlatinime-12d80ebead6a1d7f704a5a3af3b6fe3313ceab05.tar.gz
latinime-12d80ebead6a1d7f704a5a3af3b6fe3313ceab05.tar.xz
latinime-12d80ebead6a1d7f704a5a3af3b6fe3313ceab05.zip
Remove shortcut support from LatinIME.
Note this change does not affect the native decoder interface. Change-Id: I73b7dc008a5acaf75a31a36a2d332b5afabd82d0
Diffstat (limited to 'java/src/com/android/inputmethod/latin/userdictionary')
-rw-r--r--java/src/com/android/inputmethod/latin/userdictionary/UserDictionaryAddWordContents.java77
-rw-r--r--java/src/com/android/inputmethod/latin/userdictionary/UserDictionaryList.java3
-rw-r--r--java/src/com/android/inputmethod/latin/userdictionary/UserDictionarySettings.java103
3 files changed, 30 insertions, 153 deletions
diff --git a/java/src/com/android/inputmethod/latin/userdictionary/UserDictionaryAddWordContents.java b/java/src/com/android/inputmethod/latin/userdictionary/UserDictionaryAddWordContents.java
index 69029c51e..cb615f3af 100644
--- a/java/src/com/android/inputmethod/latin/userdictionary/UserDictionaryAddWordContents.java
+++ b/java/src/com/android/inputmethod/latin/userdictionary/UserDictionaryAddWordContents.java
@@ -26,7 +26,6 @@ import android.text.TextUtils;
import android.view.View;
import android.widget.EditText;
-import com.android.inputmethod.compat.UserDictionaryCompatUtils;
import com.android.inputmethod.latin.R;
import com.android.inputmethod.latin.common.LocaleUtils;
@@ -47,10 +46,7 @@ import javax.annotation.Nullable;
public class UserDictionaryAddWordContents {
public static final String EXTRA_MODE = "mode";
public static final String EXTRA_WORD = "word";
- public static final String EXTRA_SHORTCUT = "shortcut";
public static final String EXTRA_LOCALE = "locale";
- public static final String EXTRA_ORIGINAL_WORD = "originalWord";
- public static final String EXTRA_ORIGINAL_SHORTCUT = "originalShortcut";
public static final int MODE_EDIT = 0;
public static final int MODE_INSERT = 1;
@@ -63,20 +59,12 @@ public class UserDictionaryAddWordContents {
private final int mMode; // Either MODE_EDIT or MODE_INSERT
private final EditText mWordEditText;
- private final EditText mShortcutEditText;
private String mLocale;
private final String mOldWord;
- private final String mOldShortcut;
private String mSavedWord;
- private String mSavedShortcut;
/* package */ UserDictionaryAddWordContents(final View view, final Bundle args) {
mWordEditText = (EditText)view.findViewById(R.id.user_dictionary_add_word_text);
- mShortcutEditText = (EditText)view.findViewById(R.id.user_dictionary_add_shortcut);
- if (!UserDictionarySettings.IS_SHORTCUT_API_SUPPORTED) {
- mShortcutEditText.setVisibility(View.GONE);
- view.findViewById(R.id.user_dictionary_add_shortcut_label).setVisibility(View.GONE);
- }
final String word = args.getString(EXTRA_WORD);
if (null != word) {
mWordEditText.setText(word);
@@ -84,17 +72,6 @@ public class UserDictionaryAddWordContents {
// it's too long to be edited.
mWordEditText.setSelection(mWordEditText.getText().length());
}
- final String shortcut;
- if (UserDictionarySettings.IS_SHORTCUT_API_SUPPORTED) {
- shortcut = args.getString(EXTRA_SHORTCUT);
- if (null != shortcut && null != mShortcutEditText) {
- mShortcutEditText.setText(shortcut);
- }
- mOldShortcut = args.getString(EXTRA_SHORTCUT);
- } else {
- shortcut = null;
- mOldShortcut = null;
- }
mMode = args.getInt(EXTRA_MODE); // default return value for #getInt() is 0 = MODE_EDIT
mOldWord = args.getString(EXTRA_WORD);
updateLocale(args.getString(EXTRA_LOCALE));
@@ -103,10 +80,8 @@ public class UserDictionaryAddWordContents {
/* package */ UserDictionaryAddWordContents(final View view,
final UserDictionaryAddWordContents oldInstanceToBeEdited) {
mWordEditText = (EditText)view.findViewById(R.id.user_dictionary_add_word_text);
- mShortcutEditText = (EditText)view.findViewById(R.id.user_dictionary_add_shortcut);
mMode = MODE_EDIT;
mOldWord = oldInstanceToBeEdited.mSavedWord;
- mOldShortcut = oldInstanceToBeEdited.mSavedShortcut;
updateLocale(mLocale);
}
@@ -118,13 +93,6 @@ public class UserDictionaryAddWordContents {
/* package */ void saveStateIntoBundle(final Bundle outState) {
outState.putString(EXTRA_WORD, mWordEditText.getText().toString());
- outState.putString(EXTRA_ORIGINAL_WORD, mOldWord);
- if (null != mShortcutEditText) {
- outState.putString(EXTRA_SHORTCUT, mShortcutEditText.getText().toString());
- }
- if (null != mOldShortcut) {
- outState.putString(EXTRA_ORIGINAL_SHORTCUT, mOldShortcut);
- }
outState.putString(EXTRA_LOCALE, mLocale);
}
@@ -132,7 +100,7 @@ public class UserDictionaryAddWordContents {
if (MODE_EDIT == mMode && !TextUtils.isEmpty(mOldWord)) {
// Mode edit: remove the old entry.
final ContentResolver resolver = context.getContentResolver();
- UserDictionarySettings.deleteWord(mOldWord, mOldShortcut, resolver);
+ UserDictionarySettings.deleteWord(mOldWord, resolver);
}
// If we are in add mode, nothing was added, so we don't need to do anything.
}
@@ -143,50 +111,31 @@ public class UserDictionaryAddWordContents {
final ContentResolver resolver = context.getContentResolver();
if (MODE_EDIT == mMode && !TextUtils.isEmpty(mOldWord)) {
// Mode edit: remove the old entry.
- UserDictionarySettings.deleteWord(mOldWord, mOldShortcut, resolver);
+ UserDictionarySettings.deleteWord(mOldWord, resolver);
}
final String newWord = mWordEditText.getText().toString();
- final String newShortcut;
- if (!UserDictionarySettings.IS_SHORTCUT_API_SUPPORTED) {
- newShortcut = null;
- } else if (null == mShortcutEditText) {
- newShortcut = null;
- } else {
- final String tmpShortcut = mShortcutEditText.getText().toString();
- if (TextUtils.isEmpty(tmpShortcut)) {
- newShortcut = null;
- } else {
- newShortcut = tmpShortcut;
- }
- }
if (TextUtils.isEmpty(newWord)) {
// If the word is somehow empty, don't insert it.
return CODE_CANCEL;
}
mSavedWord = newWord;
- mSavedShortcut = newShortcut;
- // If there is no shortcut, and the word already exists in the database, then we
- // should not insert, because either A. the word exists with no shortcut, in which
- // case the exact same thing we want to insert is already there, or B. the word
- // exists with at least one shortcut, in which case it has priority on our word.
- if (TextUtils.isEmpty(newShortcut) && hasWord(newWord, context)) {
+ // If the word already exists in the database, then we should not insert.
+ if (hasWord(newWord, context)) {
return CODE_ALREADY_PRESENT;
}
- // Disallow duplicates. If the same word with no shortcut is defined, remove it; if
- // the same word with the same shortcut is defined, remove it; but we don't mind if
- // there is the same word with a different, non-empty shortcut.
- UserDictionarySettings.deleteWord(newWord, null, resolver);
- if (!TextUtils.isEmpty(newShortcut)) {
- // If newShortcut is empty we just deleted this, no need to do it again
- UserDictionarySettings.deleteWord(newWord, newShortcut, resolver);
- }
+ // Disallow duplicates. If the same word is defined, remove it.
+ UserDictionarySettings.deleteWord(newWord, resolver);
// In this class we use the empty string to represent 'all locales' and mLocale cannot
// be null. However the addWord method takes null to mean 'all locales'.
- UserDictionaryCompatUtils.addWord(context, newWord.toString(),
- FREQUENCY_FOR_USER_DICTIONARY_ADDS, newShortcut, TextUtils.isEmpty(mLocale) ?
- null : LocaleUtils.constructLocaleFromString(mLocale));
+ final Locale locale = TextUtils.isEmpty(mLocale) ?
+ null : LocaleUtils.constructLocaleFromString(mLocale);
+ final Locale currentLocale = context.getResources().getConfiguration().locale;
+ final boolean useCurrentLocale = currentLocale.equals(locale);
+ UserDictionary.Words.addWord(context, newWord.toString(),
+ FREQUENCY_FOR_USER_DICTIONARY_ADDS, null /* shortcut */,
+ useCurrentLocale ? Locale.getDefault() : null);
return CODE_WORD_ADDED;
}
diff --git a/java/src/com/android/inputmethod/latin/userdictionary/UserDictionaryList.java b/java/src/com/android/inputmethod/latin/userdictionary/UserDictionaryList.java
index 6254b54ff..c43463ce7 100644
--- a/java/src/com/android/inputmethod/latin/userdictionary/UserDictionaryList.java
+++ b/java/src/com/android/inputmethod/latin/userdictionary/UserDictionaryList.java
@@ -31,6 +31,7 @@ import android.view.inputmethod.InputMethodManager;
import android.view.inputmethod.InputMethodSubtype;
import com.android.inputmethod.latin.R;
+import com.android.inputmethod.latin.common.Constants;
import com.android.inputmethod.latin.common.LocaleUtils;
import java.util.List;
@@ -74,7 +75,7 @@ public class UserDictionaryList extends PreferenceFragment {
} finally {
cursor.close();
}
- if (!UserDictionarySettings.IS_SHORTCUT_API_SUPPORTED) {
+ if (!Constants.JELLY_BEAN_OR_HIGHER) {
// For ICS, we need to show "For all languages" in case that the keyboard locale
// is different from the system locale
localeSet.add("");
diff --git a/java/src/com/android/inputmethod/latin/userdictionary/UserDictionarySettings.java b/java/src/com/android/inputmethod/latin/userdictionary/UserDictionarySettings.java
index fabd49f46..3ccd1b3e6 100644
--- a/java/src/com/android/inputmethod/latin/userdictionary/UserDictionarySettings.java
+++ b/java/src/com/android/inputmethod/latin/userdictionary/UserDictionarySettings.java
@@ -48,42 +48,18 @@ import java.util.Locale;
public class UserDictionarySettings extends ListFragment {
- public static final boolean IS_SHORTCUT_API_SUPPORTED =
- Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN;
-
- private static final String[] QUERY_PROJECTION_SHORTCUT_UNSUPPORTED =
- { UserDictionary.Words._ID, UserDictionary.Words.WORD};
- private static final String[] QUERY_PROJECTION_SHORTCUT_SUPPORTED =
- { UserDictionary.Words._ID, UserDictionary.Words.WORD, UserDictionary.Words.SHORTCUT};
- private static final String[] QUERY_PROJECTION =
- IS_SHORTCUT_API_SUPPORTED ?
- QUERY_PROJECTION_SHORTCUT_SUPPORTED : QUERY_PROJECTION_SHORTCUT_UNSUPPORTED;
-
- // The index of the shortcut in the above array.
- private static final int INDEX_SHORTCUT = 2;
-
- private static final String[] ADAPTER_FROM_SHORTCUT_UNSUPPORTED = {
- UserDictionary.Words.WORD,
+ private static final String[] QUERY_PROJECTION = {
+ UserDictionary.Words._ID, UserDictionary.Words.WORD
};
- private static final String[] ADAPTER_FROM_SHORTCUT_SUPPORTED = {
- UserDictionary.Words.WORD, UserDictionary.Words.SHORTCUT
+ private static final String[] ADAPTER_FROM = {
+ UserDictionary.Words.WORD, UserDictionary.Words.SHORTCUT
};
- private static final String[] ADAPTER_FROM = IS_SHORTCUT_API_SUPPORTED ?
- ADAPTER_FROM_SHORTCUT_SUPPORTED : ADAPTER_FROM_SHORTCUT_UNSUPPORTED;
-
- private static final int[] ADAPTER_TO_SHORTCUT_UNSUPPORTED = {
+ private static final int[] ADAPTER_TO = {
android.R.id.text1,
};
- private static final int[] ADAPTER_TO_SHORTCUT_SUPPORTED = {
- android.R.id.text1, android.R.id.text2
- };
-
- private static final int[] ADAPTER_TO = IS_SHORTCUT_API_SUPPORTED ?
- ADAPTER_TO_SHORTCUT_SUPPORTED : ADAPTER_TO_SHORTCUT_UNSUPPORTED;
-
// 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 =
@@ -91,13 +67,7 @@ public class UserDictionarySettings extends ListFragment {
private static final String QUERY_SELECTION_ALL_LOCALES =
UserDictionary.Words.LOCALE + " is null";
- private static final String DELETE_SELECTION_WITH_SHORTCUT = UserDictionary.Words.WORD
- + "=? AND " + UserDictionary.Words.SHORTCUT + "=?";
- private static final String DELETE_SELECTION_WITHOUT_SHORTCUT = UserDictionary.Words.WORD
- + "=? AND " + UserDictionary.Words.SHORTCUT + " is null OR "
- + UserDictionary.Words.SHORTCUT + "=''";
- private static final String DELETE_SELECTION_SHORTCUT_UNSUPPORTED =
- UserDictionary.Words.WORD + "=?";
+ private static final String DELETE_SELECTION = UserDictionary.Words.WORD + "=?";
private static final int OPTIONS_MENU_ADD = Menu.FIRST;
@@ -192,20 +162,18 @@ public class UserDictionarySettings extends ListFragment {
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
final String word = getWord(position);
- final String shortcut = getShortcut(position);
if (word != null) {
- showAddOrEditDialog(word, shortcut);
+ showAddOrEditDialog(word);
}
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
- if (!UserDictionarySettings.IS_SHORTCUT_API_SUPPORTED) {
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN) {
final Locale systemLocale = getResources().getConfiguration().locale;
if (!TextUtils.isEmpty(mLocale) && !mLocale.equals(systemLocale.toString())) {
// Hide the add button for ICS because it doesn't support specifying a locale
- // for an entry. This new "locale"-aware API has been added in conjunction
- // with the shortcut API.
+ // for an entry.
return;
}
}
@@ -219,7 +187,7 @@ public class UserDictionarySettings extends ListFragment {
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == OPTIONS_MENU_ADD) {
- showAddOrEditDialog(null, null);
+ showAddOrEditDialog(null);
return true;
}
return false;
@@ -228,18 +196,15 @@ public class UserDictionarySettings extends ListFragment {
/**
* Add or edit a word. If editingWord is null, it's an add; otherwise, it's an edit.
* @param editingWord the word to edit, or null if it's an add.
- * @param editingShortcut the shortcut for this entry, or null if none.
*/
- private void showAddOrEditDialog(final String editingWord, final String editingShortcut) {
+ private void showAddOrEditDialog(final String editingWord) {
final Bundle args = new Bundle();
args.putInt(UserDictionaryAddWordContents.EXTRA_MODE, null == editingWord
? UserDictionaryAddWordContents.MODE_INSERT
: UserDictionaryAddWordContents.MODE_EDIT);
args.putString(UserDictionaryAddWordContents.EXTRA_WORD, editingWord);
- args.putString(UserDictionaryAddWordContents.EXTRA_SHORTCUT, editingShortcut);
args.putString(UserDictionaryAddWordContents.EXTRA_LOCALE, mLocale);
- android.preference.PreferenceActivity pa =
- (android.preference.PreferenceActivity)getActivity();
+ getActivity();
}
private String getWord(final int position) {
@@ -252,31 +217,8 @@ public class UserDictionarySettings extends ListFragment {
mCursor.getColumnIndexOrThrow(UserDictionary.Words.WORD));
}
- private String getShortcut(final int position) {
- if (!IS_SHORTCUT_API_SUPPORTED) return null;
- if (null == mCursor) return null;
- mCursor.moveToPosition(position);
- // Handle a possible race-condition
- if (mCursor.isAfterLast()) return null;
-
- return mCursor.getString(
- mCursor.getColumnIndexOrThrow(UserDictionary.Words.SHORTCUT));
- }
-
- public static void deleteWord(final String word, final String shortcut,
- final ContentResolver resolver) {
- if (!IS_SHORTCUT_API_SUPPORTED) {
- resolver.delete(UserDictionary.Words.CONTENT_URI, DELETE_SELECTION_SHORTCUT_UNSUPPORTED,
- new String[] { word });
- } else if (TextUtils.isEmpty(shortcut)) {
- resolver.delete(
- UserDictionary.Words.CONTENT_URI, DELETE_SELECTION_WITHOUT_SHORTCUT,
- new String[] { word });
- } else {
- resolver.delete(
- UserDictionary.Words.CONTENT_URI, DELETE_SELECTION_WITH_SHORTCUT,
- new String[] { word, shortcut });
- }
+ public static void deleteWord(final String word, final ContentResolver resolver) {
+ resolver.delete(UserDictionary.Words.CONTENT_URI, DELETE_SELECTION, new String[] { word });
}
private static class MyAdapter extends SimpleCursorAdapter implements SectionIndexer {
@@ -286,22 +228,7 @@ public class UserDictionarySettings extends ListFragment {
@Override
public boolean setViewValue(final View v, final Cursor c, final int columnIndex) {
- if (!IS_SHORTCUT_API_SUPPORTED) {
- // just let SimpleCursorAdapter set the view values
- return false;
- }
- if (columnIndex == INDEX_SHORTCUT) {
- final String shortcut = c.getString(INDEX_SHORTCUT);
- if (TextUtils.isEmpty(shortcut)) {
- v.setVisibility(View.GONE);
- } else {
- ((TextView)v).setText(shortcut);
- v.setVisibility(View.VISIBLE);
- }
- v.invalidate();
- return true;
- }
-
+ // just let SimpleCursorAdapter set the view values
return false;
}
};