summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Vaibhav Devmurari <vdevmurari@google.com> 2024-02-05 15:00:17 +0000
committer Vaibhav Devmurari <vdevmurari@google.com> 2024-02-05 22:40:48 +0000
commit9542e0ddd3d08debd8ca94cd555f1375d4e75917 (patch)
treeb7a73808904044f58c91a6640422e5ae101b38c9
parentc80b0a81ff2a8217c089f13b4b6cac49c0659ca2 (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.java30
-rw-r--r--core/java/android/hardware/input/PhysicalKeyLayout.java15
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);
+ }
}
}