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

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

Merge "Disallow creation of virtual sensors with non-positive type." into udc-dev

parents 72281b01 1ce5ddfc
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -3362,7 +3362,7 @@ package android.companion.virtual.sensor {
  }
  public static final class VirtualSensorConfig.Builder {
    ctor public VirtualSensorConfig.Builder(int, @NonNull String);
    ctor public VirtualSensorConfig.Builder(@IntRange(from=1) int, @NonNull String);
    method @NonNull public android.companion.virtual.sensor.VirtualSensorConfig build();
    method @NonNull public android.companion.virtual.sensor.VirtualSensorConfig.Builder setDirectChannelTypesSupported(int);
    method @NonNull public android.companion.virtual.sensor.VirtualSensorConfig.Builder setHighestDirectReportRateLevel(int);
+5 −1
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package android.companion.virtual.sensor;


import android.annotation.IntRange;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.SystemApi;
@@ -167,7 +168,10 @@ public final class VirtualSensorConfig implements Parcelable {
         * @param name The name of the sensor. Must be unique among all sensors with the same type
         *             that belong to the same virtual device.
         */
        public Builder(int type, @NonNull String name) {
        public Builder(@IntRange(from = 1) int type, @NonNull String name) {
            if (type <= 0) {
                throw new IllegalArgumentException("Virtual sensor type must be positive");
            }
            mType = type;
            mName = Objects.requireNonNull(name);
        }
+19 −0
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import static com.google.common.truth.Truth.assertThat;

import static org.testng.Assert.assertThrows;

import android.hardware.Sensor;
import android.os.Parcel;
import android.platform.test.annotations.Presubmit;

@@ -66,6 +67,24 @@ public class VirtualSensorConfigTest {
        assertThat(recreatedConfig.getFlags()).isEqualTo(0x400 | RATE_VERY_FAST << 7);
    }

    @Test
    public void virtualSensorConfig_invalidName_throwsException() {
        assertThrows(
                NullPointerException.class,
                () -> new VirtualSensorConfig.Builder(TYPE_ACCELEROMETER, null));
    }

    @Test
    public void virtualSensorConfig_invalidType_throwsException() {
        assertThrows(
                IllegalArgumentException.class,
                () -> new VirtualSensorConfig.Builder(Sensor.TYPE_ALL, SENSOR_NAME));

        assertThrows(
                IllegalArgumentException.class,
                () -> new VirtualSensorConfig.Builder(0, SENSOR_NAME));
    }

    @Test
    public void hardwareBufferDirectChannelTypeSupported_throwsException() {
        assertThrows(
+3 −0
Original line number Diff line number Diff line
@@ -99,6 +99,9 @@ public class SensorController {

    private int createSensorInternal(IBinder sensorToken, VirtualSensorConfig config)
            throws SensorCreationException {
        if (config.getType() <= 0) {
            throw new SensorCreationException("Received an invalid virtual sensor type.");
        }
        final int handle = mSensorManagerInternal.createRuntimeSensor(mVirtualDeviceId,
                config.getType(), config.getName(),
                config.getVendor() == null ? "" : config.getVendor(), config.getFlags(),