Merge "Move themeId and touch correction data to Keyboard style"

This commit is contained in:
Tadashi G. Takaoka 2011-09-30 20:02:19 -07:00 committed by Android (Google) Code Review
commit aef4f906ff
9 changed files with 50 additions and 46 deletions

View file

@ -16,7 +16,6 @@
<resources>
<declare-styleable name="KeyboardTheme">
<attr name="themeId" format="integer" />
<!-- Keyboard style -->
<attr name="keyboardStyle" format="reference" />
<!-- LatinKeyboard style -->
@ -34,8 +33,6 @@
<attr name="moreSuggestionsViewStyle" format="reference" />
<attr name="suggestionBackgroundStyle" format="reference" />
<attr name="suggestionPreviewBackgroundStyle" format="reference" />
<!-- Touch position correction -->
<attr name="touchPositionCorrectionData" format="reference" />
</declare-styleable>
<declare-styleable name="KeyboardView">
@ -140,6 +137,9 @@
</declare-styleable>
<declare-styleable name="Keyboard">
<attr name="themeId" format="integer" />
<!-- Touch position correction -->
<attr name="touchPositionCorrectionData" format="reference" />
<!-- Default keyboard height -->
<attr name="keyboardHeight" format="dimension|fraction" />
<!-- Maximum keyboard height, in pixels or percentage of display height -->

View file

@ -17,6 +17,8 @@
<resources>
<!-- Theme "Basic" -->
<style name="Keyboard">
<item name="themeId">0</item>
<item name="touchPositionCorrectionData">@array/touch_position_correction_data_empty</item>
<item name="rowHeight">25%p</item>
<item name="keyboardHeight">@dimen/keyboardHeight</item>
<item name="maxKeyboardHeight">@fraction/maxKeyboardHeight</item>
@ -118,6 +120,12 @@
<item name="android:background">@drawable/suggestion_feedback_background</item>
</style>
<!-- Theme "Basic high contrast" -->
<style
name="Keyboard.HighContrast"
parent="Keyboard"
>
<item name="themeId">1</item>
</style>
<style
name="KeyboardView.HighContrast"
parent="KeyboardView"
@ -130,6 +138,7 @@
name="Keyboard.Stone"
parent="Keyboard"
>
<item name="themeId">6</item>
<item name="keyboardHeight">@dimen/keyboardHeight_stone</item>
<item name="keyboardTopPadding">@fraction/keyboard_top_padding_stone</item>
<item name="keyboardBottomPadding">@fraction/keyboard_bottom_padding_stone</item>
@ -173,6 +182,12 @@
<item name="shadowColor">#FFFFFFFF</item>
</style>
<!-- Theme "Stone bold" -->
<style
name="Keyboard.Stone.Bold"
parent="Keyboard.Stone"
>
<item name="themeId">7</item>
</style>
<style
name="KeyboardView.Stone.Bold"
parent="KeyboardView.Stone"
@ -184,6 +199,8 @@
name="Keyboard.Gingerbread"
parent="Keyboard"
>
<item name="themeId">8</item>
<item name="touchPositionCorrectionData">@array/touch_position_correction_data_gingerbread</item>
<item name="horizontalGap">@fraction/key_horizontal_gap_gb</item>
<item name="verticalGap">@fraction/key_bottom_gap_gb</item>
</style>
@ -214,10 +231,12 @@
name="Keyboard.IceCreamSandwich"
parent="Keyboard"
>
<item name="themeId">5</item>
<item name="keyboardTopPadding">@fraction/keyboard_top_padding_ics</item>
<item name="keyboardBottomPadding">@fraction/keyboard_bottom_padding_ics</item>
<item name="horizontalGap">@fraction/key_horizontal_gap_ics</item>
<item name="verticalGap">@fraction/key_bottom_gap_ics</item>
<item name="touchPositionCorrectionData">@array/touch_position_correction_data_ice_cream_sandwich</item>
</style>
<style
name="LatinKeyboard.IceCreamSandwich"

View file

@ -16,8 +16,7 @@
<resources>
<style name="KeyboardTheme.HighContrast" parent="KeyboardIcons">
<item name="themeId">1</item>
<item name="keyboardStyle">@style/Keyboard</item>
<item name="keyboardStyle">@style/Keyboard.HighContrast</item>
<item name="latinKeyboardStyle">@style/LatinKeyboard</item>
<item name="keyboardViewStyle">@style/KeyboardView.HighContrast</item>
<item name="miniKeyboardStyle">@style/MiniKeyboard</item>
@ -28,6 +27,5 @@
<item name="moreSuggestionsViewStyle">@style/MoreSuggestionsViewStyle</item>
<item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle</item>
<item name="suggestionPreviewBackgroundStyle">@style/SuggestionPreviewBackgroundStyle</item>
<item name="touchPositionCorrectionData">@array/touch_position_correction_data_empty</item>
</style>
</resources>

View file

@ -16,7 +16,6 @@
<resources>
<style name="KeyboardTheme" parent="KeyboardIcons">
<item name="themeId">0</item>
<item name="keyboardStyle">@style/Keyboard</item>
<item name="latinKeyboardStyle">@style/LatinKeyboard</item>
<item name="keyboardViewStyle">@style/KeyboardView</item>
@ -28,6 +27,5 @@
<item name="moreSuggestionsViewStyle">@style/MoreSuggestionsViewStyle</item>
<item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle</item>
<item name="suggestionPreviewBackgroundStyle">@style/SuggestionPreviewBackgroundStyle</item>
<item name="touchPositionCorrectionData">@array/touch_position_correction_data_empty</item>
</style>
</resources>

View file

@ -16,7 +16,6 @@
<resources>
<style name="KeyboardTheme.Gingerbread" parent="KeyboardIcons">
<item name="themeId">8</item>
<item name="keyboardStyle">@style/Keyboard.Gingerbread</item>
<item name="latinKeyboardStyle">@style/LatinKeyboard</item>
<item name="keyboardViewStyle">@style/KeyboardView.Gingerbread</item>
@ -28,6 +27,5 @@
<item name="moreSuggestionsViewStyle">@style/MoreSuggestionsViewStyle</item>
<item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle</item>
<item name="suggestionPreviewBackgroundStyle">@style/SuggestionPreviewBackgroundStyle</item>
<item name="touchPositionCorrectionData">@array/touch_position_correction_data_gingerbread</item>
</style>
</resources>

View file

@ -16,7 +16,6 @@
<resources>
<style name="KeyboardTheme.IceCreamSandwich" parent="KeyboardIcons.IceCreamSandwich">
<item name="themeId">5</item>
<item name="keyboardStyle">@style/Keyboard.IceCreamSandwich</item>
<item name="latinKeyboardStyle">@style/LatinKeyboard.IceCreamSandwich</item>
<item name="keyboardViewStyle">@style/KeyboardView.IceCreamSandwich</item>
@ -28,6 +27,5 @@
<item name="moreSuggestionsViewStyle">@style/MoreSuggestionsViewStyle.IceCreamSandwich</item>
<item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle.IceCreamSandwich</item>
<item name="suggestionPreviewBackgroundStyle">@style/SuggestionPreviewBackgroundStyle.IceCreamSandwich</item>
<item name="touchPositionCorrectionData">@array/touch_position_correction_data_ice_cream_sandwich</item>
</style>
</resources>

View file

@ -16,7 +16,6 @@
<resources>
<style name="KeyboardTheme.Stone.Bold" parent="KeyboardIcons.Black">
<item name="themeId">7</item>
<item name="keyboardStyle">@style/Keyboard.Stone</item>
<item name="latinKeyboardStyle">@style/LatinKeyboard.Stone</item>
<item name="keyboardViewStyle">@style/KeyboardView.Stone.Bold</item>
@ -28,6 +27,5 @@
<item name="moreSuggestionsViewStyle">@style/MoreSuggestionsViewStyle</item>
<item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle</item>
<item name="suggestionPreviewBackgroundStyle">@style/SuggestionPreviewBackgroundStyle</item>
<item name="touchPositionCorrectionData">@array/touch_position_correction_data_empty</item>
</style>
</resources>

View file

@ -16,7 +16,6 @@
<resources>
<style name="KeyboardTheme.Stone" parent="KeyboardIcons.Black">
<item name="themeId">6</item>
<item name="keyboardStyle">@style/Keyboard.Stone</item>
<item name="latinKeyboardStyle">@style/LatinKeyboard.Stone</item>
<item name="keyboardViewStyle">@style/KeyboardView.Stone</item>
@ -28,6 +27,5 @@
<item name="moreSuggestionsViewStyle">@style/MoreSuggestionsViewStyle</item>
<item name="suggestionBackgroundStyle">@style/SuggestionBackgroundStyle</item>
<item name="suggestionPreviewBackgroundStyle">@style/SuggestionPreviewBackgroundStyle</item>
<item name="touchPositionCorrectionData">@array/touch_position_correction_data_empty</item>
</style>
</resources>

View file

@ -247,54 +247,50 @@ public class KeyboardBuilder<KP extends KeyboardParams> {
mParams = params;
final TypedArray a = context.obtainStyledAttributes(R.styleable.KeyboardTheme);
mParams.mThemeId = a.getInt(R.styleable.KeyboardTheme_themeId, 0);
a.recycle();
setTouchPositionCorrectionData(context, params);
if (!setTouchPositionCorrectionData(context)) {
// In the regression test, setTouchPositionCorrectionData() fails
mParams.mTouchPositionCorrectionXs = null;
mParams.mTouchPositionCorrectionYs = null;
mParams.mTouchPositionCorrectionRadii = null;
}
mParams.GRID_WIDTH = res.getInteger(R.integer.config_keyboard_grid_width);
mParams.GRID_HEIGHT = res.getInteger(R.integer.config_keyboard_grid_height);
params.GRID_WIDTH = res.getInteger(R.integer.config_keyboard_grid_width);
params.GRID_HEIGHT = res.getInteger(R.integer.config_keyboard_grid_height);
}
private boolean setTouchPositionCorrectionData(Context context) {
final TypedArray a = context.obtainStyledAttributes(R.styleable.KeyboardTheme);
final int resourceId = a.getResourceId(
R.styleable.KeyboardTheme_touchPositionCorrectionData, 0);
private static void setTouchPositionCorrectionData(Context context, KeyboardParams params) {
params.mTouchPositionCorrectionXs = null;
params.mTouchPositionCorrectionYs = null;
params.mTouchPositionCorrectionRadii = null;
final TypedArray a = context.obtainStyledAttributes(R.styleable.Keyboard);
params.mThemeId = a.getInt(R.styleable.Keyboard_themeId, 0);
final int resourceId = a.getResourceId(R.styleable.Keyboard_touchPositionCorrectionData, 0);
if (resourceId == 0) {
// In the regression test, we cannot use theme resources
// TODO: Fix this
return false;
if (LatinImeLogger.sDBG)
throw new RuntimeException("touchPositionCorrectionData is not defined");
return;
}
final String[] data = context.getResources().getStringArray(resourceId);
a.recycle();
final int dataLength = data.length;
if (dataLength % TOUCH_POSITION_CORRECTION_RECORD_SIZE != 0) {
if (LatinImeLogger.sDBG) {
if (LatinImeLogger.sDBG)
throw new RuntimeException("the size of touch position correction data is invalid");
}
return false;
return;
}
final int length = dataLength / TOUCH_POSITION_CORRECTION_RECORD_SIZE;
mParams.mTouchPositionCorrectionXs = new float[length];
mParams.mTouchPositionCorrectionYs = new float[length];
mParams.mTouchPositionCorrectionRadii = new float[length];
params.mTouchPositionCorrectionXs = new float[length];
params.mTouchPositionCorrectionYs = new float[length];
params.mTouchPositionCorrectionRadii = new float[length];
try {
for (int i = 0; i < dataLength; ++i) {
final int type = i % TOUCH_POSITION_CORRECTION_RECORD_SIZE;
final int index = i / TOUCH_POSITION_CORRECTION_RECORD_SIZE;
final float value = Float.parseFloat(data[i]);
if (type == 0) {
mParams.mTouchPositionCorrectionXs[index] = value;
params.mTouchPositionCorrectionXs[index] = value;
} else if (type == 1) {
mParams.mTouchPositionCorrectionYs[index] = value;
params.mTouchPositionCorrectionYs[index] = value;
} else {
mParams.mTouchPositionCorrectionRadii[index] = value;
params.mTouchPositionCorrectionRadii[index] = value;
}
}
} catch (NumberFormatException e) {
@ -302,9 +298,10 @@ public class KeyboardBuilder<KP extends KeyboardParams> {
throw new RuntimeException(
"the number format for touch position correction data is invalid");
}
return false;
params.mTouchPositionCorrectionXs = null;
params.mTouchPositionCorrectionYs = null;
params.mTouchPositionCorrectionRadii = null;
}
return true;
}
public KeyboardBuilder<KP> load(KeyboardId id) {