Add isDictionaryAvailable to SubtypeSwitcher
Change-Id: I534878d330b57bbfaa8b7711082456969771f4dc
diff --git a/java/src/com/android/inputmethod/compat/SuggestionSpanUtils.java b/java/src/com/android/inputmethod/compat/SuggestionSpanUtils.java
index 43c19d7..d97989d 100644
--- a/java/src/com/android/inputmethod/compat/SuggestionSpanUtils.java
+++ b/java/src/com/android/inputmethod/compat/SuggestionSpanUtils.java
@@ -104,8 +104,9 @@
}
public static CharSequence getTextWithSuggestionSpan(Context context,
- CharSequence pickedWord, SuggestedWords suggestedWords) {
- if (TextUtils.isEmpty(pickedWord) || CONSTRUCTOR_SuggestionSpan == null
+ CharSequence pickedWord, SuggestedWords suggestedWords, boolean dictionaryAvailable) {
+ if (!dictionaryAvailable || TextUtils.isEmpty(pickedWord)
+ || CONSTRUCTOR_SuggestionSpan == null
|| suggestedWords == null || suggestedWords.size() == 0
|| OBJ_SUGGESTIONS_MAX_SIZE == null) {
return pickedWord;
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 7cdeef8..187252a 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -1895,7 +1895,8 @@
if (mSettingsValues.mEnableSuggestionSpanInsertion) {
final SuggestedWords suggestedWords = mSuggestionsView.getSuggestions();
ic.commitText(SuggestionSpanUtils.getTextWithSuggestionSpan(
- this, bestWord, suggestedWords), 1);
+ this, bestWord, suggestedWords, mSubtypeSwitcher.isDictionaryAvailable()),
+ 1);
} else {
ic.commitText(bestWord, 1);
}
diff --git a/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java b/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java
index 6612c24..99f0ee1 100644
--- a/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java
+++ b/java/src/com/android/inputmethod/latin/SubtypeSwitcher.java
@@ -63,6 +63,7 @@
/*-----------------------------------------------------------*/
// Variants which should be changed only by reload functions.
private boolean mNeedsToDisplayLanguage;
+ private boolean mIsDictionaryAvailable;
private boolean mIsSystemLanguageSameAsInputLanguage;
private InputMethodInfo mShortcutInputMethodInfo;
private InputMethodSubtype mShortcutSubtype;
@@ -260,6 +261,7 @@
getInputLocale().getLanguage());
mNeedsToDisplayLanguage = !(getEnabledKeyboardLocaleCount() <= 1
&& mIsSystemLanguageSameAsInputLanguage);
+ mIsDictionaryAvailable = DictionaryFactory.isDictionaryAvailable(mService, mInputLocale);
}
////////////////////////////
@@ -379,6 +381,10 @@
}
}
+ public boolean isDictionaryAvailable() {
+ return mIsDictionaryAvailable;
+ }
+
// TODO: Remove this method
private boolean isKeyboardMode() {
return KEYBOARD_MODE.equals(getCurrentSubtypeMode());