Merge "Announce user credential deletions"

This commit is contained in:
TreeHugger Robot
2016-07-07 16:54:31 +00:00
committed by Android (Google) Code Review
2 changed files with 20 additions and 11 deletions

View File

@@ -5303,6 +5303,8 @@
<string name="n_cacrts">%d CA certificates</string> <string name="n_cacrts">%d CA certificates</string>
<!-- Alert dialog when viewing a set of user credentials. --> <!-- Alert dialog when viewing a set of user credentials. -->
<string name="user_credential_title">Credential Details</string> <string name="user_credential_title">Credential Details</string>
<!-- Announcement to confirm a user credential being removed. [CHAR LIMIT=NONE] -->
<string name="user_credential_removed">Removed credential: <xliff:g id="credential_name" example="signing key">%s</xliff:g></string>
<!-- Title for spell checker settings --> <!-- Title for spell checker settings -->
<string name="spellcheckers_settings_title">Spell checker</string> <string name="spellcheckers_settings_title">Spell checker</string>

View File

@@ -91,6 +91,12 @@ public class UserCredentialsSettings extends OptionsMenuFragment implements OnIt
CredentialDialogFragment.show(this, item); CredentialDialogFragment.show(this, item);
} }
protected void announceRemoval(String alias) {
if (isAdded()) {
mListView.announceForAccessibility(getString(R.string.user_credential_removed, alias));
}
}
protected void refreshItems() { protected void refreshItems() {
if (isAdded()) { if (isAdded()) {
new AliasLoader().execute(); new AliasLoader().execute();
@@ -142,8 +148,7 @@ public class UserCredentialsSettings extends OptionsMenuFragment implements OnIt
RestrictedLockUtils.sendShowAdminSupportDetailsIntent(getContext(), RestrictedLockUtils.sendShowAdminSupportDetailsIntent(getContext(),
admin); admin);
} else { } else {
new RemoveCredentialsTask(getContext(), getTargetFragment()) new RemoveCredentialsTask(getTargetFragment()).execute(item.alias);
.execute(item.alias);
} }
dialog.dismiss(); dialog.dismiss();
} }
@@ -153,17 +158,15 @@ public class UserCredentialsSettings extends OptionsMenuFragment implements OnIt
return builder.create(); return builder.create();
} }
private class RemoveCredentialsTask extends AsyncTask<String, Void, Void> { private class RemoveCredentialsTask extends AsyncTask<String, Void, String[]> {
private Context context;
private Fragment targetFragment; private Fragment targetFragment;
public RemoveCredentialsTask(Context context, Fragment targetFragment) { public RemoveCredentialsTask(Fragment targetFragment) {
this.context = context;
this.targetFragment = targetFragment; this.targetFragment = targetFragment;
} }
@Override @Override
protected Void doInBackground(String... aliases) { protected String[] doInBackground(String... aliases) {
try { try {
final KeyChainConnection conn = KeyChain.bind(getContext()); final KeyChainConnection conn = KeyChain.bind(getContext());
try { try {
@@ -179,13 +182,17 @@ public class UserCredentialsSettings extends OptionsMenuFragment implements OnIt
} catch (InterruptedException e) { } catch (InterruptedException e) {
Log.w(TAG, "Connecting to keychain", e); Log.w(TAG, "Connecting to keychain", e);
} }
return null; return aliases;
} }
@Override @Override
protected void onPostExecute(Void result) { protected void onPostExecute(String... aliases) {
if (targetFragment instanceof UserCredentialsSettings) { if (targetFragment instanceof UserCredentialsSettings && targetFragment.isAdded()) {
((UserCredentialsSettings) targetFragment).refreshItems(); final UserCredentialsSettings target = (UserCredentialsSettings) targetFragment;
for (final String alias : aliases) {
target.announceRemoval(alias);
}
target.refreshItems();
} }
} }
} }