Loading java/res/xml/kbd_popup_narrow_template.xml 0 → 100644 +27 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <!-- /* ** ** Copyright 2010, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. ** You may obtain a copy of the License at ** ** http://www.apache.org/licenses/LICENSE-2.0 ** ** Unless required by applicable law or agreed to in writing, software ** distributed under the License is distributed on an "AS IS" BASIS, ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ** See the License for the specific language governing permissions and ** limitations under the License. */ --> <Keyboard xmlns:android="http://schemas.android.com/apk/res/android" android:keyWidth="9.45%p" android:horizontalGap="0px" android:verticalGap="0px" android:keyHeight="@dimen/key_height" > </Keyboard> java/res/xml/kbd_qwerty.xml +1 −1 Original line number Diff line number Diff line Loading @@ -61,7 +61,7 @@ android:popupCharacters="@string/alternates_for_i" /> <Key android:keyLabel="o" android:popupKeyboard="@xml/kbd_popup_template" android:popupKeyboard="@xml/kbd_popup_narrow_template" android:popupCharacters="@string/alternates_for_o" /> <Key android:keyLabel="p" Loading java/res/xml/kbd_qwerty_black.xml +1 −1 Original line number Diff line number Diff line Loading @@ -61,7 +61,7 @@ android:popupCharacters="@string/alternates_for_i" /> <Key android:keyLabel="o" android:popupKeyboard="@xml/kbd_popup_template" android:popupKeyboard="@xml/kbd_popup_narrow_template" android:popupCharacters="@string/alternates_for_o" /> <Key android:keyLabel="p" Loading java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java +16 −6 Original line number Diff line number Diff line Loading @@ -1087,8 +1087,7 @@ public class LatinKeyboardBaseView extends View implements PointerTracker.UIProx return container; } private static boolean isOneRowKeyboard(Keyboard keyboard) { final List<Key> keys = keyboard.getKeys(); private static boolean isOneRowKeys(List<Key> keys) { if (keys.size() == 0) return false; final int edgeFlags = keys.get(0).edgeFlags; // HACK: The first key of mini keyboard which was inflated from xml and has multiple rows, Loading Loading @@ -1125,24 +1124,35 @@ public class LatinKeyboardBaseView extends View implements PointerTracker.UIProx getLocationInWindow(mWindowOffset); } // Get width of a key in the mini popup keyboard = "miniKeyWidth". // On the other hand, "popupKey.width" is width of the pressed key on the main keyboard. // We adjust the position of mini popup keyboard with the edge key in it: // a) When we have the leftmost key in popup keyboard directly above the pressed key // Right edges of both keys should be aligned for consistent default selection // b) When we have the rightmost key in popup keyboard directly above the pressed key // Left edges of both keys should be aligned for consistent default selection final List<Key> miniKeys = mMiniKeyboard.getKeyboard().getKeys(); final int miniKeyWidth = miniKeys.size() > 0 ? miniKeys.get(0).width : 0; // HACK: Have the leftmost number in the popup characters right above the key boolean isNumberAtLeftmost = hasMultiplePopupChars(popupKey) && isNumberAtLeftmostPopupChar(popupKey); int popupX = popupKey.x + mWindowOffset[0]; int popupY = popupKey.y + mWindowOffset[1]; popupX += getPaddingLeft(); if (isNumberAtLeftmost) { popupX += popupKey.width - miniKeyWidth; // adjustment for a) described above popupX -= container.getPaddingLeft(); } else { popupX += popupKey.width + getPaddingLeft(); popupX += miniKeyWidth; // adjustment for b) described above popupX -= container.getMeasuredWidth(); popupX += container.getPaddingRight(); } int popupY = popupKey.y + mWindowOffset[1]; popupY += getPaddingTop(); popupY -= container.getMeasuredHeight(); popupY += container.getPaddingBottom(); final int x = popupX; final int y = mShowPreview && isOneRowKeyboard(mMiniKeyboard.getKeyboard()) ? mPopupPreviewDisplayedY : popupY; final int y = mShowPreview && isOneRowKeys(miniKeys) ? mPopupPreviewDisplayedY : popupY; int adjustedX = x; if (x < 0) { Loading Loading
java/res/xml/kbd_popup_narrow_template.xml 0 → 100644 +27 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <!-- /* ** ** Copyright 2010, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. ** You may obtain a copy of the License at ** ** http://www.apache.org/licenses/LICENSE-2.0 ** ** Unless required by applicable law or agreed to in writing, software ** distributed under the License is distributed on an "AS IS" BASIS, ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ** See the License for the specific language governing permissions and ** limitations under the License. */ --> <Keyboard xmlns:android="http://schemas.android.com/apk/res/android" android:keyWidth="9.45%p" android:horizontalGap="0px" android:verticalGap="0px" android:keyHeight="@dimen/key_height" > </Keyboard>
java/res/xml/kbd_qwerty.xml +1 −1 Original line number Diff line number Diff line Loading @@ -61,7 +61,7 @@ android:popupCharacters="@string/alternates_for_i" /> <Key android:keyLabel="o" android:popupKeyboard="@xml/kbd_popup_template" android:popupKeyboard="@xml/kbd_popup_narrow_template" android:popupCharacters="@string/alternates_for_o" /> <Key android:keyLabel="p" Loading
java/res/xml/kbd_qwerty_black.xml +1 −1 Original line number Diff line number Diff line Loading @@ -61,7 +61,7 @@ android:popupCharacters="@string/alternates_for_i" /> <Key android:keyLabel="o" android:popupKeyboard="@xml/kbd_popup_template" android:popupKeyboard="@xml/kbd_popup_narrow_template" android:popupCharacters="@string/alternates_for_o" /> <Key android:keyLabel="p" Loading
java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java +16 −6 Original line number Diff line number Diff line Loading @@ -1087,8 +1087,7 @@ public class LatinKeyboardBaseView extends View implements PointerTracker.UIProx return container; } private static boolean isOneRowKeyboard(Keyboard keyboard) { final List<Key> keys = keyboard.getKeys(); private static boolean isOneRowKeys(List<Key> keys) { if (keys.size() == 0) return false; final int edgeFlags = keys.get(0).edgeFlags; // HACK: The first key of mini keyboard which was inflated from xml and has multiple rows, Loading Loading @@ -1125,24 +1124,35 @@ public class LatinKeyboardBaseView extends View implements PointerTracker.UIProx getLocationInWindow(mWindowOffset); } // Get width of a key in the mini popup keyboard = "miniKeyWidth". // On the other hand, "popupKey.width" is width of the pressed key on the main keyboard. // We adjust the position of mini popup keyboard with the edge key in it: // a) When we have the leftmost key in popup keyboard directly above the pressed key // Right edges of both keys should be aligned for consistent default selection // b) When we have the rightmost key in popup keyboard directly above the pressed key // Left edges of both keys should be aligned for consistent default selection final List<Key> miniKeys = mMiniKeyboard.getKeyboard().getKeys(); final int miniKeyWidth = miniKeys.size() > 0 ? miniKeys.get(0).width : 0; // HACK: Have the leftmost number in the popup characters right above the key boolean isNumberAtLeftmost = hasMultiplePopupChars(popupKey) && isNumberAtLeftmostPopupChar(popupKey); int popupX = popupKey.x + mWindowOffset[0]; int popupY = popupKey.y + mWindowOffset[1]; popupX += getPaddingLeft(); if (isNumberAtLeftmost) { popupX += popupKey.width - miniKeyWidth; // adjustment for a) described above popupX -= container.getPaddingLeft(); } else { popupX += popupKey.width + getPaddingLeft(); popupX += miniKeyWidth; // adjustment for b) described above popupX -= container.getMeasuredWidth(); popupX += container.getPaddingRight(); } int popupY = popupKey.y + mWindowOffset[1]; popupY += getPaddingTop(); popupY -= container.getMeasuredHeight(); popupY += container.getPaddingBottom(); final int x = popupX; final int y = mShowPreview && isOneRowKeyboard(mMiniKeyboard.getKeyboard()) ? mPopupPreviewDisplayedY : popupY; final int y = mShowPreview && isOneRowKeys(miniKeys) ? mPopupPreviewDisplayedY : popupY; int adjustedX = x; if (x < 0) { Loading