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