From 4b8bbbadac9276df7ab587a228a84f93d74c5541 Mon Sep 17 00:00:00 2001 From: "Tadashi G. Takaoka" Date: Tue, 23 Nov 2010 01:36:33 -0800 Subject: [PATCH] Fix odd "more" key behavior on tablet phone number keyboard Bug: 3176540 Change-Id: Iaa1f3776d5ac236b2655910ede7522ceac36a9a1 --- java/res/xml-xlarge/kbd_phone.xml | 2 +- java/res/xml-xlarge/kbd_phone_symbols.xml | 2 +- java/res/xml/kbd_qwerty_black_symbol.xml | 4 ++-- .../android/inputmethod/latin/KeyboardSwitcher.java | 13 +++++++++++-- 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/java/res/xml-xlarge/kbd_phone.xml b/java/res/xml-xlarge/kbd_phone.xml index 57575b602..842c74bf5 100644 --- a/java/res/xml-xlarge/kbd_phone.xml +++ b/java/res/xml-xlarge/kbd_phone.xml @@ -69,7 +69,7 @@ @@ -73,7 +73,7 @@ diff --git a/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java b/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java index f1f8dc27d..790f86138 100644 --- a/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java +++ b/java/src/com/android/inputmethod/latin/KeyboardSwitcher.java @@ -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); }