diff options
| author | Tadashi G. Takaoka <takaoka@google.com> | 2011-08-29 17:02:52 +0900 |
|---|---|---|
| committer | Tadashi G. Takaoka <takaoka@google.com> | 2011-08-29 17:07:48 +0900 |
| commit | f44a01b40852dde2363a061cdc7df2ef4cb59aad (patch) | |
| tree | 5655e6205e83e436cbc5189d7285ac8425a16a1f /java/src/com/android/inputmethod/keyboard/PopupMiniKeyboardView.java | |
| parent | 1f891474931c89bd575df70cbc06df45f8e5cfb8 (diff) | |
Make PopupPanel decoupled with LatinKeyboardView and Keyboard
Bug: 5023981
Change-Id: Ib4fd55d52718aa244178ca2313f5e8487378324f
Diffstat (limited to 'java/src/com/android/inputmethod/keyboard/PopupMiniKeyboardView.java')
| -rw-r--r-- | java/src/com/android/inputmethod/keyboard/PopupMiniKeyboardView.java | 59 |
1 files changed, 29 insertions, 30 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/PopupMiniKeyboardView.java b/java/src/com/android/inputmethod/keyboard/PopupMiniKeyboardView.java index c3b5825f5..8b8b27b39 100644 --- a/java/src/com/android/inputmethod/keyboard/PopupMiniKeyboardView.java +++ b/java/src/com/android/inputmethod/keyboard/PopupMiniKeyboardView.java @@ -36,12 +36,12 @@ import java.util.List; */ public class PopupMiniKeyboardView extends KeyboardView implements PopupPanel { private final int[] mCoordinates = new int[2]; - private final boolean mConfigShowMiniKeyboardAtTouchedPoint; private final KeyDetector mKeyDetector; private final int mVerticalCorrection; - private LatinKeyboardView mParentKeyboardView; + private Controller mController; + private KeyboardActionListener mListener; private int mOriginX; private int mOriginY; @@ -101,30 +101,29 @@ public class PopupMiniKeyboardView extends KeyboardView implements PopupPanel { public void cancelKeyTimers() {} }; - private final KeyboardActionListener mListner = new KeyboardActionListener() { + private final KeyboardActionListener mMiniKeyboardListener = new KeyboardActionListener() { @Override public void onCodeInput(int primaryCode, int[] keyCodes, int x, int y) { - mParentKeyboardView.getKeyboardActionListener() - .onCodeInput(primaryCode, keyCodes, x, y); + mListener.onCodeInput(primaryCode, keyCodes, x, y); } @Override public void onTextInput(CharSequence text) { - mParentKeyboardView.getKeyboardActionListener().onTextInput(text); + mListener.onTextInput(text); } @Override public void onCancelInput() { - mParentKeyboardView.getKeyboardActionListener().onCancelInput(); + mListener.onCancelInput(); } @Override public void onPress(int primaryCode, boolean withSliding) { - mParentKeyboardView.getKeyboardActionListener().onPress(primaryCode, withSliding); + mListener.onPress(primaryCode, withSliding); } @Override public void onRelease(int primaryCode, boolean withSliding) { - mParentKeyboardView.getKeyboardActionListener().onRelease(primaryCode, withSliding); + mListener.onRelease(primaryCode, withSliding); } @Override public boolean onCustomRequest(int requestCode) { return false; } @@ -144,8 +143,6 @@ public class PopupMiniKeyboardView extends KeyboardView implements PopupPanel { a.recycle(); final Resources res = context.getResources(); - mConfigShowMiniKeyboardAtTouchedPoint = res.getBoolean( - R.bool.config_show_mini_keyboard_at_touched_point); // Override default ProximityKeyDetector. mKeyDetector = new MiniKeyboardKeyDetector(res.getDimension( R.dimen.mini_keyboard_slide_allowance)); @@ -179,7 +176,7 @@ public class PopupMiniKeyboardView extends KeyboardView implements PopupPanel { @Override public KeyboardActionListener getKeyboardActionListener() { - return mListner; + return mMiniKeyboardListener; } @Override @@ -200,34 +197,36 @@ public class PopupMiniKeyboardView extends KeyboardView implements PopupPanel { } @Override - public void showPopupPanel(LatinKeyboardView parentKeyboardView, Key parentKey, - PointerTracker tracker, PopupWindow window) { - mParentKeyboardView = parentKeyboardView; + public void setShifted(boolean shifted) { + final MiniKeyboard miniKeyboard = (MiniKeyboard)getKeyboard(); + if (miniKeyboard.setShifted(shifted)) { + invalidateAllKeys(); + } + } + + @Override + public void showPopupPanel(View parentView, Controller controller, int pointX, int pointY, + PopupWindow window, KeyboardActionListener listener) { + mController = controller; + mListener = listener; final View container = (View)getParent(); final MiniKeyboard miniKeyboard = (MiniKeyboard)getKeyboard(); - final Keyboard parentKeyboard = parentKeyboardView.getKeyboard(); - parentKeyboardView.getLocationInWindow(mCoordinates); - final int pointX = (mConfigShowMiniKeyboardAtTouchedPoint) ? tracker.getLastX() - : parentKey.mX + parentKey.mWidth / 2; - final int pointY = parentKey.mY; + parentView.getLocationInWindow(mCoordinates); final int miniKeyboardLeft = pointX - miniKeyboard.getDefaultCoordX() - + parentKeyboardView.getPaddingLeft(); + + parentView.getPaddingLeft(); final int x = wrapUp(Math.max(0, Math.min(miniKeyboardLeft, - parentKeyboardView.getWidth() - miniKeyboard.mOccupiedWidth)) + parentView.getWidth() - miniKeyboard.mOccupiedWidth)) - container.getPaddingLeft() + mCoordinates[0], - container.getMeasuredWidth(), 0, parentKeyboardView.getWidth()); - final int y = pointY - parentKeyboard.mVerticalGap + container.getMeasuredWidth(), 0, parentView.getWidth()); + final int y = pointY - (container.getMeasuredHeight() - container.getPaddingBottom()) - + parentKeyboardView.getPaddingTop() + mCoordinates[1]; + + parentView.getPaddingTop() + mCoordinates[1]; - if (miniKeyboard.setShifted(parentKeyboard.isShiftedOrShiftLocked())) { - invalidateAllKeys(); - } window.setContentView(container); window.setWidth(container.getMeasuredWidth()); window.setHeight(container.getMeasuredHeight()); - window.showAtLocation(parentKeyboardView, Gravity.NO_GRAVITY, x, y); + window.showAtLocation(parentView, Gravity.NO_GRAVITY, x, y); mOriginX = x + container.getPaddingLeft() - mCoordinates[0]; mOriginY = y + container.getPaddingTop() - mCoordinates[1]; @@ -243,7 +242,7 @@ public class PopupMiniKeyboardView extends KeyboardView implements PopupPanel { @Override public boolean dismissPopupPanel() { - return mParentKeyboardView.dismissPopupPanel(); + return mController.dismissPopupPanel(); } @Override |
