Fix bug where foreground activity fails to cancel auth/enrollment
am: 37979c9db0
Change-Id: I486f40d728e2b4bd359c617f31a9032efc6e022b
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user