Move final attributes to SettingsValues (B2)
Bug: 6675475 Bug: 6677394 Change-Id: I4a26efb9226d3f909f331c4d2e47cd83a05c011e
This commit is contained in:
parent
6ebd93951f
commit
dca729fddd
2 changed files with 62 additions and 36 deletions
|
@ -872,33 +872,32 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
|||
if (ProductionFlag.IS_EXPERIMENTAL) {
|
||||
ResearchLogger.latinIME_onDisplayCompletions(applicationSpecifiedCompletions);
|
||||
}
|
||||
if (null != mInputAttributes && mInputAttributes.mApplicationSpecifiedCompletionOn) {
|
||||
mApplicationSpecifiedCompletions = applicationSpecifiedCompletions;
|
||||
if (applicationSpecifiedCompletions == null) {
|
||||
clearSuggestions();
|
||||
return;
|
||||
}
|
||||
|
||||
final ArrayList<SuggestedWords.SuggestedWordInfo> applicationSuggestedWords =
|
||||
SuggestedWords.getFromApplicationSpecifiedCompletions(
|
||||
applicationSpecifiedCompletions);
|
||||
final SuggestedWords suggestedWords = new SuggestedWords(
|
||||
applicationSuggestedWords,
|
||||
false /* typedWordValid */,
|
||||
false /* hasAutoCorrectionCandidate */,
|
||||
false /* allowsToBeAutoCorrected */,
|
||||
false /* isPunctuationSuggestions */,
|
||||
false /* isObsoleteSuggestions */,
|
||||
false /* isPrediction */);
|
||||
// When in fullscreen mode, show completions generated by the application
|
||||
final boolean isAutoCorrection = false;
|
||||
setSuggestions(suggestedWords, isAutoCorrection);
|
||||
setAutoCorrectionIndicator(isAutoCorrection);
|
||||
// TODO: is this the right thing to do? What should we auto-correct to in
|
||||
// this case? This says to keep whatever the user typed.
|
||||
mWordComposer.setAutoCorrection(mWordComposer.getTypedWord());
|
||||
setSuggestionStripShown(true);
|
||||
if (!mCurrentSettings.isApplicationSpecifiedCompletionsOn()) return;
|
||||
mApplicationSpecifiedCompletions = applicationSpecifiedCompletions;
|
||||
if (applicationSpecifiedCompletions == null) {
|
||||
clearSuggestions();
|
||||
return;
|
||||
}
|
||||
|
||||
final ArrayList<SuggestedWords.SuggestedWordInfo> applicationSuggestedWords =
|
||||
SuggestedWords.getFromApplicationSpecifiedCompletions(
|
||||
applicationSpecifiedCompletions);
|
||||
final SuggestedWords suggestedWords = new SuggestedWords(
|
||||
applicationSuggestedWords,
|
||||
false /* typedWordValid */,
|
||||
false /* hasAutoCorrectionCandidate */,
|
||||
false /* allowsToBeAutoCorrected */,
|
||||
false /* isPunctuationSuggestions */,
|
||||
false /* isObsoleteSuggestions */,
|
||||
false /* isPrediction */);
|
||||
// When in fullscreen mode, show completions generated by the application
|
||||
final boolean isAutoCorrection = false;
|
||||
setSuggestions(suggestedWords, isAutoCorrection);
|
||||
setAutoCorrectionIndicator(isAutoCorrection);
|
||||
// TODO: is this the right thing to do? What should we auto-correct to in
|
||||
// this case? This says to keep whatever the user typed.
|
||||
mWordComposer.setAutoCorrection(mWordComposer.getTypedWord());
|
||||
setSuggestionStripShown(true);
|
||||
}
|
||||
|
||||
private void setSuggestionStripShownInternal(boolean shown, boolean needsInputViewShown) {
|
||||
|
@ -1277,8 +1276,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
|||
}
|
||||
break;
|
||||
default:
|
||||
if (primaryCode == Keyboard.CODE_TAB
|
||||
&& mInputAttributes.mEditorAction == EditorInfo.IME_ACTION_NEXT) {
|
||||
if (primaryCode == Keyboard.CODE_TAB && mCurrentSettings.isEditorActionNext()) {
|
||||
performEditorAction(EditorInfo.IME_ACTION_NEXT);
|
||||
break;
|
||||
}
|
||||
|
@ -1628,7 +1626,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
|||
|
||||
public boolean isSuggestionsRequested() {
|
||||
// TODO: move this method to mCurrentSettings
|
||||
return (null != mInputAttributes && mInputAttributes.mIsSettingsSuggestionStripOn)
|
||||
return mCurrentSettings.isSuggestionStripRequestedByTextField()
|
||||
&& (mCurrentSettings.isCorrectionOn()
|
||||
|| mCurrentSettings.isSuggestionStripVisibleInOrientation(mDisplayOrientation));
|
||||
}
|
||||
|
@ -1645,7 +1643,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
|||
return true;
|
||||
if (!mCurrentSettings.isSuggestionStripVisibleInOrientation(mDisplayOrientation))
|
||||
return false;
|
||||
if (null != mInputAttributes && mInputAttributes.mApplicationSpecifiedCompletionOn)
|
||||
if (mCurrentSettings.isApplicationSpecifiedCompletionsOn())
|
||||
return true;
|
||||
return isSuggestionsRequested();
|
||||
}
|
||||
|
@ -1827,7 +1825,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
|||
}
|
||||
}
|
||||
|
||||
if ((null != mInputAttributes && mInputAttributes.mApplicationSpecifiedCompletionOn)
|
||||
if (mCurrentSettings.isApplicationSpecifiedCompletionsOn()
|
||||
&& mApplicationSpecifiedCompletions != null
|
||||
&& index >= 0 && index < mApplicationSpecifiedCompletions.length) {
|
||||
if (mSuggestionsView != null) {
|
||||
|
@ -2224,13 +2222,14 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
|||
final Keyboard keyboard = mKeyboardSwitcher.getKeyboard();
|
||||
final int keyboardMode = keyboard != null ? keyboard.mId.mMode : -1;
|
||||
p.println(" Keyboard mode = " + keyboardMode);
|
||||
p.println(" mIsSuggestionsRequested=" + mInputAttributes.mIsSettingsSuggestionStripOn);
|
||||
p.println(" mIsSuggestionsStripRequestedByTextField = "
|
||||
+ mCurrentSettings.isSuggestionStripRequestedByTextField());
|
||||
p.println(" mCorrectionMode=" + mCurrentSettings.mCorrectionMode);
|
||||
p.println(" isComposingWord=" + mWordComposer.isComposingWord());
|
||||
p.println(" isCorrectionOn=" + mCurrentSettings.isCorrectionOn());
|
||||
p.println(" mSoundOn=" + mCurrentSettings.mSoundOn);
|
||||
p.println(" mVibrateOn=" + mCurrentSettings.mVibrateOn);
|
||||
p.println(" mKeyPreviewPopupOn=" + mCurrentSettings.mKeyPreviewPopupOn);
|
||||
p.println(" mInputAttributes=" + mInputAttributes.toString());
|
||||
p.println(" inputAttributes=" + mCurrentSettings.getInputAttributesDebugString());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -87,6 +87,9 @@ public class SettingsValues {
|
|||
private final float mKeypressSoundVolumeRawValue;
|
||||
private final InputMethodSubtype[] mAdditionalSubtypes;
|
||||
|
||||
// From the input box
|
||||
private final InputAttributes mInputAttributes;
|
||||
|
||||
// Deduced settings
|
||||
public final int mKeypressVibrationDuration;
|
||||
public final float mFxVolume;
|
||||
|
@ -125,6 +128,13 @@ public class SettingsValues {
|
|||
mSymbolsExcludedFromWordSeparators, res);
|
||||
mHintToSaveText = context.getText(R.string.hint_add_to_dictionary);
|
||||
|
||||
// Store the input attributes
|
||||
if (null == inputAttributes) {
|
||||
mInputAttributes = new InputAttributes(null, false /* isFullscreenMode */);
|
||||
} else {
|
||||
mInputAttributes = inputAttributes;
|
||||
}
|
||||
|
||||
// Get the settings preferences
|
||||
mAutoCap = prefs.getBoolean(Settings.PREF_AUTO_CAP, true);
|
||||
mVibrateOn = isVibrateOn(context, prefs, res);
|
||||
|
@ -167,7 +177,7 @@ public class SettingsValues {
|
|||
mVoiceKeyOnMain = mVoiceMode != null && mVoiceMode.equals(voiceModeMain);
|
||||
mAdditionalSubtypes = AdditionalSubtype.createAdditionalSubtypesArray(
|
||||
getPrefAdditionalSubtypes(prefs, res));
|
||||
mCorrectionMode = createCorrectionMode(inputAttributes);
|
||||
mCorrectionMode = createCorrectionMode();
|
||||
mSuggestionVisibility = createSuggestionVisibility(res);
|
||||
}
|
||||
|
||||
|
@ -202,9 +212,9 @@ public class SettingsValues {
|
|||
return wordSeparators;
|
||||
}
|
||||
|
||||
private int createCorrectionMode(final InputAttributes inputAttributes) {
|
||||
private int createCorrectionMode() {
|
||||
final boolean shouldAutoCorrect = mAutoCorrectEnabled
|
||||
&& (null == inputAttributes || !inputAttributes.mInputTypeNoAutoCorrect);
|
||||
&& !mInputAttributes.mInputTypeNoAutoCorrect;
|
||||
if (mBigramSuggestionEnabled && shouldAutoCorrect) return Suggest.CORRECTION_FULL_BIGRAM;
|
||||
return shouldAutoCorrect ? Suggest.CORRECTION_FULL : Suggest.CORRECTION_NONE;
|
||||
}
|
||||
|
@ -226,6 +236,18 @@ public class SettingsValues {
|
|||
res.getBoolean(R.bool.config_default_vibration_enabled));
|
||||
}
|
||||
|
||||
public boolean isApplicationSpecifiedCompletionsOn() {
|
||||
return mInputAttributes.mApplicationSpecifiedCompletionOn;
|
||||
}
|
||||
|
||||
public boolean isEditorActionNext() {
|
||||
return mInputAttributes.mEditorAction == EditorInfo.IME_ACTION_NEXT;
|
||||
}
|
||||
|
||||
public boolean isSuggestionStripRequestedByTextField() {
|
||||
return mInputAttributes.mIsSettingsSuggestionStripOn;
|
||||
}
|
||||
|
||||
public boolean isCorrectionOn() {
|
||||
return mCorrectionMode == Suggest.CORRECTION_FULL
|
||||
|| mCorrectionMode == Suggest.CORRECTION_FULL_BIGRAM;
|
||||
|
@ -413,4 +435,9 @@ public class SettingsValues {
|
|||
final String newStr = Utils.localeAndTimeHashMapToStr(map);
|
||||
prefs.edit().putString(Settings.PREF_LAST_USER_DICTIONARY_WRITE_TIME, newStr).apply();
|
||||
}
|
||||
|
||||
// For debug.
|
||||
public String getInputAttributesDebugString() {
|
||||
return mInputAttributes.toString();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue