Add display state and authenticate reason to biometric AIDL interface.

Bug: 268295421
Test: N/A
Change-Id: Ifc643457a4e61149721a38938f8e20976b54cf56
This commit is contained in:
Joe Bolinger
2023-02-23 00:25:39 +00:00
parent 18ac002deb
commit 5698405873
6 changed files with 225 additions and 1 deletions

View File

@@ -0,0 +1,63 @@
/*
* Copyright (C) 2023 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.
*/
///////////////////////////////////////////////////////////////////////////////
// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
///////////////////////////////////////////////////////////////////////////////
// This file is a snapshot of an AIDL file. Do not edit it manually. There are
// two cases:
// 1). this is a frozen version file - do not edit this in any case.
// 2). this is a 'current' file. If you make a backwards compatible change to
// the interface (from the latest frozen version), the build system will
// prompt you to update this file with `m <name>-update-api`.
//
// You must not make a backward incompatible change to any AIDL file built
// with the aidl_interface module type with versions property set. The module
// type is used to build AIDL files in a way that they can be used across
// independently updatable components of the system. If a device is shipped
// with such a backward incompatible change, it has a high risk of breaking
// later when a module using the interface is updated, e.g., Mainline modules.
package android.hardware.biometrics.common;
/* @hide */
@VintfStability
union AuthenticateReason {
android.hardware.biometrics.common.AuthenticateReason.Vendor vendorAuthenticateReason;
android.hardware.biometrics.common.AuthenticateReason.Face faceAuthenticateReason;
android.hardware.biometrics.common.AuthenticateReason.Fingerprint fingerprintAuthenticateReason;
@VintfStability
parcelable Vendor {
ParcelableHolder extension;
}
@Backing(type="int") @VintfStability
enum Fingerprint {
UNKNOWN,
}
@Backing(type="int") @VintfStability
enum Face {
UNKNOWN,
STARTED_WAKING_UP,
PRIMARY_BOUNCER_SHOWN,
ASSISTANT_VISIBLE,
ALTERNATE_BIOMETRIC_BOUNCER_SHOWN,
NOTIFICATION_PANEL_CLICKED,
OCCLUDING_APP_REQUESTED,
PICK_UP_GESTURE_TRIGGERED,
QS_EXPANDED,
SWIPE_UP_ON_BOUNCER,
UDFPS_POINTER_DOWN,
}
}

View File

@@ -0,0 +1,43 @@
/*
* Copyright (C) 2023 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.
*/
///////////////////////////////////////////////////////////////////////////////
// THIS FILE IS IMMUTABLE. DO NOT EDIT IN ANY CASE. //
///////////////////////////////////////////////////////////////////////////////
// This file is a snapshot of an AIDL file. Do not edit it manually. There are
// two cases:
// 1). this is a frozen version file - do not edit this in any case.
// 2). this is a 'current' file. If you make a backwards compatible change to
// the interface (from the latest frozen version), the build system will
// prompt you to update this file with `m <name>-update-api`.
//
// You must not make a backward incompatible change to any AIDL file built
// with the aidl_interface module type with versions property set. The module
// type is used to build AIDL files in a way that they can be used across
// independently updatable components of the system. If a device is shipped
// with such a backward incompatible change, it has a high risk of breaking
// later when a module using the interface is updated, e.g., Mainline modules.
package android.hardware.biometrics.common;
/* @hide */
@Backing(type="int") @VintfStability
enum DisplayState {
UNKNOWN,
LOCKSCREEN,
NO_UI,
SCREENSAVER,
AOD,
}

View File

@@ -37,7 +37,12 @@ package android.hardware.biometrics.common;
parcelable OperationContext {
int id = 0;
android.hardware.biometrics.common.OperationReason reason = android.hardware.biometrics.common.OperationReason.UNKNOWN;
/**
* @deprecated use displayState instead.
*/
boolean isAod = false;
boolean isCrypto = false;
android.hardware.biometrics.common.WakeReason wakeReason = android.hardware.biometrics.common.WakeReason.UNKNOWN;
android.hardware.biometrics.common.DisplayState displayState = android.hardware.biometrics.common.DisplayState.UNKNOWN;
@nullable android.hardware.biometrics.common.AuthenticateReason authenticateReason;
}

View File

@@ -0,0 +1,59 @@
/*
* Copyright (C) 2023 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 android.hardware.biometrics.common;
/**
* Reason for an authenticate operation.
*
* @hide
*/
@VintfStability
union AuthenticateReason {
/** Vendor reason for invoking an authenticate operation. */
@VintfStability
parcelable Vendor {
ParcelableHolder extension;
}
/** Reason for invoking fingerprint authentication. */
@VintfStability
@Backing(type="int")
enum Fingerprint {
UNKNOWN,
}
/** Reason for invoking face authentication. */
@VintfStability
@Backing(type="int")
enum Face {
UNKNOWN,
STARTED_WAKING_UP,
PRIMARY_BOUNCER_SHOWN,
ASSISTANT_VISIBLE,
ALTERNATE_BIOMETRIC_BOUNCER_SHOWN,
NOTIFICATION_PANEL_CLICKED,
OCCLUDING_APP_REQUESTED,
PICK_UP_GESTURE_TRIGGERED,
QS_EXPANDED,
SWIPE_UP_ON_BOUNCER,
UDFPS_POINTER_DOWN,
}
AuthenticateReason.Vendor vendorAuthenticateReason;
AuthenticateReason.Face faceAuthenticateReason;
AuthenticateReason.Fingerprint fingerprintAuthenticateReason;
}

View File

@@ -0,0 +1,41 @@
/*
* Copyright (C) 2023 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 android.hardware.biometrics.common;
/**
* Display state during an operation.
*
* @hide
*/
@VintfStability
@Backing(type="int")
enum DisplayState {
/** The display state is unknown. */
UNKNOWN,
/** The display is on and showing the lockscreen (or an occluding app). */
LOCKSCREEN,
/** The display is off or dozing. */
NO_UI,
/** The display is showing a screensaver (dreaming). */
SCREENSAVER,
/** The display is dreaming with always on display. */
AOD,
}

View File

@@ -16,6 +16,8 @@
package android.hardware.biometrics.common;
import android.hardware.biometrics.common.AuthenticateReason;
import android.hardware.biometrics.common.DisplayState;
import android.hardware.biometrics.common.OperationReason;
import android.hardware.biometrics.common.WakeReason;
@@ -43,7 +45,7 @@ parcelable OperationContext {
*/
OperationReason reason = OperationReason.UNKNOWN;
/* Flag indicating that the display is in AOD mode. */
/** @deprecated use displayState instead. */
boolean isAod = false;
/** Flag indicating that crypto was requested. */
@@ -58,4 +60,15 @@ parcelable OperationContext {
* policy.
*/
WakeReason wakeReason = WakeReason.UNKNOWN;
/** The current display state. */
DisplayState displayState = DisplayState.UNKNOWN;
/**
* An associated reason for an authenticate operation.
*
* This should be interpreted as a hint to enable optimizations or tracing. The
* framework may choose to omit the reason at any time based on the device's policy.
*/
@nullable AuthenticateReason authenticateReason;
}