diff --git a/res/values/strings.xml b/res/values/strings.xml
index 65644f33c1c..6d745287a7e 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -5282,6 +5282,8 @@
%d CA certificates
Credential Details
+
+ Removed credential: %s
Spell checker
diff --git a/src/com/android/settings/UserCredentialsSettings.java b/src/com/android/settings/UserCredentialsSettings.java
index a09800b3e57..535c301b63c 100644
--- a/src/com/android/settings/UserCredentialsSettings.java
+++ b/src/com/android/settings/UserCredentialsSettings.java
@@ -90,6 +90,12 @@ public class UserCredentialsSettings extends OptionsMenuFragment implements OnIt
CredentialDialogFragment.show(this, item);
}
+ protected void announceRemoval(String alias) {
+ if (isAdded()) {
+ mListView.announceForAccessibility(getString(R.string.user_credential_removed, alias));
+ }
+ }
+
protected void refreshItems() {
if (isAdded()) {
new AliasLoader().execute();
@@ -141,8 +147,7 @@ public class UserCredentialsSettings extends OptionsMenuFragment implements OnIt
RestrictedLockUtils.sendShowAdminSupportDetailsIntent(getContext(),
admin);
} else {
- new RemoveCredentialsTask(getContext(), getTargetFragment())
- .execute(item.alias);
+ new RemoveCredentialsTask(getTargetFragment()).execute(item.alias);
}
dialog.dismiss();
}
@@ -152,17 +157,15 @@ public class UserCredentialsSettings extends OptionsMenuFragment implements OnIt
return builder.create();
}
- private class RemoveCredentialsTask extends AsyncTask {
- private Context context;
+ private class RemoveCredentialsTask extends AsyncTask {
private Fragment targetFragment;
- public RemoveCredentialsTask(Context context, Fragment targetFragment) {
- this.context = context;
+ public RemoveCredentialsTask(Fragment targetFragment) {
this.targetFragment = targetFragment;
}
@Override
- protected Void doInBackground(String... aliases) {
+ protected String[] doInBackground(String... aliases) {
try {
final KeyChainConnection conn = KeyChain.bind(getContext());
try {
@@ -178,13 +181,17 @@ public class UserCredentialsSettings extends OptionsMenuFragment implements OnIt
} catch (InterruptedException e) {
Log.w(TAG, "Connecting to keychain", e);
}
- return null;
+ return aliases;
}
@Override
- protected void onPostExecute(Void result) {
- if (targetFragment instanceof UserCredentialsSettings) {
- ((UserCredentialsSettings) targetFragment).refreshItems();
+ protected void onPostExecute(String... aliases) {
+ if (targetFragment instanceof UserCredentialsSettings && targetFragment.isAdded()) {
+ final UserCredentialsSettings target = (UserCredentialsSettings) targetFragment;
+ for (final String alias : aliases) {
+ target.announceRemoval(alias);
+ }
+ target.refreshItems();
}
}
}