Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ec35cf81 authored by Hongyu Long's avatar Hongyu Long
Browse files

a11y: Finalize the strings for Magnification and TalkBack

This CL will update the final strings for Magnification and TalkBack
dialogs.

Bug: b/410892855
Flag: com.android.hardware.input.enable_talkback_and_magnifier_key_gestures
Test: manual
Change-Id: I80f8b6635bc3290d84b9ce115d2d48dc93bca5f8
parent b9e4f73b
Loading
Loading
Loading
Loading
+11 −9
Original line number Diff line number Diff line
@@ -2836,18 +2836,20 @@
    <!-- accessibility label for button to open power menu [CHAR LIMIT=NONE] -->
    <string name="accessibility_quick_settings_power_menu">Power menu</string>

    <!-- accessibility label for paging indicator in quick settings [CHAR LIMITi=NONE] -->
    <!-- accessibility label for paging indicator in quick settings [CHAR LIMIT=NONE] -->
    <string name="accessibility_quick_settings_page">Page <xliff:g name="current_page" example="1">%1$d</xliff:g> of <xliff:g name="num_pages" example="2">%2$d</xliff:g></string>

    <!-- Strings for the dialog to enable accessibility services in key gestures -->
    <!-- Text for the dialog title. -->
    <string name="accessibility_key_gesture_dialog_title" translatable="false">Turn on <xliff:g name="feature_name" example="Magnification">%1$s</xliff:g>?</string>
    <!-- Text for showing inside the dialog.-->
    <string name="accessibility_key_gesture_dialog_content" translatable="false">Action <annotation id="action_key_icon">icon</annotation> + <xliff:g name="secondary_key" example="Alt">^1</xliff:g> + <xliff:g name="key_code" example="M">^2</xliff:g> is the keyboard shortcut to use <xliff:g name="feature_name" example="Magnification">^3</xliff:g>. <xliff:g name="feature_intro" example="Magnification intro">^4</xliff:g></string>
    <!-- The prefix string for the magnification intro -->
    <string name="accessibility_key_gesture_dialog_magnifier_intro" translatable="false">This allows you to quickly zoom in on the screen to make content larger.</string>
    <!-- Positive button text for the dialog -->
    <string name="accessibility_key_gesture_dialog_positive_button_text" translatable="false">Turn on</string>
    <!-- Text for the dialog title. [CHAR LIMIT=NONE] -->
    <string name="accessibility_key_gesture_dialog_title">Turn on <xliff:g name="feature_name" example="Magnification">%1$s</xliff:g>?</string>
    <!-- Text for showing inside the dialog. [CHAR LIMIT=NONE] -->
    <string name="accessibility_key_gesture_dialog_content">Action <annotation id="action_key_icon">icon</annotation> + <xliff:g name="secondary_key" example="Alt">^1</xliff:g> + <xliff:g name="key_code" example="M">^2</xliff:g> is the keyboard shortcut to use <xliff:g name="feature_name" example="Magnification">^3</xliff:g>. <xliff:g name="feature_intro" example="Magnification intro">^4</xliff:g></string>
    <!-- The text for the Magnification introduction. [CHAR LIMIT=NONE] -->
    <string name="accessibility_key_gesture_dialog_magnifier_intro">This allows you to quickly zoom in on the screen to make content larger.</string>
    <!-- The text for the TalkBack introduction. [CHAR LIMIT=NONE] -->
    <string name="accessibility_key_gesture_dialog_talkback_intro"><xliff:g name="feature_name" example="TalkBack">%1$s</xliff:g> is a screen reader that allows you to hear items spoken aloud. It can be helpful for people who have difficulty seeing the screen.</string>
    <!-- Positive button text for the dialog. [CHAR LIMIT=NONE] -->
    <string name="accessibility_key_gesture_dialog_positive_button_text">Turn on</string>

    <!-- Plugin control section of the tuner. Non-translatable since it should
         not appear on production builds ever. -->
+24 −5
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import android.content.Context
import android.content.pm.PackageManager
import android.content.res.Resources
import android.hardware.input.KeyGestureEvent
import android.text.BidiFormatter
import android.text.TextUtils
import android.view.KeyEvent
import android.view.accessibility.AccessibilityManager
@@ -87,7 +88,6 @@ constructor(
            return null
        }

        // TODO: b/410892855 - bidi wrap the title.
        val title =
            resources.getString(
                R.string.accessibility_key_gesture_dialog_title,
@@ -145,13 +145,32 @@ constructor(
                if (accessibilityServiceInfo == null) {
                    null
                } else {
                    Pair(
                        accessibilityServiceInfo.resolveInfo.loadLabel(packageManager).toString(),
                        accessibilityServiceInfo.loadIntro(packageManager) ?: "",
                    val featureName =
                        getFeatureName(
                            accessibilityServiceInfo.resolveInfo.loadLabel(packageManager)
                        )
                    var intro = accessibilityServiceInfo.loadIntro(packageManager) ?: ""

                    // We don't re-use the existing intro from AccessibilityServiceInfo for
                    // TalkBack.
                    if (keyGestureType == KeyGestureEvent.KEY_GESTURE_TYPE_TOGGLE_SCREEN_READER) {
                        intro =
                            resources.getString(
                                R.string.accessibility_key_gesture_dialog_talkback_intro,
                                featureName,
                            )
                    }

                    Pair(featureName, intro)
                }
            }
            else -> null
        }
    }

    // Get the service name and bidi wrap it to protect from bidi side effects.
    private fun getFeatureName(label: CharSequence): CharSequence {
        val locale = context.resources.configuration.getLocales().get(0)
        return BidiFormatter.getInstance(locale).unicodeWrap(label)
    }
}