Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bcb79b1b authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "PerformanceTracker: ensure that PerformanceTracker is obtained safely...

Merge "PerformanceTracker: ensure that PerformanceTracker is obtained safely for each sensorId." into main am: 2749a5ec am: 75e19a74

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/3341465



Change-Id: Idb50a86dbf249b633d544675ae118277d209f834
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 16843338 75e19a74
Loading
Loading
Loading
Loading
+6 −9
Original line number Diff line number Diff line
@@ -18,6 +18,8 @@ package com.android.server.biometrics.sensors;

import android.util.SparseArray;

import java.util.concurrent.ConcurrentHashMap;

/**
 * Tracks biometric performance across sensors and users.
 */
@@ -25,17 +27,12 @@ public class PerformanceTracker {

    private static final String TAG = "PerformanceTracker";
    // Keyed by SensorId
    private static SparseArray<PerformanceTracker> sTrackers;
    private static final ConcurrentHashMap<Integer, PerformanceTracker> sTrackers =
            new ConcurrentHashMap<>();

    public static PerformanceTracker getInstanceForSensorId(int sensorId) {
        if (sTrackers == null) {
            sTrackers = new SparseArray<>();
        }

        if (!sTrackers.contains(sensorId)) {
            sTrackers.put(sensorId, new PerformanceTracker());
        }
        return sTrackers.get(sensorId);
        PerformanceTracker tracker = sTrackers.putIfAbsent(sensorId, new PerformanceTracker());
        return tracker != null ? tracker : sTrackers.get(sensorId);
    }

    private static class Info {
+2 −7
Original line number Diff line number Diff line
@@ -851,13 +851,8 @@ public class FaceProvider implements IBinder.DeathRecipient, ServiceProvider {
            for (int i = 0; i < mFaceSensors.size(); i++) {
                final Sensor sensor = mFaceSensors.valueAt(i);
                final int sensorId = mFaceSensors.keyAt(i);
                final PerformanceTracker performanceTracker = PerformanceTracker.getInstanceForSensorId(
                        sensorId);
                if (performanceTracker != null) {
                    performanceTracker.incrementHALDeathCount();
                } else {
                    Slog.w(getTag(), "Performance tracker is null. Not counting HAL death.");
                }
                PerformanceTracker.getInstanceForSensorId(sensorId)
                        .incrementHALDeathCount();
                sensor.onBinderDied();
            }
        });