Cleanup LatinKeyboard and LatinKeyboard.LatinKey classes

Change-Id: I4c5a37315dea1c7545b77a8a6c93b930927a5a82
main
Tadashi G. Takaoka 2010-10-17 20:46:01 +09:00
parent 4571fff019
commit 2348ca0e76
2 changed files with 19 additions and 33 deletions

View File

@ -150,9 +150,9 @@ public class BaseKeyboard {
/** The keyboard mode for this row */ /** The keyboard mode for this row */
public int mode; public int mode;
private BaseKeyboard parent; private final BaseKeyboard parent;
public Row(BaseKeyboard parent) { private Row(BaseKeyboard parent) {
this.parent = parent; this.parent = parent;
} }
@ -232,7 +232,7 @@ public class BaseKeyboard {
/** Whether this is a modifier key, such as Shift or Alt */ /** Whether this is a modifier key, such as Shift or Alt */
public boolean modifier; public boolean modifier;
/** The BaseKeyboard that this key belongs to */ /** The BaseKeyboard that this key belongs to */
private BaseKeyboard keyboard; protected final BaseKeyboard keyboard;
/** /**
* If this key pops up a mini keyboard, this is the resource id for the XML layout for that * If this key pops up a mini keyboard, this is the resource id for the XML layout for that
* keyboard. * keyboard.
@ -361,7 +361,7 @@ public class BaseKeyboard {
} }
} }
int[] parseCSV(String value) { private int[] parseCSV(String value) {
int count = 0; int count = 0;
int lastIndex = 0; int lastIndex = 0;
if (value.length() > 0) { if (value.length() > 0) {
@ -413,8 +413,11 @@ public class BaseKeyboard {
* @return the square of the distance of the point from the center of the key * @return the square of the distance of the point from the center of the key
*/ */
public int squaredDistanceFrom(int x, int y) { public int squaredDistanceFrom(int x, int y) {
// We should count vertical gap between rows to calculate the center of this Key.
// TODO: We should re-think how we define the center of the key.
final int verticalGap = keyboard.getVerticalGap();
int xDist = this.x + width / 2 - x; int xDist = this.x + width / 2 - x;
int yDist = this.y + height / 2 - y; int yDist = this.y + (height + verticalGap) / 2 - y;
return xDist * xDist + yDist * yDist; return xDist * xDist + yDist * yDist;
} }

View File

@ -92,10 +92,6 @@ public class LatinKeyboard extends BaseKeyboard {
// TODO: generalize for any keyboardId // TODO: generalize for any keyboardId
private boolean mIsBlackSym; private boolean mIsBlackSym;
// TODO: remove this attribute when either Keyboard.mDefaultVerticalGap or Key.parent becomes
// non-private.
private final int mVerticalGap;
private static final int SHIFT_OFF = 0; private static final int SHIFT_OFF = 0;
private static final int SHIFT_ON = 1; private static final int SHIFT_ON = 1;
private static final int SHIFT_LOCKED = 2; private static final int SHIFT_LOCKED = 2;
@ -143,8 +139,7 @@ public class LatinKeyboard extends BaseKeyboard {
mIsAlphaKeyboard = xmlLayoutResId == R.xml.kbd_qwerty mIsAlphaKeyboard = xmlLayoutResId == R.xml.kbd_qwerty
|| xmlLayoutResId == R.xml.kbd_qwerty_black; || xmlLayoutResId == R.xml.kbd_qwerty_black;
mSpaceKeyIndex = indexOf(LatinIME.KEYCODE_SPACE); mSpaceKeyIndex = indexOf(LatinIME.KEYCODE_SPACE);
// TODO remove this initialization after cleanup
mVerticalGap = super.getVerticalGap();
if (mEnterKey != null) { if (mEnterKey != null) {
mDefaultEnterIcon = mEnterKey.icon; mDefaultEnterIcon = mEnterKey.icon;
mDefaultEnterPreview = mEnterKey.iconPreview; mDefaultEnterPreview = mEnterKey.iconPreview;
@ -280,7 +275,7 @@ public class LatinKeyboard extends BaseKeyboard {
return mIsAlphaKeyboard && isShifted() && !isShiftLocked(); return mIsAlphaKeyboard && isShifted() && !isShiftLocked();
} }
/* package */ boolean isAlphaKeyboard() { public boolean isAlphaKeyboard() {
return mIsAlphaKeyboard; return mIsAlphaKeyboard;
} }
@ -521,12 +516,12 @@ public class LatinKeyboard extends BaseKeyboard {
return mCurrentlyInSpace; return mCurrentlyInSpace;
} }
void setPreferredLetters(int[] frequencies) { public void setPreferredLetters(int[] frequencies) {
mPrefLetterFrequencies = frequencies; mPrefLetterFrequencies = frequencies;
mPrefLetter = 0; mPrefLetter = 0;
} }
void keyReleased() { public void keyReleased() {
mCurrentlyInSpace = false; mCurrentlyInSpace = false;
mSpaceDragLastDiff = 0; mSpaceDragLastDiff = 0;
mPrefLetter = 0; mPrefLetter = 0;
@ -542,10 +537,9 @@ public class LatinKeyboard extends BaseKeyboard {
* Does the magic of locking the touch gesture into the spacebar when * Does the magic of locking the touch gesture into the spacebar when
* switching input languages. * switching input languages.
*/ */
boolean isInside(LatinKey key, int x, int y) { public boolean isInside(LatinKey key, int x, int y) {
final int code = key.codes[0]; final int code = key.codes[0];
if (code == KEYCODE_SHIFT || if (code == KEYCODE_SHIFT || code == KEYCODE_DELETE) {
code == KEYCODE_DELETE) {
y -= key.height / 10; y -= key.height / 10;
if (code == KEYCODE_SHIFT) x += key.width / 6; if (code == KEYCODE_SHIFT) x += key.width / 6;
if (code == KEYCODE_DELETE) x -= key.width / 6; if (code == KEYCODE_DELETE) x -= key.width / 6;
@ -689,8 +683,7 @@ public class LatinKeyboard extends BaseKeyboard {
return textSize; return textSize;
} }
// TODO LatinKey could be static class public static class LatinKey extends BaseKeyboard.Key {
class LatinKey extends BaseKeyboard.Key {
// functional normal state (with properties) // functional normal state (with properties)
private final int[] KEY_STATE_FUNCTIONAL_NORMAL = { private final int[] KEY_STATE_FUNCTIONAL_NORMAL = {
@ -738,13 +731,12 @@ public class LatinKeyboard extends BaseKeyboard {
*/ */
@Override @Override
public boolean isInside(int x, int y) { public boolean isInside(int x, int y) {
// TODO This should be done by parent.isInside(this, x, y) boolean result = (keyboard instanceof LatinKeyboard)
// if Key.parent were protected. && ((LatinKeyboard)keyboard).isInside(this, x, y);
boolean result = LatinKeyboard.this.isInside(this, x, y);
return result; return result;
} }
boolean isInsideSuper(int x, int y) { private boolean isInsideSuper(int x, int y) {
return super.isInside(x, y); return super.isInside(x, y);
} }
@ -759,15 +751,6 @@ public class LatinKeyboard extends BaseKeyboard {
} }
return super.getCurrentDrawableState(); return super.getCurrentDrawableState();
} }
@Override
public int squaredDistanceFrom(int x, int y) {
// We should count vertical gap between rows to calculate the center of this Key.
final int verticalGap = LatinKeyboard.this.mVerticalGap;
final int xDist = this.x + width / 2 - x;
final int yDist = this.y + (height + verticalGap) / 2 - y;
return xDist * xDist + yDist * yDist;
}
} }
/** /**
@ -775,7 +758,7 @@ public class LatinKeyboard extends BaseKeyboard {
* languages by swiping the spacebar. It draws the current, previous and * languages by swiping the spacebar. It draws the current, previous and
* next languages and moves them by the delta of touch movement on the spacebar. * next languages and moves them by the delta of touch movement on the spacebar.
*/ */
class SlidingLocaleDrawable extends Drawable { private class SlidingLocaleDrawable extends Drawable {
private final int mWidth; private final int mWidth;
private final int mHeight; private final int mHeight;