Add themeId to Keyboard

Change-Id: I6abdeaf41459406cf9021efdf5bb96232ba104c7
This commit is contained in:
Tadashi G. Takaoka 2011-09-28 12:08:48 +09:00
parent ffd156c77e
commit 63584323ca
11 changed files with 31 additions and 2 deletions

View file

@ -16,6 +16,7 @@
<resources> <resources>
<declare-styleable name="KeyboardTheme"> <declare-styleable name="KeyboardTheme">
<attr name="themeId" format="integer" />
<!-- Keyboard style --> <!-- Keyboard style -->
<attr name="keyboardStyle" format="reference" /> <attr name="keyboardStyle" format="reference" />
<!-- LatinKeyboard style --> <!-- LatinKeyboard style -->

View file

@ -16,6 +16,7 @@
<resources> <resources>
<style name="KeyboardTheme.HighContrast" parent="KeyboardIcons"> <style name="KeyboardTheme.HighContrast" parent="KeyboardIcons">
<item name="themeId">1</item>
<item name="keyboardStyle">@style/Keyboard</item> <item name="keyboardStyle">@style/Keyboard</item>
<item name="latinKeyboardStyle">@style/LatinKeyboard</item> <item name="latinKeyboardStyle">@style/LatinKeyboard</item>
<item name="keyboardViewStyle">@style/KeyboardView.HighContrast</item> <item name="keyboardViewStyle">@style/KeyboardView.HighContrast</item>

View file

@ -16,6 +16,7 @@
<resources> <resources>
<style name="KeyboardTheme" parent="KeyboardIcons"> <style name="KeyboardTheme" parent="KeyboardIcons">
<item name="themeId">0</item>
<item name="keyboardStyle">@style/Keyboard</item> <item name="keyboardStyle">@style/Keyboard</item>
<item name="latinKeyboardStyle">@style/LatinKeyboard</item> <item name="latinKeyboardStyle">@style/LatinKeyboard</item>
<item name="keyboardViewStyle">@style/KeyboardView</item> <item name="keyboardViewStyle">@style/KeyboardView</item>

View file

@ -16,6 +16,7 @@
<resources> <resources>
<style name="KeyboardTheme.Gingerbread" parent="KeyboardIcons"> <style name="KeyboardTheme.Gingerbread" parent="KeyboardIcons">
<item name="themeId">8</item>
<item name="keyboardStyle">@style/Keyboard.Gingerbread</item> <item name="keyboardStyle">@style/Keyboard.Gingerbread</item>
<item name="latinKeyboardStyle">@style/LatinKeyboard</item> <item name="latinKeyboardStyle">@style/LatinKeyboard</item>
<item name="keyboardViewStyle">@style/KeyboardView.Gingerbread</item> <item name="keyboardViewStyle">@style/KeyboardView.Gingerbread</item>

View file

@ -16,6 +16,7 @@
<resources> <resources>
<style name="KeyboardTheme.IceCreamSandwich" parent="KeyboardIcons.IceCreamSandwich"> <style name="KeyboardTheme.IceCreamSandwich" parent="KeyboardIcons.IceCreamSandwich">
<item name="themeId">5</item>
<item name="keyboardStyle">@style/Keyboard.IceCreamSandwich</item> <item name="keyboardStyle">@style/Keyboard.IceCreamSandwich</item>
<item name="latinKeyboardStyle">@style/LatinKeyboard.IceCreamSandwich</item> <item name="latinKeyboardStyle">@style/LatinKeyboard.IceCreamSandwich</item>
<item name="keyboardViewStyle">@style/KeyboardView.IceCreamSandwich</item> <item name="keyboardViewStyle">@style/KeyboardView.IceCreamSandwich</item>

View file

@ -16,6 +16,7 @@
<resources> <resources>
<style name="KeyboardTheme.Stone.Bold" parent="KeyboardIcons.Black"> <style name="KeyboardTheme.Stone.Bold" parent="KeyboardIcons.Black">
<item name="themeId">7</item>
<item name="keyboardStyle">@style/Keyboard.Stone</item> <item name="keyboardStyle">@style/Keyboard.Stone</item>
<item name="latinKeyboardStyle">@style/LatinKeyboard.Stone</item> <item name="latinKeyboardStyle">@style/LatinKeyboard.Stone</item>
<item name="keyboardViewStyle">@style/KeyboardView.Stone.Bold</item> <item name="keyboardViewStyle">@style/KeyboardView.Stone.Bold</item>

View file

@ -16,6 +16,7 @@
<resources> <resources>
<style name="KeyboardTheme.Stone" parent="KeyboardIcons.Black"> <style name="KeyboardTheme.Stone" parent="KeyboardIcons.Black">
<item name="themeId">6</item>
<item name="keyboardStyle">@style/Keyboard.Stone</item> <item name="keyboardStyle">@style/Keyboard.Stone</item>
<item name="latinKeyboardStyle">@style/LatinKeyboard.Stone</item> <item name="latinKeyboardStyle">@style/LatinKeyboard.Stone</item>
<item name="keyboardViewStyle">@style/KeyboardView.Stone</item> <item name="keyboardViewStyle">@style/KeyboardView.Stone</item>

View file

@ -84,6 +84,7 @@ public class Keyboard {
public static final int CODE_UNSPECIFIED = -99; public static final int CODE_UNSPECIFIED = -99;
public final KeyboardId mId; public final KeyboardId mId;
public final int mThemeId;
/** Total height of the keyboard, including the padding and keys */ /** Total height of the keyboard, including the padding and keys */
public final int mOccupiedHeight; public final int mOccupiedHeight;
@ -121,6 +122,7 @@ public class Keyboard {
public Keyboard(KeyboardParams params) { public Keyboard(KeyboardParams params) {
mId = params.mId; mId = params.mId;
mThemeId = params.mThemeId;
mOccupiedHeight = params.mOccupiedHeight; mOccupiedHeight = params.mOccupiedHeight;
mOccupiedWidth = params.mOccupiedWidth; mOccupiedWidth = params.mOccupiedWidth;
mMostCommonKeyHeight = params.mMostCommonKeyHeight; mMostCommonKeyHeight = params.mMostCommonKeyHeight;
@ -238,4 +240,17 @@ public class Keyboard {
public int[] getNearestKeys(int x, int y) { public int[] getNearestKeys(int x, int y) {
return mProximityInfo.getNearestKeys(x, y); return mProximityInfo.getNearestKeys(x, y);
} }
public static String themeName(int themeId) {
// This should be aligned with theme-*.xml resource files' themeId attribute.
switch (themeId) {
case 0: return "Basic";
case 1: return "BasicHighContrast";
case 5: return "IceCreamSandwich";
case 6: return "Stone";
case 7: return "StoneBold";
case 8: return "GingerBread";
default: return null;
}
}
} }

View file

@ -275,10 +275,12 @@ public class KeyboardSwitcher implements SharedPreferences.OnSharedPreferenceCha
if (DEBUG_CACHE) { if (DEBUG_CACHE) {
Log.d(TAG, "keyboard cache size=" + mKeyboardCache.size() + ": " Log.d(TAG, "keyboard cache size=" + mKeyboardCache.size() + ": "
+ ((ref == null) ? "LOAD" : "GCed") + " id=" + id); + ((ref == null) ? "LOAD" : "GCed") + " id=" + id
+ " theme=" + Keyboard.themeName(keyboard.mThemeId));
} }
} else if (DEBUG_CACHE) { } else if (DEBUG_CACHE) {
Log.d(TAG, "keyboard cache size=" + mKeyboardCache.size() + ": HIT id=" + id); Log.d(TAG, "keyboard cache size=" + mKeyboardCache.size() + ": HIT id=" + id
+ " theme=" + Keyboard.themeName(keyboard.mThemeId));
} }
keyboard.onAutoCorrectionStateChanged(mIsAutoCorrectionActive); keyboard.onAutoCorrectionStateChanged(mIsAutoCorrectionActive);

View file

@ -244,6 +244,10 @@ public class KeyboardBuilder<KP extends KeyboardParams> {
mParams = params; mParams = params;
final TypedArray a = context.obtainStyledAttributes(R.styleable.KeyboardTheme);
mParams.mThemeId = a.getInt(R.styleable.KeyboardTheme_themeId, 0);
a.recycle();
mParams.GRID_WIDTH = res.getInteger(R.integer.config_keyboard_grid_width); mParams.GRID_WIDTH = res.getInteger(R.integer.config_keyboard_grid_width);
mParams.GRID_HEIGHT = res.getInteger(R.integer.config_keyboard_grid_height); mParams.GRID_HEIGHT = res.getInteger(R.integer.config_keyboard_grid_height);
} }

View file

@ -31,6 +31,7 @@ import java.util.Set;
public class KeyboardParams { public class KeyboardParams {
public KeyboardId mId; public KeyboardId mId;
public int mThemeId;
/** Total height and width of the keyboard, including the paddings and keys */ /** Total height and width of the keyboard, including the paddings and keys */
public int mOccupiedHeight; public int mOccupiedHeight;