Fix bug where foreground activity fails to cancel auth/enrollment

am: 37979c9db0

Change-Id: I486f40d728e2b4bd359c617f31a9032efc6e022b
This commit is contained in:
Jim Miller
2016-08-08 23:12:03 +00:00
committed by android-build-merger

View File

@@ -470,10 +470,10 @@ public class FingerprintService extends SystemService implements IBinder.DeathRe
/**
* @param opPackageName name of package for caller
* @param foregroundOnly only allow this call while app is in the foreground
* @param requireForeground only allow this call while app is in the foreground
* @return true if caller can use fingerprint API
*/
private boolean canUseFingerprint(String opPackageName, boolean foregroundOnly, int uid,
private boolean canUseFingerprint(String opPackageName, boolean requireForeground, int uid,
int pid) {
checkPermission(USE_FINGERPRINT);
if (isKeyguard(opPackageName)) {
@@ -488,13 +488,21 @@ public class FingerprintService extends SystemService implements IBinder.DeathRe
Slog.w(TAG, "Rejecting " + opPackageName + " ; permission denied");
return false;
}
if (foregroundOnly && !isForegroundActivity(uid, pid)) {
if (requireForeground && !(isForegroundActivity(uid, pid) || currentClient(opPackageName))){
Slog.w(TAG, "Rejecting " + opPackageName + " ; not in foreground");
return false;
}
return true;
}
/**
* @param opPackageName package of the caller
* @return true if this is the same client currently using fingerprint
*/
private boolean currentClient(String opPackageName) {
return mCurrentClient != null && mCurrentClient.getOwnerString().equals(opPackageName);
}
/**
* @param clientPackage
* @return true if this is keyguard package