diff options
Diffstat (limited to 'java/src/com/android/inputmethod/keyboard')
8 files changed, 46 insertions, 165 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/KeyStyles.java b/java/src/com/android/inputmethod/keyboard/KeyStyles.java index daa9c86d1..e3b107160 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyStyles.java +++ b/java/src/com/android/inputmethod/keyboard/KeyStyles.java @@ -47,6 +47,7 @@ public class KeyStyles { public static class EmptyKeyStyle implements KeyStyle { private EmptyKeyStyle() { + // Nothing to do. } @Override diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardParser.java b/java/src/com/android/inputmethod/keyboard/KeyboardParser.java index 213eac567..8a7d67451 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyboardParser.java +++ b/java/src/com/android/inputmethod/keyboard/KeyboardParser.java @@ -18,6 +18,7 @@ package com.android.inputmethod.keyboard; import com.android.inputmethod.latin.R; +import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; import android.content.res.Resources; @@ -142,8 +143,8 @@ public class KeyboardParser { public void parseKeyboard(XmlResourceParser parser) throws XmlPullParserException, IOException { int event; - while ((event = parser.next()) != XmlResourceParser.END_DOCUMENT) { - if (event == XmlResourceParser.START_TAG) { + while ((event = parser.next()) != XmlPullParser.END_DOCUMENT) { + if (event == XmlPullParser.START_TAG) { final String tag = parser.getName(); if (DEBUG_TAG) debugStartTag("parseKeyboard", tag, false); if (TAG_KEYBOARD.equals(tag)) { @@ -186,8 +187,8 @@ public class KeyboardParser { private void parseKeyboardContent(XmlResourceParser parser, List<Key> keys) throws XmlPullParserException, IOException { int event; - while ((event = parser.next()) != XmlResourceParser.END_DOCUMENT) { - if (event == XmlResourceParser.START_TAG) { + while ((event = parser.next()) != XmlPullParser.END_DOCUMENT) { + if (event == XmlPullParser.START_TAG) { final String tag = parser.getName(); if (DEBUG_TAG) debugStartTag("parseKeyboardContent", tag, keys == null); if (TAG_ROW.equals(tag)) { @@ -204,7 +205,7 @@ public class KeyboardParser { } else { throw new IllegalStartTag(parser, TAG_ROW); } - } else if (event == XmlResourceParser.END_TAG) { + } else if (event == XmlPullParser.END_TAG) { final String tag = parser.getName(); if (DEBUG_TAG) debugEndTag("parseKeyboardContent", tag, keys == null); if (TAG_KEYBOARD.equals(tag)) { @@ -226,8 +227,8 @@ public class KeyboardParser { private void parseRowContent(XmlResourceParser parser, Row row, List<Key> keys) throws XmlPullParserException, IOException { int event; - while ((event = parser.next()) != XmlResourceParser.END_DOCUMENT) { - if (event == XmlResourceParser.START_TAG) { + while ((event = parser.next()) != XmlPullParser.END_DOCUMENT) { + if (event == XmlPullParser.START_TAG) { final String tag = parser.getName(); if (DEBUG_TAG) debugStartTag("parseRowContent", tag, keys == null); if (TAG_KEY.equals(tag)) { @@ -243,7 +244,7 @@ public class KeyboardParser { } else { throw new IllegalStartTag(parser, TAG_KEY); } - } else if (event == XmlResourceParser.END_TAG) { + } else if (event == XmlPullParser.END_TAG) { final String tag = parser.getName(); if (DEBUG_TAG) debugEndTag("parseRowContent", tag, keys == null); if (TAG_ROW.equals(tag)) { @@ -327,8 +328,8 @@ public class KeyboardParser { private void parseMerge(XmlResourceParser parser, Row row, List<Key> keys) throws XmlPullParserException, IOException { int event; - while ((event = parser.next()) != XmlResourceParser.END_DOCUMENT) { - if (event == XmlResourceParser.START_TAG) { + while ((event = parser.next()) != XmlPullParser.END_DOCUMENT) { + if (event == XmlPullParser.START_TAG) { final String tag = parser.getName(); if (DEBUG_TAG) debugStartTag("parseMerge", tag, keys == null); if (TAG_MERGE.equals(tag)) { @@ -361,8 +362,8 @@ public class KeyboardParser { boolean selected = false; int event; if (DEBUG_TAG) Log.d(TAG, "parseSwitchInternal: id=" + mKeyboard.mId); - while ((event = parser.next()) != XmlResourceParser.END_DOCUMENT) { - if (event == XmlResourceParser.START_TAG) { + while ((event = parser.next()) != XmlPullParser.END_DOCUMENT) { + if (event == XmlPullParser.START_TAG) { final String tag = parser.getName(); if (DEBUG_TAG) debugStartTag("parseSwitchInternal", tag, keys == null); if (TAG_CASE.equals(tag)) { @@ -372,7 +373,7 @@ public class KeyboardParser { } else { throw new IllegalStartTag(parser, TAG_KEY); } - } else if (event == XmlResourceParser.END_TAG) { + } else if (event == XmlPullParser.END_TAG) { final String tag = parser.getName(); if (DEBUG_TAG) debugEndTag("parseRowContent", tag, keys == null); if (TAG_SWITCH.equals(tag)) { @@ -469,8 +470,7 @@ public class KeyboardParser { return true; } - private void parseKeyStyle(XmlResourceParser parser, List<Key> keys) - throws XmlPullParserException, IOException { + private void parseKeyStyle(XmlResourceParser parser, List<Key> keys) { TypedArray a = mResources.obtainAttributes(Xml.asAttributeSet(parser), R.styleable.Keyboard_KeyStyle); TypedArray keyAttrs = mResources.obtainAttributes(Xml.asAttributeSet(parser), @@ -489,7 +489,7 @@ public class KeyboardParser { private static void checkEndTag(String tag, XmlResourceParser parser) throws XmlPullParserException, IOException { - if (parser.next() == XmlResourceParser.END_TAG && tag.equals(parser.getName())) + if (parser.next() == XmlPullParser.END_TAG && tag.equals(parser.getName())) return; throw new NonEmptyTag(tag, parser); } diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java index 88e7ad5d0..51e878c88 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java +++ b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java @@ -100,6 +100,7 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha } private KeyboardSwitcher() { + // Intentional empty constructor for singleton. } public static void init(LatinIME ims, SharedPreferences prefs) { @@ -554,12 +555,13 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha } private void createInputViewInternal(int newLayout, boolean forceReset) { - if (mLayoutId != newLayout || mInputView == null || forceReset) { + int layoutId = newLayout; + if (mLayoutId != layoutId || mInputView == null || forceReset) { if (mInputView != null) { mInputView.closing(); } - if (THEMES.length <= newLayout) { - newLayout = Integer.valueOf(DEFAULT_LAYOUT_ID); + if (THEMES.length <= layoutId) { + layoutId = Integer.valueOf(DEFAULT_LAYOUT_ID); } Utils.GCUtils.getInstance().reset(); @@ -567,20 +569,20 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha for (int i = 0; i < Utils.GCUtils.GC_TRY_LOOP_MAX && tryGC; ++i) { try { mInputView = (LatinKeyboardView) mInputMethodService.getLayoutInflater( - ).inflate(THEMES[newLayout], null); + ).inflate(THEMES[layoutId], null); tryGC = false; } catch (OutOfMemoryError e) { Log.w(TAG, "load keyboard failed: " + e); tryGC = Utils.GCUtils.getInstance().tryGCOrWait( - mLayoutId + "," + newLayout, e); + mLayoutId + "," + layoutId, e); } catch (InflateException e) { Log.w(TAG, "load keyboard failed: " + e); tryGC = Utils.GCUtils.getInstance().tryGCOrWait( - mLayoutId + "," + newLayout, e); + mLayoutId + "," + layoutId, e); } } mInputView.setOnKeyboardActionListener(mInputMethodService); - mLayoutId = newLayout; + mLayoutId = layoutId; } } diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardView.java b/java/src/com/android/inputmethod/keyboard/KeyboardView.java index 98426862c..70267a7ff 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyboardView.java +++ b/java/src/com/android/inputmethod/keyboard/KeyboardView.java @@ -289,7 +289,7 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { cancelPopupPreview(); cancelDismissPreview(); } - }; + } public KeyboardView(Context context, AttributeSet attrs) { this(context, attrs, R.attr.keyboardViewStyle); @@ -587,7 +587,7 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { protected CharSequence adjustCase(CharSequence label) { if (mKeyboard.isShiftedOrShiftLocked() && label != null && label.length() < 3 && Character.isLowerCase(label.charAt(0))) { - label = label.toString().toUpperCase(); + return label.toString().toUpperCase(); } return label; } @@ -1089,7 +1089,7 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { mKeyboardActionListener.onKey(Keyboard.CODE_CAPSLOCK, null, 0, 0); } - private void onDoubleTapShiftKey(PointerTracker tracker) { + private void onDoubleTapShiftKey(@SuppressWarnings("unused") PointerTracker tracker) { // When shift key is double tapped, the first tap is correctly processed as usual tap. And // the second tap is treated as this double tap event, so that we need not mark tracker // calling setAlreadyProcessed() nor remove the tracker from mPointerQueueueue. @@ -1126,15 +1126,19 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { @Override public void swipeLeft() { + // Nothing to do. } @Override public void swipeRight() { + // Nothing to do. } @Override public void swipeUp() { + // Nothing to do. } @Override public void swipeDown() { + // Nothing to do. } @Override public void onPress(int primaryCode) { diff --git a/java/src/com/android/inputmethod/keyboard/LatinKeyboard.java b/java/src/com/android/inputmethod/keyboard/LatinKeyboard.java index e612b52b5..8087f030e 100644 --- a/java/src/com/android/inputmethod/keyboard/LatinKeyboard.java +++ b/java/src/com/android/inputmethod/keyboard/LatinKeyboard.java @@ -280,7 +280,9 @@ public class LatinKeyboard extends Keyboard { */ @Override @SuppressWarnings("unused") // SubtypeSwitcher.USE_SPACEBAR_LANGUAGE_SWITCHER is constant - public boolean isInside(Key key, int x, int y) { + public boolean isInside(Key key, int pointX, int pointY) { + int x = pointX; + int y = pointY; final int code = key.mCodes[0]; if (code == CODE_SHIFT || code == CODE_DELETE) { y -= key.mHeight / 10; diff --git a/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java b/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java index 79b0cbf52..4d4046b98 100644 --- a/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java +++ b/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java @@ -21,16 +21,10 @@ import com.android.inputmethod.voice.VoiceIMEConnector; import android.content.Context; import android.graphics.Canvas; -import android.graphics.Paint; -import android.os.Handler; -import android.os.Message; -import android.os.SystemClock; import android.text.TextUtils; import android.util.AttributeSet; import android.view.MotionEvent; -import java.util.List; - // TODO: We should remove this class public class LatinKeyboardView extends KeyboardView { @@ -45,6 +39,8 @@ public class LatinKeyboardView extends KeyboardView { private int mJumpThresholdSquare = Integer.MAX_VALUE; /** The y coordinate of the last row */ private int mLastRowY; + private int mLastX; + private int mLastY; public LatinKeyboardView(Context context, AttributeSet attrs) { this(context, attrs, 0); @@ -73,7 +69,6 @@ public class LatinKeyboardView extends KeyboardView { mJumpThresholdSquare *= mJumpThresholdSquare; // Assuming there are 4 rows, this is the coordinate of the last row mLastRowY = (k.getHeight() * 3) / 4; - setKeyboardLocal(k); } public LatinKeyboard getLatinKeyboard() { @@ -112,7 +107,7 @@ public class LatinKeyboardView extends KeyboardView { && keyboard.isShiftedOrShiftLocked() && !TextUtils.isEmpty(label) && label.length() < 3 && Character.isLowerCase(label.charAt(0))) { - label = label.toString().toUpperCase(); + return label.toString().toUpperCase(); } return label; } @@ -197,11 +192,6 @@ public class LatinKeyboardView extends KeyboardView { @Override public boolean onTouchEvent(MotionEvent me) { LatinKeyboard keyboard = getLatinKeyboard(); - if (DEBUG_LINE) { - mLastX = (int) me.getX(); - mLastY = (int) me.getY(); - invalidate(); - } // If there was a sudden jump, return without processing the actual motion event. if (handleSuddenJump(me)) @@ -228,106 +218,6 @@ public class LatinKeyboardView extends KeyboardView { return super.onTouchEvent(me); } - /**************************** INSTRUMENTATION *******************************/ - - public static final boolean DEBUG_AUTO_PLAY = false; - public static final boolean DEBUG_LINE = false; - private static final int MSG_TOUCH_DOWN = 1; - private static final int MSG_TOUCH_UP = 2; - - Handler mHandler2; - - private String mStringToPlay; - private int mStringIndex; - private boolean mDownDelivered; - private Key[] mAsciiKeys = new Key[256]; - private boolean mPlaying; - private int mLastX; - private int mLastY; - private Paint mPaint; - - private void setKeyboardLocal(LatinKeyboard k) { - if (DEBUG_AUTO_PLAY) { - findKeys(); - if (mHandler2 == null) { - mHandler2 = new Handler() { - @Override - public void handleMessage(Message msg) { - removeMessages(MSG_TOUCH_DOWN); - removeMessages(MSG_TOUCH_UP); - if (mPlaying == false) return; - - switch (msg.what) { - case MSG_TOUCH_DOWN: - if (mStringIndex >= mStringToPlay.length()) { - mPlaying = false; - return; - } - char c = mStringToPlay.charAt(mStringIndex); - while (c > 255 || mAsciiKeys[c] == null) { - mStringIndex++; - if (mStringIndex >= mStringToPlay.length()) { - mPlaying = false; - return; - } - c = mStringToPlay.charAt(mStringIndex); - } - int x = mAsciiKeys[c].mX + 10; - int y = mAsciiKeys[c].mY + 26; - MotionEvent me = MotionEvent.obtain(SystemClock.uptimeMillis(), - SystemClock.uptimeMillis(), - MotionEvent.ACTION_DOWN, x, y, 0); - LatinKeyboardView.this.dispatchTouchEvent(me); - me.recycle(); - sendEmptyMessageDelayed(MSG_TOUCH_UP, 500); // Deliver up in 500ms if nothing else - // happens - mDownDelivered = true; - break; - case MSG_TOUCH_UP: - char cUp = mStringToPlay.charAt(mStringIndex); - int x2 = mAsciiKeys[cUp].mX + 10; - int y2 = mAsciiKeys[cUp].mY + 26; - mStringIndex++; - - MotionEvent me2 = MotionEvent.obtain(SystemClock.uptimeMillis(), - SystemClock.uptimeMillis(), - MotionEvent.ACTION_UP, x2, y2, 0); - LatinKeyboardView.this.dispatchTouchEvent(me2); - me2.recycle(); - sendEmptyMessageDelayed(MSG_TOUCH_DOWN, 500); // Deliver up in 500ms if nothing else - // happens - mDownDelivered = false; - break; - } - } - }; - - } - } - } - - private void findKeys() { - List<Key> keys = getLatinKeyboard().getKeys(); - // Get the keys on this keyboard - for (int i = 0; i < keys.size(); i++) { - int code = keys.get(i).mCodes[0]; - if (code >= 0 && code <= 255) { - mAsciiKeys[code] = keys.get(i); - } - } - } - - public void startPlaying(String s) { - if (DEBUG_AUTO_PLAY) { - if (s == null) return; - mStringToPlay = s.toLowerCase(); - mPlaying = true; - mDownDelivered = false; - mStringIndex = 0; - mHandler2.sendEmptyMessageDelayed(MSG_TOUCH_DOWN, 10); - } - } - @Override public void draw(Canvas c) { Utils.GCUtils.getInstance().reset(); @@ -340,26 +230,6 @@ public class LatinKeyboardView extends KeyboardView { tryGC = Utils.GCUtils.getInstance().tryGCOrWait("LatinKeyboardView", e); } } - if (DEBUG_AUTO_PLAY) { - if (mPlaying) { - mHandler2.removeMessages(MSG_TOUCH_DOWN); - mHandler2.removeMessages(MSG_TOUCH_UP); - if (mDownDelivered) { - mHandler2.sendEmptyMessageDelayed(MSG_TOUCH_UP, 20); - } else { - mHandler2.sendEmptyMessageDelayed(MSG_TOUCH_DOWN, 20); - } - } - } - if (DEBUG_LINE) { - if (mPaint == null) { - mPaint = new Paint(); - mPaint.setColor(0x80FFFFFF); - mPaint.setAntiAlias(false); - } - c.drawLine(mLastX, 0, mLastX, getHeight(), mPaint); - c.drawLine(0, mLastY, getWidth(), mLastY, mPaint); - } } @Override diff --git a/java/src/com/android/inputmethod/keyboard/PointerTracker.java b/java/src/com/android/inputmethod/keyboard/PointerTracker.java index 8570491f8..65c370dcd 100644 --- a/java/src/com/android/inputmethod/keyboard/PointerTracker.java +++ b/java/src/com/android/inputmethod/keyboard/PointerTracker.java @@ -299,7 +299,7 @@ public class PointerTracker { showKeyPreviewAndUpdateKeyGraphics(keyIndex); } - public void onMoveEvent(int x, int y, long eventTime) { + public void onMoveEvent(int x, int y, @SuppressWarnings("unused") long eventTime) { if (DEBUG_MOVE) debugLog("onMoveEvent:", x, y); if (mKeyAlreadyProcessed) @@ -333,7 +333,9 @@ public class PointerTracker { showKeyPreviewAndUpdateKeyGraphics(mKeyState.getKeyIndex()); } - public void onUpEvent(int x, int y, long eventTime) { + public void onUpEvent(int pointX, int pointY, long eventTime) { + int x = pointX; + int y = pointY; if (DEBUG) debugLog("onUpEvent :", x, y); showKeyPreviewAndUpdateKeyGraphics(NOT_A_KEY); @@ -356,7 +358,7 @@ public class PointerTracker { mProxy.invalidateKey(mKeys[keyIndex]); } - public void onCancelEvent(int x, int y, long eventTime) { + public void onCancelEvent(int x, int y, @SuppressWarnings("unused") long eventTime) { if (DEBUG) debugLog("onCancelEvt:", x, y); mHandler.cancelKeyTimers(); diff --git a/java/src/com/android/inputmethod/keyboard/SlidingLocaleDrawable.java b/java/src/com/android/inputmethod/keyboard/SlidingLocaleDrawable.java index 689791cff..41f8c2a7c 100644 --- a/java/src/com/android/inputmethod/keyboard/SlidingLocaleDrawable.java +++ b/java/src/com/android/inputmethod/keyboard/SlidingLocaleDrawable.java @@ -58,7 +58,7 @@ public class SlidingLocaleDrawable extends Drawable { mContext = context; mRes = context.getResources(); mBackground = background; - LatinKeyboard.setDefaultBounds(mBackground); + Keyboard.setDefaultBounds(mBackground); mWidth = width; mHeight = height; final TextPaint textPaint = new TextPaint(); @@ -123,7 +123,7 @@ public class SlidingLocaleDrawable extends Drawable { canvas.drawText(mNextLanguage, diff - width / 2, baseline, paint); canvas.drawText(mPrevLanguage, diff + width + width / 2, baseline, paint); - LatinKeyboard.setDefaultBounds(lArrow); + Keyboard.setDefaultBounds(lArrow); rArrow.setBounds(width - rArrow.getIntrinsicWidth(), 0, width, rArrow.getIntrinsicHeight()); lArrow.draw(canvas); |
