/* * Copyright (C) 2017 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License */ package com.android.server.fingerprint; import android.content.Context; import android.hardware.fingerprint.Fingerprint; import android.hardware.fingerprint.IFingerprintServiceReceiver; import android.os.IBinder; import android.util.Slog; import java.util.ArrayList; import java.util.List; /** * An internal class to help clean up unknown fingerprints in the hardware and software */ public abstract class InternalEnumerateClient extends EnumerateClient { private List mEnrolledList; private List mEnumeratedList = new ArrayList<>(); // list of fp to delete public InternalEnumerateClient(Context context, long halDeviceId, IBinder token, IFingerprintServiceReceiver receiver, int groupId, int userId, boolean restricted, String owner, List enrolledList) { super(context, halDeviceId, token, receiver, userId, groupId, restricted, owner); mEnrolledList = enrolledList; } private void handleEnumeratedFingerprint(int fingerId, int groupId, int remaining) { boolean matched = false; for (int i=0; i getEnumeratedList() { return mEnumeratedList; } @Override public boolean onEnumerationResult(int fingerId, int groupId, int remaining) { handleEnumeratedFingerprint(fingerId, groupId, remaining); if (remaining == 0) { doFingerprintCleanup(); } return remaining == 0; } }