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

@@ -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<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)