Loading java/res/drawable/keyboard_key_feedback_left_ics.xml 0 → 100644 +21 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <!-- Copyright (C) 2011 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. --> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_long_pressable="true" android:drawable="@drawable/keyboard_key_feedback_left_more_background_holo" /> <item android:drawable="@drawable/keyboard_key_feedback_left_background_holo" /> </selector> java/res/drawable/keyboard_key_feedback_right_ics.xml 0 → 100644 +21 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <!-- Copyright (C) 2011 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. --> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_long_pressable="true" android:drawable="@drawable/keyboard_key_feedback_right_more_background_holo" /> <item android:drawable="@drawable/keyboard_key_feedback_right_background_holo" /> </selector> java/res/values/attrs.xml +4 −0 Original line number Diff line number Diff line Loading @@ -68,6 +68,10 @@ <attr name="keyPreviewLayout" format="reference" /> <!-- The background for key press feedback. --> <attr name="keyPreviewBackground" format="reference" /> <!-- The background for the left edge key press feedback. --> <attr name="keyPreviewLeftBackground" format="reference" /> <!-- The background for the right edge key press feedback. --> <attr name="keyPreviewRightBackground" format="reference" /> <!-- The background for spacebar press feedback. --> <attr name="keyPreviewSpacebarBackground" format="reference" /> <!-- The text color for key press feedback. --> Loading java/res/values/styles.xml +4 −0 Original line number Diff line number Diff line Loading @@ -51,6 +51,8 @@ <item name="keyUppercaseLetterActivatedColor">#CCE0E4E5</item> <item name="keyPreviewLayout">@layout/key_preview</item> <item name="keyPreviewBackground">@drawable/keyboard_key_feedback</item> <item name="keyPreviewLeftBackground">@null</item> <item name="keyPreviewRightBackground">@null</item> <item name="keyPreviewSpacebarBackground">@drawable/keyboard_key_feedback</item> <item name="keyPreviewTextColor">#FFFFFFFF</item> <item name="keyPreviewOffset">@dimen/key_preview_offset</item> Loading Loading @@ -152,6 +154,8 @@ <item name="keyUppercaseLetterInactivatedColor">#66E0E4E5</item> <item name="keyUppercaseLetterActivatedColor">#FFFFFFFF</item> <item name="keyPreviewBackground">@drawable/keyboard_key_feedback_ics</item> <item name="keyPreviewLeftBackground">@drawable/keyboard_key_feedback_left_ics</item> <item name="keyPreviewRightBackground">@drawable/keyboard_key_feedback_right_ics</item> <item name="keyPreviewSpacebarBackground">@drawable/transparent</item> <item name="keyPreviewTextColor">#FFFFFFFF</item> <item name="keyPreviewHeight">@dimen/key_preview_height_ics</item> Loading java/src/com/android/inputmethod/keyboard/KeyboardView.java +20 −9 Original line number Diff line number Diff line Loading @@ -118,6 +118,8 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { private final float mKeyHysteresisDistance; private final float mVerticalCorrection; private final Drawable mPreviewBackground; private final Drawable mPreviewLeftBackground; private final Drawable mPreviewRightBackground; private final Drawable mPreviewSpacebarBackground; private final int mPreviewTextColor; private final float mPreviewTextRatio; Loading Loading @@ -203,6 +205,9 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { private static final String KEY_LABEL_REFERENCE_CHAR = "M"; private final int mKeyLabelHorizontalPadding; private static final int MEASURESPEC_UNSPECIFIED = MeasureSpec.makeMeasureSpec( 0, MeasureSpec.UNSPECIFIED); private final UIHandler mHandler = new UIHandler(this); public static class UIHandler extends StaticInnerHandlerWrapper<KeyboardView> { Loading Loading @@ -354,6 +359,8 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { mShowKeyPreviewPopup = false; } mPreviewBackground = a.getDrawable(R.styleable.KeyboardView_keyPreviewBackground); mPreviewLeftBackground = a.getDrawable(R.styleable.KeyboardView_keyPreviewLeftBackground); mPreviewRightBackground = a.getDrawable(R.styleable.KeyboardView_keyPreviewRightBackground); mPreviewSpacebarBackground = a.getDrawable( R.styleable.KeyboardView_keyPreviewSpacebarBackground); mPreviewOffset = a.getDimensionPixelOffset(R.styleable.KeyboardView_keyPreviewOffset, 0); Loading Loading @@ -1016,21 +1023,25 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { } else { previewText.setBackgroundDrawable(mPreviewBackground); } // Set the preview background state previewText.getBackground().setState( key.mPopupCharacters != null ? LONG_PRESSABLE_STATE_SET : EMPTY_STATE_SET); previewText.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); previewText.measure(MEASURESPEC_UNSPECIFIED, MEASURESPEC_UNSPECIFIED); final int previewWidth = Math.max(previewText.getMeasuredWidth(), keyDrawWidth + previewText.getPaddingLeft() + previewText.getPaddingRight()); final int previewHeight = mPreviewHeight; getLocationInWindow(mCoordinates); final int previewX = keyDrawX - (previewWidth - keyDrawWidth) / 2 + mCoordinates[0]; int previewX = keyDrawX - (previewWidth - keyDrawWidth) / 2 + mCoordinates[0]; final int previewY = key.mY - previewHeight + mCoordinates[1] + mPreviewOffset; if (previewX < 0 && mPreviewLeftBackground != null) { previewText.setBackgroundDrawable(mPreviewLeftBackground); previewX = 0; } else if (previewX + previewWidth > getWidth() && mPreviewRightBackground != null) { previewText.setBackgroundDrawable(mPreviewRightBackground); previewX = getWidth() - previewWidth; } // Place the key preview. // TODO: Adjust position of key previews which touch screen edges // Set the preview background state previewText.getBackground().setState( key.mPopupCharacters != null ? LONG_PRESSABLE_STATE_SET : EMPTY_STATE_SET); FrameLayoutCompatUtils.placeViewAt( previewText, previewX, previewY, previewWidth, previewHeight); previewText.setVisibility(VISIBLE); Loading Loading @@ -1147,7 +1158,7 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { miniKeyboardView.setKeyboard(keyboard); container.measure(MeasureSpec.makeMeasureSpec(getWidth(), MeasureSpec.AT_MOST), MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); MEASURESPEC_UNSPECIFIED); return miniKeyboardView; } Loading Loading
java/res/drawable/keyboard_key_feedback_left_ics.xml 0 → 100644 +21 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <!-- Copyright (C) 2011 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. --> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_long_pressable="true" android:drawable="@drawable/keyboard_key_feedback_left_more_background_holo" /> <item android:drawable="@drawable/keyboard_key_feedback_left_background_holo" /> </selector>
java/res/drawable/keyboard_key_feedback_right_ics.xml 0 → 100644 +21 −0 Original line number Diff line number Diff line <?xml version="1.0" encoding="utf-8"?> <!-- Copyright (C) 2011 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. --> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_long_pressable="true" android:drawable="@drawable/keyboard_key_feedback_right_more_background_holo" /> <item android:drawable="@drawable/keyboard_key_feedback_right_background_holo" /> </selector>
java/res/values/attrs.xml +4 −0 Original line number Diff line number Diff line Loading @@ -68,6 +68,10 @@ <attr name="keyPreviewLayout" format="reference" /> <!-- The background for key press feedback. --> <attr name="keyPreviewBackground" format="reference" /> <!-- The background for the left edge key press feedback. --> <attr name="keyPreviewLeftBackground" format="reference" /> <!-- The background for the right edge key press feedback. --> <attr name="keyPreviewRightBackground" format="reference" /> <!-- The background for spacebar press feedback. --> <attr name="keyPreviewSpacebarBackground" format="reference" /> <!-- The text color for key press feedback. --> Loading
java/res/values/styles.xml +4 −0 Original line number Diff line number Diff line Loading @@ -51,6 +51,8 @@ <item name="keyUppercaseLetterActivatedColor">#CCE0E4E5</item> <item name="keyPreviewLayout">@layout/key_preview</item> <item name="keyPreviewBackground">@drawable/keyboard_key_feedback</item> <item name="keyPreviewLeftBackground">@null</item> <item name="keyPreviewRightBackground">@null</item> <item name="keyPreviewSpacebarBackground">@drawable/keyboard_key_feedback</item> <item name="keyPreviewTextColor">#FFFFFFFF</item> <item name="keyPreviewOffset">@dimen/key_preview_offset</item> Loading Loading @@ -152,6 +154,8 @@ <item name="keyUppercaseLetterInactivatedColor">#66E0E4E5</item> <item name="keyUppercaseLetterActivatedColor">#FFFFFFFF</item> <item name="keyPreviewBackground">@drawable/keyboard_key_feedback_ics</item> <item name="keyPreviewLeftBackground">@drawable/keyboard_key_feedback_left_ics</item> <item name="keyPreviewRightBackground">@drawable/keyboard_key_feedback_right_ics</item> <item name="keyPreviewSpacebarBackground">@drawable/transparent</item> <item name="keyPreviewTextColor">#FFFFFFFF</item> <item name="keyPreviewHeight">@dimen/key_preview_height_ics</item> Loading
java/src/com/android/inputmethod/keyboard/KeyboardView.java +20 −9 Original line number Diff line number Diff line Loading @@ -118,6 +118,8 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { private final float mKeyHysteresisDistance; private final float mVerticalCorrection; private final Drawable mPreviewBackground; private final Drawable mPreviewLeftBackground; private final Drawable mPreviewRightBackground; private final Drawable mPreviewSpacebarBackground; private final int mPreviewTextColor; private final float mPreviewTextRatio; Loading Loading @@ -203,6 +205,9 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { private static final String KEY_LABEL_REFERENCE_CHAR = "M"; private final int mKeyLabelHorizontalPadding; private static final int MEASURESPEC_UNSPECIFIED = MeasureSpec.makeMeasureSpec( 0, MeasureSpec.UNSPECIFIED); private final UIHandler mHandler = new UIHandler(this); public static class UIHandler extends StaticInnerHandlerWrapper<KeyboardView> { Loading Loading @@ -354,6 +359,8 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { mShowKeyPreviewPopup = false; } mPreviewBackground = a.getDrawable(R.styleable.KeyboardView_keyPreviewBackground); mPreviewLeftBackground = a.getDrawable(R.styleable.KeyboardView_keyPreviewLeftBackground); mPreviewRightBackground = a.getDrawable(R.styleable.KeyboardView_keyPreviewRightBackground); mPreviewSpacebarBackground = a.getDrawable( R.styleable.KeyboardView_keyPreviewSpacebarBackground); mPreviewOffset = a.getDimensionPixelOffset(R.styleable.KeyboardView_keyPreviewOffset, 0); Loading Loading @@ -1016,21 +1023,25 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { } else { previewText.setBackgroundDrawable(mPreviewBackground); } // Set the preview background state previewText.getBackground().setState( key.mPopupCharacters != null ? LONG_PRESSABLE_STATE_SET : EMPTY_STATE_SET); previewText.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); previewText.measure(MEASURESPEC_UNSPECIFIED, MEASURESPEC_UNSPECIFIED); final int previewWidth = Math.max(previewText.getMeasuredWidth(), keyDrawWidth + previewText.getPaddingLeft() + previewText.getPaddingRight()); final int previewHeight = mPreviewHeight; getLocationInWindow(mCoordinates); final int previewX = keyDrawX - (previewWidth - keyDrawWidth) / 2 + mCoordinates[0]; int previewX = keyDrawX - (previewWidth - keyDrawWidth) / 2 + mCoordinates[0]; final int previewY = key.mY - previewHeight + mCoordinates[1] + mPreviewOffset; if (previewX < 0 && mPreviewLeftBackground != null) { previewText.setBackgroundDrawable(mPreviewLeftBackground); previewX = 0; } else if (previewX + previewWidth > getWidth() && mPreviewRightBackground != null) { previewText.setBackgroundDrawable(mPreviewRightBackground); previewX = getWidth() - previewWidth; } // Place the key preview. // TODO: Adjust position of key previews which touch screen edges // Set the preview background state previewText.getBackground().setState( key.mPopupCharacters != null ? LONG_PRESSABLE_STATE_SET : EMPTY_STATE_SET); FrameLayoutCompatUtils.placeViewAt( previewText, previewX, previewY, previewWidth, previewHeight); previewText.setVisibility(VISIBLE); Loading Loading @@ -1147,7 +1158,7 @@ public class KeyboardView extends View implements PointerTracker.UIProxy { miniKeyboardView.setKeyboard(keyboard); container.measure(MeasureSpec.makeMeasureSpec(getWidth(), MeasureSpec.AT_MOST), MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); MEASURESPEC_UNSPECIFIED); return miniKeyboardView; } Loading