diff options
author | 2011-06-15 03:56:26 -0700 | |
---|---|---|
committer | 2011-06-15 03:56:26 -0700 | |
commit | 66bafe24f604033d4a379675c965ca0615b6aa66 (patch) | |
tree | aa17450e98f47fcc1084aefae9687613626b81d9 /java/src | |
parent | e968ad8ad11d364b501baedbcb8c92c3d4ea75f3 (diff) | |
parent | b7758d6f912093747d4b18fbc8d1dcd77c7d1f9b (diff) | |
download | latinime-66bafe24f604033d4a379675c965ca0615b6aa66.tar.gz latinime-66bafe24f604033d4a379675c965ca0615b6aa66.tar.xz latinime-66bafe24f604033d4a379675c965ca0615b6aa66.zip |
Merge "Make Keyboard aware of theme"
Diffstat (limited to 'java/src')
4 files changed, 34 insertions, 21 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/Keyboard.java b/java/src/com/android/inputmethod/keyboard/Keyboard.java index 267abccb3..77a4cde55 100644 --- a/java/src/com/android/inputmethod/keyboard/Keyboard.java +++ b/java/src/com/android/inputmethod/keyboard/Keyboard.java @@ -16,15 +16,16 @@ package com.android.inputmethod.keyboard; -import com.android.inputmethod.latin.R; - -import org.xmlpull.v1.XmlPullParserException; - import android.content.Context; import android.content.res.Resources; +import android.content.res.TypedArray; import android.graphics.drawable.Drawable; import android.util.Log; +import com.android.inputmethod.latin.R; + +import org.xmlpull.v1.XmlPullParserException; + import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; @@ -146,6 +147,8 @@ public class Keyboard { private final ProximityInfo mProximityInfo; + public final Drawable mPopupHintIcon; + /** * Creates a keyboard from the given xml key layout file. * @param context the application or service context @@ -171,8 +174,14 @@ public class Keyboard { mDefaultVerticalGap = 0; mDefaultHeight = mDefaultWidth; mId = id; - loadKeyboard(context, xmlLayoutResId); mProximityInfo = new ProximityInfo(GRID_WIDTH, GRID_HEIGHT); + + final TypedArray attrs = context.obtainStyledAttributes( + null, R.styleable.Keyboard, R.attr.keyboardStyle, R.style.Keyboard); + mPopupHintIcon = attrs.getDrawable(R.styleable.Keyboard_popupHintIcon); + attrs.recycle(); + + loadKeyboard(context, xmlLayoutResId); } public int getProximityInfo() { diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardParser.java b/java/src/com/android/inputmethod/keyboard/KeyboardParser.java index c2db62a1c..07166b1db 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyboardParser.java +++ b/java/src/com/android/inputmethod/keyboard/KeyboardParser.java @@ -16,12 +16,6 @@ package com.android.inputmethod.keyboard; -import com.android.inputmethod.compat.EditorInfoCompatUtils; -import com.android.inputmethod.latin.R; - -import org.xmlpull.v1.XmlPullParser; -import org.xmlpull.v1.XmlPullParserException; - import android.content.Context; import android.content.res.Resources; import android.content.res.TypedArray; @@ -31,6 +25,12 @@ import android.util.TypedValue; import android.util.Xml; import android.view.InflateException; +import com.android.inputmethod.compat.EditorInfoCompatUtils; +import com.android.inputmethod.latin.R; + +import org.xmlpull.v1.XmlPullParser; +import org.xmlpull.v1.XmlPullParserException; + import java.io.IOException; import java.util.Arrays; import java.util.List; diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java index 8e9c7ef7e..50c61ffae 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java +++ b/java/src/com/android/inputmethod/keyboard/KeyboardSwitcher.java @@ -202,7 +202,9 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha final Locale savedLocale = Utils.setSystemLocale(res, mSubtypeSwitcher.getInputLocale()); - keyboard = new LatinKeyboard(mInputMethodService, id, id.mWidth); + final Context themeContext = new ContextThemeWrapper(mInputMethodService, + KEYBOARD_THEMES[mThemeIndex]); + keyboard = new LatinKeyboard(themeContext, id, id.mWidth); if (id.mEnableShiftLock) { keyboard.enableShiftLock(); diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardView.java b/java/src/com/android/inputmethod/keyboard/KeyboardView.java index f8bce40b1..fa47bf7c1 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyboardView.java +++ b/java/src/com/android/inputmethod/keyboard/KeyboardView.java @@ -16,9 +16,6 @@ package com.android.inputmethod.keyboard; -import com.android.inputmethod.latin.LatinImeLogger; -import com.android.inputmethod.latin.R; - import android.content.Context; import android.content.pm.PackageManager; import android.content.res.Resources; @@ -50,6 +47,9 @@ import android.widget.LinearLayout; import android.widget.PopupWindow; import android.widget.TextView; +import com.android.inputmethod.latin.LatinImeLogger; +import com.android.inputmethod.latin.R; + import java.util.ArrayList; import java.util.HashMap; import java.util.WeakHashMap; @@ -176,10 +176,11 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { private final float KEY_LABEL_VERTICAL_ADJUSTMENT_FACTOR_CENTER = 0.45f; private final float KEY_LABEL_VERTICAL_PADDING_FACTOR = 1.60f; private final String KEY_LABEL_REFERENCE_CHAR = "H"; - private final int KEY_LABEL_OPTION_ALIGN_LEFT = 1; - private final int KEY_LABEL_OPTION_ALIGN_RIGHT = 2; - private final int KEY_LABEL_OPTION_ALIGN_BOTTOM = 8; - private final int KEY_LABEL_OPTION_FONT_NORMAL = 16; + private final int KEY_LABEL_OPTION_ALIGN_LEFT = 0x01; + private final int KEY_LABEL_OPTION_ALIGN_RIGHT = 0x02; + private final int KEY_LABEL_OPTION_ALIGN_BOTTOM = 0x08; + private final int KEY_LABEL_OPTION_FONT_NORMAL = 0x10; + private final int KEY_LABEL_OPTION_POPUP_HINT = 0x20; private final int mKeyLabelHorizontalPadding; private final UIHandler mHandler = new UIHandler(); @@ -762,14 +763,15 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { } // Draw hint icon. - if (key.mHintIcon != null) { + if (key.mHintIcon != null || (key.mLabelOption & KEY_LABEL_OPTION_POPUP_HINT) != 0) { final int drawableWidth = keyDrawWidth; final int drawableHeight = key.mHeight; final int drawableX = 0; final int drawableY = HINT_ICON_VERTICAL_ADJUSTMENT_PIXEL; Drawable hintIcon = (isManualTemporaryUpperCase && key.mManualTemporaryUpperCaseHintIcon != null) - ? key.mManualTemporaryUpperCaseHintIcon : key.mHintIcon; + ? key.mManualTemporaryUpperCaseHintIcon + : (key.mHintIcon != null ? key.mHintIcon : mKeyboard.mPopupHintIcon); drawIcon(canvas, hintIcon, drawableX, drawableY, drawableWidth, drawableHeight); if (DEBUG_SHOW_ALIGN) drawRectangle(canvas, drawableX, drawableY, drawableWidth, drawableHeight, |