diff options
| author | 2024-02-05 15:00:17 +0000 | |
|---|---|---|
| committer | 2024-02-05 22:40:48 +0000 | |
| commit | 9542e0ddd3d08debd8ca94cd555f1375d4e75917 (patch) | |
| tree | b7a73808904044f58c91a6640422e5ae101b38c9 | |
| parent | c80b0a81ff2a8217c089f13b4b6cac49c0659ca2 (diff) | |
Add AltGr+Shift combination to Keyboard layout preview
Bug: 293579375
Test: atest InputScreenshotTests
Change-Id: Idf91951160a45cc76ee5ad68c13ca1edf4966e76
| -rw-r--r-- | core/java/android/hardware/input/KeyboardLayoutPreviewDrawable.java | 30 | ||||
| -rw-r--r-- | core/java/android/hardware/input/PhysicalKeyLayout.java | 15 |
2 files changed, 28 insertions, 17 deletions
diff --git a/core/java/android/hardware/input/KeyboardLayoutPreviewDrawable.java b/core/java/android/hardware/input/KeyboardLayoutPreviewDrawable.java index d943c37e9e5b..1cc910c87b4f 100644 --- a/core/java/android/hardware/input/KeyboardLayoutPreviewDrawable.java +++ b/core/java/android/hardware/input/KeyboardLayoutPreviewDrawable.java @@ -219,26 +219,22 @@ final class KeyboardLayoutPreviewDrawable extends Drawable { if (!glyphData.hasBaseText()) { return; } - if (glyphData.hasValidShiftText() && glyphData.hasValidAltGrText()) { - mGlyphDrawables.add(new GlyphDrawable(glyphData.getBaseText(), new RectF(), - GRAVITY_BOTTOM | GRAVITY_LEFT, mBaseTextPaint)); + boolean isCenter = !glyphData.hasValidAltGrText() && !glyphData.hasValidAltShiftText(); + mGlyphDrawables.add(new GlyphDrawable(glyphData.getBaseText(), new RectF(), + GRAVITY_BOTTOM | (isCenter ? GRAVITY_CENTER_HORIZONTAL : GRAVITY_LEFT), + mBaseTextPaint)); + if (glyphData.hasValidShiftText()) { mGlyphDrawables.add(new GlyphDrawable(glyphData.getShiftText(), new RectF(), - GRAVITY_TOP | GRAVITY_LEFT, mModifierTextPaint)); - mGlyphDrawables.add(new GlyphDrawable(glyphData.getAltGrText(), new RectF(), - GRAVITY_BOTTOM | GRAVITY_RIGHT, mModifierTextPaint)); - } else if (glyphData.hasValidShiftText()) { - mGlyphDrawables.add(new GlyphDrawable(glyphData.getBaseText(), new RectF(), - GRAVITY_BOTTOM | GRAVITY_CENTER_HORIZONTAL, mBaseTextPaint)); - mGlyphDrawables.add(new GlyphDrawable(glyphData.getShiftText(), new RectF(), - GRAVITY_TOP | GRAVITY_CENTER_HORIZONTAL, mModifierTextPaint)); - } else if (glyphData.hasValidAltGrText()) { - mGlyphDrawables.add(new GlyphDrawable(glyphData.getBaseText(), new RectF(), - GRAVITY_BOTTOM | GRAVITY_LEFT, mBaseTextPaint)); + GRAVITY_TOP | (isCenter ? GRAVITY_CENTER_HORIZONTAL : GRAVITY_LEFT), + mModifierTextPaint)); + } + if (glyphData.hasValidAltGrText()) { mGlyphDrawables.add(new GlyphDrawable(glyphData.getAltGrText(), new RectF(), GRAVITY_BOTTOM | GRAVITY_RIGHT, mModifierTextPaint)); - } else { - mGlyphDrawables.add(new GlyphDrawable(glyphData.getBaseText(), new RectF(), - GRAVITY_CENTER, mBaseTextPaint)); + } + if (glyphData.hasValidAltShiftText()) { + mGlyphDrawables.add(new GlyphDrawable(glyphData.getAltGrShiftText(), new RectF(), + GRAVITY_TOP | GRAVITY_RIGHT, mModifierTextPaint)); } } diff --git a/core/java/android/hardware/input/PhysicalKeyLayout.java b/core/java/android/hardware/input/PhysicalKeyLayout.java index 3454c399375a..844e02f00777 100644 --- a/core/java/android/hardware/input/PhysicalKeyLayout.java +++ b/core/java/android/hardware/input/PhysicalKeyLayout.java @@ -396,6 +396,7 @@ final class PhysicalKeyLayout { private final String mBaseText; private final String mShiftText; private final String mAltGrText; + private final String mAltGrShiftText; public KeyGlyph(KeyCharacterMap kcm, int keyCode) { mBaseText = getKeyText(kcm, keyCode, KeyEvent.META_CAPS_LOCK_ON); @@ -403,6 +404,9 @@ final class PhysicalKeyLayout { KeyEvent.META_SHIFT_ON | KeyEvent.META_SHIFT_LEFT_ON); mAltGrText = getKeyText(kcm, keyCode, KeyEvent.META_ALT_ON | KeyEvent.META_ALT_RIGHT_ON | KeyEvent.META_CAPS_LOCK_ON); + mAltGrShiftText = getKeyText(kcm, keyCode, + KeyEvent.META_ALT_ON | KeyEvent.META_ALT_RIGHT_ON | KeyEvent.META_SHIFT_LEFT_ON + | KeyEvent.META_SHIFT_ON); } public String getBaseText() { @@ -417,6 +421,10 @@ final class PhysicalKeyLayout { return mAltGrText; } + public String getAltGrShiftText() { + return mAltGrShiftText; + } + public boolean hasBaseText() { return !TextUtils.isEmpty(mBaseText); } @@ -428,5 +436,12 @@ final class PhysicalKeyLayout { public boolean hasValidAltGrText() { return !TextUtils.isEmpty(mAltGrText) && !TextUtils.equals(mBaseText, mAltGrText); } + + public boolean hasValidAltShiftText() { + return !TextUtils.isEmpty(mAltGrShiftText) + && !TextUtils.equals(mBaseText, mAltGrShiftText) + && !TextUtils.equals(mAltGrText, mAltGrShiftText) + && !TextUtils.equals(mShiftText, mAltGrShiftText); + } } } |