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(); } } }