Loading java/res/xml/kbd_extension.xmldeleted 100755 → 0 +0 −61 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <!-- /* ** ** Copyright 2008, 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="10%p" android:horizontalGap="0px" android:verticalGap="0px" android:keyHeight="@dimen/key_height" > <Row android:rowEdgeFlags="top"> <Key android:keyLabel="!" android:keyEdgeFlags="left"/> <Key android:keyLabel="\@"/> <Key android:keyLabel="\#"/> <Key android:keyLabel="&"/> <Key android:keyLabel="-"/> <Key android:keyLabel="\'"/> <Key android:keyLabel=":"/> <Key android:keyLabel="""/> <Key android:keyLabel="/"/> <Key android:keyLabel="\?" android:keyEdgeFlags="right" /> </Row> <Row android:rowEdgeFlags="bottom"> <Key android:codes="49" android:keyLabel="1" android:keyEdgeFlags="left" /> <Key android:codes="50" android:keyLabel="2" /> <Key android:codes="51" android:keyLabel="3" /> <Key android:codes="52" android:keyLabel="4" /> <Key android:codes="53" android:keyLabel="5" /> <Key android:codes="54" android:keyLabel="6"/> <Key android:codes="55" android:keyLabel="7" /> <Key android:codes="56" android:keyLabel="8"/> <Key android:codes="57" android:keyLabel="9"/> <Key android:codes="48" android:keyLabel="0" android:keyEdgeFlags="right"/> </Row> </Keyboard> java/src/com/android/inputmethod/latin/KeyboardSwitcher.java +0 −9 Original line number Diff line number Diff line Loading @@ -261,14 +261,6 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha || id.mXml == R.xml.kbd_symbols_black), mHasVoice); keyboard.setLanguageSwitcher(mLanguageSwitcher); keyboard.setBlackFlag(isBlackSym()); if (id.mKeyboardMode == KEYBOARDMODE_NORMAL || id.mKeyboardMode == KEYBOARDMODE_URL || id.mKeyboardMode == KEYBOARDMODE_IM || id.mKeyboardMode == KEYBOARDMODE_EMAIL || id.mKeyboardMode == KEYBOARDMODE_WEB ) { keyboard.setExtension(R.xml.kbd_extension); } if (id.mEnableShiftLock) { keyboard.enableShiftLock(); Loading Loading @@ -439,7 +431,6 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha mLayoutId + "," + newLayout, e); } } mInputView.setExtentionLayoutResId(THEMES[newLayout]); mInputView.setOnKeyboardActionListener(mInputMethodService); mLayoutId = newLayout; } Loading java/src/com/android/inputmethod/latin/LatinKeyboard.java +0 −9 Original line number Diff line number Diff line Loading @@ -81,7 +81,6 @@ public class LatinKeyboard extends Keyboard { private int mPrefLetterY; private int mPrefDistance; private int mExtensionResId; // TODO: generalize for any keyboardId private boolean mIsBlackSym; Loading Loading @@ -278,14 +277,6 @@ public class LatinKeyboard extends Keyboard { return mIsAlphaKeyboard; } public void setExtension(int resId) { mExtensionResId = resId; } public int getExtension() { return mExtensionResId; } public void setBlackFlag(boolean f) { mIsBlackSym = f; if (f) { Loading java/src/com/android/inputmethod/latin/LatinKeyboardView.java +9 −175 Original line number Diff line number Diff line Loading @@ -16,8 +16,6 @@ package com.android.inputmethod.latin; import java.util.List; import android.content.Context; import android.graphics.Canvas; import android.graphics.Paint; Loading @@ -27,9 +25,9 @@ import android.os.Handler; import android.os.Message; import android.os.SystemClock; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.MotionEvent; import android.widget.PopupWindow; import java.util.List; public class LatinKeyboardView extends LatinKeyboardBaseView { Loading @@ -41,21 +39,11 @@ public class LatinKeyboardView extends LatinKeyboardBaseView { private Keyboard mPhoneKeyboard; /** Whether the extension of this keyboard is visible */ private boolean mExtensionVisible; /** The view that is shown as an extension of this keyboard view */ private LatinKeyboardView mExtension; /** The popup window that contains the extension of this keyboard */ private PopupWindow mExtensionPopup; /** Whether this view is an extension of another keyboard */ private boolean mIsExtensionType; private boolean mFirstEvent; /** Whether we've started dropping move events because we found a big jump */ private boolean mDroppingEvents; /** * Whether multi-touch disambiguation needs to be disabled for any reason. There are 2 reasons * for this to happen - (1) if a real multi-touch event has occured and (2) we've opened an * extension keyboard. * Whether multi-touch disambiguation needs to be disabled if a real multi-touch event has * occured */ private boolean mDisableDisambiguation; /** The distance threshold at which we start treating the touch session as a multi-touch */ Loading @@ -63,8 +51,6 @@ public class LatinKeyboardView extends LatinKeyboardBaseView { /** The y coordinate of the last row */ private int mLastRowY; private int mExtensionLayoutResId = 0; public LatinKeyboardView(Context context, AttributeSet attrs) { super(context, attrs); } Loading @@ -77,10 +63,6 @@ public class LatinKeyboardView extends LatinKeyboardBaseView { mPhoneKeyboard = phoneKeyboard; } public void setExtentionLayoutResId (int id) { mExtensionLayoutResId = id; } @Override public void setKeyboard(Keyboard k) { super.setKeyboard(k); Loading Loading @@ -214,11 +196,10 @@ public class LatinKeyboardView extends LatinKeyboardBaseView { invalidate(); } // If an extension keyboard is visible or this is an extension keyboard, don't look // for sudden jumps. Otherwise, if there was a sudden jump, return without processing the // actual motion event. if (!mExtensionVisible && !mIsExtensionType && handleSuddenJump(me)) return true; // If there was a sudden jump, return without processing the actual motion event. if (handleSuddenJump(me)) return true; // Reset any bounding box controls in the keyboard if (me.getAction() == MotionEvent.ACTION_DOWN) { keyboard.keyReleased(); Loading @@ -236,154 +217,7 @@ public class LatinKeyboardView extends LatinKeyboardBaseView { } } // If we don't have an extension keyboard, don't go any further. if (keyboard.getExtension() == 0) { return super.onTouchEvent(me); } // If the motion event is above the keyboard and it's not an UP event coming // even before the first MOVE event into the extension area if (me.getY() < 0 && (mExtensionVisible || me.getAction() != MotionEvent.ACTION_UP)) { if (mExtensionVisible) { int action = me.getAction(); if (mFirstEvent) action = MotionEvent.ACTION_DOWN; mFirstEvent = false; MotionEvent translated = MotionEvent.obtain(me.getEventTime(), me.getEventTime(), action, me.getX(), me.getY() + mExtension.getHeight(), me.getMetaState()); boolean result = mExtension.onTouchEvent(translated); translated.recycle(); if (me.getAction() == MotionEvent.ACTION_UP || me.getAction() == MotionEvent.ACTION_CANCEL) { closeExtension(); } return result; } else { if (openExtension()) { MotionEvent cancel = MotionEvent.obtain(me.getDownTime(), me.getEventTime(), MotionEvent.ACTION_CANCEL, me.getX() - 100, me.getY() - 100, 0); super.onTouchEvent(cancel); cancel.recycle(); if (mExtension.getHeight() > 0) { MotionEvent translated = MotionEvent.obtain(me.getEventTime(), me.getEventTime(), MotionEvent.ACTION_DOWN, me.getX(), me.getY() + mExtension.getHeight(), me.getMetaState()); mExtension.onTouchEvent(translated); translated.recycle(); } else { mFirstEvent = true; } // Stop processing multi-touch errors mDisableDisambiguation = true; } return true; } } else if (mExtensionVisible) { closeExtension(); // Send a down event into the main keyboard first MotionEvent down = MotionEvent.obtain(me.getEventTime(), me.getEventTime(), MotionEvent.ACTION_DOWN, me.getX(), me.getY(), me.getMetaState()); super.onTouchEvent(down); down.recycle(); // Send the actual event return super.onTouchEvent(me); } else { return super.onTouchEvent(me); } } private void setExtensionType(boolean isExtensionType) { mIsExtensionType = isExtensionType; } private boolean openExtension() { // If the current keyboard is not visible, don't show the popup if (!isShown()) { return false; } if (((LatinKeyboard) getKeyboard()).getExtension() == 0) return false; makePopupWindow(); mExtensionVisible = true; return true; } private void makePopupWindow() { if (mExtensionPopup == null) { int[] windowLocation = new int[2]; mExtensionPopup = new PopupWindow(getContext()); mExtensionPopup.setBackgroundDrawable(null); LayoutInflater li = (LayoutInflater) getContext().getSystemService( Context.LAYOUT_INFLATER_SERVICE); mExtension = (LatinKeyboardView) li.inflate(mExtensionLayoutResId == 0 ? R.layout.input_trans : mExtensionLayoutResId, null); mExtension.setExtensionType(true); mExtension.setOnKeyboardActionListener( new ExtensionKeyboardListener(getOnKeyboardActionListener())); mExtension.setPopupParent(this); mExtension.setPopupOffset(0, -windowLocation[1]); Keyboard keyboard; mExtension.setKeyboard(keyboard = new LatinKeyboard(getContext(), ((LatinKeyboard) getKeyboard()).getExtension())); mExtensionPopup.setContentView(mExtension); mExtensionPopup.setWidth(getWidth()); mExtensionPopup.setHeight(keyboard.getHeight()); mExtensionPopup.setAnimationStyle(-1); getLocationInWindow(windowLocation); // TODO: Fix the "- 30". mExtension.setPopupOffset(0, -windowLocation[1] - 30); mExtensionPopup.showAtLocation(this, 0, 0, -keyboard.getHeight() + windowLocation[1]); } else { mExtension.setVisibility(VISIBLE); } } @Override public void closing() { super.closing(); if (mExtensionPopup != null && mExtensionPopup.isShowing()) { mExtensionPopup.dismiss(); mExtensionPopup = null; } } private void closeExtension() { mExtension.closing(); mExtension.setVisibility(INVISIBLE); mExtensionVisible = false; } private static class ExtensionKeyboardListener implements OnKeyboardActionListener { private OnKeyboardActionListener mTarget; ExtensionKeyboardListener(OnKeyboardActionListener target) { mTarget = target; } public void onKey(int primaryCode, int[] keyCodes, int x, int y) { mTarget.onKey(primaryCode, keyCodes, x, y); } public void onPress(int primaryCode) { mTarget.onPress(primaryCode); } public void onRelease(int primaryCode) { mTarget.onRelease(primaryCode); } public void onText(CharSequence text) { mTarget.onText(text); } public void swipeDown() { // Don't pass through } public void swipeLeft() { // Don't pass through } public void swipeRight() { // Don't pass through } public void swipeUp() { // Don't pass through } } /**************************** INSTRUMENTATION *******************************/ Loading Loading
java/res/xml/kbd_extension.xmldeleted 100755 → 0 +0 −61 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <!-- /* ** ** Copyright 2008, 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="10%p" android:horizontalGap="0px" android:verticalGap="0px" android:keyHeight="@dimen/key_height" > <Row android:rowEdgeFlags="top"> <Key android:keyLabel="!" android:keyEdgeFlags="left"/> <Key android:keyLabel="\@"/> <Key android:keyLabel="\#"/> <Key android:keyLabel="&"/> <Key android:keyLabel="-"/> <Key android:keyLabel="\'"/> <Key android:keyLabel=":"/> <Key android:keyLabel="""/> <Key android:keyLabel="/"/> <Key android:keyLabel="\?" android:keyEdgeFlags="right" /> </Row> <Row android:rowEdgeFlags="bottom"> <Key android:codes="49" android:keyLabel="1" android:keyEdgeFlags="left" /> <Key android:codes="50" android:keyLabel="2" /> <Key android:codes="51" android:keyLabel="3" /> <Key android:codes="52" android:keyLabel="4" /> <Key android:codes="53" android:keyLabel="5" /> <Key android:codes="54" android:keyLabel="6"/> <Key android:codes="55" android:keyLabel="7" /> <Key android:codes="56" android:keyLabel="8"/> <Key android:codes="57" android:keyLabel="9"/> <Key android:codes="48" android:keyLabel="0" android:keyEdgeFlags="right"/> </Row> </Keyboard>
java/src/com/android/inputmethod/latin/KeyboardSwitcher.java +0 −9 Original line number Diff line number Diff line Loading @@ -261,14 +261,6 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha || id.mXml == R.xml.kbd_symbols_black), mHasVoice); keyboard.setLanguageSwitcher(mLanguageSwitcher); keyboard.setBlackFlag(isBlackSym()); if (id.mKeyboardMode == KEYBOARDMODE_NORMAL || id.mKeyboardMode == KEYBOARDMODE_URL || id.mKeyboardMode == KEYBOARDMODE_IM || id.mKeyboardMode == KEYBOARDMODE_EMAIL || id.mKeyboardMode == KEYBOARDMODE_WEB ) { keyboard.setExtension(R.xml.kbd_extension); } if (id.mEnableShiftLock) { keyboard.enableShiftLock(); Loading Loading @@ -439,7 +431,6 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha mLayoutId + "," + newLayout, e); } } mInputView.setExtentionLayoutResId(THEMES[newLayout]); mInputView.setOnKeyboardActionListener(mInputMethodService); mLayoutId = newLayout; } Loading
java/src/com/android/inputmethod/latin/LatinKeyboard.java +0 −9 Original line number Diff line number Diff line Loading @@ -81,7 +81,6 @@ public class LatinKeyboard extends Keyboard { private int mPrefLetterY; private int mPrefDistance; private int mExtensionResId; // TODO: generalize for any keyboardId private boolean mIsBlackSym; Loading Loading @@ -278,14 +277,6 @@ public class LatinKeyboard extends Keyboard { return mIsAlphaKeyboard; } public void setExtension(int resId) { mExtensionResId = resId; } public int getExtension() { return mExtensionResId; } public void setBlackFlag(boolean f) { mIsBlackSym = f; if (f) { Loading
java/src/com/android/inputmethod/latin/LatinKeyboardView.java +9 −175 Original line number Diff line number Diff line Loading @@ -16,8 +16,6 @@ package com.android.inputmethod.latin; import java.util.List; import android.content.Context; import android.graphics.Canvas; import android.graphics.Paint; Loading @@ -27,9 +25,9 @@ import android.os.Handler; import android.os.Message; import android.os.SystemClock; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.MotionEvent; import android.widget.PopupWindow; import java.util.List; public class LatinKeyboardView extends LatinKeyboardBaseView { Loading @@ -41,21 +39,11 @@ public class LatinKeyboardView extends LatinKeyboardBaseView { private Keyboard mPhoneKeyboard; /** Whether the extension of this keyboard is visible */ private boolean mExtensionVisible; /** The view that is shown as an extension of this keyboard view */ private LatinKeyboardView mExtension; /** The popup window that contains the extension of this keyboard */ private PopupWindow mExtensionPopup; /** Whether this view is an extension of another keyboard */ private boolean mIsExtensionType; private boolean mFirstEvent; /** Whether we've started dropping move events because we found a big jump */ private boolean mDroppingEvents; /** * Whether multi-touch disambiguation needs to be disabled for any reason. There are 2 reasons * for this to happen - (1) if a real multi-touch event has occured and (2) we've opened an * extension keyboard. * Whether multi-touch disambiguation needs to be disabled if a real multi-touch event has * occured */ private boolean mDisableDisambiguation; /** The distance threshold at which we start treating the touch session as a multi-touch */ Loading @@ -63,8 +51,6 @@ public class LatinKeyboardView extends LatinKeyboardBaseView { /** The y coordinate of the last row */ private int mLastRowY; private int mExtensionLayoutResId = 0; public LatinKeyboardView(Context context, AttributeSet attrs) { super(context, attrs); } Loading @@ -77,10 +63,6 @@ public class LatinKeyboardView extends LatinKeyboardBaseView { mPhoneKeyboard = phoneKeyboard; } public void setExtentionLayoutResId (int id) { mExtensionLayoutResId = id; } @Override public void setKeyboard(Keyboard k) { super.setKeyboard(k); Loading Loading @@ -214,11 +196,10 @@ public class LatinKeyboardView extends LatinKeyboardBaseView { invalidate(); } // If an extension keyboard is visible or this is an extension keyboard, don't look // for sudden jumps. Otherwise, if there was a sudden jump, return without processing the // actual motion event. if (!mExtensionVisible && !mIsExtensionType && handleSuddenJump(me)) return true; // If there was a sudden jump, return without processing the actual motion event. if (handleSuddenJump(me)) return true; // Reset any bounding box controls in the keyboard if (me.getAction() == MotionEvent.ACTION_DOWN) { keyboard.keyReleased(); Loading @@ -236,154 +217,7 @@ public class LatinKeyboardView extends LatinKeyboardBaseView { } } // If we don't have an extension keyboard, don't go any further. if (keyboard.getExtension() == 0) { return super.onTouchEvent(me); } // If the motion event is above the keyboard and it's not an UP event coming // even before the first MOVE event into the extension area if (me.getY() < 0 && (mExtensionVisible || me.getAction() != MotionEvent.ACTION_UP)) { if (mExtensionVisible) { int action = me.getAction(); if (mFirstEvent) action = MotionEvent.ACTION_DOWN; mFirstEvent = false; MotionEvent translated = MotionEvent.obtain(me.getEventTime(), me.getEventTime(), action, me.getX(), me.getY() + mExtension.getHeight(), me.getMetaState()); boolean result = mExtension.onTouchEvent(translated); translated.recycle(); if (me.getAction() == MotionEvent.ACTION_UP || me.getAction() == MotionEvent.ACTION_CANCEL) { closeExtension(); } return result; } else { if (openExtension()) { MotionEvent cancel = MotionEvent.obtain(me.getDownTime(), me.getEventTime(), MotionEvent.ACTION_CANCEL, me.getX() - 100, me.getY() - 100, 0); super.onTouchEvent(cancel); cancel.recycle(); if (mExtension.getHeight() > 0) { MotionEvent translated = MotionEvent.obtain(me.getEventTime(), me.getEventTime(), MotionEvent.ACTION_DOWN, me.getX(), me.getY() + mExtension.getHeight(), me.getMetaState()); mExtension.onTouchEvent(translated); translated.recycle(); } else { mFirstEvent = true; } // Stop processing multi-touch errors mDisableDisambiguation = true; } return true; } } else if (mExtensionVisible) { closeExtension(); // Send a down event into the main keyboard first MotionEvent down = MotionEvent.obtain(me.getEventTime(), me.getEventTime(), MotionEvent.ACTION_DOWN, me.getX(), me.getY(), me.getMetaState()); super.onTouchEvent(down); down.recycle(); // Send the actual event return super.onTouchEvent(me); } else { return super.onTouchEvent(me); } } private void setExtensionType(boolean isExtensionType) { mIsExtensionType = isExtensionType; } private boolean openExtension() { // If the current keyboard is not visible, don't show the popup if (!isShown()) { return false; } if (((LatinKeyboard) getKeyboard()).getExtension() == 0) return false; makePopupWindow(); mExtensionVisible = true; return true; } private void makePopupWindow() { if (mExtensionPopup == null) { int[] windowLocation = new int[2]; mExtensionPopup = new PopupWindow(getContext()); mExtensionPopup.setBackgroundDrawable(null); LayoutInflater li = (LayoutInflater) getContext().getSystemService( Context.LAYOUT_INFLATER_SERVICE); mExtension = (LatinKeyboardView) li.inflate(mExtensionLayoutResId == 0 ? R.layout.input_trans : mExtensionLayoutResId, null); mExtension.setExtensionType(true); mExtension.setOnKeyboardActionListener( new ExtensionKeyboardListener(getOnKeyboardActionListener())); mExtension.setPopupParent(this); mExtension.setPopupOffset(0, -windowLocation[1]); Keyboard keyboard; mExtension.setKeyboard(keyboard = new LatinKeyboard(getContext(), ((LatinKeyboard) getKeyboard()).getExtension())); mExtensionPopup.setContentView(mExtension); mExtensionPopup.setWidth(getWidth()); mExtensionPopup.setHeight(keyboard.getHeight()); mExtensionPopup.setAnimationStyle(-1); getLocationInWindow(windowLocation); // TODO: Fix the "- 30". mExtension.setPopupOffset(0, -windowLocation[1] - 30); mExtensionPopup.showAtLocation(this, 0, 0, -keyboard.getHeight() + windowLocation[1]); } else { mExtension.setVisibility(VISIBLE); } } @Override public void closing() { super.closing(); if (mExtensionPopup != null && mExtensionPopup.isShowing()) { mExtensionPopup.dismiss(); mExtensionPopup = null; } } private void closeExtension() { mExtension.closing(); mExtension.setVisibility(INVISIBLE); mExtensionVisible = false; } private static class ExtensionKeyboardListener implements OnKeyboardActionListener { private OnKeyboardActionListener mTarget; ExtensionKeyboardListener(OnKeyboardActionListener target) { mTarget = target; } public void onKey(int primaryCode, int[] keyCodes, int x, int y) { mTarget.onKey(primaryCode, keyCodes, x, y); } public void onPress(int primaryCode) { mTarget.onPress(primaryCode); } public void onRelease(int primaryCode) { mTarget.onRelease(primaryCode); } public void onText(CharSequence text) { mTarget.onText(text); } public void swipeDown() { // Don't pass through } public void swipeLeft() { // Don't pass through } public void swipeRight() { // Don't pass through } public void swipeUp() { // Don't pass through } } /**************************** INSTRUMENTATION *******************************/ Loading