diff options
author | Brian Carlstrom <bdc@google.com> | 2011-07-07 11:52:27 -0700 |
---|---|---|
committer | Brian Carlstrom <bdc@google.com> | 2011-07-07 11:53:48 -0700 |
commit | 7d9aa755e504029fbfb8f0c47d8705490bcdf624 (patch) | |
tree | d56fad382f3f2eb4d72c53b141e71e84944a3c75 /src | |
parent | ec282ac3c466d3852f720f4f95232b8bd77e5e00 (diff) | |
download | android_packages_apps_KeyChain-7d9aa755e504029fbfb8f0c47d8705490bcdf624.tar.gz android_packages_apps_KeyChain-7d9aa755e504029fbfb8f0c47d8705490bcdf624.tar.bz2 android_packages_apps_KeyChain-7d9aa755e504029fbfb8f0c47d8705490bcdf624.zip |
Avoid StrictMode violation by performing response callback off UI thread
Bug: 4982227
Change-Id: Ie72a3b1ae3329e0e97476e159cde47fc3c757489
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/keychain/KeyChainActivity.java | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/src/com/android/keychain/KeyChainActivity.java b/src/com/android/keychain/KeyChainActivity.java index 94c2097..80be9e9 100644 --- a/src/com/android/keychain/KeyChainActivity.java +++ b/src/com/android/keychain/KeyChainActivity.java @@ -357,15 +357,32 @@ public class KeyChainActivity extends Activity { = IKeyChainAliasCallback.Stub.asInterface( getIntent().getIBinderExtra(KeyChain.EXTRA_RESPONSE)); if (keyChainAliasResponse != null) { + new ResponseSender(keyChainAliasResponse, alias).execute(); + return; + } + finish(); + } + + private class ResponseSender extends AsyncTask<Void, Void, Void> { + private IKeyChainAliasCallback mKeyChainAliasResponse; + private String mAlias; + private ResponseSender(IKeyChainAliasCallback keyChainAliasResponse, String alias) { + mKeyChainAliasResponse = keyChainAliasResponse; + mAlias = alias; + } + @Override protected Void doInBackground(Void... unused) { try { - keyChainAliasResponse.alias(alias); + mKeyChainAliasResponse.alias(mAlias); } catch (Exception ignored) { // don't just catch RemoteException, caller could // throw back a RuntimeException across processes // which we should protect against. } + return null; + } + @Override protected void onPostExecute(Void unused) { + finish(); } - finish(); } @Override public void onBackPressed() { |