summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorScott Mertz <scott@cyngn.com>2015-06-30 15:28:28 -0700
committerAndy Mast <andy@cyngn.com>2015-07-11 15:43:29 -0700
commit242535196c7c4467c12e6f793abe4da64e08c99c (patch)
tree491ae775225743e42d0c8e411b7389e84764a8db
parentaf558ebfa41acbb14827a7fad82b48af4a974271 (diff)
downloadandroid_frameworks_base-staging/fpstable2.tar.gz
android_frameworks_base-staging/fpstable2.tar.bz2
android_frameworks_base-staging/fpstable2.zip
Fingerprint: disallow API calls when fingerprint is not availablestaging/fpstable2
Change-Id: I90032095d81512e88a768959d093bf08122a81da Conflicts: services/core/java/com/android/server/fingerprint/FingerprintService.java
-rw-r--r--services/core/java/com/android/server/fingerprint/FingerprintService.java22
1 files changed, 18 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/fingerprint/FingerprintService.java b/services/core/java/com/android/server/fingerprint/FingerprintService.java
index 8fbb9b201c8..81038d9a34f 100644
--- a/services/core/java/com/android/server/fingerprint/FingerprintService.java
+++ b/services/core/java/com/android/server/fingerprint/FingerprintService.java
@@ -463,6 +463,12 @@ public class FingerprintService extends SystemService {
}
}
+ private void throwIfNoFingerprint() {
+ if (mHal == 0) {
+ throw new UnsupportedOperationException("Fingerprint sensor not available");
+ }
+ }
+
private final class FingerprintServiceWrapper extends IFingerprintService.Stub {
private final static String DUMP_CMD_REMOVE_FINGER = "removeFinger";
private final static String DUMP_CMD_PRINT_ENROLLMENTS = "printEnrollments";
@@ -472,37 +478,43 @@ public class FingerprintService extends SystemService {
@Override // Binder call
public void authenticate(IBinder token, int userId) {
checkPermission();
+ throwIfNoFingerprint();
startAuthentication(token, userId);
}
@Override // Binder call
public void enroll(IBinder token, long timeout, int userId) {
checkPermission();
+ throwIfNoFingerprint();
startEnroll(token, timeout, userId);
}
@Override // Binder call
public void cancel(IBinder token,int userId) {
checkPermission();
+ throwIfNoFingerprint();
startCancel(token, userId);
}
@Override // Binder call
public void remove(IBinder token, int fingerprintId, int userId) {
checkPermission();
+ throwIfNoFingerprint();
startRemove(token, fingerprintId, userId);
}
@Override // Binder call
- public void startListening(IBinder token, IFingerprintServiceReceiver receiver, int userId)
- {
+ public void startListening(IBinder token, IFingerprintServiceReceiver receiver,
+ int userId) {
checkPermission();
+ throwIfNoFingerprint();
addListener(token, receiver, userId);
}
@Override // Binder call
public void stopListening(IBinder token, int userId) {
checkPermission();
+ throwIfNoFingerprint();
removeListener(token, userId);
}
@@ -510,13 +522,15 @@ public class FingerprintService extends SystemService {
public List<Fingerprint> getEnrolledFingerprints(IBinder token, int userId)
throws RemoteException {
checkPermission();
+ throwIfNoFingerprint();
return FingerprintService.this.getEnrolledFingerprints(token, userId);
}
@Override
- public boolean setFingerprintName(IBinder token, int fingerprintId, String name, int userId)
- throws RemoteException {
+ public boolean setFingerprintName(IBinder token, int fingerprintId, String name,
+ int userId) throws RemoteException {
checkPermission();
+ throwIfNoFingerprint();
return FingerprintService.this.setFingerprintName(token, fingerprintId, name, userId);
}