summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorBrian Carlstrom <bdc@google.com>2011-05-24 21:54:51 -0700
committerBrian Carlstrom <bdc@google.com>2011-05-24 21:58:50 -0700
commitbb04f703be50794c41e453e82c70e354a545ea54 (patch)
tree265612004cf0e137d966f697c736acb5a56edb4e /src
parentdd74b9e264aff2477587c23bc6c1e7e0ec6d9098 (diff)
downloadandroid_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.java35
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) {