Hide shortcut key when the shortcut IME is not enabled
Bug: 3398726 Change-Id: I5e1bfc1fec9047c1c4e4f29fbf79f0fdf9356ffb
This commit is contained in:
parent
424f6ec2bc
commit
4503e2ea98
4 changed files with 32 additions and 13 deletions
|
@ -447,7 +447,8 @@ public class KeyboardParser {
|
||||||
textAttr(KeyboardId.modeName(
|
textAttr(KeyboardId.modeName(
|
||||||
a.getInt(R.styleable.Keyboard_Case_mode, -1)), "mode"),
|
a.getInt(R.styleable.Keyboard_Case_mode, -1)), "mode"),
|
||||||
textAttr(KeyboardId.colorSchemeName(
|
textAttr(KeyboardId.colorSchemeName(
|
||||||
a.getInt(R.styleable.KeyboardView_colorScheme, -1)), "colorSchemeName"),
|
viewAttr.getInt(
|
||||||
|
R.styleable.KeyboardView_colorScheme, -1)), "colorSchemeName"),
|
||||||
booleanAttr(a, R.styleable.Keyboard_Case_passwordInput, "passwordInput"),
|
booleanAttr(a, R.styleable.Keyboard_Case_passwordInput, "passwordInput"),
|
||||||
booleanAttr(a, R.styleable.Keyboard_Case_hasSettingsKey, "hasSettingsKey"),
|
booleanAttr(a, R.styleable.Keyboard_Case_hasSettingsKey, "hasSettingsKey"),
|
||||||
booleanAttr(a, R.styleable.Keyboard_Case_voiceKeyEnabled, "voiceKeyEnabled"),
|
booleanAttr(a, R.styleable.Keyboard_Case_voiceKeyEnabled, "voiceKeyEnabled"),
|
||||||
|
|
|
@ -194,7 +194,7 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
|
||||||
// displayed on its spacebar, it might have had arbitrary text fade factor. In such case,
|
// displayed on its spacebar, it might have had arbitrary text fade factor. In such case,
|
||||||
// we should reset the text fade factor. It is also applicable to shortcut key.
|
// we should reset the text fade factor. It is also applicable to shortcut key.
|
||||||
keyboard.setSpacebarTextFadeFactor(0.0f, null);
|
keyboard.setSpacebarTextFadeFactor(0.0f, null);
|
||||||
keyboard.updateShortcutKey(mSubtypeSwitcher.isShortcutAvailable(), null);
|
keyboard.updateShortcutKey(mSubtypeSwitcher.isShortcutImeReady(), null);
|
||||||
return keyboard;
|
return keyboard;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -547,7 +547,8 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
||||||
// Most such things we decide below in initializeInputAttributesAndGetMode, but we need to
|
// Most such things we decide below in initializeInputAttributesAndGetMode, but we need to
|
||||||
// know now whether this is a password text field, because we need to know now whether we
|
// know now whether this is a password text field, because we need to know now whether we
|
||||||
// want to enable the voice button.
|
// want to enable the voice button.
|
||||||
mVoiceConnector.resetVoiceStates(Utils.isPasswordInputType(attribute.inputType)
|
final VoiceIMEConnector voiceIme = mVoiceConnector;
|
||||||
|
voiceIme.resetVoiceStates(Utils.isPasswordInputType(attribute.inputType)
|
||||||
|| Utils.isVisiblePasswordInputType(attribute.inputType));
|
|| Utils.isVisiblePasswordInputType(attribute.inputType));
|
||||||
|
|
||||||
initializeInputAttributes(attribute);
|
initializeInputAttributes(attribute);
|
||||||
|
@ -562,8 +563,8 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
||||||
loadSettings(attribute);
|
loadSettings(attribute);
|
||||||
if (mSubtypeSwitcher.isKeyboardMode()) {
|
if (mSubtypeSwitcher.isKeyboardMode()) {
|
||||||
switcher.loadKeyboard(attribute,
|
switcher.loadKeyboard(attribute,
|
||||||
mVoiceConnector.isVoiceButtonEnabled(),
|
mSubtypeSwitcher.isShortcutImeEnabled() && voiceIme.isVoiceButtonEnabled(),
|
||||||
mVoiceConnector.isVoiceButtonOnPrimary());
|
voiceIme.isVoiceButtonOnPrimary());
|
||||||
switcher.updateShiftState();
|
switcher.updateShiftState();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -583,7 +584,7 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
||||||
checkRecorrectionOnStart();
|
checkRecorrectionOnStart();
|
||||||
inputView.setForeground(true);
|
inputView.setForeground(true);
|
||||||
|
|
||||||
mVoiceConnector.onStartInputView(inputView.getWindowToken());
|
voiceIme.onStartInputView(inputView.getWindowToken());
|
||||||
|
|
||||||
if (TRACE) Debug.startMethodTracing("/data/trace/latinime");
|
if (TRACE) Debug.startMethodTracing("/data/trace/latinime");
|
||||||
}
|
}
|
||||||
|
@ -1930,7 +1931,8 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
|
||||||
}
|
}
|
||||||
// Reload keyboard because the current language has been changed.
|
// Reload keyboard because the current language has been changed.
|
||||||
mKeyboardSwitcher.loadKeyboard(getCurrentInputEditorInfo(),
|
mKeyboardSwitcher.loadKeyboard(getCurrentInputEditorInfo(),
|
||||||
mVoiceConnector.isVoiceButtonEnabled(), mVoiceConnector.isVoiceButtonOnPrimary());
|
mSubtypeSwitcher.isShortcutImeEnabled() && mVoiceConnector.isVoiceButtonEnabled(),
|
||||||
|
mVoiceConnector.isVoiceButtonOnPrimary());
|
||||||
initSuggest();
|
initSuggest();
|
||||||
mKeyboardSwitcher.updateShiftState();
|
mKeyboardSwitcher.updateShiftState();
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,7 +46,7 @@ import java.util.Map;
|
||||||
|
|
||||||
public class SubtypeSwitcher {
|
public class SubtypeSwitcher {
|
||||||
private static boolean DBG = LatinImeLogger.sDBG;
|
private static boolean DBG = LatinImeLogger.sDBG;
|
||||||
private static final String TAG = "SubtypeSwitcher";
|
private static final String TAG = SubtypeSwitcher.class.getSimpleName();
|
||||||
|
|
||||||
private static final char LOCALE_SEPARATER = '_';
|
private static final char LOCALE_SEPARATER = '_';
|
||||||
private static final String KEYBOARD_MODE = "keyboard";
|
private static final String KEYBOARD_MODE = "keyboard";
|
||||||
|
@ -221,7 +221,7 @@ public class SubtypeSwitcher {
|
||||||
newMode = newSubtype.getMode();
|
newMode = newSubtype.getMode();
|
||||||
}
|
}
|
||||||
if (DBG) {
|
if (DBG) {
|
||||||
Log.w(TAG, "Update subtype to:" + newLocale + "," + newSubtype.getMode()
|
Log.w(TAG, "Update subtype to:" + newLocale + "," + newMode
|
||||||
+ ", from: " + mInputLocaleStr + ", " + oldMode);
|
+ ", from: " + mInputLocaleStr + ", " + oldMode);
|
||||||
}
|
}
|
||||||
boolean languageChanged = false;
|
boolean languageChanged = false;
|
||||||
|
@ -355,11 +355,27 @@ public class SubtypeSwitcher {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isShortcutAvailable() {
|
public boolean isShortcutImeEnabled() {
|
||||||
if (mShortcutInputMethodInfo == null)
|
if (mShortcutInputMethodInfo == null)
|
||||||
return false;
|
return false;
|
||||||
if (mShortcutSubtype != null && contains(mShortcutSubtype.getExtraValue().split(","),
|
if (mShortcutSubtype == null)
|
||||||
SUBTYPE_EXTRAVALUE_REQUIRE_NETWORK_CONNECTIVITY)) {
|
return true;
|
||||||
|
final boolean allowsImplicitlySelectedSubtypes = true;
|
||||||
|
for (final InputMethodSubtype enabledSubtype : mImm.getEnabledInputMethodSubtypeList(
|
||||||
|
mShortcutInputMethodInfo, allowsImplicitlySelectedSubtypes)) {
|
||||||
|
if (enabledSubtype.equals(mShortcutSubtype))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isShortcutImeReady() {
|
||||||
|
if (mShortcutInputMethodInfo == null)
|
||||||
|
return false;
|
||||||
|
if (mShortcutSubtype == null)
|
||||||
|
return true;
|
||||||
|
if (contains(mShortcutSubtype.getExtraValue().split(","),
|
||||||
|
SUBTYPE_EXTRAVALUE_REQUIRE_NETWORK_CONNECTIVITY)) {
|
||||||
return mIsNetworkConnected;
|
return mIsNetworkConnected;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
@ -373,7 +389,7 @@ public class SubtypeSwitcher {
|
||||||
final KeyboardSwitcher switcher = KeyboardSwitcher.getInstance();
|
final KeyboardSwitcher switcher = KeyboardSwitcher.getInstance();
|
||||||
final LatinKeyboard keyboard = switcher.getLatinKeyboard();
|
final LatinKeyboard keyboard = switcher.getLatinKeyboard();
|
||||||
if (keyboard != null) {
|
if (keyboard != null) {
|
||||||
keyboard.updateShortcutKey(isShortcutAvailable(), switcher.getInputView());
|
keyboard.updateShortcutKey(isShortcutImeReady(), switcher.getInputView());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue