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

Commit d16c0885 authored by Vladimir Komsiyski's avatar Vladimir Komsiyski
Browse files

Add IntDef for sensor reporting mode

Fix: 362622028
Test: presubmit
Flag: android.companion.virtualdevice.flags.device_aware_display_power
Change-Id: I9c9d114b34e8f00046ac0489599da54b166cdbe8
parent 92789bdd
Loading
Loading
Loading
Loading
+25 −6
Original line number Diff line number Diff line
@@ -17,7 +17,13 @@
package android.companion.virtual.sensor;


import static android.hardware.Sensor.REPORTING_MODE_CONTINUOUS;
import static android.hardware.Sensor.REPORTING_MODE_ONE_SHOT;
import static android.hardware.Sensor.REPORTING_MODE_ON_CHANGE;
import static android.hardware.Sensor.REPORTING_MODE_SPECIAL_TRIGGER;

import android.annotation.FlaggedApi;
import android.annotation.IntDef;
import android.annotation.IntRange;
import android.annotation.NonNull;
import android.annotation.Nullable;
@@ -30,6 +36,8 @@ import android.hardware.SensorDirectChannel;
import android.os.Parcel;
import android.os.Parcelable;

import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.Objects;


@@ -71,6 +79,17 @@ public final class VirtualSensorConfig implements Parcelable {

    private final int mFlags;

    /** @hide */
    @IntDef(prefix = "REPORTING_MODE_", value = {
            REPORTING_MODE_CONTINUOUS,
            REPORTING_MODE_ON_CHANGE,
            REPORTING_MODE_ONE_SHOT,
            REPORTING_MODE_SPECIAL_TRIGGER
    })

    @Retention(RetentionPolicy.SOURCE)
    public @interface ReportingMode {}

    private VirtualSensorConfig(int type, @NonNull String name, @Nullable String vendor,
            float maximumRange, float resolution, float power, int minDelay, int maxDelay,
            int flags) {
@@ -240,7 +259,7 @@ public final class VirtualSensorConfig implements Parcelable {
     * @see Sensor#getReportingMode()
     */
    @FlaggedApi(Flags.FLAG_DEVICE_AWARE_DISPLAY_POWER)
    public int getReportingMode() {
    public @ReportingMode int getReportingMode() {
        return ((mFlags & REPORTING_MODE_MASK) >> REPORTING_MODE_SHIFT);
    }

@@ -442,11 +461,11 @@ public final class VirtualSensorConfig implements Parcelable {
         */
        @FlaggedApi(Flags.FLAG_DEVICE_AWARE_DISPLAY_POWER)
        @NonNull
        public VirtualSensorConfig.Builder setReportingMode(int reportingMode) {
            if (reportingMode != Sensor.REPORTING_MODE_CONTINUOUS
                    && reportingMode != Sensor.REPORTING_MODE_ON_CHANGE
                    && reportingMode != Sensor.REPORTING_MODE_ONE_SHOT
                    && reportingMode != Sensor.REPORTING_MODE_SPECIAL_TRIGGER) {
        public VirtualSensorConfig.Builder setReportingMode(@ReportingMode int reportingMode) {
            if (reportingMode != REPORTING_MODE_CONTINUOUS
                    && reportingMode != REPORTING_MODE_ON_CHANGE
                    && reportingMode != REPORTING_MODE_ONE_SHOT
                    && reportingMode != REPORTING_MODE_SPECIAL_TRIGGER) {
                throw new IllegalArgumentException("Invalid reporting mode: " + reportingMode);
            }
            mFlags |= reportingMode << REPORTING_MODE_SHIFT;