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 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
|
* @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) {
|
int pid) {
|
||||||
checkPermission(USE_FINGERPRINT);
|
checkPermission(USE_FINGERPRINT);
|
||||||
if (isKeyguard(opPackageName)) {
|
if (isKeyguard(opPackageName)) {
|
||||||
@@ -488,13 +488,21 @@ public class FingerprintService extends SystemService implements IBinder.DeathRe
|
|||||||
Slog.w(TAG, "Rejecting " + opPackageName + " ; permission denied");
|
Slog.w(TAG, "Rejecting " + opPackageName + " ; permission denied");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (foregroundOnly && !isForegroundActivity(uid, pid)) {
|
if (requireForeground && !(isForegroundActivity(uid, pid) || currentClient(opPackageName))){
|
||||||
Slog.w(TAG, "Rejecting " + opPackageName + " ; not in foreground");
|
Slog.w(TAG, "Rejecting " + opPackageName + " ; not in foreground");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
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
|
* @param clientPackage
|
||||||
* @return true if this is keyguard package
|
* @return true if this is keyguard package
|
||||||
|
|||||||
Reference in New Issue
Block a user