Fix odd "more" key behavior on tablet phone number keyboard
Bug: 3176540 Change-Id: Iaa1f3776d5ac236b2655910ede7522ceac36a9a1
This commit is contained in:
parent
a444889403
commit
4b8bbbadac
4 changed files with 15 additions and 6 deletions
|
@ -69,7 +69,7 @@
|
|||
</Row>
|
||||
<Row>
|
||||
<Key
|
||||
latin:codes="@integer/key_switch_alpha_symbol"
|
||||
latin:codes="@integer/key_shift"
|
||||
latin:keyLabel="@string/label_more_key"
|
||||
latin:keyLabelOption="fontNormal|alignLeft|alignBottom"
|
||||
latin:isModifier="true"
|
||||
|
|
|
@ -73,7 +73,7 @@
|
|||
</Row>
|
||||
<Row>
|
||||
<Key
|
||||
latin:codes="@integer/key_switch_alpha_symbol"
|
||||
latin:codes="@integer/key_shift"
|
||||
latin:keyLabel="@string/label_more_key"
|
||||
latin:keyLabelOption="fontNormal|alignLeft|alignBottom"
|
||||
latin:isModifier="true"
|
||||
|
|
|
@ -44,7 +44,7 @@
|
|||
<default>
|
||||
<Key
|
||||
latin:codes="@integer/key_switch_alpha_symbol"
|
||||
latin:keyLabel="@string/label_symbol_key"
|
||||
latin:keyLabel="@string/label_to_symbol_key"
|
||||
latin:keyWidth="20%p"
|
||||
latin:isModifier="true"
|
||||
latin:keyEdgeFlags="left" />
|
||||
|
@ -73,7 +73,7 @@
|
|||
<default>
|
||||
<Key
|
||||
latin:codes="@integer/key_switch_alpha_symbol"
|
||||
latin:keyLabel="@string/label_symbol_key"
|
||||
latin:keyLabel="@string/label_to_symbol_key"
|
||||
latin:keyWidth="15%p"
|
||||
latin:isModifier="true"
|
||||
latin:keyEdgeFlags="left" />
|
||||
|
|
|
@ -142,9 +142,18 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
|
|||
final boolean voiceKeyEnabled = mVoiceKeyEnabled;
|
||||
final boolean hasVoiceKey = voiceKeyEnabled && !mVoiceButtonOnPrimary;
|
||||
final int imeOptions = mImeOptions;
|
||||
mSymbolsId = new KeyboardId(locale, orientation, mode, KBD_SYMBOLS,
|
||||
// Note: This comment is only applied for phone number keyboard layout.
|
||||
// On non-xlarge device, "@integer/key_switch_alpha_symbol" key code is used to switch
|
||||
// between "phone keyboard" and "phone symbols keyboard". But on xlarge device,
|
||||
// "@integer/key_shift" key code is used for that purpose in order to properly display
|
||||
// "more" and "locked more" key labels. To achieve these behavior, we should initialize
|
||||
// mSymbolsId and mSymbolsShiftedId to "phone keyboard" and "phone symbols keyboard"
|
||||
// respectively here for xlarge device's layout switching.
|
||||
mSymbolsId = new KeyboardId(locale, orientation, mode,
|
||||
mode == MODE_PHONE ? KBD_PHONE : KBD_SYMBOLS,
|
||||
colorScheme, hasSettingsKey, voiceKeyEnabled, hasVoiceKey, imeOptions, true);
|
||||
mSymbolsShiftedId = new KeyboardId(locale, orientation, mode, KBD_SYMBOLS_SHIFT,
|
||||
mSymbolsShiftedId = new KeyboardId(locale, orientation, mode,
|
||||
mode == MODE_PHONE ? KBD_PHONE_SYMBOLS : KBD_SYMBOLS_SHIFT,
|
||||
colorScheme, hasSettingsKey, voiceKeyEnabled, hasVoiceKey, imeOptions, true);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue