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

Commit dd702f41 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Allow multiple accessibility features"

parents 2e61bccf a009f89d
Loading
Loading
Loading
Loading
+13 −22
Original line number Diff line number Diff line
@@ -84,7 +84,7 @@ interface IBiometricsFace {
     * @return result, with its "value" parameter representing a "challenge": a
     *     unique and cryptographically secure random token.
     */
    @callflow(next={"enroll", "revokeChallenge", "setRequireAttention"})
    @callflow(next={"enroll", "revokeChallenge", "setFeatureDisabled"})
    generateChallenge(uint32_t challengeTimeoutSec)
        generates (OptionalUint64 result);

@@ -113,19 +113,12 @@ interface IBiometricsFace {
     * @param timeoutSec A timeout in seconds, after which this enrollment
     *     attempt is cancelled. Note that the client still needs to
     *     call revokeChallenge() to terminate the enrollment session.
     * @param requireAttention When set to true, requires user attention (e.g.
     *     eyes open and looking at the device) for enrollment to complete, as
     *     well as subsequent authentication. This is expected to be enabled by
     *     default to improve security and decrease falsing (unintentional face
     *     detection). This feature can be disabled at the user's request
     *     during enrollment, e.g. for accessibility reasons. When enabled,
     *     the FaceAcquiredInfo#POOR_GAZE message must be sent when the user's
     *     attention has not been established. The UI should inform the user
     *     to look at the device.
     * @param disabledFeatures A list of features to be disabled during
     *     enrollment. Note that all features are enabled by default.
     * @return status The status of this method call.
     */
    @callflow(next={"cancel", "enroll", "revokeChallenge", "remove"})
    enroll(vec<uint8_t> hat, uint32_t timeoutSec, bool requireAttention)
    enroll(vec<uint8_t> hat, uint32_t timeoutSec, vec<Feature> disabledFeatures)
        generates (Status status);

    /**
@@ -141,35 +134,33 @@ interface IBiometricsFace {
    revokeChallenge() generates (Status status);

    /**
     * Requires that all subsequent authenticate calls to first have the
     * user's attention. This method does not affect enroll, which has its
     * own requireAttention parameter.
     * Requires all subsequent enroll/authenticate calls to use the feature.
     * This method does not affect enroll, which has its own feature list.
     *
     * Changes the state of previous enrollment setting. Because this may
     * decrease security, the user must enter their password before this method
     * is invoked (see @param HAT). The driver must verify the HAT before
     * changing the requireAttention state.
     * changing any feature state.
     * Note: In some cases it may not be possible to change the state of this
     * flag without re-enrolling. For example, if the user didn't provide
     * attention during the original enrollment. This flag reflects the same
     * persistent state as the one passed to enroll().
     *
     * @param requireAttention When set to true, requires user attention for
     *     authentication to succeed.
     * @param feature The feature to be enabled or disabled.
     * @param enabled True to enable the feature, false to disable.
     * @param hat A valid Hardware Authentication Token, generated as a result
     *     of getChallenge().
     * @return status The status of this method call.
     */
    setRequireAttention(bool requireAttention, vec<uint8_t> hat)
    setFeature(Feature feature, bool enabled, vec<uint8_t> hat)
        generates(Status status);

    /**
     * Retrieves the current requireAttention state.
     * Retrieves the current state of the feature.
     *
     * @return result, with its value parameter representing the current
     *     requireAttention state.
     * @return enabled True if the feature is enabled, false if disabled.
     */
    getRequireAttention(vec<uint8_t> hat) generates (OptionalBool result);
    getFeature(Feature feature) generates (bool enabled);

    /**
     * Returns an identifier associated with the current face set.
+16 −1
Original line number Diff line number Diff line
@@ -57,6 +57,21 @@ enum Status : uint32_t {
    NOT_ENROLLED = 4
};

enum Feature : uint32_t {
    /**
     * Require the user to look at the device during enrollment and
     * authentication. Note this is to accommodate people who have limited
     * vision. Must be enabled by default.
     */
    REQUIRE_ATTENTION = 1,

    /**
     * Require a diverse set of poses during enrollment. Note this is to
     * accommodate people with limited mobility. Must be enabled by default.
     */
    REQUIRE_DIVERSITY = 2
};

/**
 * Face errors represent events that can't be immediately recovered by user
 * intervention. These are returned in the onError callback.
@@ -112,7 +127,7 @@ enum FaceError : int32_t {
    /**
     * Used to enable a vendor-specific error message.
     */
    VENDOR = 8,
    VENDOR = 8
};

/**