From aa0376759873893197a0109025fd4ec8beca5929 Mon Sep 17 00:00:00 2001 From: Jim Miller Date: Fri, 17 Oct 2014 18:28:52 -0700 Subject: [PATCH] Fix bad string in EncryptionInterstitial The string contains "Talkback", but it should grab one of the installed Accessibility services so it works on 3rd party devices. Fixes bug 17881324 Change-Id: Iee2d8d4ce93c851badc59b5ef21462213f530a96 --- res/values/strings.xml | 6 +++--- .../settings/EncryptionInterstitial.java | 19 ++++++++++++++++++- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index e73825efdac..0a139d5d69e 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -5971,12 +5971,12 @@ Require password? - When you enter your PIN to start this device, accessibility services like Talkback won\'t yet be available. + When you enter your PIN to start this device, accessibility services like %1$s won\'t yet be available. - When you enter your pattern to start this device, accessibility services like Talkback won\'t yet be available. + When you enter your pattern to start this device, accessibility services like %1$s won\'t yet be available. - When you enter your password to start this device, accessibility services like Talkback won\'t yet be available. + When you enter your password to start this device, accessibility services like %1$s won\'t yet be available. diff --git a/src/com/android/settings/EncryptionInterstitial.java b/src/com/android/settings/EncryptionInterstitial.java index 2433f262140..e836aeded5c 100644 --- a/src/com/android/settings/EncryptionInterstitial.java +++ b/src/com/android/settings/EncryptionInterstitial.java @@ -21,6 +21,9 @@ import com.android.settings.R; import com.android.settings.SettingsActivity; import com.android.settings.SettingsPreferenceFragment; +import java.util.List; + +import android.accessibilityservice.AccessibilityServiceInfo; import android.app.AlertDialog; import android.app.Dialog; import android.app.admin.DevicePolicyManager; @@ -158,9 +161,23 @@ public class EncryptionInterstitial extends SettingsActivity { messageId = R.string.encrypt_talkback_dialog_message_password; break; } + + + List list = + AccessibilityManager.getInstance(getActivity()) + .getEnabledAccessibilityServiceList( + AccessibilityServiceInfo.FEEDBACK_ALL_MASK); + final CharSequence exampleAccessibility; + if (list.isEmpty()) { + // This should never happen. But we shouldn't crash + exampleAccessibility = ""; + } else { + exampleAccessibility = list.get(0).getResolveInfo() + .loadLabel(getPackageManager()); + } return new AlertDialog.Builder(getActivity()) .setTitle(titleId) - .setMessage(messageId) + .setMessage(getString(messageId, exampleAccessibility)) .setCancelable(true) .setPositiveButton(android.R.string.ok, this) .setNegativeButton(android.R.string.cancel, this)