diff options
Diffstat (limited to 'java')
-rw-r--r-- | java/res/values/attrs.xml | 6 | ||||
-rw-r--r-- | java/res/values/styles.xml | 19 | ||||
-rw-r--r-- | java/res/values/themes-basic-highcontrast.xml | 4 | ||||
-rw-r--r-- | java/res/values/themes-basic.xml | 2 | ||||
-rw-r--r-- | java/res/values/themes-gingerbread.xml | 2 | ||||
-rw-r--r-- | java/res/values/themes-ics.xml | 2 | ||||
-rw-r--r-- | java/res/values/themes-stone-bold.xml | 2 | ||||
-rw-r--r-- | java/res/values/themes-stone.xml | 2 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java | 57 |
9 files changed, 50 insertions, 46 deletions
diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml index 34ce527f1..4dfa5ab97 100644 --- a/java/res/values/attrs.xml +++ b/java/res/values/attrs.xml @@ -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 --> diff --git a/java/res/values/styles.xml b/java/res/values/styles.xml index c6ea2a5f8..30c0e5a38 100644 --- a/java/res/values/styles.xml +++ b/java/res/values/styles.xml @@ -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> @@ -119,6 +121,12 @@ </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> @@ -174,6 +183,12 @@ </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" diff --git a/java/res/values/themes-basic-highcontrast.xml b/java/res/values/themes-basic-highcontrast.xml index bc3c84706..abb7c8057 100644 --- a/java/res/values/themes-basic-highcontrast.xml +++ b/java/res/values/themes-basic-highcontrast.xml @@ -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> diff --git a/java/res/values/themes-basic.xml b/java/res/values/themes-basic.xml index 29cb9cc7d..ff9fed55f 100644 --- a/java/res/values/themes-basic.xml +++ b/java/res/values/themes-basic.xml @@ -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> diff --git a/java/res/values/themes-gingerbread.xml b/java/res/values/themes-gingerbread.xml index c4a0f804a..be853eb0f 100644 --- a/java/res/values/themes-gingerbread.xml +++ b/java/res/values/themes-gingerbread.xml @@ -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> diff --git a/java/res/values/themes-ics.xml b/java/res/values/themes-ics.xml index dd2b6a334..618aaed79 100644 --- a/java/res/values/themes-ics.xml +++ b/java/res/values/themes-ics.xml @@ -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> diff --git a/java/res/values/themes-stone-bold.xml b/java/res/values/themes-stone-bold.xml index 6e864bed0..fdf9c51f5 100644 --- a/java/res/values/themes-stone-bold.xml +++ b/java/res/values/themes-stone-bold.xml @@ -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> diff --git a/java/res/values/themes-stone.xml b/java/res/values/themes-stone.xml index 64c557035..cb3edc58f 100644 --- a/java/res/values/themes-stone.xml +++ b/java/res/values/themes-stone.xml @@ -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> diff --git a/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java b/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java index 46836da67..3cdde09a9 100644 --- a/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java +++ b/java/src/com/android/inputmethod/keyboard/internal/KeyboardBuilder.java @@ -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(); - - if (!setTouchPositionCorrectionData(context)) { - // In the regression test, setTouchPositionCorrectionData() fails - mParams.mTouchPositionCorrectionXs = null; - mParams.mTouchPositionCorrectionYs = null; - mParams.mTouchPositionCorrectionRadii = null; - } + setTouchPositionCorrectionData(context, params); - 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) { |