From 52836b8e5ffc96f31bf2cd454dd768ee750a2834 Mon Sep 17 00:00:00 2001 From: merkost Date: Wed, 7 Jun 2023 14:04:05 +1000 Subject: [PATCH] Added contentDescriptions for the keys and a new string resource --- .../keyboard/helpers/MyKeyboard.kt | 35 +++++++++++++++++++ .../keyboard/views/MyKeyboardView.kt | 2 +- app/src/main/res/values-ru/strings.xml | 3 +- app/src/main/res/values/strings.xml | 1 + 4 files changed, 39 insertions(+), 2 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/keyboard/helpers/MyKeyboard.kt b/app/src/main/kotlin/com/simplemobiletools/keyboard/helpers/MyKeyboard.kt index b2c77c00..8a99a828 100644 --- a/app/src/main/kotlin/com/simplemobiletools/keyboard/helpers/MyKeyboard.kt +++ b/app/src/main/kotlin/com/simplemobiletools/keyboard/helpers/MyKeyboard.kt @@ -222,6 +222,41 @@ class MyKeyboard { a.recycle() } + /** + * Content description for talkback functional + */ + fun getContentDescription(context: Context): CharSequence { + return when (code) { + KEYCODE_SHIFT -> { + context.getString(R.string.keycode_shift) + } + + KEYCODE_MODE_CHANGE -> { + context.getString(R.string.keycode_mode_change) + } + + KEYCODE_ENTER -> { + context.getString(R.string.keycode_enter) + } + + KEYCODE_DELETE -> { + context.getString(R.string.keycode_delete) + } + + KEYCODE_SPACE -> { + context.getString(R.string.keycode_space) + } + + KEYCODE_EMOJI -> { + context.getString(R.string.emojis) + } + + else -> { + label + } + } + } + /** Create an empty key with no attributes. */ init { height = parent.defaultHeight diff --git a/app/src/main/kotlin/com/simplemobiletools/keyboard/views/MyKeyboardView.kt b/app/src/main/kotlin/com/simplemobiletools/keyboard/views/MyKeyboardView.kt index df085390..ad1cdcb6 100644 --- a/app/src/main/kotlin/com/simplemobiletools/keyboard/views/MyKeyboardView.kt +++ b/app/src/main/kotlin/com/simplemobiletools/keyboard/views/MyKeyboardView.kt @@ -147,7 +147,7 @@ class MyKeyboardView @JvmOverloads constructor(context: Context, attrs: Attribut override fun onPopulateNodeForVirtualView(virtualViewId: Int, node: AccessibilityNodeInfoCompat) { node.className = MyKeyboardView::class.simpleName val key = mKeyboard?.mKeys?.get(virtualViewId) - node.contentDescription = key?.label ?: "keyboard key" + node.contentDescription = key?.getContentDescription(context) val bounds = updateBoundsForInterval(virtualViewId) node.setBoundsInParent(bounds) } diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 930b9fe1..e21e8659 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -26,6 +26,7 @@ Изменить тип клавиатуры Shift Enter + Пробел Показывать содержимое буфера обмена при наличии Показывать ввод по нажатию @@ -40,4 +41,4 @@ Haven't found some strings? There's more at https://github.com/SimpleMobileTools/Simple-Commons/tree/master/commons/src/main/res --> - \ No newline at end of file + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b26fb32b..976b51ac 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -26,6 +26,7 @@ Change keyboard type Shift Enter + Space Show clipboard content if available Show a popup on keypress