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

Commit ea0ed42e authored by Kevin Chyn's avatar Kevin Chyn Committed by Android (Google) Code Review
Browse files

Merge "Schedule cleanup with the callback that was passed in" into sc-dev

parents c9f96b6e 6a0b2511
Loading
Loading
Loading
Loading
+14 −9
Original line number Original line Diff line number Diff line
@@ -38,7 +38,7 @@ import java.util.concurrent.TimeUnit;
 */
 */
@TestApi
@TestApi
public class BiometricTestSession implements AutoCloseable {
public class BiometricTestSession implements AutoCloseable {
    private static final String TAG = "BiometricTestSession";
    private static final String BASE_TAG = "BiometricTestSession";


    /**
    /**
     * @hide
     * @hide
@@ -66,12 +66,12 @@ public class BiometricTestSession implements AutoCloseable {
    private final ITestSessionCallback mCallback = new ITestSessionCallback.Stub() {
    private final ITestSessionCallback mCallback = new ITestSessionCallback.Stub() {
        @Override
        @Override
        public void onCleanupStarted(int userId) {
        public void onCleanupStarted(int userId) {
            Log.d(TAG, "onCleanupStarted, sensor: " + mSensorId + ", userId: " + userId);
            Log.d(getTag(), "onCleanupStarted, sensor: " + mSensorId + ", userId: " + userId);
        }
        }


        @Override
        @Override
        public void onCleanupFinished(int userId) {
        public void onCleanupFinished(int userId) {
            Log.d(TAG, "onCleanupFinished, sensor: " + mSensorId
            Log.d(getTag(), "onCleanupFinished, sensor: " + mSensorId
                    + ", userId: " + userId
                    + ", userId: " + userId
                    + ", remaining users: " + mUsersCleaningUp.size());
                    + ", remaining users: " + mUsersCleaningUp.size());
            mUsersCleaningUp.remove(userId);
            mUsersCleaningUp.remove(userId);
@@ -107,7 +107,7 @@ public class BiometricTestSession implements AutoCloseable {
    @RequiresPermission(TEST_BIOMETRIC)
    @RequiresPermission(TEST_BIOMETRIC)
    private void setTestHalEnabled(boolean enabled) {
    private void setTestHalEnabled(boolean enabled) {
        try {
        try {
            Log.w(TAG, "setTestHalEnabled, sensor: " + mSensorId + " enabled: " + enabled);
            Log.w(getTag(), "setTestHalEnabled, sensor: " + mSensorId + " enabled: " + enabled);
            mTestSession.setTestHalEnabled(enabled);
            mTestSession.setTestHalEnabled(enabled);
        } catch (RemoteException e) {
        } catch (RemoteException e) {
            throw e.rethrowFromSystemServer();
            throw e.rethrowFromSystemServer();
@@ -217,7 +217,7 @@ public class BiometricTestSession implements AutoCloseable {
    public void cleanupInternalState(int userId) {
    public void cleanupInternalState(int userId) {
        try {
        try {
            if (mUsersCleaningUp.contains(userId)) {
            if (mUsersCleaningUp.contains(userId)) {
                Log.w(TAG, "Cleanup already in progress for user: " + userId);
                Log.w(getTag(), "Cleanup already in progress for user: " + userId);
            }
            }


            mUsersCleaningUp.add(userId);
            mUsersCleaningUp.add(userId);
@@ -230,6 +230,7 @@ public class BiometricTestSession implements AutoCloseable {
    @Override
    @Override
    @RequiresPermission(TEST_BIOMETRIC)
    @RequiresPermission(TEST_BIOMETRIC)
    public void close() {
    public void close() {
        Log.d(getTag(), "Close, mTestedUsers size; " + mTestedUsers.size());
        // Cleanup can be performed using the test HAL, since it always responds to enumerate with
        // Cleanup can be performed using the test HAL, since it always responds to enumerate with
        // zero enrollments.
        // zero enrollments.
        if (!mTestedUsers.isEmpty()) {
        if (!mTestedUsers.isEmpty()) {
@@ -239,15 +240,19 @@ public class BiometricTestSession implements AutoCloseable {
            }
            }


            try {
            try {
                Log.d(TAG, "Awaiting latch...");
                Log.d(getTag(), "Awaiting latch...");
                mCloseLatch.await(10, TimeUnit.SECONDS);
                mCloseLatch.await(3, TimeUnit.SECONDS);
                Log.d(TAG, "Finished awaiting");
                Log.d(getTag(), "Finished awaiting");
            } catch (InterruptedException e) {
            } catch (InterruptedException e) {
                Log.e(TAG, "Latch interrupted", e);
                Log.e(getTag(), "Latch interrupted", e);
            }
            }
        }
        }


        // Disable the test HAL after the sensor becomes idle.
        // Disable the test HAL after the sensor becomes idle.
        setTestHalEnabled(false);
        setTestHalEnabled(false);
    }
    }

    private String getTag() {
        return BASE_TAG + "_" + mSensorId;
    }
}
}
+4 −1
Original line number Original line Diff line number Diff line
@@ -48,7 +48,7 @@ import java.util.Set;
 */
 */
public class BiometricTestSessionImpl extends ITestSession.Stub {
public class BiometricTestSessionImpl extends ITestSession.Stub {


    private static final String TAG = "BiometricTestSessionImpl";
    private static final String TAG = "face/aidl/BiometricTestSessionImpl";


    @NonNull private final Context mContext;
    @NonNull private final Context mContext;
    private final int mSensorId;
    private final int mSensorId;
@@ -230,10 +230,12 @@ public class BiometricTestSessionImpl extends ITestSession.Stub {
    public void cleanupInternalState(int userId)  {
    public void cleanupInternalState(int userId)  {
        Utils.checkPermission(mContext, TEST_BIOMETRIC);
        Utils.checkPermission(mContext, TEST_BIOMETRIC);


        Slog.d(TAG, "cleanupInternalState: " + userId);
        mProvider.scheduleInternalCleanup(mSensorId, userId, new BaseClientMonitor.Callback() {
        mProvider.scheduleInternalCleanup(mSensorId, userId, new BaseClientMonitor.Callback() {
            @Override
            @Override
            public void onClientStarted(@NonNull BaseClientMonitor clientMonitor) {
            public void onClientStarted(@NonNull BaseClientMonitor clientMonitor) {
                try {
                try {
                    Slog.d(TAG, "onClientStarted: " + clientMonitor);
                    mCallback.onCleanupStarted(clientMonitor.getTargetUserId());
                    mCallback.onCleanupStarted(clientMonitor.getTargetUserId());
                } catch (RemoteException e) {
                } catch (RemoteException e) {
                    Slog.e(TAG, "Remote exception", e);
                    Slog.e(TAG, "Remote exception", e);
@@ -244,6 +246,7 @@ public class BiometricTestSessionImpl extends ITestSession.Stub {
            public void onClientFinished(@NonNull BaseClientMonitor clientMonitor,
            public void onClientFinished(@NonNull BaseClientMonitor clientMonitor,
                    boolean success) {
                    boolean success) {
                try {
                try {
                    Slog.d(TAG, "onClientFinished: " + clientMonitor);
                    mCallback.onCleanupFinished(clientMonitor.getTargetUserId());
                    mCallback.onCleanupFinished(clientMonitor.getTargetUserId());
                } catch (RemoteException e) {
                } catch (RemoteException e) {
                    Slog.e(TAG, "Remote exception", e);
                    Slog.e(TAG, "Remote exception", e);
+1 −2
Original line number Original line Diff line number Diff line
@@ -49,7 +49,6 @@ import com.android.server.biometrics.Utils;
import com.android.server.biometrics.sensors.AuthenticationClient;
import com.android.server.biometrics.sensors.AuthenticationClient;
import com.android.server.biometrics.sensors.BaseClientMonitor;
import com.android.server.biometrics.sensors.BaseClientMonitor;
import com.android.server.biometrics.sensors.ClientMonitorCallbackConverter;
import com.android.server.biometrics.sensors.ClientMonitorCallbackConverter;
import com.android.server.biometrics.sensors.HalClientMonitor;
import com.android.server.biometrics.sensors.InvalidationRequesterClient;
import com.android.server.biometrics.sensors.InvalidationRequesterClient;
import com.android.server.biometrics.sensors.LockoutResetDispatcher;
import com.android.server.biometrics.sensors.LockoutResetDispatcher;
import com.android.server.biometrics.sensors.PerformanceTracker;
import com.android.server.biometrics.sensors.PerformanceTracker;
@@ -443,7 +442,7 @@ public class FaceProvider implements IBinder.DeathRecipient, ServiceProvider {
                            mContext.getOpPackageName(), sensorId, enrolledList,
                            mContext.getOpPackageName(), sensorId, enrolledList,
                            FaceUtils.getInstance(sensorId),
                            FaceUtils.getInstance(sensorId),
                            mSensors.get(sensorId).getAuthenticatorIds());
                            mSensors.get(sensorId).getAuthenticatorIds());
            scheduleForSensor(sensorId, client);
            scheduleForSensor(sensorId, client, callback);
        });
        });
    }
    }


+4 −1
Original line number Original line Diff line number Diff line
@@ -45,7 +45,7 @@ import java.util.Set;
 */
 */
class BiometricTestSessionImpl extends ITestSession.Stub {
class BiometricTestSessionImpl extends ITestSession.Stub {


    private static final String TAG = "BiometricTestSessionImpl";
    private static final String TAG = "fp/aidl/BiometricTestSessionImpl";


    @NonNull private final Context mContext;
    @NonNull private final Context mContext;
    private final int mSensorId;
    private final int mSensorId;
@@ -198,10 +198,12 @@ class BiometricTestSessionImpl extends ITestSession.Stub {
    public void cleanupInternalState(int userId)  {
    public void cleanupInternalState(int userId)  {
        Utils.checkPermission(mContext, TEST_BIOMETRIC);
        Utils.checkPermission(mContext, TEST_BIOMETRIC);


        Slog.d(TAG, "cleanupInternalState: " + userId);
        mProvider.scheduleInternalCleanup(mSensorId, userId, new BaseClientMonitor.Callback() {
        mProvider.scheduleInternalCleanup(mSensorId, userId, new BaseClientMonitor.Callback() {
            @Override
            @Override
            public void onClientStarted(@NonNull BaseClientMonitor clientMonitor) {
            public void onClientStarted(@NonNull BaseClientMonitor clientMonitor) {
                try {
                try {
                    Slog.d(TAG, "onClientStarted: " + clientMonitor);
                    mCallback.onCleanupStarted(clientMonitor.getTargetUserId());
                    mCallback.onCleanupStarted(clientMonitor.getTargetUserId());
                } catch (RemoteException e) {
                } catch (RemoteException e) {
                    Slog.e(TAG, "Remote exception", e);
                    Slog.e(TAG, "Remote exception", e);
@@ -212,6 +214,7 @@ class BiometricTestSessionImpl extends ITestSession.Stub {
            public void onClientFinished(@NonNull BaseClientMonitor clientMonitor,
            public void onClientFinished(@NonNull BaseClientMonitor clientMonitor,
                    boolean success) {
                    boolean success) {
                try {
                try {
                    Slog.d(TAG, "onClientFinished: " + clientMonitor);
                    mCallback.onCleanupFinished(clientMonitor.getTargetUserId());
                    mCallback.onCleanupFinished(clientMonitor.getTargetUserId());
                } catch (RemoteException e) {
                } catch (RemoteException e) {
                    Slog.e(TAG, "Remote exception", e);
                    Slog.e(TAG, "Remote exception", e);
+1 −1
Original line number Original line Diff line number Diff line
@@ -432,7 +432,7 @@ public class FingerprintProvider implements IBinder.DeathRecipient, ServiceProvi
                            mContext.getOpPackageName(), sensorId, enrolledList,
                            mContext.getOpPackageName(), sensorId, enrolledList,
                            FingerprintUtils.getInstance(sensorId),
                            FingerprintUtils.getInstance(sensorId),
                            mSensors.get(sensorId).getAuthenticatorIds());
                            mSensors.get(sensorId).getAuthenticatorIds());
            scheduleForSensor(sensorId, client);
            scheduleForSensor(sensorId, client, callback);
        });
        });
    }
    }