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
diff --git a/res/values/strings.xml b/res/values/strings.xml
index e73825e..0a139d5 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -5971,12 +5971,12 @@
<string name="encrypt_talkback_dialog_require_password">Require password?</string>
<!-- Message for encryption dialog telling the user that Talkback and other accessibility services will be disabled. -->
- <string name="encrypt_talkback_dialog_message_pin">When you enter your PIN to start this device, accessibility services like Talkback won\'t yet be available.</string>
+ <string name="encrypt_talkback_dialog_message_pin">When you enter your PIN to start this device, accessibility services like <xliff:g id="service" example="TalkBack">%1$s</xliff:g> won\'t yet be available.</string>
<!-- Message for encryption dialog telling the user that Talkback and other accessibility services will be disabled. -->
- <string name="encrypt_talkback_dialog_message_pattern">When you enter your pattern to start this device, accessibility services like Talkback won\'t yet be available.</string>
+ <string name="encrypt_talkback_dialog_message_pattern">When you enter your pattern to start this device, accessibility services like <xliff:g id="service" example="TalkBack">%1$s</xliff:g> won\'t yet be available.</string>
<!-- Message for encryption dialog telling the user that Talkback and other accessibility services will be disabled. -->
- <string name="encrypt_talkback_dialog_message_password">When you enter your password to start this device, accessibility services like Talkback won\'t yet be available.</string>
+ <string name="encrypt_talkback_dialog_message_password">When you enter your password to start this device, accessibility services like <xliff:g id="service" example="TalkBack">%1$s</xliff:g> won\'t yet be available.</string>
</resources>
diff --git a/src/com/android/settings/EncryptionInterstitial.java b/src/com/android/settings/EncryptionInterstitial.java
index 2433f26..e836aed 100644
--- a/src/com/android/settings/EncryptionInterstitial.java
+++ b/src/com/android/settings/EncryptionInterstitial.java
@@ -21,6 +21,9 @@
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 @@
messageId = R.string.encrypt_talkback_dialog_message_password;
break;
}
+
+
+ List<AccessibilityServiceInfo> 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)