Migrate pullNumBiometricsEnrolled

Test: adb shell cmd stats pull-source 10031
Test: adb shell cmd stats pull-source 10048
Change-Id: I35e366d6a53288afdbee7eb5462a5f15a4bd0dc8
This commit is contained in:
Jeffrey Huang
2020-01-16 14:56:37 -08:00
parent e85d7ad721
commit 597a886d20
3 changed files with 62 additions and 72 deletions

View File

@@ -722,50 +722,6 @@ public class StatsCompanionService extends IStatsCompanionService.Stub {
pulledData.add(e);
}
private void pullNumBiometricsEnrolled(int modality, int tagId, long elapsedNanos,
long wallClockNanos, List<StatsLogEventWrapper> pulledData) {
final PackageManager pm = mContext.getPackageManager();
FingerprintManager fingerprintManager = null;
FaceManager faceManager = null;
if (pm.hasSystemFeature(PackageManager.FEATURE_FINGERPRINT)) {
fingerprintManager = mContext.getSystemService(
FingerprintManager.class);
}
if (pm.hasSystemFeature(PackageManager.FEATURE_FACE)) {
faceManager = mContext.getSystemService(FaceManager.class);
}
if (modality == BiometricsProtoEnums.MODALITY_FINGERPRINT && fingerprintManager == null) {
return;
}
if (modality == BiometricsProtoEnums.MODALITY_FACE && faceManager == null) {
return;
}
UserManager userManager = mContext.getSystemService(UserManager.class);
if (userManager == null) {
return;
}
final long token = Binder.clearCallingIdentity();
for (UserInfo user : userManager.getUsers()) {
final int userId = user.getUserHandle().getIdentifier();
int numEnrolled = 0;
if (modality == BiometricsProtoEnums.MODALITY_FINGERPRINT) {
numEnrolled = fingerprintManager.getEnrolledFingerprints(userId).size();
} else if (modality == BiometricsProtoEnums.MODALITY_FACE) {
numEnrolled = faceManager.getEnrolledFaces(userId).size();
} else {
return;
}
StatsLogEventWrapper e = new StatsLogEventWrapper(tagId, elapsedNanos, wallClockNanos);
e.writeInt(userId);
e.writeInt(numEnrolled);
pulledData.add(e);
}
Binder.restoreCallingIdentity(token);
}
// read high watermark for section
private long readProcStatsHighWaterMark(int section) {
try {
@@ -1372,18 +1328,6 @@ public class StatsCompanionService extends IStatsCompanionService.Stub {
break;
}
case StatsLog.NUM_FINGERPRINTS_ENROLLED: {
pullNumBiometricsEnrolled(BiometricsProtoEnums.MODALITY_FINGERPRINT, tagId,
elapsedNanos, wallClockNanos, ret);
break;
}
case StatsLog.NUM_FACES_ENROLLED: {
pullNumBiometricsEnrolled(BiometricsProtoEnums.MODALITY_FACE, tagId, elapsedNanos,
wallClockNanos, ret);
break;
}
case StatsLog.PROC_STATS: {
pullProcessStats(ProcessStats.REPORT_ALL, tagId, elapsedNanos, wallClockNanos, ret);
break;

View File

@@ -95,14 +95,6 @@ std::map<PullerKey, PullAtomInfo> StatsPullerManager::kAllPullAtomInfo = {
{{.atomTag = android::util::BATTERY_CYCLE_COUNT},
{.puller = new ResourceHealthManagerPuller(android::util::BATTERY_CYCLE_COUNT)}},
// Number of fingerprints enrolled for each user.
{{.atomTag = android::util::NUM_FINGERPRINTS_ENROLLED},
{.puller = new StatsCompanionServicePuller(android::util::NUM_FINGERPRINTS_ENROLLED)}},
// Number of faces enrolled for each user.
{{.atomTag = android::util::NUM_FACES_ENROLLED},
{.puller = new StatsCompanionServicePuller(android::util::NUM_FACES_ENROLLED)}},
// ProcStats.
{{.atomTag = android::util::PROC_STATS},
{.puller = new StatsCompanionServicePuller(android::util::PROC_STATS)}},

View File

@@ -1751,19 +1751,73 @@ public class StatsPullAtomService extends SystemService {
}
private void registerNumFingerprintsEnrolled() {
// No op.
}
private void pullNumFingerprintsEnrolled() {
// No op.
int tagId = StatsLog.NUM_FINGERPRINTS_ENROLLED;
mStatsManager.registerPullAtomCallback(
tagId,
null, // use default PullAtomMetadata values
(atomTag, data) -> pullNumBiometricsEnrolled(
BiometricsProtoEnums.MODALITY_FINGERPRINT, atomTag, data),
BackgroundThread.getExecutor()
);
}
private void registerNumFacesEnrolled() {
// No op.
int tagId = StatsLog.NUM_FACES_ENROLLED;
mStatsManager.registerPullAtomCallback(
tagId,
null, // use default PullAtomMetadata values
(atomTag, data) -> pullNumBiometricsEnrolled(
BiometricsProtoEnums.MODALITY_FACE, atomTag, data),
BackgroundThread.getExecutor()
);
}
private void pullNumFacesEnrolled() {
// No op.
private int pullNumBiometricsEnrolled(int modality, int atomTag, List<StatsEvent> pulledData) {
final PackageManager pm = mContext.getPackageManager();
FingerprintManager fingerprintManager = null;
FaceManager faceManager = null;
if (pm.hasSystemFeature(PackageManager.FEATURE_FINGERPRINT)) {
fingerprintManager = mContext.getSystemService(FingerprintManager.class);
}
if (pm.hasSystemFeature(PackageManager.FEATURE_FACE)) {
faceManager = mContext.getSystemService(FaceManager.class);
}
if (modality == BiometricsProtoEnums.MODALITY_FINGERPRINT && fingerprintManager == null) {
return StatsManager.PULL_SKIP;
}
if (modality == BiometricsProtoEnums.MODALITY_FACE && faceManager == null) {
return StatsManager.PULL_SKIP;
}
UserManager userManager = mContext.getSystemService(UserManager.class);
if (userManager == null) {
return StatsManager.PULL_SKIP;
}
final long token = Binder.clearCallingIdentity();
try {
for (UserInfo user : userManager.getUsers()) {
final int userId = user.getUserHandle().getIdentifier();
int numEnrolled = 0;
if (modality == BiometricsProtoEnums.MODALITY_FINGERPRINT) {
numEnrolled = fingerprintManager.getEnrolledFingerprints(userId).size();
} else if (modality == BiometricsProtoEnums.MODALITY_FACE) {
numEnrolled = faceManager.getEnrolledFaces(userId).size();
} else {
return StatsManager.PULL_SKIP;
}
StatsEvent e = StatsEvent.newBuilder()
.setAtomId(atomTag)
.writeInt(userId)
.writeInt(numEnrolled)
.build();
pulledData.add(e);
}
} finally {
Binder.restoreCallingIdentity(token);
}
return StatsManager.PULL_SUCCESS;
}
private void registerProcStats() {