diff options
| author | Tadashi G. Takaoka <takaoka@google.com> | 2012-08-30 14:22:40 +0900 |
|---|---|---|
| committer | Tadashi G. Takaoka <takaoka@google.com> | 2012-08-30 15:37:55 +0900 |
| commit | 35ff94547c16c84c5b6fafdae0b4a683be782b97 (patch) | |
| tree | 334e08dd6d1925bf9837a1d4fda0a3f38b0aa2e9 /java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java | |
| parent | ded498d4a4eca6492e5ab0997dc57530854b28fa (diff) | |
Separate inner classes of keyboard package out under internal package
Change-Id: Ia3969bd5ddec5aa5d81d05ad4cf676d818587922
Diffstat (limited to 'java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java')
| -rw-r--r-- | java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java | 230 |
1 files changed, 0 insertions, 230 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java b/java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java deleted file mode 100644 index e40cf45cc..000000000 --- a/java/src/com/android/inputmethod/keyboard/internal/KeyStyles.java +++ /dev/null @@ -1,230 +0,0 @@ -/* - * Copyright (C) 2010 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. - */ - -package com.android.inputmethod.keyboard.internal; - -import android.content.res.TypedArray; -import android.util.Log; -import android.util.SparseArray; - -import com.android.inputmethod.keyboard.Keyboard; -import com.android.inputmethod.latin.CollectionUtils; -import com.android.inputmethod.latin.R; -import com.android.inputmethod.latin.XmlParseUtils; - -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - -import java.util.HashMap; - -public class KeyStyles { - private static final String TAG = KeyStyles.class.getSimpleName(); - private static final boolean DEBUG = false; - - final HashMap<String, KeyStyle> mStyles = CollectionUtils.newHashMap(); - - final KeyboardTextsSet mTextsSet; - private final KeyStyle mEmptyKeyStyle; - private static final String EMPTY_STYLE_NAME = "<empty>"; - - public KeyStyles(KeyboardTextsSet textsSet) { - mTextsSet = textsSet; - mEmptyKeyStyle = new EmptyKeyStyle(); - mStyles.put(EMPTY_STYLE_NAME, mEmptyKeyStyle); - } - - public abstract class KeyStyle { - public abstract String[] getStringArray(TypedArray a, int index); - public abstract String getString(TypedArray a, int index); - public abstract int getInt(TypedArray a, int index, int defaultValue); - public abstract int getFlag(TypedArray a, int index); - - protected String parseString(TypedArray a, int index) { - if (a.hasValue(index)) { - return KeySpecParser.resolveTextReference(a.getString(index), mTextsSet); - } - return null; - } - - protected String[] parseStringArray(TypedArray a, int index) { - if (a.hasValue(index)) { - return KeySpecParser.parseCsvString(a.getString(index), mTextsSet); - } - return null; - } - } - - class EmptyKeyStyle extends KeyStyle { - @Override - public String[] getStringArray(TypedArray a, int index) { - return parseStringArray(a, index); - } - - @Override - public String getString(TypedArray a, int index) { - return parseString(a, index); - } - - @Override - public int getInt(TypedArray a, int index, int defaultValue) { - return a.getInt(index, defaultValue); - } - - @Override - public int getFlag(TypedArray a, int index) { - return a.getInt(index, 0); - } - } - - private class DeclaredKeyStyle extends KeyStyle { - private final String mParentStyleName; - private final SparseArray<Object> mStyleAttributes = CollectionUtils.newSparseArray(); - - public DeclaredKeyStyle(String parentStyleName) { - mParentStyleName = parentStyleName; - } - - @Override - public String[] getStringArray(TypedArray a, int index) { - if (a.hasValue(index)) { - return parseStringArray(a, index); - } - final Object value = mStyleAttributes.get(index); - if (value != null) { - return (String[])value; - } - final KeyStyle parentStyle = mStyles.get(mParentStyleName); - return parentStyle.getStringArray(a, index); - } - - @Override - public String getString(TypedArray a, int index) { - if (a.hasValue(index)) { - return parseString(a, index); - } - final Object value = mStyleAttributes.get(index); - if (value != null) { - return (String)value; - } - final KeyStyle parentStyle = mStyles.get(mParentStyleName); - return parentStyle.getString(a, index); - } - - @Override - public int getInt(TypedArray a, int index, int defaultValue) { - if (a.hasValue(index)) { - return a.getInt(index, defaultValue); - } - final Object value = mStyleAttributes.get(index); - if (value != null) { - return (Integer)value; - } - final KeyStyle parentStyle = mStyles.get(mParentStyleName); - return parentStyle.getInt(a, index, defaultValue); - } - - @Override - public int getFlag(TypedArray a, int index) { - int flags = a.getInt(index, 0); - final Object value = mStyleAttributes.get(index); - if (value != null) { - flags |= (Integer)value; - } - final KeyStyle parentStyle = mStyles.get(mParentStyleName); - return flags | parentStyle.getFlag(a, index); - } - - void readKeyAttributes(TypedArray keyAttr) { - // TODO: Currently not all Key attributes can be declared as style. - readString(keyAttr, R.styleable.Keyboard_Key_code); - readString(keyAttr, R.styleable.Keyboard_Key_altCode); - readString(keyAttr, R.styleable.Keyboard_Key_keyLabel); - readString(keyAttr, R.styleable.Keyboard_Key_keyOutputText); - readString(keyAttr, R.styleable.Keyboard_Key_keyHintLabel); - readStringArray(keyAttr, R.styleable.Keyboard_Key_moreKeys); - readStringArray(keyAttr, R.styleable.Keyboard_Key_additionalMoreKeys); - readFlag(keyAttr, R.styleable.Keyboard_Key_keyLabelFlags); - readString(keyAttr, R.styleable.Keyboard_Key_keyIcon); - readString(keyAttr, R.styleable.Keyboard_Key_keyIconDisabled); - readString(keyAttr, R.styleable.Keyboard_Key_keyIconPreview); - readInt(keyAttr, R.styleable.Keyboard_Key_maxMoreKeysColumn); - readInt(keyAttr, R.styleable.Keyboard_Key_backgroundType); - readFlag(keyAttr, R.styleable.Keyboard_Key_keyActionFlags); - } - - private void readString(TypedArray a, int index) { - if (a.hasValue(index)) { - mStyleAttributes.put(index, parseString(a, index)); - } - } - - private void readInt(TypedArray a, int index) { - if (a.hasValue(index)) { - mStyleAttributes.put(index, a.getInt(index, 0)); - } - } - - private void readFlag(TypedArray a, int index) { - if (a.hasValue(index)) { - final Integer value = (Integer)mStyleAttributes.get(index); - mStyleAttributes.put(index, a.getInt(index, 0) | (value != null ? value : 0)); - } - } - - private void readStringArray(TypedArray a, int index) { - if (a.hasValue(index)) { - mStyleAttributes.put(index, parseStringArray(a, index)); - } - } - } - - public void parseKeyStyleAttributes(TypedArray keyStyleAttr, TypedArray keyAttrs, - XmlPullParser parser) throws XmlPullParserException { - final String styleName = keyStyleAttr.getString(R.styleable.Keyboard_KeyStyle_styleName); - if (DEBUG) { - Log.d(TAG, String.format("<%s styleName=%s />", - Keyboard.Builder.TAG_KEY_STYLE, styleName)); - if (mStyles.containsKey(styleName)) { - Log.d(TAG, "key-style " + styleName + " is overridden at " - + parser.getPositionDescription()); - } - } - - String parentStyleName = EMPTY_STYLE_NAME; - if (keyStyleAttr.hasValue(R.styleable.Keyboard_KeyStyle_parentStyle)) { - parentStyleName = keyStyleAttr.getString(R.styleable.Keyboard_KeyStyle_parentStyle); - if (!mStyles.containsKey(parentStyleName)) { - throw new XmlParseUtils.ParseException( - "Unknown parentStyle " + parentStyleName, parser); - } - } - final DeclaredKeyStyle style = new DeclaredKeyStyle(parentStyleName); - style.readKeyAttributes(keyAttrs); - mStyles.put(styleName, style); - } - - public KeyStyle getKeyStyle(TypedArray keyAttr, XmlPullParser parser) - throws XmlParseUtils.ParseException { - if (!keyAttr.hasValue(R.styleable.Keyboard_Key_keyStyle)) { - return mEmptyKeyStyle; - } - final String styleName = keyAttr.getString(R.styleable.Keyboard_Key_keyStyle); - if (!mStyles.containsKey(styleName)) { - throw new XmlParseUtils.ParseException("Unknown key style: " + styleName, parser); - } - return mStyles.get(styleName); - } -} |
