diff options
| author | 2020-01-16 14:56:37 -0800 | |
|---|---|---|
| committer | 2020-01-17 11:50:47 -0800 | |
| commit | 597a886d207d17b9543552a6dfee9d23a04a189b (patch) | |
| tree | 635c650cdfae2f9dcdbdf62fb3f3292c73355249 | |
| parent | e85d7ad7211127c4df01127917682151597733c4 (diff) | |
Migrate pullNumBiometricsEnrolled
Test: adb shell cmd stats pull-source 10031
Test: adb shell cmd stats pull-source 10048
Change-Id: I35e366d6a53288afdbee7eb5462a5f15a4bd0dc8
3 files changed, 62 insertions, 72 deletions
diff --git a/apex/statsd/service/java/com/android/server/stats/StatsCompanionService.java b/apex/statsd/service/java/com/android/server/stats/StatsCompanionService.java index e2962f38506a..6c1166a1d594 100644 --- a/apex/statsd/service/java/com/android/server/stats/StatsCompanionService.java +++ b/apex/statsd/service/java/com/android/server/stats/StatsCompanionService.java @@ -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; diff --git a/cmds/statsd/src/external/StatsPullerManager.cpp b/cmds/statsd/src/external/StatsPullerManager.cpp index 96292a14197f..b72de3b9fa39 100644 --- a/cmds/statsd/src/external/StatsPullerManager.cpp +++ b/cmds/statsd/src/external/StatsPullerManager.cpp @@ -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)}}, diff --git a/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java b/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java index be30c651c78a..8d45b42f9a87 100644 --- a/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java +++ b/services/core/java/com/android/server/stats/pull/StatsPullAtomService.java @@ -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() { |