summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBrian Carlstrom <bdc@google.com>2011-07-07 11:52:27 -0700
committerBrian Carlstrom <bdc@google.com>2011-07-07 11:53:48 -0700
commit7d9aa755e504029fbfb8f0c47d8705490bcdf624 (patch)
treed56fad382f3f2eb4d72c53b141e71e84944a3c75 /src
parentec282ac3c466d3852f720f4f95232b8bd77e5e00 (diff)
downloadandroid_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.java21
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() {