Merge "Override the keyboard height per device"
This commit is contained in:
commit
ad29273553
14 changed files with 213 additions and 25 deletions
|
@ -19,8 +19,9 @@
|
|||
-->
|
||||
|
||||
<resources>
|
||||
<!-- keyboardHeight = key_height*4 + key_bottom_gap*3, key_height=0.260in -->
|
||||
<dimen name="keyboardHeight">1.100in</dimen>
|
||||
<!-- Preferable keyboard height in absolute scale: 1.100in -->
|
||||
<!-- This keyboardHeight value should match with keyboard-heights.xml -->
|
||||
<dimen name="keyboardHeight">176.0dp</dimen>
|
||||
<fraction name="minKeyboardHeight">45%p</fraction>
|
||||
<!-- key_height + key_bottom_gap = popup_key_height -->
|
||||
<!-- <dimen name="key_height">0.260in</dimen>-->
|
||||
|
@ -31,7 +32,6 @@
|
|||
<fraction name="key_bottom_gap">4.330%p</fraction>
|
||||
<fraction name="key_horizontal_gap">0.405%p</fraction>
|
||||
|
||||
<dimen name="keyboardHeight_stone">0.984in</dimen>
|
||||
<fraction name="key_bottom_gap_stone">5.010%p</fraction>
|
||||
<fraction name="key_horizontal_gap_stone">1.159%p</fraction>
|
||||
|
||||
|
|
34
java/res/values-land/keyboard-heights.xml
Normal file
34
java/res/values-land/keyboard-heights.xml
Normal file
|
@ -0,0 +1,34 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
/*
|
||||
**
|
||||
** Copyright 2012, 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.
|
||||
*/
|
||||
-->
|
||||
|
||||
<!-- Preferable keyboard height in absolute scale: 1.100in -->
|
||||
<resources>
|
||||
<!-- Build.HARDWARE,keyboard_height_in_dp -->
|
||||
<string-array name="keyboard_heights" translatable="false">
|
||||
<!-- Droid -->
|
||||
<item>sholes,194.3333</item>
|
||||
<!-- Nexus One -->
|
||||
<item>mahimahi,186.2667</item>
|
||||
<!-- Nexus S -->
|
||||
<item>herring,171.9385</item>
|
||||
<!-- Galaxy Nexus -->
|
||||
<item>tuna,173.4207</item>
|
||||
</string-array>
|
||||
</resources>
|
|
@ -19,8 +19,9 @@
|
|||
-->
|
||||
|
||||
<resources>
|
||||
<!-- keyboardHeight = key_height*4 + key_bottom_gap*3 -->
|
||||
<dimen name="keyboardHeight">45.0mm</dimen>
|
||||
<!-- Preferable keyboard height in absolute scale: 45.0mm -->
|
||||
<!-- This keyboardHeight value should match with keyboard-heights.xml -->
|
||||
<dimen name="keyboardHeight">283.5dp</dimen>
|
||||
<fraction name="minKeyboardHeight">45%p</fraction>
|
||||
|
||||
<fraction name="keyboard_top_padding">2.444%p</fraction>
|
||||
|
@ -28,7 +29,6 @@
|
|||
<fraction name="key_bottom_gap">4.911%p</fraction>
|
||||
<fraction name="key_horizontal_gap">1.284%p</fraction>
|
||||
|
||||
<dimen name="keyboardHeight_stone">45.0mm</dimen>
|
||||
<fraction name="key_bottom_gap_stone">4.355%p</fraction>
|
||||
<fraction name="key_horizontal_gap_stone">1.505%p</fraction>
|
||||
|
||||
|
|
28
java/res/values-sw600dp-land/keyboard-heights.xml
Normal file
28
java/res/values-sw600dp-land/keyboard-heights.xml
Normal file
|
@ -0,0 +1,28 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
/*
|
||||
**
|
||||
** Copyright 2012, 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.
|
||||
*/
|
||||
-->
|
||||
|
||||
<!-- Preferable keyboard height in absolute scale: 45.0mm -->
|
||||
<resources>
|
||||
<!-- Build.HARDWARE,keyboard_height_in_dp -->
|
||||
<string-array name="keyboard_heights" translatable="false">
|
||||
<!-- Xoom -->
|
||||
<item>stingray,265.4378</item>
|
||||
</string-array>
|
||||
</resources>
|
|
@ -19,8 +19,9 @@
|
|||
-->
|
||||
|
||||
<resources>
|
||||
<!-- keyboardHeight = key_height*4 + key_bottom_gap*3 -->
|
||||
<dimen name="keyboardHeight">48.0mm</dimen>
|
||||
<!-- Preferable keyboard height in absolute scale: 48.0mm -->
|
||||
<!-- This keyboardHeight value should match with keyboard-heights.xml -->
|
||||
<dimen name="keyboardHeight">302.4dp</dimen>
|
||||
<fraction name="maxKeyboardHeight">50%p</fraction>
|
||||
<fraction name="minKeyboardHeight">-35.0%p</fraction>
|
||||
|
||||
|
@ -31,7 +32,6 @@
|
|||
<fraction name="key_bottom_gap">3.750%p</fraction>
|
||||
<fraction name="key_horizontal_gap">1.857%p</fraction>
|
||||
|
||||
<dimen name="keyboardHeight_stone">48.0mm</dimen>
|
||||
<fraction name="key_bottom_gap_stone">3.75%p</fraction>
|
||||
<fraction name="key_horizontal_gap_stone">1.602%p</fraction>
|
||||
|
||||
|
|
28
java/res/values-sw600dp/keyboard-heights.xml
Normal file
28
java/res/values-sw600dp/keyboard-heights.xml
Normal file
|
@ -0,0 +1,28 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
/*
|
||||
**
|
||||
** Copyright 2012, 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.
|
||||
*/
|
||||
-->
|
||||
|
||||
<!-- Preferable keyboard height in absolute scale: 48.0mm -->
|
||||
<resources>
|
||||
<!-- Build.HARDWARE,keyboard_height_in_dp -->
|
||||
<string-array name="keyboard_heights" translatable="false">
|
||||
<!-- Xoom -->
|
||||
<item>stingray,283.1337</item>
|
||||
</string-array>
|
||||
</resources>
|
|
@ -19,8 +19,9 @@
|
|||
-->
|
||||
|
||||
<resources>
|
||||
<!-- keyboardHeight = key_height*4 + key_bottom_gap*3, key_height=14.5mm -->
|
||||
<dimen name="keyboardHeight">58.0mm</dimen>
|
||||
<!-- Preferable keyboard height in absolute scale: 58.0mm -->
|
||||
<!-- This keyboardHeight value should match with keyboard-heights.xml -->
|
||||
<dimen name="keyboardHeight">365.4dp</dimen>
|
||||
<fraction name="minKeyboardHeight">45%p</fraction>
|
||||
|
||||
<fraction name="keyboard_top_padding">1.896%p</fraction>
|
||||
|
@ -29,7 +30,6 @@
|
|||
<fraction name="key_bottom_gap">4.103%p</fraction>
|
||||
<fraction name="key_horizontal_gap">1.034%p</fraction>
|
||||
|
||||
<dimen name="keyboardHeight_stone">58.0mm</dimen>
|
||||
<fraction name="key_bottom_gap_stone">3.379%p</fraction>
|
||||
<fraction name="key_horizontal_gap_stone">1.062%p</fraction>
|
||||
|
||||
|
|
28
java/res/values-sw768dp-land/keyboard-heights.xml
Normal file
28
java/res/values-sw768dp-land/keyboard-heights.xml
Normal file
|
@ -0,0 +1,28 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
/*
|
||||
**
|
||||
** Copyright 2012, 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.
|
||||
*/
|
||||
-->
|
||||
|
||||
<!-- Preferable keyboard height in absolute scale: 58.0mm -->
|
||||
<resources>
|
||||
<!-- Build.HARDWARE,keyboard_height_in_dp -->
|
||||
<string-array name="keyboard_heights" translatable="false">
|
||||
<!-- Xoom -->
|
||||
<item>stingray,342.1198</item>
|
||||
</string-array>
|
||||
</resources>
|
|
@ -19,8 +19,9 @@
|
|||
-->
|
||||
|
||||
<resources>
|
||||
<!-- keyboardHeight = key_height*4 + key_bottom_gap*3, key_height=12mm -->
|
||||
<dimen name="keyboardHeight">48.0mm</dimen>
|
||||
<!-- Preferable keyboard height in absolute scale: 48.0mm -->
|
||||
<!-- This keyboardHeight value should match with keyboard-heights.xml -->
|
||||
<dimen name="keyboardHeight">302.4dp</dimen>
|
||||
<fraction name="maxKeyboardHeight">50%p</fraction>
|
||||
<fraction name="minKeyboardHeight">-35.0%p</fraction>
|
||||
|
||||
|
@ -30,7 +31,6 @@
|
|||
<fraction name="key_bottom_gap">4.270%p</fraction>
|
||||
<fraction name="key_horizontal_gap">1.551%p</fraction>
|
||||
|
||||
<dimen name="keyboardHeight_stone">48.0mm</dimen>
|
||||
<fraction name="key_bottom_gap_stone">3.75%p</fraction>
|
||||
<fraction name="key_horizontal_gap_stone">1.059%p</fraction>
|
||||
|
||||
|
|
28
java/res/values-sw768dp/keyboard-heights.xml
Normal file
28
java/res/values-sw768dp/keyboard-heights.xml
Normal file
|
@ -0,0 +1,28 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
/*
|
||||
**
|
||||
** Copyright 2012, 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.
|
||||
*/
|
||||
-->
|
||||
|
||||
<!-- Preferable keyboard height in absolute scale: 48.0mm -->
|
||||
<resources>
|
||||
<!-- Build.HARDWARE,keyboard_height_in_dp -->
|
||||
<string-array name="keyboard_heights" translatable="false">
|
||||
<!-- Xoom -->
|
||||
<item>stingray,283.1337</item>
|
||||
</string-array>
|
||||
</resources>
|
|
@ -19,8 +19,9 @@
|
|||
-->
|
||||
|
||||
<resources>
|
||||
<!-- keyboardHeight = row_height*4 + key_bottom_gap*3 -->
|
||||
<dimen name="keyboardHeight">1.285in</dimen>
|
||||
<!-- Preferable keyboard height in absolute scale: 1.285in -->
|
||||
<!-- This keyboardHeight value should match with keyboard-heights.xml -->
|
||||
<dimen name="keyboardHeight">205.6dp</dimen>
|
||||
<fraction name="maxKeyboardHeight">50%p</fraction>
|
||||
<fraction name="minKeyboardHeight">-61.8%p</fraction>
|
||||
|
||||
|
@ -35,7 +36,6 @@
|
|||
<fraction name="key_bottom_gap">6.250%p</fraction>
|
||||
<fraction name="key_horizontal_gap">1.352%p</fraction>
|
||||
|
||||
<dimen name="keyboardHeight_stone">1.317in</dimen>
|
||||
<fraction name="keyboard_top_padding_stone">1.556%p</fraction>
|
||||
<fraction name="keyboard_bottom_padding_stone">0.778%p</fraction>
|
||||
<fraction name="key_bottom_gap_stone">7.506%p</fraction>
|
||||
|
|
34
java/res/values/keyboard-heights.xml
Normal file
34
java/res/values/keyboard-heights.xml
Normal file
|
@ -0,0 +1,34 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
/*
|
||||
**
|
||||
** Copyright 2012, 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.
|
||||
*/
|
||||
-->
|
||||
|
||||
<!-- Preferable keyboard height in absolute scale: 1.285in -->
|
||||
<resources>
|
||||
<!-- Build.HARDWARE,keyboard_height_in_dp -->
|
||||
<string-array name="keyboard_heights" translatable="false">
|
||||
<!-- Droid -->
|
||||
<item>sholes,227.0167</item>
|
||||
<!-- Nexus One -->
|
||||
<item>mahimahi,217.5932</item>
|
||||
<!-- Nexus S -->
|
||||
<item>herring,200.8554</item>
|
||||
<!-- Galaxy Nexus -->
|
||||
<item>tuna,202.5869</item>
|
||||
</string-array>
|
||||
</resources>
|
|
@ -173,7 +173,6 @@
|
|||
>
|
||||
<!-- This should be aligned with KeyboardSwitcher.KEYBOARD_THEMES[] -->
|
||||
<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>
|
||||
<item name="horizontalGap">@fraction/key_horizontal_gap_stone</item>
|
||||
|
|
|
@ -31,6 +31,7 @@ import com.android.inputmethod.keyboard.internal.KeyStyles;
|
|||
import com.android.inputmethod.keyboard.internal.KeyboardIconsSet;
|
||||
import com.android.inputmethod.latin.LatinImeLogger;
|
||||
import com.android.inputmethod.latin.R;
|
||||
import com.android.inputmethod.latin.Utils;
|
||||
import com.android.inputmethod.latin.XmlParseUtils;
|
||||
|
||||
import org.xmlpull.v1.XmlPullParser;
|
||||
|
@ -715,22 +716,30 @@ public class Keyboard {
|
|||
R.styleable.Keyboard_Key);
|
||||
try {
|
||||
final int displayHeight = mDisplayMetrics.heightPixels;
|
||||
final int keyboardHeight = (int)keyboardAttr.getDimension(
|
||||
R.styleable.Keyboard_keyboardHeight, displayHeight / 2);
|
||||
final int maxKeyboardHeight = (int)getDimensionOrFraction(keyboardAttr,
|
||||
final String keyboardHeightString = Utils.getDeviceOverrideValue(
|
||||
mResources, R.array.keyboard_heights, null);
|
||||
final float keyboardHeight;
|
||||
if (keyboardHeightString != null) {
|
||||
keyboardHeight = Float.parseFloat(keyboardHeightString)
|
||||
* mDisplayMetrics.density;
|
||||
} else {
|
||||
keyboardHeight = keyboardAttr.getDimension(
|
||||
R.styleable.Keyboard_keyboardHeight, displayHeight / 2);
|
||||
}
|
||||
final float maxKeyboardHeight = getDimensionOrFraction(keyboardAttr,
|
||||
R.styleable.Keyboard_maxKeyboardHeight, displayHeight, displayHeight / 2);
|
||||
int minKeyboardHeight = (int)getDimensionOrFraction(keyboardAttr,
|
||||
float minKeyboardHeight = getDimensionOrFraction(keyboardAttr,
|
||||
R.styleable.Keyboard_minKeyboardHeight, displayHeight, displayHeight / 2);
|
||||
if (minKeyboardHeight < 0) {
|
||||
// Specified fraction was negative, so it should be calculated against display
|
||||
// width.
|
||||
minKeyboardHeight = -(int)getDimensionOrFraction(keyboardAttr,
|
||||
minKeyboardHeight = -getDimensionOrFraction(keyboardAttr,
|
||||
R.styleable.Keyboard_minKeyboardHeight, displayWidth, displayWidth / 2);
|
||||
}
|
||||
final Params params = mParams;
|
||||
// Keyboard height will not exceed maxKeyboardHeight and will not be less than
|
||||
// minKeyboardHeight.
|
||||
params.mOccupiedHeight = Math.max(
|
||||
params.mOccupiedHeight = (int)Math.max(
|
||||
Math.min(keyboardHeight, maxKeyboardHeight), minKeyboardHeight);
|
||||
params.mOccupiedWidth = params.mId.mWidth;
|
||||
params.mTopPadding = (int)getDimensionOrFraction(keyboardAttr,
|
||||
|
|
Loading…
Reference in a new issue