13223e2537d5f4e2eceeb321405dbd6da50df66b6Brian Colonna/*
23223e2537d5f4e2eceeb321405dbd6da50df66b6Brian Colonna * Copyright (C) 2012 The Android Open Source Project
33223e2537d5f4e2eceeb321405dbd6da50df66b6Brian Colonna *
43223e2537d5f4e2eceeb321405dbd6da50df66b6Brian Colonna * Licensed under the Apache License, Version 2.0 (the "License");
53223e2537d5f4e2eceeb321405dbd6da50df66b6Brian Colonna * you may not use this file except in compliance with the License.
63223e2537d5f4e2eceeb321405dbd6da50df66b6Brian Colonna * You may obtain a copy of the License at
73223e2537d5f4e2eceeb321405dbd6da50df66b6Brian Colonna *
83223e2537d5f4e2eceeb321405dbd6da50df66b6Brian Colonna *      http://www.apache.org/licenses/LICENSE-2.0
93223e2537d5f4e2eceeb321405dbd6da50df66b6Brian Colonna *
103223e2537d5f4e2eceeb321405dbd6da50df66b6Brian Colonna * Unless required by applicable law or agreed to in writing, software
113223e2537d5f4e2eceeb321405dbd6da50df66b6Brian Colonna * distributed under the License is distributed on an "AS IS" BASIS,
123223e2537d5f4e2eceeb321405dbd6da50df66b6Brian Colonna * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
133223e2537d5f4e2eceeb321405dbd6da50df66b6Brian Colonna * See the License for the specific language governing permissions and
143223e2537d5f4e2eceeb321405dbd6da50df66b6Brian Colonna * limitations under the License.
153223e2537d5f4e2eceeb321405dbd6da50df66b6Brian Colonna */
163223e2537d5f4e2eceeb321405dbd6da50df66b6Brian Colonna
17dcb3d84b82cc2448d04e73359a716581bfb657dbJim Millerpackage com.android.internal.policy.impl.keyguard;
183223e2537d5f4e2eceeb321405dbd6da50df66b6Brian Colonna
193223e2537d5f4e2eceeb321405dbd6da50df66b6Brian Colonnaimport android.view.View;
203223e2537d5f4e2eceeb321405dbd6da50df66b6Brian Colonna
213223e2537d5f4e2eceeb321405dbd6da50df66b6Brian Colonnainterface BiometricSensorUnlock {
22ea8441e22a4316cb6e78dd8bf461d3e658545b64Brian Colonna    /**
23ea8441e22a4316cb6e78dd8bf461d3e658545b64Brian Colonna     * Initializes the view provided for the biometric unlock UI to work within.  The provided area
2488240596fce58afe79a4d06752cd8f6c086e2600Brian Colonna     * completely covers the backup unlock mechanism.
25ea8441e22a4316cb6e78dd8bf461d3e658545b64Brian Colonna     * @param biometricUnlockView View provided for the biometric unlock UI.
26ea8441e22a4316cb6e78dd8bf461d3e658545b64Brian Colonna     */
27ea8441e22a4316cb6e78dd8bf461d3e658545b64Brian Colonna    public void initializeView(View biometricUnlockView);
28ea8441e22a4316cb6e78dd8bf461d3e658545b64Brian Colonna
29ea8441e22a4316cb6e78dd8bf461d3e658545b64Brian Colonna    /**
30ea8441e22a4316cb6e78dd8bf461d3e658545b64Brian Colonna     * Indicates whether the biometric unlock is running.  Before
31ea8441e22a4316cb6e78dd8bf461d3e658545b64Brian Colonna     * {@link BiometricSensorUnlock#start} is called, isRunning() returns false.  After a successful
32ea8441e22a4316cb6e78dd8bf461d3e658545b64Brian Colonna     * call to {@link BiometricSensorUnlock#start}, isRunning() returns true until the biometric
33ea8441e22a4316cb6e78dd8bf461d3e658545b64Brian Colonna     * unlock completes, {@link BiometricSensorUnlock#stop} has been called, or an error has
34ea8441e22a4316cb6e78dd8bf461d3e658545b64Brian Colonna     * forced the biometric unlock to stop.
35ea8441e22a4316cb6e78dd8bf461d3e658545b64Brian Colonna     * @return whether the biometric unlock is currently running.
36ea8441e22a4316cb6e78dd8bf461d3e658545b64Brian Colonna     */
373223e2537d5f4e2eceeb321405dbd6da50df66b6Brian Colonna    public boolean isRunning();
383223e2537d5f4e2eceeb321405dbd6da50df66b6Brian Colonna
39ea8441e22a4316cb6e78dd8bf461d3e658545b64Brian Colonna    /**
4061413b5ed215accd7b4f3eaf80edeab2f330aa49Danielle Millett     * Stops and removes the biometric unlock and shows the backup unlock
41ea8441e22a4316cb6e78dd8bf461d3e658545b64Brian Colonna     */
4261413b5ed215accd7b4f3eaf80edeab2f330aa49Danielle Millett    public void stopAndShowBackup();
433223e2537d5f4e2eceeb321405dbd6da50df66b6Brian Colonna
44ea8441e22a4316cb6e78dd8bf461d3e658545b64Brian Colonna    /**
45ea8441e22a4316cb6e78dd8bf461d3e658545b64Brian Colonna     * Binds to the biometric unlock service and starts the unlock procedure.  Called on the UI
46ea8441e22a4316cb6e78dd8bf461d3e658545b64Brian Colonna     * thread.
47ea8441e22a4316cb6e78dd8bf461d3e658545b64Brian Colonna     * @return false if it can't be started or the backup should be used.
48ea8441e22a4316cb6e78dd8bf461d3e658545b64Brian Colonna     */
49ea8441e22a4316cb6e78dd8bf461d3e658545b64Brian Colonna    public boolean start();
503223e2537d5f4e2eceeb321405dbd6da50df66b6Brian Colonna
51ea8441e22a4316cb6e78dd8bf461d3e658545b64Brian Colonna    /**
52257f2ecc97d294e95b069547466d2054926d960fBrian Colonna     * Stops the biometric unlock procedure and unbinds from the service.  Called on the UI thread.
53ea8441e22a4316cb6e78dd8bf461d3e658545b64Brian Colonna     * @return whether the biometric unlock was running when called.
54ea8441e22a4316cb6e78dd8bf461d3e658545b64Brian Colonna     */
55ea8441e22a4316cb6e78dd8bf461d3e658545b64Brian Colonna    public boolean stop();
563223e2537d5f4e2eceeb321405dbd6da50df66b6Brian Colonna
57ea8441e22a4316cb6e78dd8bf461d3e658545b64Brian Colonna    /**
58ea8441e22a4316cb6e78dd8bf461d3e658545b64Brian Colonna     * Cleans up any resources used by the biometric unlock.
59ea8441e22a4316cb6e78dd8bf461d3e658545b64Brian Colonna     */
603223e2537d5f4e2eceeb321405dbd6da50df66b6Brian Colonna    public void cleanUp();
613223e2537d5f4e2eceeb321405dbd6da50df66b6Brian Colonna
62ea8441e22a4316cb6e78dd8bf461d3e658545b64Brian Colonna    /**
63ea8441e22a4316cb6e78dd8bf461d3e658545b64Brian Colonna     * Gets the Device Policy Manager quality of the biometric unlock sensor
64ea8441e22a4316cb6e78dd8bf461d3e658545b64Brian Colonna     * (e.g., PASSWORD_QUALITY_BIOMETRIC_WEAK).
65ea8441e22a4316cb6e78dd8bf461d3e658545b64Brian Colonna     * @return biometric unlock sensor quality, as defined by Device Policy Manager.
66ea8441e22a4316cb6e78dd8bf461d3e658545b64Brian Colonna     */
673223e2537d5f4e2eceeb321405dbd6da50df66b6Brian Colonna    public int getQuality();
683223e2537d5f4e2eceeb321405dbd6da50df66b6Brian Colonna}
69