diff options
author | Brian Carlstrom <bdc@google.com> | 2011-05-24 21:54:51 -0700 |
---|---|---|
committer | Brian Carlstrom <bdc@google.com> | 2011-05-24 21:58:50 -0700 |
commit | bb04f703be50794c41e453e82c70e354a545ea54 (patch) | |
tree | 265612004cf0e137d966f697c736acb5a56edb4e /src | |
parent | dd74b9e264aff2477587c23bc6c1e7e0ec6d9098 (diff) | |
download | android_packages_apps_KeyChain-bb04f703be50794c41e453e82c70e354a545ea54.tar.gz android_packages_apps_KeyChain-bb04f703be50794c41e453e82c70e354a545ea54.tar.bz2 android_packages_apps_KeyChain-bb04f703be50794c41e453e82c70e354a545ea54.zip |
Remove need for onActivityResult from KeyChain API
Change-Id: I5824c1c2dbb0b39a2b78834167570f1e62ae8697
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/keychain/KeyChainActivity.java | 35 |
1 files changed, 26 insertions, 9 deletions
diff --git a/src/com/android/keychain/KeyChainActivity.java b/src/com/android/keychain/KeyChainActivity.java index 6722f68..552a73a 100644 --- a/src/com/android/keychain/KeyChainActivity.java +++ b/src/com/android/keychain/KeyChainActivity.java @@ -19,15 +19,16 @@ package com.android.keychain; import android.app.ListActivity; import android.content.Intent; import android.os.Bundle; +import android.os.RemoteException; import android.security.Credentials; +import android.security.IKeyChainAliasResponse; +import android.security.KeyChain; import android.security.KeyStore; import android.view.View; import android.widget.AdapterView.OnItemClickListener; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.ListView; -import android.widget.TextView; -import android.widget.Toast; public class KeyChainActivity extends ListActivity { @@ -90,8 +91,7 @@ public class KeyChainActivity extends ListActivity { String[] aliases = mKeyStore.saw(Credentials.USER_PRIVATE_KEY); if (aliases == null || aliases.length == 0) { - setResult(RESULT_CANCELED); - finish(); + finish(null); return; } @@ -109,10 +109,7 @@ public class KeyChainActivity extends ListActivity { int position, long id) { String alias = adapter.getItem(position); - Intent result = new Intent(); - result.putExtra(Intent.EXTRA_TEXT, alias); - setResult(RESULT_OK, result); - finish(); + finish(alias); } }); } @@ -124,7 +121,7 @@ public class KeyChainActivity extends ListActivity { showAliasList(); } else { // user must have canceled unlock, give up - finish(); + finish(null); } return; default: @@ -132,6 +129,26 @@ public class KeyChainActivity extends ListActivity { } } + private void finish(String alias) { + if (alias == null) { + setResult(RESULT_CANCELED); + } else { + Intent result = new Intent(); + result.putExtra(Intent.EXTRA_TEXT, alias); + setResult(RESULT_OK, result); + } + IKeyChainAliasResponse keyChainAliasResponse + = IKeyChainAliasResponse.Stub.asInterface( + getIntent().getIBinderExtra(KeyChain.EXTRA_RESPONSE)); + if (keyChainAliasResponse != null) { + try { + keyChainAliasResponse.alias(alias); + } catch (RemoteException ignored) { + } + } + finish(); + } + @Override protected void onSaveInstanceState(Bundle savedState) { super.onSaveInstanceState(savedState); if (mState != State.INITIAL) { |