Merge "Add Bidi-Mirrored letter list link as comment"
diff --git a/java/res/values/strings.xml b/java/res/values/strings.xml
index 6c597cf..efc32a7 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/src/com/android/inputmethod/latin/Settings.java b/java/src/com/android/inputmethod/latin/Settings.java
index b6171d2..6a48371 100644
--- a/java/src/com/android/inputmethod/latin/Settings.java
+++ b/java/src/com/android/inputmethod/latin/Settings.java
@@ -183,11 +183,11 @@
 
             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 6580cbc..f10b1b8 100644
--- a/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java
+++ b/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java
@@ -361,13 +361,17 @@
     }
 
     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 0000000..156510b
--- /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);
+    }
+}