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
This commit is contained in:
Jim Miller
2014-10-17 18:28:52 -07:00
parent 47adff0a8b
commit aa03767598
2 changed files with 21 additions and 4 deletions

View File

@@ -5971,12 +5971,12 @@
<string name="encrypt_talkback_dialog_require_password">Require password?</string> <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. --> <!-- 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. --> <!-- 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. --> <!-- 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> </resources>

View File

@@ -21,6 +21,9 @@ import com.android.settings.R;
import com.android.settings.SettingsActivity; import com.android.settings.SettingsActivity;
import com.android.settings.SettingsPreferenceFragment; import com.android.settings.SettingsPreferenceFragment;
import java.util.List;
import android.accessibilityservice.AccessibilityServiceInfo;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.app.Dialog; import android.app.Dialog;
import android.app.admin.DevicePolicyManager; import android.app.admin.DevicePolicyManager;
@@ -158,9 +161,23 @@ public class EncryptionInterstitial extends SettingsActivity {
messageId = R.string.encrypt_talkback_dialog_message_password; messageId = R.string.encrypt_talkback_dialog_message_password;
break; 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()) return new AlertDialog.Builder(getActivity())
.setTitle(titleId) .setTitle(titleId)
.setMessage(messageId) .setMessage(getString(messageId, exampleAccessibility))
.setCancelable(true) .setCancelable(true)
.setPositiveButton(android.R.string.ok, this) .setPositiveButton(android.R.string.ok, this)
.setNegativeButton(android.R.string.cancel, this) .setNegativeButton(android.R.string.cancel, this)