summaryrefslogtreecommitdiffstats
path: root/keystore/java
diff options
context:
space:
mode:
authorAlex Klyubin <klyubin@google.com>2015-04-30 19:45:54 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-04-30 19:45:55 +0000
commit033dc46bb949a9a5e42ed51bbff1e055a7c58ca2 (patch)
tree25d5c6d99ca318a87a9eba266a96670d4182ae53 /keystore/java
parent3cd8ec3c6832ee142e217e2653cce58de3f1dba1 (diff)
parent2d7a85cd2b2ab4dbbe09354c6ae1668bff51a514 (diff)
downloadframeworks_base-033dc46bb949a9a5e42ed51bbff1e055a7c58ca2.zip
frameworks_base-033dc46bb949a9a5e42ed51bbff1e055a7c58ca2.tar.gz
frameworks_base-033dc46bb949a9a5e42ed51bbff1e055a7c58ca2.tar.bz2
Merge "Switch from FingerprintService to FingerprintManager." into mnc-dev
Diffstat (limited to 'keystore/java')
-rw-r--r--keystore/java/android/security/KeyStore.java50
1 files changed, 24 insertions, 26 deletions
diff --git a/keystore/java/android/security/KeyStore.java b/keystore/java/android/security/KeyStore.java
index 5b0e74a..82d328b 100644
--- a/keystore/java/android/security/KeyStore.java
+++ b/keystore/java/android/security/KeyStore.java
@@ -21,7 +21,7 @@ import android.app.Application;
import com.android.org.conscrypt.NativeConstants;
import android.content.Context;
-import android.hardware.fingerprint.IFingerprintService;
+import android.hardware.fingerprint.FingerprintManager;
import android.os.Binder;
import android.os.IBinder;
import android.os.RemoteException;
@@ -79,11 +79,27 @@ public class KeyStore {
private int mError = NO_ERROR;
private final IKeystoreService mBinder;
+ private final Context mContext;
private IBinder mToken;
private KeyStore(IKeystoreService binder) {
mBinder = binder;
+ mContext = getContext();
+ }
+
+ private static Context getContext() {
+ ActivityThread activityThread = ActivityThread.currentActivityThread();
+ if (activityThread == null) {
+ throw new IllegalStateException(
+ "Failed to obtain application Context: no ActivityThread");
+ }
+ Application application = activityThread.getApplication();
+ if (application == null) {
+ throw new IllegalStateException(
+ "Failed to obtain application Context: no Application");
+ }
+ return application;
}
public static KeyStore getInstance() {
@@ -620,36 +636,18 @@ public class KeyStore {
}
}
- private static long getFingerprintOnlySid() {
- IFingerprintService service = IFingerprintService.Stub.asInterface(
- ServiceManager.getService(Context.FINGERPRINT_SERVICE));
- if (service == null) {
+ private long getFingerprintOnlySid() {
+ FingerprintManager fingerprintManager =
+ mContext.getSystemService(FingerprintManager.class);
+ if (fingerprintManager == null) {
return 0;
}
- String opPackageName = getMyOpPackageName();
-
- try {
- long deviceId = 0; // TODO: plumb hardware id to FPMS
- if (!service.isHardwareDetected(deviceId, opPackageName)) {
- return 0;
- }
-
- return service.getAuthenticatorId(opPackageName);
- } catch (RemoteException e) {
- throw new IllegalStateException("Failed to communicate with fingerprint service", e);
+ if (!fingerprintManager.isHardwareDetected()) {
+ return 0;
}
- }
- private static String getMyOpPackageName() {
- ActivityThread activityThread = ActivityThread.currentActivityThread();
- if (activityThread != null) {
- Application application = activityThread.getApplication();
- if (application != null) {
- return application.getOpPackageName();
- }
- }
- throw new IllegalStateException("Cannot create AudioRecord outside of an app");
+ return fingerprintManager.getAuthenticatorId();
}
/**