diff options
author | 2012-01-24 15:22:25 -0800 | |
---|---|---|
committer | 2012-01-24 15:22:25 -0800 | |
commit | af4efd5a3ec32d7f1bf61978286f3a7602ce5609 (patch) | |
tree | df6be52e067c53fc23712e533dcad56ef484ba2d /java/src | |
parent | a34f66de2d812d077d5c1436d7fc79ca7000b8dd (diff) | |
parent | 8bb20bc682db0966f2d4b1c7c0e6bf89d1497da7 (diff) | |
download | latinime-af4efd5a3ec32d7f1bf61978286f3a7602ce5609.tar.gz latinime-af4efd5a3ec32d7f1bf61978286f3a7602ce5609.tar.xz latinime-af4efd5a3ec32d7f1bf61978286f3a7602ce5609.zip |
Merge "Revert "Add autoGenerateFromAlphabet enum to KeyboardSet.Element.elementKeyboard""
Diffstat (limited to 'java/src')
3 files changed, 61 insertions, 69 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardId.java b/java/src/com/android/inputmethod/keyboard/KeyboardId.java index edce4c6e8..d95c3b3af 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyboardId.java +++ b/java/src/com/android/inputmethod/keyboard/KeyboardId.java @@ -39,14 +39,16 @@ public class KeyboardId { public static final int MODE_NUMBER = 5; public static final int ELEMENT_ALPHABET = 0; - public static final int ELEMENT_ALPHABET_MANUAL_SHIFTED = 1; - public static final int ELEMENT_ALPHABET_AUTOMATIC_SHIFTED = 2; - public static final int ELEMENT_ALPHABET_SHIFT_LOCKED = 3; - public static final int ELEMENT_ALPHABET_SHIFT_LOCK_SHIFTED = 4; + /* TODO: Implement alphabet variant shift keyboard. + public static final int ELEMENT_ALPHABET_MANUAL_TEMPORARY_SHIFT = 1; + public static final int ELEMENT_ALPHABET_AUTOMATIC_TEMPORARY_SHIFT = 2; + public static final int ELEMENT_ALPHABET_SHIFT_LOCK = 3; + public static final int ELEMENT_ALPHABET_SHIFT_LOCK_SHIFT = 4; + */ public static final int ELEMENT_SYMBOLS = 5; - public static final int ELEMENT_SYMBOLS_SHIFTED = 6; + public static final int ELEMENT_SYMBOLS_SHIFT = 6; public static final int ELEMENT_PHONE = 7; - public static final int ELEMENT_PHONE_SHIFTED = 8; + public static final int ELEMENT_PHONE_SHIFT = 8; public static final int ELEMENT_NUMBER = 9; private static final int F2KEY_MODE_NONE = 0; @@ -58,7 +60,7 @@ public class KeyboardId { public final int mOrientation; public final int mWidth; public final int mMode; - public final int mElement; + public final int mElementState; private final int mInputType; private final int mImeOptions; private final boolean mSettingsKeyEnabled; @@ -68,14 +70,14 @@ public class KeyboardId { private final int mHashCode; - public KeyboardId(int element, Locale locale, int orientation, int width, int mode, + public KeyboardId(int elementState, Locale locale, int orientation, int width, int mode, int inputType, int imeOptions, boolean settingsKeyEnabled, boolean clobberSettingsKey, boolean shortcutKeyEnabled, boolean hasShortcutKey) { this.mLocale = locale; this.mOrientation = orientation; this.mWidth = width; this.mMode = mode; - this.mElement = element; + this.mElementState = elementState; this.mInputType = inputType; this.mImeOptions = imeOptions; this.mSettingsKeyEnabled = settingsKeyEnabled; @@ -89,7 +91,7 @@ public class KeyboardId { private static int hashCode(KeyboardId id) { return Arrays.hashCode(new Object[] { id.mOrientation, - id.mElement, + id.mElementState, id.mMode, id.mWidth, id.navigateAction(), @@ -107,7 +109,7 @@ public class KeyboardId { if (other == this) return true; return other.mOrientation == this.mOrientation - && other.mElement == this.mElement + && other.mElementState == this.mElementState && other.mMode == this.mMode && other.mWidth == this.mWidth && other.navigateAction() == this.navigateAction() @@ -121,19 +123,19 @@ public class KeyboardId { } public boolean isAlphabetKeyboard() { - return mElement < ELEMENT_SYMBOLS; + return mElementState < ELEMENT_SYMBOLS; } public boolean isSymbolsKeyboard() { - return mElement == ELEMENT_SYMBOLS || mElement == ELEMENT_SYMBOLS_SHIFTED; + return mElementState == ELEMENT_SYMBOLS || mElementState == ELEMENT_SYMBOLS_SHIFT; } public boolean isPhoneKeyboard() { - return mElement == ELEMENT_PHONE || mElement == ELEMENT_PHONE_SHIFTED; + return mElementState == ELEMENT_PHONE || mElementState == ELEMENT_PHONE_SHIFT; } public boolean isPhoneShiftKeyboard() { - return mElement == ELEMENT_PHONE_SHIFTED; + return mElementState == ELEMENT_PHONE_SHIFT; } public boolean navigateAction() { @@ -188,7 +190,7 @@ public class KeyboardId { @Override public String toString() { return String.format("[%s %s %s%d %s %s %s%s%s%s%s%s%s]", - elementToString(mElement), + elementStateToString(mElementState), mLocale, (mOrientation == 1 ? "port" : "land"), mWidth, modeName(mMode), @@ -211,17 +213,19 @@ public class KeyboardId { && TextUtils.equals(a.privateImeOptions, b.privateImeOptions); } - public static String elementToString(int element) { - switch (element) { + public static String elementStateToString(int elementState) { + switch (elementState) { case ELEMENT_ALPHABET: return "alphabet"; - case ELEMENT_ALPHABET_MANUAL_SHIFTED: return "alphabetManualShifted"; - case ELEMENT_ALPHABET_AUTOMATIC_SHIFTED: return "alphabetAutomaticShifted"; - case ELEMENT_ALPHABET_SHIFT_LOCKED: return "alphabetShiftLocked"; - case ELEMENT_ALPHABET_SHIFT_LOCK_SHIFTED: return "alphabetShiftLockShifted"; + /* TODO: Implement alphabet variant shift keyboard. + case ELEMENT_ALPHABET_MANUAL_TEMPORARY_SHIFT: return "alphabetManualTemporaryShift"; + case ELEMENT_ALPHABET_AUTOMATIC_TEMPORARY_SHIFT: return "alphabetAutomaticTemporaryShift"; + case ELEMENT_ALPHABET_SHIFT_LOCK: return "alphabetShiftLock"; + case ELEMENT_ALPHABET_SHIFT_LOCK_SHIFT: return "alphabetShiftLockShift"; + */ case ELEMENT_SYMBOLS: return "symbols"; - case ELEMENT_SYMBOLS_SHIFTED: return "symbolsShifted"; + case ELEMENT_SYMBOLS_SHIFT: return "symbolsShift"; case ELEMENT_PHONE: return "phone"; - case ELEMENT_PHONE_SHIFTED: return "phoneShifted"; + case ELEMENT_PHONE_SHIFT: return "phoneShift"; case ELEMENT_NUMBER: return "number"; default: return null; } diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardSet.java b/java/src/com/android/inputmethod/keyboard/KeyboardSet.java index f4602b8fd..285252044 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyboardSet.java +++ b/java/src/com/android/inputmethod/keyboard/KeyboardSet.java @@ -22,7 +22,6 @@ import android.content.res.Resources; import android.content.res.TypedArray; import android.content.res.XmlResourceParser; import android.util.Log; -import android.util.TypedValue; import android.util.Xml; import android.view.inputmethod.EditorInfo; @@ -55,12 +54,10 @@ public class KeyboardSet { private static final String TAG_KEYBOARD_SET = TAG; private static final String TAG_ELEMENT = "Element"; - private static final int ELEMENT_KEYBOARD_AUTO_GENERATE_FROM_ALPHABET = 1; - private final Context mContext; private final Params mParams; - static class Params { + private static class Params { int mMode; int mInputType; int mImeOptions; @@ -107,18 +104,16 @@ public class KeyboardSet { } private Keyboard getKeyboard(boolean isSymbols, boolean isShift) { - final int element = KeyboardSet.getElement(mParams.mMode, isSymbols, isShift); - // TODO: If xmlId is ELEMENT_KEYBOARD_AUTO_GENERATE_FROM_ALPHABET, auto generate the - // keyboard based on base main alphabet keyboard considering element. - final int xmlId = mParams.mElementKeyboards.get(element); - final KeyboardId id = KeyboardSet.getKeyboardId(element, isSymbols, mParams); + final int elementState = Builder.getElementState(mParams.mMode, isSymbols, isShift); + final int xmlId = mParams.mElementKeyboards.get(elementState); + final KeyboardId id = Builder.getKeyboardId(elementState, isSymbols, mParams); final Keyboard keyboard = getKeyboard(mContext, xmlId, id); return keyboard; } public KeyboardId getMainKeyboardId() { - final int element = KeyboardSet.getElement(mParams.mMode, false, false); - return KeyboardSet.getKeyboardId(element, false, mParams); + final int elementState = Builder.getElementState(mParams.mMode, false, false); + return Builder.getKeyboardId(elementState, false, mParams); } private Keyboard getKeyboard(Context context, int xmlId, KeyboardId id) { @@ -152,30 +147,6 @@ public class KeyboardSet { return keyboard; } - private static int getElement(int mode, boolean isSymbols, boolean isShift) { - switch (mode) { - case KeyboardId.MODE_PHONE: - return (isSymbols && isShift) - ? KeyboardId.ELEMENT_PHONE_SHIFTED : KeyboardId.ELEMENT_PHONE; - case KeyboardId.MODE_NUMBER: - return KeyboardId.ELEMENT_NUMBER; - default: - if (isSymbols) { - return isShift - ? KeyboardId.ELEMENT_SYMBOLS_SHIFTED : KeyboardId.ELEMENT_SYMBOLS; - } - return KeyboardId.ELEMENT_ALPHABET; - } - } - - private static KeyboardId getKeyboardId(int element, boolean isSymbols, Params params) { - final boolean hasShortcutKey = params.mVoiceKeyEnabled - && (isSymbols != params.mVoiceKeyOnMain); - return new KeyboardId(element, params.mLocale, params.mOrientation, params.mWidth, - params.mMode, params.mInputType, params.mImeOptions, params.mSettingsKeyEnabled, - params.mNoSettingsKey, params.mVoiceKeyEnabled, hasShortcutKey); - } - public static class Builder { private final Context mContext; private final String mPackageName; @@ -247,6 +218,31 @@ public class KeyboardSet { return new KeyboardSet(mContext, mParams); } + // TODO: Move this method to KeyboardSet + static KeyboardId getKeyboardId(int elementState, boolean isSymbols, Params params) { + final boolean hasShortcutKey = params.mVoiceKeyEnabled + && (isSymbols != params.mVoiceKeyOnMain); + return new KeyboardId(elementState, params.mLocale, params.mOrientation, params.mWidth, + params.mMode, params.mInputType, params.mImeOptions, params.mSettingsKeyEnabled, + params.mNoSettingsKey, params.mVoiceKeyEnabled, hasShortcutKey); + } + + // TODO: Move this method to KeyboardSet + static int getElementState(int mode, boolean isSymbols, boolean isShift) { + switch (mode) { + case KeyboardId.MODE_PHONE: + return (isSymbols && isShift) + ? KeyboardId.ELEMENT_PHONE_SHIFT : KeyboardId.ELEMENT_PHONE; + case KeyboardId.MODE_NUMBER: + return KeyboardId.ELEMENT_NUMBER; + default: + if (isSymbols) { + return isShift ? KeyboardId.ELEMENT_SYMBOLS_SHIFT : KeyboardId.ELEMENT_SYMBOLS; + } + return KeyboardId.ELEMENT_ALPHABET; + } + } + private void parseKeyboardSet(Resources res, int resId) throws XmlPullParserException, IOException { final XmlResourceParser parser = res.getXml(resId); @@ -304,14 +300,8 @@ public class KeyboardSet { final int elementName = a.getInt( R.styleable.KeyboardSet_Element_elementName, 0); - final int index = R.styleable.KeyboardSet_Element_elementKeyboard; - final TypedValue v = a.peekValue(index); - final int elementKeyboard; - if (v.type == TypedValue.TYPE_REFERENCE) { - elementKeyboard = a.getResourceId(index, 0); - } else { - elementKeyboard = a.getInt(index, 0); - } + final int elementKeyboard = a.getResourceId( + R.styleable.KeyboardSet_Element_elementKeyboard, 0); mParams.mElementKeyboards.put(elementName, elementKeyboard); } finally { a.recycle(); diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java index 38c31adce..bc8b7e3f7 100644 --- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java +++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardState.java @@ -43,8 +43,6 @@ public class KeyboardState { public void setAlphabetManualShiftedKeyboard(); public void setAlphabetAutomaticShiftedKeyboard(); public void setAlphabetShiftLockedKeyboard(); - // TODO: Add this. - //public void setAlphabetShiftLockShiftedKeyboard(); public void setSymbolsKeyboard(); public void setSymbolsShiftedKeyboard(); |