diff options
Diffstat (limited to 'java')
-rw-r--r-- | java/res/values/strings.xml | 3 | ||||
-rw-r--r-- | java/res/xml-ar/kbd_qwerty.xml | 1 | ||||
-rw-r--r-- | java/res/xml-iw/kbd_qwerty.xml | 1 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/keyboard/Key.java | 4 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/LatinIME.java | 8 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/Settings.java | 10 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/SubtypeSwitcher.java | 10 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java | 34 |
8 files changed, 61 insertions, 10 deletions
diff --git a/java/res/values/strings.xml b/java/res/values/strings.xml index 6c597cf86..efc32a76e 100644 --- a/java/res/values/strings.xml +++ b/java/res/values/strings.xml @@ -25,6 +25,9 @@ <!-- Title for Latin keyboard input options dialog [CHAR LIMIT=25] --> <string name="english_ime_input_options">Input options</string> + <!-- Title for Latin Keyboard spell checker service --> + <string name="spell_checker_service_name">Android correction</string> + <!-- Option to provide vibrate/haptic feedback on keypress --> <string name="vibrate_on_keypress">Vibrate on keypress</string> diff --git a/java/res/xml-ar/kbd_qwerty.xml b/java/res/xml-ar/kbd_qwerty.xml index 57a6d2caf..b26a938cc 100644 --- a/java/res/xml-ar/kbd_qwerty.xml +++ b/java/res/xml-ar/kbd_qwerty.xml @@ -21,6 +21,7 @@ <Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" latin:keyboardLocale="ar" + latin:isRtlKeyboard="true" > <include latin:keyboardLayout="@xml/kbd_rows_arabic" /> diff --git a/java/res/xml-iw/kbd_qwerty.xml b/java/res/xml-iw/kbd_qwerty.xml index dc2c5d35a..54cd4b5e9 100644 --- a/java/res/xml-iw/kbd_qwerty.xml +++ b/java/res/xml-iw/kbd_qwerty.xml @@ -21,6 +21,7 @@ <Keyboard xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin" latin:keyboardLocale="iw" + latin:isRtlKeyboard="true" > <include latin:keyboardLayout="@xml/kbd_rows_hebrew" /> diff --git a/java/src/com/android/inputmethod/keyboard/Key.java b/java/src/com/android/inputmethod/keyboard/Key.java index 8b8930a86..0ee8d7174 100644 --- a/java/src/com/android/inputmethod/keyboard/Key.java +++ b/java/src/com/android/inputmethod/keyboard/Key.java @@ -159,6 +159,8 @@ public class Key { private static final Map<Integer, Integer> sRtlParenthesisMap = new HashMap<Integer, Integer>(); static { + // The all letters need to be mirrored are found at + // http://www.unicode.org/Public/6.0.0/ucd/extracted/DerivedBinaryProperties.txt addRtlParenthesisPair('(', ')'); addRtlParenthesisPair('[', ']'); addRtlParenthesisPair('{', '}'); @@ -179,7 +181,7 @@ public class Key { sRtlParenthesisMap.put(right, left); } - private static int getRtlParenthesisCode(int code) { + public static int getRtlParenthesisCode(int code) { if (sRtlParenthesisMap.containsKey(code)) { return sRtlParenthesisMap.get(code); } else { diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java index 3457ac984..a8118e549 100644 --- a/java/src/com/android/inputmethod/latin/LatinIME.java +++ b/java/src/com/android/inputmethod/latin/LatinIME.java @@ -60,6 +60,7 @@ import com.android.inputmethod.compat.SuggestionSpanUtils; import com.android.inputmethod.deprecated.LanguageSwitcherProxy; import com.android.inputmethod.deprecated.VoiceProxy; import com.android.inputmethod.deprecated.recorrection.Recorrection; +import com.android.inputmethod.keyboard.Key; import com.android.inputmethod.keyboard.Keyboard; import com.android.inputmethod.keyboard.KeyboardActionListener; import com.android.inputmethod.keyboard.KeyboardSwitcher; @@ -1695,7 +1696,12 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar // for punctuation entered through the suggestion strip, it should be considered // a magic space even if it was a normal space. This is meant to help in case the user // pressed space on purpose of displaying the suggestion strip punctuation. - final char primaryCode = suggestion.charAt(0); + final int rawPrimaryCode = suggestion.charAt(0); + // Maybe apply the "bidi mirrored" conversions for parentheses + final LatinKeyboard keyboard = mKeyboardSwitcher.getLatinKeyboard(); + final int primaryCode = keyboard.isRtlKeyboard() + ? Key.getRtlParenthesisCode(rawPrimaryCode) : rawPrimaryCode; + final CharSequence beforeText = ic != null ? ic.getTextBeforeCursor(1, 0) : ""; final int toLeft = (ic == null || TextUtils.isEmpty(beforeText)) ? 0 : beforeText.charAt(0); diff --git a/java/src/com/android/inputmethod/latin/Settings.java b/java/src/com/android/inputmethod/latin/Settings.java index b6171d276..6a4837163 100644 --- a/java/src/com/android/inputmethod/latin/Settings.java +++ b/java/src/com/android/inputmethod/latin/Settings.java @@ -183,11 +183,11 @@ public class Settings extends InputMethodSettingsActivity mUseContactsDict = prefs.getBoolean(Settings.PREF_KEY_USE_CONTACTS_DICT, true); - final String voiceMode = prefs.getString(PREF_VOICE_SETTINGS_KEY, null); - mVoiceButtonEnabled = voiceMode != null && !voiceMode.equals( - res.getString(R.string.voice_mode_off)); - mVoiceButtonOnPrimary = voiceMode != null && voiceMode.equals( - res.getString(R.string.voice_mode_main)); + final String voiceModeMain = res.getString(R.string.voice_mode_main); + final String voiceModeOff = res.getString(R.string.voice_mode_off); + final String voiceMode = prefs.getString(PREF_VOICE_SETTINGS_KEY, voiceModeMain); + mVoiceButtonEnabled = voiceMode != null && !voiceMode.equals(voiceModeOff); + mVoiceButtonOnPrimary = voiceMode != null && voiceMode.equals(voiceModeMain); Utils.setSystemLocale(res, savedLocale); } diff --git a/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java b/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java index 6580cbc08..f10b1b845 100644 --- a/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java +++ b/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java @@ -361,13 +361,17 @@ public class SubtypeSwitcher { } public boolean isShortcutImeEnabled() { - if (mShortcutInputMethodInfo == null) + if (mShortcutInputMethodInfo == null) { return false; - if (mShortcutSubtype == null) + } + if (mShortcutSubtype == null) { return true; + } // For compatibility, if the shortcut subtype is dummy, we assume the shortcut IME // (built-in voice dummy subtype) is available. - if (!mShortcutSubtype.hasOriginalObject()) return true; + if (!mShortcutSubtype.hasOriginalObject()) { + return true; + } final boolean allowsImplicitlySelectedSubtypes = true; for (final InputMethodSubtypeCompatWrapper enabledSubtype : mImm.getEnabledInputMethodSubtypeList( diff --git a/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java b/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java new file mode 100644 index 000000000..156510b40 --- /dev/null +++ b/java/src/com/android/inputmethod/latin/spellcheck/AndroidSpellCheckerService.java @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * 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.inputmethod.latin.spellcheck; + +import android.service.textservice.SpellCheckerService; +import android.view.textservice.SuggestionsInfo; +import android.view.textservice.TextInfo; + +/** + * Service for spell checking, using LatinIME's dictionaries and mechanisms. + */ +public class AndroidSpellCheckerService extends SpellCheckerService { + @Override + public SuggestionsInfo getSuggestions(TextInfo textInfo, int suggestionsLimit, + String locale) { + // TODO: implement this + String[] candidates = new String[] {"candidate1", "candidate2", "candidate3"}; + return new SuggestionsInfo(0, candidates); + } +} |