Add an option to prevent insertion of suggestion spans

This is to help debug of
Bug: 5250788

Change-Id: I961321aff3776c4912eaf7a1fa4de0c01d715f24
diff --git a/java/res/values/strings.xml b/java/res/values/strings.xml
index 2b91936..37cb23b 100644
--- a/java/res/values/strings.xml
+++ b/java/res/values/strings.xml
@@ -75,6 +75,11 @@
     <!-- Description for option enabling or disabling the use of names of people in Contacts for suggestion and correction [CHAR LIMIT=65] -->
     <string name="use_contacts_dict_summary">Use names from Contacts for suggestions and corrections</string>
 
+    <!-- Option name for enabling insertion of suggestion spans (advanced option) [CHAR LIMIT=25] -->
+    <string name="enable_span_insert">Enable recorrections</string>
+    <!-- Option summary for enabling insertion of suggestion spans (advanced option) [CHAR LIMIT=65] -->
+    <string name="enable_span_insert_summary">Set suggestions for recorrections</string>
+
     <!-- Option to enable auto capitalization of sentences -->
     <string name="auto_cap">Auto-capitalization</string>
 
diff --git a/java/res/xml/prefs.xml b/java/res/xml/prefs.xml
index 2f32181..d02e5d7 100644
--- a/java/res/xml/prefs.xml
+++ b/java/res/xml/prefs.xml
@@ -132,6 +132,12 @@
              android:summary="@string/bigram_suggestion_summary"
              android:persistent="true"
              android:defaultValue="true" />
+          <CheckBoxPreference
+             android:key="enable_span_insert"
+             android:title="@string/enable_span_insert"
+             android:summary="@string/enable_span_insert_summary"
+             android:persistent="true"
+             android:defaultValue="true" />
           <!-- TODO: evaluate results and revive this option. The code already supports it. -->
           <!-- <CheckBoxPreference -->
           <!--    android:key="bigram_prediction" -->
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 85363fd..cea59fe 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -1807,9 +1807,13 @@
         final InputConnection ic = getCurrentInputConnection();
         if (ic != null) {
             mVoiceProxy.rememberReplacedWord(bestWord, mSettingsValues.mWordSeparators);
-            SuggestedWords suggestedWords = mSuggestionsView.getSuggestions();
-            ic.commitText(SuggestionSpanUtils.getTextWithSuggestionSpan(
-                    this, bestWord, suggestedWords), 1);
+            if (mSettingsValues.mEnableSuggestionSpanInsertion) {
+                final SuggestedWords suggestedWords = mSuggestionsView.getSuggestions();
+                ic.commitText(SuggestionSpanUtils.getTextWithSuggestionSpan(
+                        this, bestWord, suggestedWords), 1);
+            } else {
+                ic.commitText(bestWord, 1);
+            }
         }
         mRecorrection.saveRecorrectionSuggestion(mWordComposer, bestWord);
         mHasUncommittedTypedChars = false;
diff --git a/java/src/com/android/inputmethod/latin/Settings.java b/java/src/com/android/inputmethod/latin/Settings.java
index 1e2ef48..c42f056 100644
--- a/java/src/com/android/inputmethod/latin/Settings.java
+++ b/java/src/com/android/inputmethod/latin/Settings.java
@@ -82,6 +82,8 @@
             "pref_key_preview_popup_dismiss_delay";
     public static final String PREF_KEY_USE_CONTACTS_DICT =
             "pref_key_use_contacts_dict";
+    public static final String PREF_KEY_ENABLE_SPAN_INSERT =
+            "enable_span_insert";
 
     public static final String PREF_USABILITY_STUDY_MODE = "usability_study_mode";
 
@@ -117,6 +119,7 @@
         // Prediction: use bigrams to predict the next word when there is no input for it yet
         public final boolean mBigramPredictionEnabled;
         public final boolean mUseContactsDict;
+        public final boolean mEnableSuggestionSpanInsertion;
 
         private final boolean mShowSettingsKey;
         private final boolean mVoiceKeyEnabled;
@@ -179,6 +182,8 @@
                     && isBigramPredictionEnabled(prefs, res);
             mAutoCorrectionThreshold = getAutoCorrectionThreshold(prefs, res);
             mUseContactsDict = prefs.getBoolean(Settings.PREF_KEY_USE_CONTACTS_DICT, true);
+            mEnableSuggestionSpanInsertion =
+                    prefs.getBoolean(Settings.PREF_KEY_ENABLE_SPAN_INSERT, true);
             final boolean defaultShowSettingsKey = res.getBoolean(
                     R.bool.config_default_show_settings_key);
             mShowSettingsKey = isShowSettingsKeyOption(res)