Fix odd "more" key behavior on tablet phone number keyboard

Bug: 3176540
Change-Id: Iaa1f3776d5ac236b2655910ede7522ceac36a9a1
This commit is contained in:
Tadashi G. Takaoka 2010-11-23 01:36:33 -08:00
parent a444889403
commit 4b8bbbadac
4 changed files with 15 additions and 6 deletions

View file

@ -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"

View file

@ -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"

View file

@ -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" />

View file

@ -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);
}