aboutsummaryrefslogtreecommitdiff
path: root/libvehiclenetwork
diff options
context:
space:
mode:
authorPavel Maltsev <pavelm@google.com>2016-11-03 16:40:15 -0700
committerPavel Maltsev <pavelm@google.com>2016-11-16 12:09:32 -0800
commit0d07c76bbc788fba8c77d8e932330ab22ec6ba27 (patch)
tree449e8e057eaaea175106ec49e3fe9f7b1cf6a5ff /libvehiclenetwork
parent2e91954a7524534d0caba345b65077b0033b4503 (diff)
downloadCar-0d07c76bbc788fba8c77d8e932330ab22ec6ba27.tar.gz
Migrating Car service to new Vehicle HAL
- make car service work directly with Vehicle HAL - getting rid of protobufs and dependencies on VNS - get rid of CarTestManager / CarTestService and refactor tests accordingly - reworked ICarImpl to pass dependencies rather than using singletons for better testing experience Test: existing test should work, although some of the tests (esp. audio) are broken and we will fix them in follow up CLs Bug: b/31971746 Change-Id: I229969af332304ba3b1718f130cdf22038e86fad Tests: tests adjusted to new data structures
Diffstat (limited to 'libvehiclenetwork')
-rw-r--r--libvehiclenetwork/java/Android.mk31
-rw-r--r--libvehiclenetwork/java/src/com/android/car/vehiclenetwork/IVehicleNetwork.aidl49
-rw-r--r--libvehiclenetwork/java/src/com/android/car/vehiclenetwork/IVehicleNetworkHalMock.aidl31
-rw-r--r--libvehiclenetwork/java/src/com/android/car/vehiclenetwork/IVehicleNetworkListener.aidl32
-rw-r--r--libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehicleNetwork.java799
-rw-r--r--libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehicleNetworkConsts.java1365
-rw-r--r--libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehicleNetworkProtoUtil.java68
-rw-r--r--libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropConfigUtil.java92
-rw-r--r--libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropConfigsParcelable.aidl19
-rw-r--r--libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropConfigsParcelable.java64
-rw-r--r--libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropValueParcelable.aidl19
-rw-r--r--libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropValueParcelable.java65
-rw-r--r--libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropValueUtil.java272
-rw-r--r--libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropValuesParcelable.aidl19
-rw-r--r--libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropValuesParcelable.java71
15 files changed, 0 insertions, 2996 deletions
diff --git a/libvehiclenetwork/java/Android.mk b/libvehiclenetwork/java/Android.mk
deleted file mode 100644
index 95e9089afe..0000000000
--- a/libvehiclenetwork/java/Android.mk
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright (C) 2015 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.
-#
-#
-
-LOCAL_PATH:= $(call my-dir)
-
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := libvehiclenetwork-java
-LOCAL_MODULE_TAGS := optional
-
-LOCAL_SRC_FILES := $(call all-java-files-under, src) $(call all-Iaidl-files-under, src)
-
-LOCAL_STATIC_JAVA_LIBRARIES := \
- libvehiclenetworkproto-java \
- libprotobuf-java-lite
-
-
-include $(BUILD_STATIC_JAVA_LIBRARY)
diff --git a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/IVehicleNetwork.aidl b/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/IVehicleNetwork.aidl
deleted file mode 100644
index cd16b4d9af..0000000000
--- a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/IVehicleNetwork.aidl
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2015 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 com.android.car.vehiclenetwork;
-
-import com.android.car.vehiclenetwork.IVehicleNetworkHalMock;
-import com.android.car.vehiclenetwork.IVehicleNetworkListener;
-import com.android.car.vehiclenetwork.VehiclePropConfigsParcelable;
-import com.android.car.vehiclenetwork.VehiclePropValueParcelable;
-import com.android.car.vehiclenetwork.VehiclePropValuesParcelable;
-
-/**
- * Binder API to access vehicle network service.
- * @hide
- */
-interface IVehicleNetwork {
- VehiclePropConfigsParcelable listProperties(int property) = 0;
- /** For error case, exception will be thrown. */
- void setProperty(in VehiclePropValueParcelable value) = 1;
- VehiclePropValueParcelable getProperty(in VehiclePropValueParcelable value) = 2;
- /** For error case, exception will be thrown. */
- void subscribe(in IVehicleNetworkListener listener, int property, float sampleRate,
- int zones, int flags) = 3;
- void unsubscribe(in IVehicleNetworkListener listener, int property) = 4;
- /** For testing only. inject events. */
- void injectEvent(in VehiclePropValueParcelable value) = 5;
- /** For testing only. Start in mocking mode. */
- void startMocking(in IVehicleNetworkHalMock mock) = 6;
- /** Finish mocking mode. */
- void stopMocking(in IVehicleNetworkHalMock mock) = 7;
- void injectHalError(int errorCode, int property, int operation) = 8;
- void startErrorListening(in IVehicleNetworkListener listener) = 9;
- void stopErrorListening(in IVehicleNetworkListener listener) = 10;
- void startHalRestartMonitoring(in IVehicleNetworkListener listener) = 11;
- void stopHalRestartMonitoring(in IVehicleNetworkListener listener) = 12;
-}
diff --git a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/IVehicleNetworkHalMock.aidl b/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/IVehicleNetworkHalMock.aidl
deleted file mode 100644
index 18e295d02c..0000000000
--- a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/IVehicleNetworkHalMock.aidl
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- * Copyright (C) 2015 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 com.android.car.vehiclenetwork;
-
-import com.android.car.vehiclenetwork.VehiclePropConfigsParcelable;
-import com.android.car.vehiclenetwork.VehiclePropValueParcelable;
-
-/**
- * Listener for vehicle HAL mock. This is used for internal testing only.
- * @hide
- */
-interface IVehicleNetworkHalMock {
- VehiclePropConfigsParcelable onListProperties() = 0;
- void onPropertySet(in VehiclePropValueParcelable value) = 1;
- VehiclePropValueParcelable onPropertyGet(in VehiclePropValueParcelable value) = 2;
- void onPropertySubscribe(int property, float sampleRate, int zones) = 3;
- void onPropertyUnsubscribe(int property) = 4;
-}
diff --git a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/IVehicleNetworkListener.aidl b/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/IVehicleNetworkListener.aidl
deleted file mode 100644
index 6403e0387d..0000000000
--- a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/IVehicleNetworkListener.aidl
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (C) 2015 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 com.android.car.vehiclenetwork;
-
-import com.android.car.vehiclenetwork.VehiclePropValuesParcelable;
-import com.android.car.vehiclenetwork.VehiclePropValueParcelable;
-
-/**
- * Listener for vehicle network service. Intentionally both way as this is supposed to be
- * used between system components. Making this one way brings ordering issue.
- * @hide
- */
-interface IVehicleNetworkListener {
- void onVehicleNetworkEvents(in VehiclePropValuesParcelable values) = 0;
- void onHalError(int errorCode, int property, int operation) = 1;
- void onHalRestart(boolean inMocking) = 2;
- void onPropertySet(in VehiclePropValueParcelable value) = 3;
-}
diff --git a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehicleNetwork.java b/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehicleNetwork.java
deleted file mode 100644
index 7c8ff10cde..0000000000
--- a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehicleNetwork.java
+++ /dev/null
@@ -1,799 +0,0 @@
-/*
- * Copyright (C) 2015 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 com.android.car.vehiclenetwork;
-
-import static com.android.car.vehiclenetwork.VehiclePropValueUtil.getVectorLength;
-import static com.android.car.vehiclenetwork.VehiclePropValueUtil.isCustomProperty;
-import static com.android.car.vehiclenetwork.VehiclePropValueUtil.toFloatArray;
-import static com.android.car.vehiclenetwork.VehiclePropValueUtil.toIntArray;
-
-import android.annotation.IntDef;
-import android.os.Handler;
-import android.os.Looper;
-import android.os.Message;
-import android.os.RemoteException;
-import android.os.ServiceManager;
-import android.os.ServiceSpecificException;
-import android.util.Log;
-
-import com.android.car.vehiclenetwork.VehicleNetworkConsts.VehicleValueType;
-import com.android.car.vehiclenetwork.VehicleNetworkProto.VehiclePropConfigs;
-import com.android.car.vehiclenetwork.VehicleNetworkProto.VehiclePropValue;
-import com.android.car.vehiclenetwork.VehicleNetworkProto.VehiclePropValues;
-import com.android.internal.annotations.GuardedBy;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.ref.WeakReference;
-
-/**
- * System API to access Vehicle network. This is only for system services and applications should
- * not use this. All APIs will fail with security error if normal app tries this.
- */
-public class VehicleNetwork {
- /**
- * Listener for VNS events.
- */
- public interface VehicleNetworkListener {
- /**
- * Notify HAL events. This requires subscribing the property
- */
- void onVehicleNetworkEvents(VehiclePropValues values);
- void onHalError(int errorCode, int property, int operation);
- void onHalRestart(boolean inMocking);
- void onPropertySet(VehiclePropValue value);
- }
-
- public interface VehicleNetworkHalMock {
- VehiclePropConfigs onListProperties();
- void onPropertySet(VehiclePropValue value);
- VehiclePropValue onPropertyGet(VehiclePropValue value);
- void onPropertySubscribe(int property, float sampleRate, int zones);
- void onPropertyUnsubscribe(int property);
- }
-
- /**
- * Flags to be used in #subscribe(int, float, int, int).
- */
- @Retention(RetentionPolicy.SOURCE)
- @IntDef({
- SubscribeFlags.HAL_EVENT,
- SubscribeFlags.SET_CALL,
- SubscribeFlags.DEFAULT,
- })
- public @interface SubscribeFlags {
- int HAL_EVENT = 0x1;
- int SET_CALL = 0x2;
- int DEFAULT = HAL_EVENT;
- }
-
- private static final String TAG = VehicleNetwork.class.getSimpleName();
-
- private final IVehicleNetwork mService;
- private final VehicleNetworkListener mListener;
- private final IVehicleNetworkListenerImpl mVehicleNetworkListener;
- private final EventHandler mEventHandler;
-
- @GuardedBy("this")
- private VehicleNetworkHalMock mHalMock;
- private IVehicleNetworkHalMock mHalMockImpl;
-
- private static final int VNS_CONNECT_MAX_RETRY = 10;
- private static final long VNS_RETRY_WAIT_TIME_MS = 1000;
- private static final int NO_ZONE = -1;
-
- /**
- * Factory method to create VehicleNetwork
- *
- * @param listener listener for listening events
- * @param looper Looper to dispatch listener events
- */
- public static VehicleNetwork createVehicleNetwork(VehicleNetworkListener listener,
- Looper looper) {
- int retryCount = 0;
- IVehicleNetwork service = null;
- while (true) {
- service = IVehicleNetwork.Stub.asInterface(ServiceManager.getService(
- IVehicleNetwork.class.getCanonicalName()));
- if (service != null) {
- break;
- }
- retryCount++;
- if (retryCount > VNS_CONNECT_MAX_RETRY) {
- break;
- }
- try {
- Thread.sleep(VNS_RETRY_WAIT_TIME_MS);
- } catch (InterruptedException e) {
- //ignore
- }
- }
- if (service == null) {
- throw new RuntimeException("Vehicle network service not available:" +
- IVehicleNetwork.class.getCanonicalName());
- }
- return new VehicleNetwork(service, listener, looper);
- }
-
- private VehicleNetwork(IVehicleNetwork service, VehicleNetworkListener listener,
- Looper looper) {
- mService = service;
- mListener = listener;
- mEventHandler = new EventHandler(looper);
- mVehicleNetworkListener = new IVehicleNetworkListenerImpl(this);
- }
-
- /**
- * List all properties from vehicle HAL
- *
- * @return all properties
- */
- public VehiclePropConfigs listProperties() {
- return listProperties(0 /* all */);
- }
-
- /**
- * Return configuration information of single property
- *
- * @param property vehicle property number defined in {@link VehicleNetworkConsts}. 0 has has
- * special meaning of list all properties.
- * @return null if given property does not exist.
- */
- public VehiclePropConfigs listProperties(int property) {
- try {
- VehiclePropConfigsParcelable parcelable = mService.listProperties(property);
- if (parcelable != null) {
- return parcelable.configs;
- }
- } catch (RemoteException e) {
- handleRemoteException(e);
- }
- return null;
- }
-
- /**
- * Set property which will lead into writing the value to vehicle HAL.
- *
- * @throws IllegalArgumentException If value set has wrong value like wrong valueType, wrong
- * data, and etc.
- */
- public void setProperty(VehiclePropValue value)
- throws IllegalArgumentException, ServiceSpecificException {
- VehiclePropValueParcelable parcelable = new VehiclePropValueParcelable(value);
- try {
- mService.setProperty(parcelable);
- } catch (RemoteException e) {
- handleRemoteException(e);
- }
- }
-
- /**
- * Set integer type property
- *
- * @throws IllegalArgumentException For type mismatch (=the property is not int type)
- */
- public void setIntProperty(int property, int value)
- throws IllegalArgumentException, ServiceSpecificException {
- VehiclePropValue v = VehiclePropValueUtil.createIntValue(property, value, 0);
- setProperty(v);
- }
-
- /**
- * Set int vector type property. Length of passed values should match with vector length.
- */
- public void setIntVectorProperty(int property, int[] values)
- throws IllegalArgumentException, ServiceSpecificException {
- VehiclePropValue v = VehiclePropValueUtil.createIntVectorValue(property, values, 0);
- setProperty(v);
- }
-
- /**
- * Set long type property.
- */
- public void setLongProperty(int property, long value)
- throws IllegalArgumentException, ServiceSpecificException {
- VehiclePropValue v = VehiclePropValueUtil.createLongValue(property, value, 0);
- setProperty(v);
- }
-
- /**
- * Set float type property.
- */
- public void setFloatProperty(int property, float value)
- throws IllegalArgumentException, ServiceSpecificException {
- VehiclePropValue v = VehiclePropValueUtil.createFloatValue(property, value, 0);
- setProperty(v);
- }
-
- /**
- * Set float vector type property. Length of values should match with vector length.
- */
- public void setFloatVectorProperty(int property, float[] values)
- throws IllegalArgumentException, ServiceSpecificException {
- VehiclePropValue v = VehiclePropValueUtil.createFloatVectorValue(property, values, 0);
- setProperty(v);
- }
-
- /**
- * Set boolean type property
- *
- * @throws IllegalArgumentException For type mismatch (=the property is not boolean type)
- */
- public void setBooleanProperty(int property, boolean value)
- throws IllegalArgumentException, ServiceSpecificException {
- VehiclePropValue v = VehiclePropValueUtil.createBooleanValue(property, value, 0);
- setProperty(v);
- }
-
- public void setStringProperty(int property, String value)
- throws IllegalArgumentException, ServiceSpecificException {
- VehiclePropValue v = VehiclePropValueUtil.createStringValue(property, value, 0);
- setProperty(v);
- }
-
- /**
- * Set zoned boolean type property
- *
- * @throws IllegalArgumentException For type mismatch (=the property is not boolean type)
- */
- public void setZonedBooleanProperty(int property, int zone, boolean value)
- throws IllegalArgumentException, ServiceSpecificException {
- VehiclePropValue v = VehiclePropValueUtil.createZonedBooleanValue(property, zone, value, 0);
- setProperty(v);
- }
-
- /**
- * Set zoned float type property
- *
- * @throws IllegalArgumentException For type mismatch (=the property is not float type)
- */
- public void setZonedFloatProperty(int property, int zone, float value)
- throws IllegalArgumentException, ServiceSpecificException {
- VehiclePropValue v = VehiclePropValueUtil.createZonedFloatValue(property, zone, value, 0);
- setProperty(v);
- }
-
- /**
- * Set zoned integer type property
- *
- * @throws IllegalArgumentException For type mismatch (=the property is not int type)
- */
- public void setZonedIntProperty(int property, int zone, int value)
- throws IllegalArgumentException, ServiceSpecificException {
- VehiclePropValue v = VehiclePropValueUtil.createZonedIntValue(property, zone, value, 0);
- setProperty(v);
- }
-
- /**
- * Set zoned int vector type property. Length of passed values should match with vector length.
- */
- public void setZonedIntVectorProperty(int property, int zone, int[] values)
- throws IllegalArgumentException, ServiceSpecificException {
- VehiclePropValue v = VehiclePropValueUtil
- .createZonedIntVectorValue(property, zone, values, 0);
- setProperty(v);
- }
-
- /**
- * Set zoned float vector type property. Length of passed values should match with vector
- * length.
- */
- public void setZonedFloatVectorProperty(int property, int zone, float[] values)
- throws IllegalArgumentException, ServiceSpecificException {
- VehiclePropValue v = VehiclePropValueUtil
- .createZonedFloatVectorValue(property, zone, values, 0);
- setProperty(v);
- }
-
- /**
- * Get property. This can be used for a property which does not require any other data.
- */
- public VehiclePropValue getProperty(int property) throws IllegalArgumentException,
- ServiceSpecificException {
- int valueType = VehicleNetworkConsts.getVehicleValueType(property);
- if (valueType == 0) {
- throw new IllegalArgumentException("Data type is unknown for property: " + property);
- }
- VehiclePropValue value = VehiclePropValueUtil.createBuilder(property, valueType, 0).build();
- return getProperty(value);
- }
-
- /**
- * Generic get method for any type of property. Some property may require setting data portion
- * as get may return different result depending on the data set.
- */
- public VehiclePropValue getProperty(VehiclePropValue value) throws IllegalArgumentException,
- ServiceSpecificException {
- VehiclePropValueParcelable parcelable = new VehiclePropValueParcelable(value);
- try {
- VehiclePropValueParcelable resParcelable = mService.getProperty(parcelable);
- if (resParcelable != null) {
- return resParcelable.value;
- }
- } catch (RemoteException e) {
- handleRemoteException(e);
- }
- return null;
- }
-
- /**
- * Get int type property.
- */
- public int getIntProperty(int property) throws IllegalArgumentException,
- ServiceSpecificException {
- VehiclePropValue v = getProperty(
- property, NO_ZONE, VehicleValueType.VEHICLE_VALUE_TYPE_INT32);
- if (v.getInt32ValuesCount() != 1) {
- throw new IllegalStateException();
- }
- return v.getInt32Values(0);
- }
-
- /**
- * Get zoned int type property.
- */
- public int getZonedIntProperty(int property, int zone) throws IllegalArgumentException,
- ServiceSpecificException {
- VehiclePropValue v = getProperty(
- property, zone, VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32);
- if (v.getInt32ValuesCount() != 1) {
- throw new IllegalStateException();
- }
- return v.getInt32Values(0);
- }
-
- /**
- * Get int vector type property. Length of values should match vector length.
- */
- public int[] getIntVectorProperty(int property) throws IllegalArgumentException,
- ServiceSpecificException {
- VehiclePropValue v = getProperty(
- property, NO_ZONE, VehicleValueType.VEHICLE_VALUE_TYPE_INT32);
- assertVectorLength(v.getInt32ValuesCount(), property, v.getValueType());
- return toIntArray(v.getInt32ValuesList());
- }
-
- /**
- * Get zoned int vector type property. Length of values should match vector length.
- */
- public int[] getZonedIntVectorProperty(int property, int zone)
- throws IllegalArgumentException, ServiceSpecificException {
- VehiclePropValue v = getProperty(
- property, zone, VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32);
- assertVectorLength(v.getInt32ValuesCount(), property, v.getValueType());
- return toIntArray(v.getInt32ValuesList());
- }
-
- /**
- * Get float type property.
- */
- public float getFloatProperty(int property) throws IllegalArgumentException,
- ServiceSpecificException {
- VehiclePropValue v = getProperty(
- property, NO_ZONE, VehicleValueType.VEHICLE_VALUE_TYPE_FLOAT);
- if (v.getFloatValuesCount() != 1) {
- throw new IllegalStateException();
- }
- return v.getFloatValues(0);
- }
-
- /**
- * Get float vector type property. Length of values should match vector's length.
- */
- public float[] getFloatVectorProperty(int property) throws IllegalArgumentException,
- ServiceSpecificException {
- VehiclePropValue v = getProperty(
- property, NO_ZONE, VehicleValueType.VEHICLE_VALUE_TYPE_FLOAT);
- assertVectorLength(v.getFloatValuesCount(), property, v.getValueType());
- return toFloatArray(v.getFloatValuesList());
- }
-
- /**
- * Get zoned float vector type property. Length of values should match vector's length.
- */
- public float[] getZonedFloatVectorProperty(int property, int zone)
- throws IllegalArgumentException, ServiceSpecificException {
- VehiclePropValue v = getProperty(property, zone,
- VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_FLOAT);
- assertVectorLength(v.getFloatValuesCount(), property, v.getValueType());
- return toFloatArray(v.getFloatValuesList());
- }
-
- /**
- * Get long type property.
- */
- public long getLongProperty(int property) throws IllegalArgumentException,
- ServiceSpecificException {
- VehiclePropValue v = getProperty(
- property, NO_ZONE, VehicleValueType.VEHICLE_VALUE_TYPE_INT64);
- return v.getInt64Value();
- }
-
- /**
- * Get string type property.
- */
- public String getStringProperty(int property) throws IllegalArgumentException,
- ServiceSpecificException {
- VehiclePropValue v = getProperty(
- property, NO_ZONE, VehicleValueType.VEHICLE_VALUE_TYPE_STRING);
- return v.getStringValue();
- }
-
- /**
- * Subscribe given property with given sample rate.
- */
- public void subscribe(int property, float sampleRate) throws IllegalArgumentException {
- subscribe(property, sampleRate, 0);
- }
-
- /**
- * Subscribe given property with given sample rate and zones.
- */
- public void subscribe(int property, float sampleRate, int zones)
- throws IllegalArgumentException {
- try {
- mService.subscribe(mVehicleNetworkListener, property, sampleRate, zones,
- SubscribeFlags.DEFAULT);
- } catch (RemoteException e) {
- handleRemoteException(e);
- }
- }
-
- /**
- * Subscribe given property with given sample rate, zones and flags.
- */
- @SuppressWarnings("ResourceType")
- public void subscribe(int property, float sampleRate, int zones, @SubscribeFlags int flags)
- throws IllegalArgumentException {
- try {
- mService.subscribe(mVehicleNetworkListener, property, sampleRate, zones, flags);
- } catch (RemoteException e) {
- handleRemoteException(e);
- }
- }
-
- /**
- * Stop subscribing the property.
- */
- public void unsubscribe(int property) {
- try {
- mService.unsubscribe(mVehicleNetworkListener, property);
- } catch (RemoteException e) {
- handleRemoteException(e);
- }
- }
-
- /**
- * Inject given value to all clients subscribing the property. This is for testing.
- */
- public synchronized void injectEvent(VehiclePropValue value) {
- try {
- mService.injectEvent(new VehiclePropValueParcelable(value));
- } catch (RemoteException e) {
- handleRemoteException(e);
- }
- }
-
- /**
- * Start mocking of vehicle HAL. For testing only.
- */
- public synchronized void startMocking(VehicleNetworkHalMock mock) {
- mHalMock = mock;
- mHalMockImpl = new IVehicleNetworkHalMockImpl(this);
- try {
- mService.startMocking(mHalMockImpl);
- } catch (RemoteException e) {
- handleRemoteException(e);
- }
- }
-
- /**
- * Stop mocking of vehicle HAL. For testing only.
- */
- public synchronized void stopMocking() {
- if (mHalMockImpl == null) {
- return;
- }
- try {
- mService.stopMocking(mHalMockImpl);
- } catch (RemoteException e) {
- handleRemoteException(e);
- } finally {
- mHalMock = null;
- mHalMockImpl = null;
- }
- }
-
- /**
- * Start mocking of vehicle HAL. For testing only.
- */
- public synchronized void startMocking(IVehicleNetworkHalMock mock) {
- mHalMock = null;
- mHalMockImpl = mock;
- try {
- mService.startMocking(mHalMockImpl);
- } catch (RemoteException e) {
- handleRemoteException(e);
- }
- }
-
- /**
- * Stop mocking of vehicle HAL. For testing only.
- */
- public synchronized void stopMocking(IVehicleNetworkHalMock mock) {
- if (mock.asBinder() != mHalMockImpl.asBinder()) {
- return;
- }
- try {
- mService.stopMocking(mHalMockImpl);
- } catch (RemoteException e) {
- handleRemoteException(e);
- } finally {
- mHalMock = null;
- mHalMockImpl = null;
- }
- }
-
- public synchronized void injectHalError(int errorCode, int property, int operation) {
- try {
- mService.injectHalError(errorCode, property, operation);
- } catch (RemoteException e) {
- handleRemoteException(e);
- }
- }
-
- public synchronized void startErrorListening() {
- try {
- mService.startErrorListening(mVehicleNetworkListener);
- } catch (RemoteException e) {
- handleRemoteException(e);
- }
- }
-
- public synchronized void stopErrorListening() {
- try {
- mService.stopErrorListening(mVehicleNetworkListener);
- } catch (RemoteException e) {
- handleRemoteException(e);
- }
- }
-
- public synchronized void startHalRestartMonitoring() {
- try {
- mService.startHalRestartMonitoring(mVehicleNetworkListener);
- } catch (RemoteException e) {
- handleRemoteException(e);
- }
- }
-
- public synchronized void stopHalRestartMonitoring() {
- try {
- mService.stopHalRestartMonitoring(mVehicleNetworkListener);
- } catch (RemoteException e) {
- handleRemoteException(e);
- }
- }
-
- private synchronized VehicleNetworkHalMock getHalMock() {
- return mHalMock;
- }
-
- private void handleRemoteException(RemoteException e) {
- throw new RuntimeException("Vehicle network service not working ", e);
- }
-
- private void handleVehicleNetworkEvents(VehiclePropValues values) {
- mListener.onVehicleNetworkEvents(values);
- }
-
- private void handleHalError(int errorCode, int property, int operation) {
- mListener.onHalError(errorCode, property, operation);
- }
-
- private void handleHalRestart(boolean inMocking) {
- mListener.onHalRestart(inMocking);
- }
-
- private void handleOnPropertySet(VehiclePropValue value) {
- mListener.onPropertySet(value);
- }
-
- private class EventHandler extends Handler {
-
- private static final int MSG_EVENTS = 0;
- private static final int MSG_HAL_ERROR = 1;
- private static final int MSG_HAL_RESTART = 2;
- private static final int MSG_ON_PROPERTY_SET = 3;
-
- private EventHandler(Looper looper) {
- super(looper);
- }
-
- private void notifyEvents(VehiclePropValues values) {
- Message msg = obtainMessage(MSG_EVENTS, values);
- sendMessage(msg);
- }
-
- private void notifyHalError(int errorCode, int property, int operation) {
- Message msg = obtainMessage(MSG_HAL_ERROR, errorCode, property, operation);
- sendMessage(msg);
- }
-
- private void notifyHalRestart(boolean inMocking) {
- Message msg = obtainMessage(MSG_HAL_RESTART, inMocking ? 1 : 0, 0);
- sendMessage(msg);
- }
-
- private void notifyPropertySet(VehiclePropValue value) {
- Message msg = obtainMessage(MSG_ON_PROPERTY_SET, value);
- sendMessage(msg);
- }
-
- @Override
- public void handleMessage(Message msg) {
- switch (msg.what) {
- case MSG_EVENTS:
- handleVehicleNetworkEvents((VehiclePropValues) msg.obj);
- break;
- case MSG_HAL_ERROR:
- handleHalError(msg.arg1, msg.arg2, (Integer) msg.obj);
- break;
- case MSG_HAL_RESTART:
- handleHalRestart(msg.arg1 == 1);
- break;
- case MSG_ON_PROPERTY_SET:
- handleOnPropertySet((VehiclePropValue) msg.obj);
- default:
- Log.w(TAG, "Unknown message:" + msg.what, new RuntimeException());
- break;
- }
- }
- }
-
- private static class IVehicleNetworkListenerImpl extends IVehicleNetworkListener.Stub {
-
- private final WeakReference<VehicleNetwork> mVehicleNetwork;
-
- private IVehicleNetworkListenerImpl(VehicleNetwork vehicleNetwork) {
- mVehicleNetwork = new WeakReference<>(vehicleNetwork);
- }
-
- @Override
- public void onVehicleNetworkEvents(VehiclePropValuesParcelable values) {
- VehicleNetwork vehicleNetwork = mVehicleNetwork.get();
- if (vehicleNetwork != null) {
- vehicleNetwork.mEventHandler.notifyEvents(values.values);
- }
- }
-
- @Override
- public void onPropertySet(VehiclePropValueParcelable value) {
- VehicleNetwork vehicleNetwork = mVehicleNetwork.get();
- if (vehicleNetwork != null) {
- vehicleNetwork.mEventHandler.notifyPropertySet(value.value);
- }
- }
-
- @Override
- public void onHalError(int errorCode, int property, int operation) {
- VehicleNetwork vehicleNetwork = mVehicleNetwork.get();
- if (vehicleNetwork != null) {
- vehicleNetwork.mEventHandler.notifyHalError(errorCode, property, operation);
- }
- }
-
- @Override
- public void onHalRestart(boolean inMocking) {
- VehicleNetwork vehicleNetwork = mVehicleNetwork.get();
- if (vehicleNetwork != null) {
- vehicleNetwork.mEventHandler.notifyHalRestart(inMocking);
- }
- }
- }
-
- private static class IVehicleNetworkHalMockImpl extends IVehicleNetworkHalMock.Stub {
- private final WeakReference<VehicleNetwork> mVehicleNetwork;
-
- private IVehicleNetworkHalMockImpl(VehicleNetwork vehicleNewotk) {
- mVehicleNetwork = new WeakReference<>(vehicleNewotk);
- }
-
- @Override
- public VehiclePropConfigsParcelable onListProperties() {
- VehicleNetwork vehicleNetwork = mVehicleNetwork.get();
- if (vehicleNetwork == null) {
- return null;
- }
- VehiclePropConfigs configs = vehicleNetwork.getHalMock().onListProperties();
- return new VehiclePropConfigsParcelable(configs);
- }
-
- @Override
- public void onPropertySet(VehiclePropValueParcelable value) {
- VehicleNetwork vehicleNetwork = mVehicleNetwork.get();
- if (vehicleNetwork == null) {
- return;
- }
- vehicleNetwork.getHalMock().onPropertySet(value.value);
- }
-
- @Override
- public VehiclePropValueParcelable onPropertyGet(VehiclePropValueParcelable value) {
- VehicleNetwork vehicleNetwork = mVehicleNetwork.get();
- if (vehicleNetwork == null) {
- return null;
- }
- VehiclePropValue resValue = vehicleNetwork.getHalMock().onPropertyGet(value.value);
- return new VehiclePropValueParcelable(resValue);
- }
-
- @Override
- public void onPropertySubscribe(int property, float sampleRate, int zones) {
- VehicleNetwork vehicleNetwork = mVehicleNetwork.get();
- if (vehicleNetwork == null) {
- return;
- }
- vehicleNetwork.getHalMock().onPropertySubscribe(property, sampleRate, zones);
- }
-
- @Override
- public void onPropertyUnsubscribe(int property) {
- VehicleNetwork vehicleNetwork = mVehicleNetwork.get();
- if (vehicleNetwork == null) {
- return;
- }
- vehicleNetwork.getHalMock().onPropertyUnsubscribe(property);
- }
- }
-
- private VehiclePropValue getProperty(int property, int zone, int customPropetyDataType) {
- boolean isCustom = isCustomProperty(property);
- int valueType = isCustom
- ? customPropetyDataType
- : VehicleNetworkConsts.getVehicleValueType(property);
-
- VehiclePropValue.Builder valuePrototypeBuilder =
- VehiclePropValueUtil.createBuilder(property, valueType, 0);
-
- if (zone != NO_ZONE) {
- valuePrototypeBuilder.setZone(zone);
- }
-
- VehiclePropValue v = getProperty(valuePrototypeBuilder.build());
- if (v == null) {
- // if property is invalid, IllegalArgumentException should have been thrown
- // from getProperty.
- throw new IllegalStateException();
- }
-
- if (!isCustom && v.getValueType() != valueType) {
- throw new IllegalArgumentException(
- "Unexpected type for property 0x" + Integer.toHexString(property) +
- " got:0x" + Integer.toHexString(v.getValueType())
- + ", expecting:0x" + Integer.toHexString(valueType));
- }
- return v;
- }
-
- private void assertVectorLength(int actual, int property, int valueType) {
- int expectedLen = getVectorLength(valueType);
- if (expectedLen != actual) {
- throw new IllegalStateException("Invalid array size for property: " + property
- + ". Expected: " + expectedLen
- + ", actual: " + actual);
- }
- }
-}
diff --git a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehicleNetworkConsts.java b/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehicleNetworkConsts.java
deleted file mode 100644
index 047b3ab419..0000000000
--- a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehicleNetworkConsts.java
+++ /dev/null
@@ -1,1365 +0,0 @@
-
-/*
- * Copyright (C) 2015 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.
- */
-
-// Autogenerated from vehicle.h using
-// libvehiclenetwork/tool/vehiclehal_code_gen.py.
-// Do not modify manually.
-
-package com.android.car.vehiclenetwork;
-
-public class VehicleNetworkConsts {
-
-public static final int VEHICLE_PROPERTY_INVALID = 0x0;
-public static final int VEHICLE_PROPERTY_INFO_VIN = 0x00000100;
-public static final int VEHICLE_PROPERTY_INFO_MAKE = 0x00000101;
-public static final int VEHICLE_PROPERTY_INFO_MODEL = 0x00000102;
-public static final int VEHICLE_PROPERTY_INFO_MODEL_YEAR = 0x00000103;
-public static final int VEHICLE_PROPERTY_INFO_FUEL_CAPACITY = 0x00000104;
-public static final int VEHICLE_PROPERTY_PERF_ODOMETER = 0x00000204;
-public static final int VEHICLE_PROPERTY_PERF_VEHICLE_SPEED = 0x00000207;
-public static final int VEHICLE_PROPERTY_ENGINE_COOLANT_TEMP = 0x00000301;
-public static final int VEHICLE_PROPERTY_ENGINE_OIL_TEMP = 0x00000304;
-public static final int VEHICLE_PROPERTY_ENGINE_RPM = 0x00000305;
-public static final int VEHICLE_PROPERTY_GEAR_SELECTION = 0x00000400;
-public static final int VEHICLE_PROPERTY_CURRENT_GEAR = 0x00000401;
-public static final int VEHICLE_PROPERTY_PARKING_BRAKE_ON = 0x00000402;
-public static final int VEHICLE_PROPERTY_DRIVING_STATUS = 0x00000404;
-public static final int VEHICLE_PROPERTY_FUEL_LEVEL_LOW = 0x00000405;
-public static final int VEHICLE_PROPERTY_NIGHT_MODE = 0x00000407;
-public static final int VEHICLE_PROPERTY_HVAC_FAN_SPEED = 0x00000500;
-public static final int VEHICLE_PROPERTY_HVAC_FAN_DIRECTION = 0x00000501;
-public static final int VEHICLE_PROPERTY_HVAC_TEMPERATURE_CURRENT = 0x00000502;
-public static final int VEHICLE_PROPERTY_HVAC_TEMPERATURE_SET = 0x00000503;
-public static final int VEHICLE_PROPERTY_HVAC_DEFROSTER = 0x00000504;
-public static final int VEHICLE_PROPERTY_HVAC_AC_ON = 0x00000505;
-public static final int VEHICLE_PROPERTY_HVAC_MAX_AC_ON = 0x00000506;
-public static final int VEHICLE_PROPERTY_HVAC_MAX_DEFROST_ON = 0x00000507;
-public static final int VEHICLE_PROPERTY_HVAC_RECIRC_ON = 0x00000508;
-public static final int VEHICLE_PROPERTY_HVAC_DUAL_ON = 0x00000509;
-public static final int VEHICLE_PROPERTY_HVAC_AUTO_ON = 0x0000050A;
-public static final int VEHICLE_PROPERTY_HVAC_SEAT_TEMPERATURE = 0x0000050B;
-public static final int VEHICLE_PROPERTY_HVAC_SIDE_MIRROR_HEAT = 0x0000050C;
-public static final int VEHICLE_PROPERTY_HVAC_STEERING_WHEEL_TEMP = 0x0000050D;
-public static final int VEHICLE_PROPERTY_HVAC_TEMPERATURE_UNITS = 0x0000050E;
-public static final int VEHICLE_PROPERTY_HVAC_ACTUAL_FAN_SPEED_RPM = 0x0000050F;
-public static final int VEHICLE_PROPERTY_HVAC_POWER_ON = 0x00000510;
-public static final int VEHICLE_PROPERTY_HVAC_FAN_DIRECTION_AVAILABLE = 0x00000511;
-public static final int VEHICLE_PROPERTY_ENV_OUTSIDE_TEMPERATURE = 0x00000703;
-public static final int VEHICLE_PROPERTY_ENV_CABIN_TEMPERATURE = 0x00000704;
-public static final int VEHICLE_PROPERTY_RADIO_PRESET = 0x00000801;
-public static final int VEHICLE_PROPERTY_AUDIO_FOCUS = 0x00000900;
-public static final int VEHICLE_PROPERTY_AUDIO_VOLUME = 0x00000901;
-public static final int VEHICLE_PROPERTY_AUDIO_VOLUME_LIMIT = 0x00000902;
-public static final int VEHICLE_PROPERTY_AUDIO_ROUTING_POLICY = 0x00000903;
-public static final int VEHICLE_PROPERTY_AUDIO_HW_VARIANT = 0x00000904;
-public static final int VEHICLE_PROPERTY_AUDIO_EXT_ROUTING_HINT = 0x00000905;
-public static final int VEHICLE_PROPERTY_AP_POWER_STATE = 0x00000A00;
-public static final int VEHICLE_PROPERTY_DISPLAY_BRIGHTNESS = 0x00000A01;
-public static final int VEHICLE_PROPERTY_AP_POWER_BOOTUP_REASON = 0x00000A02;
-public static final int VEHICLE_PROPERTY_HW_KEY_INPUT = 0x00000A10;
-public static final int VEHICLE_PROPERTY_INSTRUMENT_CLUSTER_INFO = 0x00000A20;
-public static final int VEHICLE_PROPERTY_UNIX_TIME = 0x00000A30;
-public static final int VEHICLE_PROPERTY_CURRENT_TIME_IN_SECONDS = 0x00000A31;
-public static final int VEHICLE_PROPERTY_DOOR_POS = 0x00000B00;
-public static final int VEHICLE_PROPERTY_DOOR_MOVE = 0x00000B01;
-public static final int VEHICLE_PROPERTY_DOOR_LOCK = 0x00000B02;
-public static final int VEHICLE_PROPERTY_MIRROR_Z_POS = 0x00000B40;
-public static final int VEHICLE_PROPERTY_MIRROR_Z_MOVE = 0x00000B41;
-public static final int VEHICLE_PROPERTY_MIRROR_Y_POS = 0x00000B42;
-public static final int VEHICLE_PROPERTY_MIRROR_Y_MOVE = 0x00000B43;
-public static final int VEHICLE_PROPERTY_MIRROR_LOCK = 0x00000B44;
-public static final int VEHICLE_PROPERTY_MIRROR_FOLD = 0x00000B45;
-public static final int VEHICLE_PROPERTY_SEAT_MEMORY_SELECT = 0x00000B80;
-public static final int VEHICLE_PROPERTY_SEAT_MEMORY_SET = 0x00000B81;
-public static final int VEHICLE_PROPERTY_SEAT_BELT_BUCKLED = 0x00000B82;
-public static final int VEHICLE_PROPERTY_SEAT_BELT_HEIGHT_POS = 0x00000B83;
-public static final int VEHICLE_PROPERTY_SEAT_BELT_HEIGHT_MOVE = 0x00000B84;
-public static final int VEHICLE_PROPERTY_SEAT_FORE_AFT_POS = 0x00000B85;
-public static final int VEHICLE_PROPERTY_SEAT_FORE_AFT_MOVE = 0x00000B86;
-public static final int VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_1_POS = 0x00000B87;
-public static final int VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_1_MOVE = 0x00000B88;
-public static final int VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_2_POS = 0x00000B89;
-public static final int VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_2_MOVE = 0x00000B8A;
-public static final int VEHICLE_PROPERTY_SEAT_HEIGHT_POS = 0x00000B8B;
-public static final int VEHICLE_PROPERTY_SEAT_HEIGHT_MOVE = 0x00000B8C;
-public static final int VEHICLE_PROPERTY_SEAT_DEPTH_POS = 0x00000B8D;
-public static final int VEHICLE_PROPERTY_SEAT_DEPTH_MOVE = 0x00000B8E;
-public static final int VEHICLE_PROPERTY_SEAT_TILT_POS = 0x00000B8F;
-public static final int VEHICLE_PROPERTY_SEAT_TILT_MOVE = 0x00000B90;
-public static final int VEHICLE_PROPERTY_SEAT_LUMBAR_FORE_AFT_POS = 0x00000B91;
-public static final int VEHICLE_PROPERTY_SEAT_LUMBAR_FORE_AFT_MOVE = 0x00000B92;
-public static final int VEHICLE_PROPERTY_SEAT_LUMBAR_SIDE_SUPPORT_POS = 0x00000B93;
-public static final int VEHICLE_PROPERTY_SEAT_LUMBAR_SIDE_SUPPORT_MOVE = 0x00000B94;
-public static final int VEHICLE_PROPERTY_SEAT_HEADREST_HEIGHT_POS = 0x00000B95;
-public static final int VEHICLE_PROPERTY_SEAT_HEADREST_HEIGHT_MOVE = 0x00000B96;
-public static final int VEHICLE_PROPERTY_SEAT_HEADREST_ANGLE_POS = 0x00000B97;
-public static final int VEHICLE_PROPERTY_SEAT_HEADREST_ANGLE_MOVE = 0x00000B98;
-public static final int VEHICLE_PROPERTY_SEAT_HEADREST_FORE_AFT_POS = 0x00000B99;
-public static final int VEHICLE_PROPERTY_SEAT_HEADREST_FORE_AFT_MOVE = 0x00000B9A;
-public static final int VEHICLE_PROPERTY_WINDOW_POS = 0x00000BC0;
-public static final int VEHICLE_PROPERTY_WINDOW_MOVE = 0x00000BC1;
-public static final int VEHICLE_PROPERTY_WINDOW_VENT_POS = 0x00000BC2;
-public static final int VEHICLE_PROPERTY_WINDOW_VENT_MOVE = 0x00000BC3;
-public static final int VEHICLE_PROPERTY_WINDOW_LOCK = 0x00000BC4;
-public static final int VEHICLE_PROPERTY_CUSTOM_START = 0x70000000;
-public static final int VEHICLE_PROPERTY_CUSTOM_END = 0x73ffffff;
-public static final int VEHICLE_PROPERTY_INTERNAL_START = 0x74000000;
-public static final int VEHICLE_PROPERTY_INTERNAL_END = 0x74ffffff;
-public static final int VEHICLE_PROPERTY_INTERNAL_AUDIO_STREAM_STATE = 0x74000000;
-public static int getVehicleValueType(int property) {
-switch (property) {
-case VEHICLE_PROPERTY_INFO_VIN: return VehicleValueType.VEHICLE_VALUE_TYPE_STRING;
-case VEHICLE_PROPERTY_INFO_MAKE: return VehicleValueType.VEHICLE_VALUE_TYPE_STRING;
-case VEHICLE_PROPERTY_INFO_MODEL: return VehicleValueType.VEHICLE_VALUE_TYPE_STRING;
-case VEHICLE_PROPERTY_INFO_MODEL_YEAR: return VehicleValueType.VEHICLE_VALUE_TYPE_INT32;
-case VEHICLE_PROPERTY_INFO_FUEL_CAPACITY: return VehicleValueType.VEHICLE_VALUE_TYPE_FLOAT;
-case VEHICLE_PROPERTY_PERF_ODOMETER: return VehicleValueType.VEHICLE_VALUE_TYPE_FLOAT;
-case VEHICLE_PROPERTY_PERF_VEHICLE_SPEED: return VehicleValueType.VEHICLE_VALUE_TYPE_FLOAT;
-case VEHICLE_PROPERTY_ENGINE_COOLANT_TEMP: return VehicleValueType.VEHICLE_VALUE_TYPE_FLOAT;
-case VEHICLE_PROPERTY_ENGINE_OIL_TEMP: return VehicleValueType.VEHICLE_VALUE_TYPE_FLOAT;
-case VEHICLE_PROPERTY_ENGINE_RPM: return VehicleValueType.VEHICLE_VALUE_TYPE_FLOAT;
-case VEHICLE_PROPERTY_GEAR_SELECTION: return VehicleValueType.VEHICLE_VALUE_TYPE_INT32;
-case VEHICLE_PROPERTY_CURRENT_GEAR: return VehicleValueType.VEHICLE_VALUE_TYPE_INT32;
-case VEHICLE_PROPERTY_PARKING_BRAKE_ON: return VehicleValueType.VEHICLE_VALUE_TYPE_BOOLEAN;
-case VEHICLE_PROPERTY_DRIVING_STATUS: return VehicleValueType.VEHICLE_VALUE_TYPE_INT32;
-case VEHICLE_PROPERTY_FUEL_LEVEL_LOW: return VehicleValueType.VEHICLE_VALUE_TYPE_BOOLEAN;
-case VEHICLE_PROPERTY_NIGHT_MODE: return VehicleValueType.VEHICLE_VALUE_TYPE_BOOLEAN;
-case VEHICLE_PROPERTY_HVAC_FAN_SPEED: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32;
-case VEHICLE_PROPERTY_HVAC_FAN_DIRECTION: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32;
-case VEHICLE_PROPERTY_HVAC_TEMPERATURE_CURRENT: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_FLOAT;
-case VEHICLE_PROPERTY_HVAC_TEMPERATURE_SET: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_FLOAT;
-case VEHICLE_PROPERTY_HVAC_DEFROSTER: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_BOOLEAN;
-case VEHICLE_PROPERTY_HVAC_AC_ON: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_BOOLEAN;
-case VEHICLE_PROPERTY_HVAC_MAX_AC_ON: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_BOOLEAN;
-case VEHICLE_PROPERTY_HVAC_MAX_DEFROST_ON: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_BOOLEAN;
-case VEHICLE_PROPERTY_HVAC_RECIRC_ON: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_BOOLEAN;
-case VEHICLE_PROPERTY_HVAC_DUAL_ON: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_BOOLEAN;
-case VEHICLE_PROPERTY_HVAC_AUTO_ON: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_BOOLEAN;
-case VEHICLE_PROPERTY_HVAC_SEAT_TEMPERATURE: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32;
-case VEHICLE_PROPERTY_HVAC_SIDE_MIRROR_HEAT: return VehicleValueType.VEHICLE_VALUE_TYPE_INT32;
-case VEHICLE_PROPERTY_HVAC_STEERING_WHEEL_TEMP: return VehicleValueType.VEHICLE_VALUE_TYPE_INT32;
-case VEHICLE_PROPERTY_HVAC_TEMPERATURE_UNITS: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32;
-case VEHICLE_PROPERTY_HVAC_ACTUAL_FAN_SPEED_RPM: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32;
-case VEHICLE_PROPERTY_HVAC_POWER_ON: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_BOOLEAN;
-case VEHICLE_PROPERTY_HVAC_FAN_DIRECTION_AVAILABLE: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32;
-case VEHICLE_PROPERTY_ENV_OUTSIDE_TEMPERATURE: return VehicleValueType.VEHICLE_VALUE_TYPE_FLOAT;
-case VEHICLE_PROPERTY_ENV_CABIN_TEMPERATURE: return VehicleValueType.VEHICLE_VALUE_TYPE_FLOAT;
-case VEHICLE_PROPERTY_RADIO_PRESET: return VehicleValueType.VEHICLE_VALUE_TYPE_INT32_VEC4;
-case VEHICLE_PROPERTY_AUDIO_FOCUS: return VehicleValueType.VEHICLE_VALUE_TYPE_INT32_VEC4;
-case VEHICLE_PROPERTY_AUDIO_VOLUME: return VehicleValueType.VEHICLE_VALUE_TYPE_INT32_VEC3;
-case VEHICLE_PROPERTY_AUDIO_VOLUME_LIMIT: return VehicleValueType.VEHICLE_VALUE_TYPE_INT32_VEC2;
-case VEHICLE_PROPERTY_AUDIO_ROUTING_POLICY: return VehicleValueType.VEHICLE_VALUE_TYPE_INT32_VEC2;
-case VEHICLE_PROPERTY_AUDIO_HW_VARIANT: return VehicleValueType.VEHICLE_VALUE_TYPE_INT32;
-case VEHICLE_PROPERTY_AUDIO_EXT_ROUTING_HINT: return VehicleValueType.VEHICLE_VALUE_TYPE_INT32_VEC4;
-case VEHICLE_PROPERTY_AP_POWER_STATE: return VehicleValueType.VEHICLE_VALUE_TYPE_INT32_VEC2;
-case VEHICLE_PROPERTY_DISPLAY_BRIGHTNESS: return VehicleValueType.VEHICLE_VALUE_TYPE_INT32;
-case VEHICLE_PROPERTY_AP_POWER_BOOTUP_REASON: return VehicleValueType.VEHICLE_VALUE_TYPE_INT32;
-case VEHICLE_PROPERTY_HW_KEY_INPUT: return VehicleValueType.VEHICLE_VALUE_TYPE_INT32_VEC4;
-case VEHICLE_PROPERTY_INSTRUMENT_CLUSTER_INFO: return VehicleValueType.VEHICLE_VALUE_TYPE_INT32_VEC4;
-case VEHICLE_PROPERTY_UNIX_TIME: return VehicleValueType.VEHICLE_VALUE_TYPE_INT64;
-case VEHICLE_PROPERTY_CURRENT_TIME_IN_SECONDS: return VehicleValueType.VEHICLE_VALUE_TYPE_INT32;
-case VEHICLE_PROPERTY_DOOR_POS: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32;
-case VEHICLE_PROPERTY_DOOR_MOVE: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32;
-case VEHICLE_PROPERTY_DOOR_LOCK: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_BOOLEAN;
-case VEHICLE_PROPERTY_MIRROR_Z_POS: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32;
-case VEHICLE_PROPERTY_MIRROR_Z_MOVE: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32;
-case VEHICLE_PROPERTY_MIRROR_Y_POS: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32;
-case VEHICLE_PROPERTY_MIRROR_Y_MOVE: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32;
-case VEHICLE_PROPERTY_MIRROR_LOCK: return VehicleValueType.VEHICLE_VALUE_TYPE_BOOLEAN;
-case VEHICLE_PROPERTY_MIRROR_FOLD: return VehicleValueType.VEHICLE_VALUE_TYPE_BOOLEAN;
-case VEHICLE_PROPERTY_SEAT_MEMORY_SELECT: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32;
-case VEHICLE_PROPERTY_SEAT_MEMORY_SET: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32;
-case VEHICLE_PROPERTY_SEAT_BELT_BUCKLED: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_BOOLEAN;
-case VEHICLE_PROPERTY_SEAT_BELT_HEIGHT_POS: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32;
-case VEHICLE_PROPERTY_SEAT_BELT_HEIGHT_MOVE: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32;
-case VEHICLE_PROPERTY_SEAT_FORE_AFT_POS: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32;
-case VEHICLE_PROPERTY_SEAT_FORE_AFT_MOVE: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32;
-case VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_1_POS: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32;
-case VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_1_MOVE: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32;
-case VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_2_POS: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32;
-case VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_2_MOVE: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32;
-case VEHICLE_PROPERTY_SEAT_HEIGHT_POS: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32;
-case VEHICLE_PROPERTY_SEAT_HEIGHT_MOVE: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32;
-case VEHICLE_PROPERTY_SEAT_DEPTH_POS: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32;
-case VEHICLE_PROPERTY_SEAT_DEPTH_MOVE: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32;
-case VEHICLE_PROPERTY_SEAT_TILT_POS: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32;
-case VEHICLE_PROPERTY_SEAT_TILT_MOVE: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32;
-case VEHICLE_PROPERTY_SEAT_LUMBAR_FORE_AFT_POS: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32;
-case VEHICLE_PROPERTY_SEAT_LUMBAR_FORE_AFT_MOVE: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32;
-case VEHICLE_PROPERTY_SEAT_LUMBAR_SIDE_SUPPORT_POS: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32;
-case VEHICLE_PROPERTY_SEAT_LUMBAR_SIDE_SUPPORT_MOVE: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32;
-case VEHICLE_PROPERTY_SEAT_HEADREST_HEIGHT_POS: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32;
-case VEHICLE_PROPERTY_SEAT_HEADREST_HEIGHT_MOVE: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32;
-case VEHICLE_PROPERTY_SEAT_HEADREST_ANGLE_POS: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32;
-case VEHICLE_PROPERTY_SEAT_HEADREST_ANGLE_MOVE: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32;
-case VEHICLE_PROPERTY_SEAT_HEADREST_FORE_AFT_POS: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32;
-case VEHICLE_PROPERTY_SEAT_HEADREST_FORE_AFT_MOVE: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32;
-case VEHICLE_PROPERTY_WINDOW_POS: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32;
-case VEHICLE_PROPERTY_WINDOW_MOVE: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32;
-case VEHICLE_PROPERTY_WINDOW_VENT_POS: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32;
-case VEHICLE_PROPERTY_WINDOW_VENT_MOVE: return VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32;
-case VEHICLE_PROPERTY_WINDOW_LOCK: return VehicleValueType.VEHICLE_VALUE_TYPE_BOOLEAN;
-case VEHICLE_PROPERTY_INTERNAL_AUDIO_STREAM_STATE: return VehicleValueType.VEHICLE_VALUE_TYPE_INT32_VEC2;
-default: return VehicleValueType.VEHICLE_VALUE_TYPE_SHOUD_NOT_USE;
-}
-}
-
-public static String getVehiclePropertyName(int property) {
-switch (property) {
-case VEHICLE_PROPERTY_INVALID: return "VEHICLE_PROPERTY_INVALID";
-case VEHICLE_PROPERTY_INFO_VIN: return "VEHICLE_PROPERTY_INFO_VIN";
-case VEHICLE_PROPERTY_INFO_MAKE: return "VEHICLE_PROPERTY_INFO_MAKE";
-case VEHICLE_PROPERTY_INFO_MODEL: return "VEHICLE_PROPERTY_INFO_MODEL";
-case VEHICLE_PROPERTY_INFO_MODEL_YEAR: return "VEHICLE_PROPERTY_INFO_MODEL_YEAR";
-case VEHICLE_PROPERTY_INFO_FUEL_CAPACITY: return "VEHICLE_PROPERTY_INFO_FUEL_CAPACITY";
-case VEHICLE_PROPERTY_PERF_ODOMETER: return "VEHICLE_PROPERTY_PERF_ODOMETER";
-case VEHICLE_PROPERTY_PERF_VEHICLE_SPEED: return "VEHICLE_PROPERTY_PERF_VEHICLE_SPEED";
-case VEHICLE_PROPERTY_ENGINE_COOLANT_TEMP: return "VEHICLE_PROPERTY_ENGINE_COOLANT_TEMP";
-case VEHICLE_PROPERTY_ENGINE_OIL_TEMP: return "VEHICLE_PROPERTY_ENGINE_OIL_TEMP";
-case VEHICLE_PROPERTY_ENGINE_RPM: return "VEHICLE_PROPERTY_ENGINE_RPM";
-case VEHICLE_PROPERTY_GEAR_SELECTION: return "VEHICLE_PROPERTY_GEAR_SELECTION";
-case VEHICLE_PROPERTY_CURRENT_GEAR: return "VEHICLE_PROPERTY_CURRENT_GEAR";
-case VEHICLE_PROPERTY_PARKING_BRAKE_ON: return "VEHICLE_PROPERTY_PARKING_BRAKE_ON";
-case VEHICLE_PROPERTY_DRIVING_STATUS: return "VEHICLE_PROPERTY_DRIVING_STATUS";
-case VEHICLE_PROPERTY_FUEL_LEVEL_LOW: return "VEHICLE_PROPERTY_FUEL_LEVEL_LOW";
-case VEHICLE_PROPERTY_NIGHT_MODE: return "VEHICLE_PROPERTY_NIGHT_MODE";
-case VEHICLE_PROPERTY_HVAC_FAN_SPEED: return "VEHICLE_PROPERTY_HVAC_FAN_SPEED";
-case VEHICLE_PROPERTY_HVAC_FAN_DIRECTION: return "VEHICLE_PROPERTY_HVAC_FAN_DIRECTION";
-case VEHICLE_PROPERTY_HVAC_TEMPERATURE_CURRENT: return "VEHICLE_PROPERTY_HVAC_TEMPERATURE_CURRENT";
-case VEHICLE_PROPERTY_HVAC_TEMPERATURE_SET: return "VEHICLE_PROPERTY_HVAC_TEMPERATURE_SET";
-case VEHICLE_PROPERTY_HVAC_DEFROSTER: return "VEHICLE_PROPERTY_HVAC_DEFROSTER";
-case VEHICLE_PROPERTY_HVAC_AC_ON: return "VEHICLE_PROPERTY_HVAC_AC_ON";
-case VEHICLE_PROPERTY_HVAC_MAX_AC_ON: return "VEHICLE_PROPERTY_HVAC_MAX_AC_ON";
-case VEHICLE_PROPERTY_HVAC_MAX_DEFROST_ON: return "VEHICLE_PROPERTY_HVAC_MAX_DEFROST_ON";
-case VEHICLE_PROPERTY_HVAC_RECIRC_ON: return "VEHICLE_PROPERTY_HVAC_RECIRC_ON";
-case VEHICLE_PROPERTY_HVAC_DUAL_ON: return "VEHICLE_PROPERTY_HVAC_DUAL_ON";
-case VEHICLE_PROPERTY_HVAC_AUTO_ON: return "VEHICLE_PROPERTY_HVAC_AUTO_ON";
-case VEHICLE_PROPERTY_HVAC_SEAT_TEMPERATURE: return "VEHICLE_PROPERTY_HVAC_SEAT_TEMPERATURE";
-case VEHICLE_PROPERTY_HVAC_SIDE_MIRROR_HEAT: return "VEHICLE_PROPERTY_HVAC_SIDE_MIRROR_HEAT";
-case VEHICLE_PROPERTY_HVAC_STEERING_WHEEL_TEMP: return "VEHICLE_PROPERTY_HVAC_STEERING_WHEEL_TEMP";
-case VEHICLE_PROPERTY_HVAC_TEMPERATURE_UNITS: return "VEHICLE_PROPERTY_HVAC_TEMPERATURE_UNITS";
-case VEHICLE_PROPERTY_HVAC_ACTUAL_FAN_SPEED_RPM: return "VEHICLE_PROPERTY_HVAC_ACTUAL_FAN_SPEED_RPM";
-case VEHICLE_PROPERTY_HVAC_POWER_ON: return "VEHICLE_PROPERTY_HVAC_POWER_ON";
-case VEHICLE_PROPERTY_HVAC_FAN_DIRECTION_AVAILABLE: return "VEHICLE_PROPERTY_HVAC_FAN_DIRECTION_AVAILABLE";
-case VEHICLE_PROPERTY_ENV_OUTSIDE_TEMPERATURE: return "VEHICLE_PROPERTY_ENV_OUTSIDE_TEMPERATURE";
-case VEHICLE_PROPERTY_ENV_CABIN_TEMPERATURE: return "VEHICLE_PROPERTY_ENV_CABIN_TEMPERATURE";
-case VEHICLE_PROPERTY_RADIO_PRESET: return "VEHICLE_PROPERTY_RADIO_PRESET";
-case VEHICLE_PROPERTY_AUDIO_FOCUS: return "VEHICLE_PROPERTY_AUDIO_FOCUS";
-case VEHICLE_PROPERTY_AUDIO_VOLUME: return "VEHICLE_PROPERTY_AUDIO_VOLUME";
-case VEHICLE_PROPERTY_AUDIO_VOLUME_LIMIT: return "VEHICLE_PROPERTY_AUDIO_VOLUME_LIMIT";
-case VEHICLE_PROPERTY_AUDIO_ROUTING_POLICY: return "VEHICLE_PROPERTY_AUDIO_ROUTING_POLICY";
-case VEHICLE_PROPERTY_AUDIO_HW_VARIANT: return "VEHICLE_PROPERTY_AUDIO_HW_VARIANT";
-case VEHICLE_PROPERTY_AUDIO_EXT_ROUTING_HINT: return "VEHICLE_PROPERTY_AUDIO_EXT_ROUTING_HINT";
-case VEHICLE_PROPERTY_AP_POWER_STATE: return "VEHICLE_PROPERTY_AP_POWER_STATE";
-case VEHICLE_PROPERTY_DISPLAY_BRIGHTNESS: return "VEHICLE_PROPERTY_DISPLAY_BRIGHTNESS";
-case VEHICLE_PROPERTY_AP_POWER_BOOTUP_REASON: return "VEHICLE_PROPERTY_AP_POWER_BOOTUP_REASON";
-case VEHICLE_PROPERTY_HW_KEY_INPUT: return "VEHICLE_PROPERTY_HW_KEY_INPUT";
-case VEHICLE_PROPERTY_INSTRUMENT_CLUSTER_INFO: return "VEHICLE_PROPERTY_INSTRUMENT_CLUSTER_INFO";
-case VEHICLE_PROPERTY_UNIX_TIME: return "VEHICLE_PROPERTY_UNIX_TIME";
-case VEHICLE_PROPERTY_CURRENT_TIME_IN_SECONDS: return "VEHICLE_PROPERTY_CURRENT_TIME_IN_SECONDS";
-case VEHICLE_PROPERTY_DOOR_POS: return "VEHICLE_PROPERTY_DOOR_POS";
-case VEHICLE_PROPERTY_DOOR_MOVE: return "VEHICLE_PROPERTY_DOOR_MOVE";
-case VEHICLE_PROPERTY_DOOR_LOCK: return "VEHICLE_PROPERTY_DOOR_LOCK";
-case VEHICLE_PROPERTY_MIRROR_Z_POS: return "VEHICLE_PROPERTY_MIRROR_Z_POS";
-case VEHICLE_PROPERTY_MIRROR_Z_MOVE: return "VEHICLE_PROPERTY_MIRROR_Z_MOVE";
-case VEHICLE_PROPERTY_MIRROR_Y_POS: return "VEHICLE_PROPERTY_MIRROR_Y_POS";
-case VEHICLE_PROPERTY_MIRROR_Y_MOVE: return "VEHICLE_PROPERTY_MIRROR_Y_MOVE";
-case VEHICLE_PROPERTY_MIRROR_LOCK: return "VEHICLE_PROPERTY_MIRROR_LOCK";
-case VEHICLE_PROPERTY_MIRROR_FOLD: return "VEHICLE_PROPERTY_MIRROR_FOLD";
-case VEHICLE_PROPERTY_SEAT_MEMORY_SELECT: return "VEHICLE_PROPERTY_SEAT_MEMORY_SELECT";
-case VEHICLE_PROPERTY_SEAT_MEMORY_SET: return "VEHICLE_PROPERTY_SEAT_MEMORY_SET";
-case VEHICLE_PROPERTY_SEAT_BELT_BUCKLED: return "VEHICLE_PROPERTY_SEAT_BELT_BUCKLED";
-case VEHICLE_PROPERTY_SEAT_BELT_HEIGHT_POS: return "VEHICLE_PROPERTY_SEAT_BELT_HEIGHT_POS";
-case VEHICLE_PROPERTY_SEAT_BELT_HEIGHT_MOVE: return "VEHICLE_PROPERTY_SEAT_BELT_HEIGHT_MOVE";
-case VEHICLE_PROPERTY_SEAT_FORE_AFT_POS: return "VEHICLE_PROPERTY_SEAT_FORE_AFT_POS";
-case VEHICLE_PROPERTY_SEAT_FORE_AFT_MOVE: return "VEHICLE_PROPERTY_SEAT_FORE_AFT_MOVE";
-case VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_1_POS: return "VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_1_POS";
-case VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_1_MOVE: return "VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_1_MOVE";
-case VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_2_POS: return "VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_2_POS";
-case VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_2_MOVE: return "VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_2_MOVE";
-case VEHICLE_PROPERTY_SEAT_HEIGHT_POS: return "VEHICLE_PROPERTY_SEAT_HEIGHT_POS";
-case VEHICLE_PROPERTY_SEAT_HEIGHT_MOVE: return "VEHICLE_PROPERTY_SEAT_HEIGHT_MOVE";
-case VEHICLE_PROPERTY_SEAT_DEPTH_POS: return "VEHICLE_PROPERTY_SEAT_DEPTH_POS";
-case VEHICLE_PROPERTY_SEAT_DEPTH_MOVE: return "VEHICLE_PROPERTY_SEAT_DEPTH_MOVE";
-case VEHICLE_PROPERTY_SEAT_TILT_POS: return "VEHICLE_PROPERTY_SEAT_TILT_POS";
-case VEHICLE_PROPERTY_SEAT_TILT_MOVE: return "VEHICLE_PROPERTY_SEAT_TILT_MOVE";
-case VEHICLE_PROPERTY_SEAT_LUMBAR_FORE_AFT_POS: return "VEHICLE_PROPERTY_SEAT_LUMBAR_FORE_AFT_POS";
-case VEHICLE_PROPERTY_SEAT_LUMBAR_FORE_AFT_MOVE: return "VEHICLE_PROPERTY_SEAT_LUMBAR_FORE_AFT_MOVE";
-case VEHICLE_PROPERTY_SEAT_LUMBAR_SIDE_SUPPORT_POS: return "VEHICLE_PROPERTY_SEAT_LUMBAR_SIDE_SUPPORT_POS";
-case VEHICLE_PROPERTY_SEAT_LUMBAR_SIDE_SUPPORT_MOVE: return "VEHICLE_PROPERTY_SEAT_LUMBAR_SIDE_SUPPORT_MOVE";
-case VEHICLE_PROPERTY_SEAT_HEADREST_HEIGHT_POS: return "VEHICLE_PROPERTY_SEAT_HEADREST_HEIGHT_POS";
-case VEHICLE_PROPERTY_SEAT_HEADREST_HEIGHT_MOVE: return "VEHICLE_PROPERTY_SEAT_HEADREST_HEIGHT_MOVE";
-case VEHICLE_PROPERTY_SEAT_HEADREST_ANGLE_POS: return "VEHICLE_PROPERTY_SEAT_HEADREST_ANGLE_POS";
-case VEHICLE_PROPERTY_SEAT_HEADREST_ANGLE_MOVE: return "VEHICLE_PROPERTY_SEAT_HEADREST_ANGLE_MOVE";
-case VEHICLE_PROPERTY_SEAT_HEADREST_FORE_AFT_POS: return "VEHICLE_PROPERTY_SEAT_HEADREST_FORE_AFT_POS";
-case VEHICLE_PROPERTY_SEAT_HEADREST_FORE_AFT_MOVE: return "VEHICLE_PROPERTY_SEAT_HEADREST_FORE_AFT_MOVE";
-case VEHICLE_PROPERTY_WINDOW_POS: return "VEHICLE_PROPERTY_WINDOW_POS";
-case VEHICLE_PROPERTY_WINDOW_MOVE: return "VEHICLE_PROPERTY_WINDOW_MOVE";
-case VEHICLE_PROPERTY_WINDOW_VENT_POS: return "VEHICLE_PROPERTY_WINDOW_VENT_POS";
-case VEHICLE_PROPERTY_WINDOW_VENT_MOVE: return "VEHICLE_PROPERTY_WINDOW_VENT_MOVE";
-case VEHICLE_PROPERTY_WINDOW_LOCK: return "VEHICLE_PROPERTY_WINDOW_LOCK";
-case VEHICLE_PROPERTY_INTERNAL_AUDIO_STREAM_STATE: return "VEHICLE_PROPERTY_INTERNAL_AUDIO_STREAM_STATE";
-default: return "UNKNOWN_PROPERTY";
-}
-}
-
-public static int[] getVehicleChangeMode(int property) {
-switch (property) {
-case VEHICLE_PROPERTY_INFO_VIN: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_STATIC };
-case VEHICLE_PROPERTY_INFO_MAKE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_STATIC };
-case VEHICLE_PROPERTY_INFO_MODEL: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_STATIC };
-case VEHICLE_PROPERTY_INFO_MODEL_YEAR: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_STATIC };
-case VEHICLE_PROPERTY_INFO_FUEL_CAPACITY: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_STATIC };
-case VEHICLE_PROPERTY_PERF_ODOMETER: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE , VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_CONTINUOUS };
-case VEHICLE_PROPERTY_PERF_VEHICLE_SPEED: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE , VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_CONTINUOUS };
-case VEHICLE_PROPERTY_ENGINE_COOLANT_TEMP: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE , VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_CONTINUOUS };
-case VEHICLE_PROPERTY_ENGINE_OIL_TEMP: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE , VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_CONTINUOUS };
-case VEHICLE_PROPERTY_ENGINE_RPM: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE , VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_CONTINUOUS };
-case VEHICLE_PROPERTY_GEAR_SELECTION: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_CURRENT_GEAR: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_PARKING_BRAKE_ON: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_DRIVING_STATUS: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_FUEL_LEVEL_LOW: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_NIGHT_MODE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_HVAC_FAN_SPEED: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_HVAC_FAN_DIRECTION: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_HVAC_TEMPERATURE_CURRENT: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_HVAC_TEMPERATURE_SET: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_HVAC_DEFROSTER: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_HVAC_AC_ON: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_HVAC_MAX_AC_ON: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_HVAC_MAX_DEFROST_ON: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_HVAC_RECIRC_ON: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_HVAC_DUAL_ON: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_HVAC_AUTO_ON: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_HVAC_SEAT_TEMPERATURE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_HVAC_SIDE_MIRROR_HEAT: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_HVAC_STEERING_WHEEL_TEMP: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_HVAC_TEMPERATURE_UNITS: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_HVAC_ACTUAL_FAN_SPEED_RPM: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_HVAC_POWER_ON: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_HVAC_FAN_DIRECTION_AVAILABLE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_STATIC };
-case VEHICLE_PROPERTY_ENV_OUTSIDE_TEMPERATURE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE , VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_CONTINUOUS };
-case VEHICLE_PROPERTY_ENV_CABIN_TEMPERATURE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE , VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_CONTINUOUS };
-case VEHICLE_PROPERTY_RADIO_PRESET: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_AUDIO_FOCUS: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_AUDIO_VOLUME: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_AUDIO_VOLUME_LIMIT: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_AUDIO_ROUTING_POLICY: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_AUDIO_HW_VARIANT: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_STATIC };
-case VEHICLE_PROPERTY_AUDIO_EXT_ROUTING_HINT: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_AP_POWER_STATE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_DISPLAY_BRIGHTNESS: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_AP_POWER_BOOTUP_REASON: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_STATIC };
-case VEHICLE_PROPERTY_HW_KEY_INPUT: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_INSTRUMENT_CLUSTER_INFO: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_UNIX_TIME: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_SET };
-case VEHICLE_PROPERTY_CURRENT_TIME_IN_SECONDS: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_SET };
-case VEHICLE_PROPERTY_DOOR_POS: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_DOOR_MOVE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_DOOR_LOCK: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_MIRROR_Z_POS: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_MIRROR_Z_MOVE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_MIRROR_Y_POS: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_MIRROR_Y_MOVE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_MIRROR_LOCK: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_MIRROR_FOLD: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_SEAT_MEMORY_SELECT: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_SEAT_MEMORY_SET: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_SEAT_BELT_BUCKLED: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_SEAT_BELT_HEIGHT_POS: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_SEAT_BELT_HEIGHT_MOVE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_SEAT_FORE_AFT_POS: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_SEAT_FORE_AFT_MOVE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_1_POS: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_1_MOVE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_2_POS: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_2_MOVE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_SEAT_HEIGHT_POS: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_SEAT_HEIGHT_MOVE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_SEAT_DEPTH_POS: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_SEAT_DEPTH_MOVE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_SEAT_TILT_POS: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_SEAT_TILT_MOVE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_SEAT_LUMBAR_FORE_AFT_POS: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_SEAT_LUMBAR_FORE_AFT_MOVE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_SEAT_LUMBAR_SIDE_SUPPORT_POS: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_SEAT_LUMBAR_SIDE_SUPPORT_MOVE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_SEAT_HEADREST_HEIGHT_POS: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_SEAT_HEADREST_HEIGHT_MOVE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_SEAT_HEADREST_ANGLE_POS: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_SEAT_HEADREST_ANGLE_MOVE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_SEAT_HEADREST_FORE_AFT_POS: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_SEAT_HEADREST_FORE_AFT_MOVE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_WINDOW_POS: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_WINDOW_MOVE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_WINDOW_VENT_POS: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_WINDOW_VENT_MOVE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_WINDOW_LOCK: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-case VEHICLE_PROPERTY_INTERNAL_AUDIO_STREAM_STATE: return new int[] { VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE };
-default: return null;
-}
-}
-
-public static int[] getVehicleAccess(int property) {
-switch (property) {
-case VEHICLE_PROPERTY_INFO_VIN: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ };
-case VEHICLE_PROPERTY_INFO_MAKE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ };
-case VEHICLE_PROPERTY_INFO_MODEL: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ };
-case VEHICLE_PROPERTY_INFO_MODEL_YEAR: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ };
-case VEHICLE_PROPERTY_INFO_FUEL_CAPACITY: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ };
-case VEHICLE_PROPERTY_PERF_ODOMETER: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ };
-case VEHICLE_PROPERTY_PERF_VEHICLE_SPEED: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ };
-case VEHICLE_PROPERTY_ENGINE_COOLANT_TEMP: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ };
-case VEHICLE_PROPERTY_ENGINE_OIL_TEMP: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ };
-case VEHICLE_PROPERTY_ENGINE_RPM: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ };
-case VEHICLE_PROPERTY_GEAR_SELECTION: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ };
-case VEHICLE_PROPERTY_CURRENT_GEAR: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ };
-case VEHICLE_PROPERTY_PARKING_BRAKE_ON: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ };
-case VEHICLE_PROPERTY_DRIVING_STATUS: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ };
-case VEHICLE_PROPERTY_FUEL_LEVEL_LOW: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ };
-case VEHICLE_PROPERTY_NIGHT_MODE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ };
-case VEHICLE_PROPERTY_HVAC_FAN_SPEED: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE };
-case VEHICLE_PROPERTY_HVAC_FAN_DIRECTION: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE };
-case VEHICLE_PROPERTY_HVAC_TEMPERATURE_CURRENT: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE };
-case VEHICLE_PROPERTY_HVAC_TEMPERATURE_SET: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE };
-case VEHICLE_PROPERTY_HVAC_DEFROSTER: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE };
-case VEHICLE_PROPERTY_HVAC_AC_ON: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE };
-case VEHICLE_PROPERTY_HVAC_MAX_AC_ON: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE };
-case VEHICLE_PROPERTY_HVAC_MAX_DEFROST_ON: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE };
-case VEHICLE_PROPERTY_HVAC_RECIRC_ON: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE };
-case VEHICLE_PROPERTY_HVAC_DUAL_ON: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE };
-case VEHICLE_PROPERTY_HVAC_AUTO_ON: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE };
-case VEHICLE_PROPERTY_HVAC_SEAT_TEMPERATURE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE };
-case VEHICLE_PROPERTY_HVAC_SIDE_MIRROR_HEAT: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE };
-case VEHICLE_PROPERTY_HVAC_STEERING_WHEEL_TEMP: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE };
-case VEHICLE_PROPERTY_HVAC_TEMPERATURE_UNITS: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ };
-case VEHICLE_PROPERTY_HVAC_ACTUAL_FAN_SPEED_RPM: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ };
-case VEHICLE_PROPERTY_HVAC_POWER_ON: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE };
-case VEHICLE_PROPERTY_HVAC_FAN_DIRECTION_AVAILABLE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ };
-case VEHICLE_PROPERTY_ENV_OUTSIDE_TEMPERATURE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ };
-case VEHICLE_PROPERTY_ENV_CABIN_TEMPERATURE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ };
-case VEHICLE_PROPERTY_RADIO_PRESET: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE };
-case VEHICLE_PROPERTY_AUDIO_FOCUS: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE };
-case VEHICLE_PROPERTY_AUDIO_VOLUME: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE };
-case VEHICLE_PROPERTY_AUDIO_VOLUME_LIMIT: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE };
-case VEHICLE_PROPERTY_AUDIO_ROUTING_POLICY: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_WRITE };
-case VEHICLE_PROPERTY_AUDIO_HW_VARIANT: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ };
-case VEHICLE_PROPERTY_AUDIO_EXT_ROUTING_HINT: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_WRITE , VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE };
-case VEHICLE_PROPERTY_AP_POWER_STATE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE };
-case VEHICLE_PROPERTY_DISPLAY_BRIGHTNESS: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ , VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE };
-case VEHICLE_PROPERTY_AP_POWER_BOOTUP_REASON: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ };
-case VEHICLE_PROPERTY_HW_KEY_INPUT: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ };
-case VEHICLE_PROPERTY_INSTRUMENT_CLUSTER_INFO: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE };
-case VEHICLE_PROPERTY_UNIX_TIME: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE };
-case VEHICLE_PROPERTY_CURRENT_TIME_IN_SECONDS: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE };
-case VEHICLE_PROPERTY_DOOR_POS: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ , VehiclePropAccess.VEHICLE_PROP_ACCESS_WRITE };
-case VEHICLE_PROPERTY_DOOR_MOVE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE , VehiclePropAccess.VEHICLE_PROP_ACCESS_WRITE };
-case VEHICLE_PROPERTY_DOOR_LOCK: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE };
-case VEHICLE_PROPERTY_MIRROR_Z_POS: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE };
-case VEHICLE_PROPERTY_MIRROR_Z_MOVE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE , VehiclePropAccess.VEHICLE_PROP_ACCESS_WRITE };
-case VEHICLE_PROPERTY_MIRROR_Y_POS: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE };
-case VEHICLE_PROPERTY_MIRROR_Y_MOVE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE , VehiclePropAccess.VEHICLE_PROP_ACCESS_WRITE };
-case VEHICLE_PROPERTY_MIRROR_LOCK: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE };
-case VEHICLE_PROPERTY_MIRROR_FOLD: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE };
-case VEHICLE_PROPERTY_SEAT_MEMORY_SELECT: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_WRITE };
-case VEHICLE_PROPERTY_SEAT_MEMORY_SET: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_WRITE };
-case VEHICLE_PROPERTY_SEAT_BELT_BUCKLED: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ , VehiclePropAccess.VEHICLE_PROP_ACCESS_WRITE };
-case VEHICLE_PROPERTY_SEAT_BELT_HEIGHT_POS: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE };
-case VEHICLE_PROPERTY_SEAT_BELT_HEIGHT_MOVE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE , VehiclePropAccess.VEHICLE_PROP_ACCESS_WRITE };
-case VEHICLE_PROPERTY_SEAT_FORE_AFT_POS: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE };
-case VEHICLE_PROPERTY_SEAT_FORE_AFT_MOVE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE , VehiclePropAccess.VEHICLE_PROP_ACCESS_WRITE };
-case VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_1_POS: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE };
-case VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_1_MOVE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE , VehiclePropAccess.VEHICLE_PROP_ACCESS_WRITE };
-case VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_2_POS: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE };
-case VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_2_MOVE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE , VehiclePropAccess.VEHICLE_PROP_ACCESS_WRITE };
-case VEHICLE_PROPERTY_SEAT_HEIGHT_POS: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE };
-case VEHICLE_PROPERTY_SEAT_HEIGHT_MOVE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE , VehiclePropAccess.VEHICLE_PROP_ACCESS_WRITE };
-case VEHICLE_PROPERTY_SEAT_DEPTH_POS: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE };
-case VEHICLE_PROPERTY_SEAT_DEPTH_MOVE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE , VehiclePropAccess.VEHICLE_PROP_ACCESS_WRITE };
-case VEHICLE_PROPERTY_SEAT_TILT_POS: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE };
-case VEHICLE_PROPERTY_SEAT_TILT_MOVE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE , VehiclePropAccess.VEHICLE_PROP_ACCESS_WRITE };
-case VEHICLE_PROPERTY_SEAT_LUMBAR_FORE_AFT_POS: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE };
-case VEHICLE_PROPERTY_SEAT_LUMBAR_FORE_AFT_MOVE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE , VehiclePropAccess.VEHICLE_PROP_ACCESS_WRITE };
-case VEHICLE_PROPERTY_SEAT_LUMBAR_SIDE_SUPPORT_POS: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE };
-case VEHICLE_PROPERTY_SEAT_LUMBAR_SIDE_SUPPORT_MOVE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE , VehiclePropAccess.VEHICLE_PROP_ACCESS_WRITE };
-case VEHICLE_PROPERTY_SEAT_HEADREST_HEIGHT_POS: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE };
-case VEHICLE_PROPERTY_SEAT_HEADREST_HEIGHT_MOVE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE , VehiclePropAccess.VEHICLE_PROP_ACCESS_WRITE };
-case VEHICLE_PROPERTY_SEAT_HEADREST_ANGLE_POS: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE };
-case VEHICLE_PROPERTY_SEAT_HEADREST_ANGLE_MOVE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE , VehiclePropAccess.VEHICLE_PROP_ACCESS_WRITE };
-case VEHICLE_PROPERTY_SEAT_HEADREST_FORE_AFT_POS: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE };
-case VEHICLE_PROPERTY_SEAT_HEADREST_FORE_AFT_MOVE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE , VehiclePropAccess.VEHICLE_PROP_ACCESS_WRITE };
-case VEHICLE_PROPERTY_WINDOW_POS: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE };
-case VEHICLE_PROPERTY_WINDOW_MOVE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE , VehiclePropAccess.VEHICLE_PROP_ACCESS_WRITE };
-case VEHICLE_PROPERTY_WINDOW_VENT_POS: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE };
-case VEHICLE_PROPERTY_WINDOW_VENT_MOVE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE , VehiclePropAccess.VEHICLE_PROP_ACCESS_WRITE };
-case VEHICLE_PROPERTY_WINDOW_LOCK: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE };
-case VEHICLE_PROPERTY_INTERNAL_AUDIO_STREAM_STATE: return new int[] { VehiclePropAccess.VEHICLE_PROP_ACCESS_READ_WRITE };
-default: return null;
-}
-}
-
-public static int getVehicleZoneType(int property) {
-switch (property) {
-case VEHICLE_PROPERTY_HVAC_FAN_SPEED: return VehicleZoneType.VEHICLE_ZONE_TYPE_ZONE ;
-case VEHICLE_PROPERTY_HVAC_FAN_DIRECTION: return VehicleZoneType.VEHICLE_ZONE_TYPE_ZONE ;
-case VEHICLE_PROPERTY_HVAC_TEMPERATURE_CURRENT: return VehicleZoneType.VEHICLE_ZONE_TYPE_ZONE ;
-case VEHICLE_PROPERTY_HVAC_TEMPERATURE_SET: return VehicleZoneType.VEHICLE_ZONE_TYPE_ZONE ;
-case VEHICLE_PROPERTY_HVAC_DEFROSTER: return VehicleZoneType.VEHICLE_ZONE_TYPE_WINDOW ;
-case VEHICLE_PROPERTY_HVAC_AC_ON: return VehicleZoneType.VEHICLE_ZONE_TYPE_ZONE ;
-case VEHICLE_PROPERTY_HVAC_MAX_AC_ON: return VehicleZoneType.VEHICLE_ZONE_TYPE_ZONE ;
-case VEHICLE_PROPERTY_HVAC_MAX_DEFROST_ON: return VehicleZoneType.VEHICLE_ZONE_TYPE_ZONE ;
-case VEHICLE_PROPERTY_HVAC_RECIRC_ON: return VehicleZoneType.VEHICLE_ZONE_TYPE_ZONE ;
-case VEHICLE_PROPERTY_HVAC_DUAL_ON: return VehicleZoneType.VEHICLE_ZONE_TYPE_ZONE ;
-case VEHICLE_PROPERTY_HVAC_AUTO_ON: return VehicleZoneType.VEHICLE_ZONE_TYPE_ZONE ;
-case VEHICLE_PROPERTY_HVAC_SEAT_TEMPERATURE: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ;
-case VEHICLE_PROPERTY_HVAC_ACTUAL_FAN_SPEED_RPM: return VehicleZoneType.VEHICLE_ZONE_TYPE_ZONE ;
-case VEHICLE_PROPERTY_HVAC_POWER_ON: return VehicleZoneType.VEHICLE_ZONE_TYPE_ZONE ;
-case VEHICLE_PROPERTY_HVAC_FAN_DIRECTION_AVAILABLE: return VehicleZoneType.VEHICLE_ZONE_TYPE_ZONE ;
-case VEHICLE_PROPERTY_DOOR_POS: return VehicleZoneType.VEHICLE_ZONE_TYPE_DOOR ;
-case VEHICLE_PROPERTY_DOOR_MOVE: return VehicleZoneType.VEHICLE_ZONE_TYPE_DOOR ;
-case VEHICLE_PROPERTY_DOOR_LOCK: return VehicleZoneType.VEHICLE_ZONE_TYPE_DOOR ;
-case VEHICLE_PROPERTY_MIRROR_Z_POS: return VehicleZoneType.VEHICLE_ZONE_TYPE_MIRROR ;
-case VEHICLE_PROPERTY_MIRROR_Z_MOVE: return VehicleZoneType.VEHICLE_ZONE_TYPE_MIRROR ;
-case VEHICLE_PROPERTY_MIRROR_Y_POS: return VehicleZoneType.VEHICLE_ZONE_TYPE_MIRROR ;
-case VEHICLE_PROPERTY_MIRROR_Y_MOVE: return VehicleZoneType.VEHICLE_ZONE_TYPE_MIRROR ;
-case VEHICLE_PROPERTY_SEAT_MEMORY_SELECT: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ;
-case VEHICLE_PROPERTY_SEAT_MEMORY_SET: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ;
-case VEHICLE_PROPERTY_SEAT_BELT_BUCKLED: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ;
-case VEHICLE_PROPERTY_SEAT_BELT_HEIGHT_POS: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ;
-case VEHICLE_PROPERTY_SEAT_BELT_HEIGHT_MOVE: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ;
-case VEHICLE_PROPERTY_SEAT_FORE_AFT_POS: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ;
-case VEHICLE_PROPERTY_SEAT_FORE_AFT_MOVE: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ;
-case VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_1_POS: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ;
-case VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_1_MOVE: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ;
-case VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_2_POS: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ;
-case VEHICLE_PROPERTY_SEAT_BACKREST_ANGLE_2_MOVE: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ;
-case VEHICLE_PROPERTY_SEAT_HEIGHT_POS: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ;
-case VEHICLE_PROPERTY_SEAT_HEIGHT_MOVE: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ;
-case VEHICLE_PROPERTY_SEAT_DEPTH_POS: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ;
-case VEHICLE_PROPERTY_SEAT_DEPTH_MOVE: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ;
-case VEHICLE_PROPERTY_SEAT_TILT_POS: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ;
-case VEHICLE_PROPERTY_SEAT_TILT_MOVE: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ;
-case VEHICLE_PROPERTY_SEAT_LUMBAR_FORE_AFT_POS: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ;
-case VEHICLE_PROPERTY_SEAT_LUMBAR_FORE_AFT_MOVE: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ;
-case VEHICLE_PROPERTY_SEAT_LUMBAR_SIDE_SUPPORT_POS: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ;
-case VEHICLE_PROPERTY_SEAT_LUMBAR_SIDE_SUPPORT_MOVE: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ;
-case VEHICLE_PROPERTY_SEAT_HEADREST_HEIGHT_POS: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ;
-case VEHICLE_PROPERTY_SEAT_HEADREST_HEIGHT_MOVE: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ;
-case VEHICLE_PROPERTY_SEAT_HEADREST_ANGLE_POS: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ;
-case VEHICLE_PROPERTY_SEAT_HEADREST_ANGLE_MOVE: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ;
-case VEHICLE_PROPERTY_SEAT_HEADREST_FORE_AFT_POS: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ;
-case VEHICLE_PROPERTY_SEAT_HEADREST_FORE_AFT_MOVE: return VehicleZoneType.VEHICLE_ZONE_TYPE_SEAT ;
-default: return VehicleZoneType.VEHICLE_ZONE_TYPE_NONE;
-}
-}
-
-
-
-
-public static final String VEHICLE_PROPERTY_AUDIO_EXT_ROUTING_SOURCE_RADIO_AM_FM = "RADIO_AM_FM";
-public static final String VEHICLE_PROPERTY_AUDIO_EXT_ROUTING_SOURCE_RADIO_AM_FM_HD = "RADIO_AM_FM_HD";
-public static final String VEHICLE_PROPERTY_AUDIO_EXT_ROUTING_SOURCE_RADIO_DAB = "RADIO_DAB";
-public static final String VEHICLE_PROPERTY_AUDIO_EXT_ROUTING_SOURCE_RADIO_SATELLITE = "RADIO_SATELLITE";
-public static final String VEHICLE_PROPERTY_AUDIO_EXT_ROUTING_SOURCE_CD_DVD = "CD_DVD";
-public static final String VEHICLE_PROPERTY_AUDIO_EXT_ROUTING_SOURCE_AUX_IN0 = "AUX_IN0";
-public static final String VEHICLE_PROPERTY_AUDIO_EXT_ROUTING_SOURCE_AUX_IN1 = "AUX_IN1";
-public static final String VEHICLE_PROPERTY_AUDIO_EXT_ROUTING_SOURCE_EXT_NAV_GUIDANCE = "EXT_NAV_GUIDANCE";
-public static final String VEHICLE_PROPERTY_AUDIO_EXT_ROUTING_SOURCE_EXT_VOICE_COMMAND = "EXT_VOICE_COMMAND";
-public static final String VEHICLE_PROPERTY_AUDIO_EXT_ROUTING_SOURCE_EXT_VOICE_CALL = "EXT_VOICE_CALL";
-public static final String VEHICLE_PROPERTY_AUDIO_EXT_ROUTING_SOURCE_EXT_SAFETY_ALERT = "EXT_SAFETY_ALERT";
-
-
-
-public static class VehicleHvacFanDirection {
-public static final int VEHICLE_HVAC_FAN_DIRECTION_FACE = 0x1;
-public static final int VEHICLE_HVAC_FAN_DIRECTION_FLOOR = 0x2;
-public static final int VEHICLE_HVAC_FAN_DIRECTION_FACE_AND_FLOOR = 0x3;
-public static final int VEHICLE_HVAC_FAN_DIRECTION_DEFROST = 0x4;
-public static final int VEHICLE_HVAC_FAN_DIRECTION_DEFROST_AND_FLOOR = 0x5;
-public static String enumToString(int v) {
-switch(v) {
-case VEHICLE_HVAC_FAN_DIRECTION_FACE: return "VEHICLE_HVAC_FAN_DIRECTION_FACE";
-case VEHICLE_HVAC_FAN_DIRECTION_FLOOR: return "VEHICLE_HVAC_FAN_DIRECTION_FLOOR";
-case VEHICLE_HVAC_FAN_DIRECTION_FACE_AND_FLOOR: return "VEHICLE_HVAC_FAN_DIRECTION_FACE_AND_FLOOR";
-case VEHICLE_HVAC_FAN_DIRECTION_DEFROST: return "VEHICLE_HVAC_FAN_DIRECTION_DEFROST";
-case VEHICLE_HVAC_FAN_DIRECTION_DEFROST_AND_FLOOR: return "VEHICLE_HVAC_FAN_DIRECTION_DEFROST_AND_FLOOR";
-default: return "UNKNOWN";
-}
-}
-}
-
-public static class VehicleRadioConsts {
-public static final int VEHICLE_RADIO_PRESET_MIN_VALUE = 1;
-public static String enumToString(int v) {
-switch(v) {
-case VEHICLE_RADIO_PRESET_MIN_VALUE: return "VEHICLE_RADIO_PRESET_MIN_VALUE";
-default: return "UNKNOWN";
-}
-}
-}
-
-public static class VehicleAudioFocusRequest {
-public static final int VEHICLE_AUDIO_FOCUS_REQUEST_GAIN = 0x1;
-public static final int VEHICLE_AUDIO_FOCUS_REQUEST_GAIN_TRANSIENT = 0x2;
-public static final int VEHICLE_AUDIO_FOCUS_REQUEST_GAIN_TRANSIENT_MAY_DUCK = 0x3;
-public static final int VEHICLE_AUDIO_FOCUS_REQUEST_GAIN_TRANSIENT_NO_DUCK = 0x4;
-public static final int VEHICLE_AUDIO_FOCUS_REQUEST_RELEASE = 0x5;
-public static String enumToString(int v) {
-switch(v) {
-case VEHICLE_AUDIO_FOCUS_REQUEST_GAIN: return "VEHICLE_AUDIO_FOCUS_REQUEST_GAIN";
-case VEHICLE_AUDIO_FOCUS_REQUEST_GAIN_TRANSIENT: return "VEHICLE_AUDIO_FOCUS_REQUEST_GAIN_TRANSIENT";
-case VEHICLE_AUDIO_FOCUS_REQUEST_GAIN_TRANSIENT_MAY_DUCK: return "VEHICLE_AUDIO_FOCUS_REQUEST_GAIN_TRANSIENT_MAY_DUCK";
-case VEHICLE_AUDIO_FOCUS_REQUEST_GAIN_TRANSIENT_NO_DUCK: return "VEHICLE_AUDIO_FOCUS_REQUEST_GAIN_TRANSIENT_NO_DUCK";
-case VEHICLE_AUDIO_FOCUS_REQUEST_RELEASE: return "VEHICLE_AUDIO_FOCUS_REQUEST_RELEASE";
-default: return "UNKNOWN";
-}
-}
-}
-
-public static class VehicleAudioFocusState {
-public static final int VEHICLE_AUDIO_FOCUS_STATE_GAIN = 0x1;
-public static final int VEHICLE_AUDIO_FOCUS_STATE_GAIN_TRANSIENT = 0x2;
-public static final int VEHICLE_AUDIO_FOCUS_STATE_LOSS_TRANSIENT_CAN_DUCK = 0x3;
-public static final int VEHICLE_AUDIO_FOCUS_STATE_LOSS_TRANSIENT = 0x4;
-public static final int VEHICLE_AUDIO_FOCUS_STATE_LOSS = 0x5;
-public static final int VEHICLE_AUDIO_FOCUS_STATE_LOSS_TRANSIENT_EXLCUSIVE = 0x6;
-public static String enumToString(int v) {
-switch(v) {
-case VEHICLE_AUDIO_FOCUS_STATE_GAIN: return "VEHICLE_AUDIO_FOCUS_STATE_GAIN";
-case VEHICLE_AUDIO_FOCUS_STATE_GAIN_TRANSIENT: return "VEHICLE_AUDIO_FOCUS_STATE_GAIN_TRANSIENT";
-case VEHICLE_AUDIO_FOCUS_STATE_LOSS_TRANSIENT_CAN_DUCK: return "VEHICLE_AUDIO_FOCUS_STATE_LOSS_TRANSIENT_CAN_DUCK";
-case VEHICLE_AUDIO_FOCUS_STATE_LOSS_TRANSIENT: return "VEHICLE_AUDIO_FOCUS_STATE_LOSS_TRANSIENT";
-case VEHICLE_AUDIO_FOCUS_STATE_LOSS: return "VEHICLE_AUDIO_FOCUS_STATE_LOSS";
-case VEHICLE_AUDIO_FOCUS_STATE_LOSS_TRANSIENT_EXLCUSIVE: return "VEHICLE_AUDIO_FOCUS_STATE_LOSS_TRANSIENT_EXLCUSIVE";
-default: return "UNKNOWN";
-}
-}
-}
-
-public static class VehicleAudioStreamFlag {
-public static final int VEHICLE_AUDIO_STREAM_STREAM0_FLAG = (0x1<<0);
-public static final int VEHICLE_AUDIO_STREAM_STREAM1_FLAG = (0x1<<1);
-public static final int VEHICLE_AUDIO_STREAM_STREAM2_FLAG = (0x1<<2);
-public static String enumToString(int v) {
-switch(v) {
-case VEHICLE_AUDIO_STREAM_STREAM0_FLAG: return "VEHICLE_AUDIO_STREAM_STREAM0_FLAG";
-case VEHICLE_AUDIO_STREAM_STREAM1_FLAG: return "VEHICLE_AUDIO_STREAM_STREAM1_FLAG";
-case VEHICLE_AUDIO_STREAM_STREAM2_FLAG: return "VEHICLE_AUDIO_STREAM_STREAM2_FLAG";
-default: return "UNKNOWN";
-}
-}
-}
-
-public static class VehicleAudioStream {
-public static final int VEHICLE_AUDIO_STREAM0 = 0;
-public static final int VEHICLE_AUDIO_STREAM1 = 1;
-public static String enumToString(int v) {
-switch(v) {
-case VEHICLE_AUDIO_STREAM0: return "VEHICLE_AUDIO_STREAM0";
-case VEHICLE_AUDIO_STREAM1: return "VEHICLE_AUDIO_STREAM1";
-default: return "UNKNOWN";
-}
-}
-}
-
-public static class VehicleAudioExtFocusFlag {
-public static final int VEHICLE_AUDIO_EXT_FOCUS_NONE_FLAG = 0x0;
-public static final int VEHICLE_AUDIO_EXT_FOCUS_CAR_PERMANENT_FLAG = 0x1;
-public static final int VEHICLE_AUDIO_EXT_FOCUS_CAR_TRANSIENT_FLAG = 0x2;
-public static final int VEHICLE_AUDIO_EXT_FOCUS_CAR_PLAY_ONLY_FLAG = 0x4;
-public static final int VEHICLE_AUDIO_EXT_FOCUS_CAR_MUTE_MEDIA_FLAG = 0x8;
-public static String enumToString(int v) {
-switch(v) {
-case VEHICLE_AUDIO_EXT_FOCUS_NONE_FLAG: return "VEHICLE_AUDIO_EXT_FOCUS_NONE_FLAG";
-case VEHICLE_AUDIO_EXT_FOCUS_CAR_PERMANENT_FLAG: return "VEHICLE_AUDIO_EXT_FOCUS_CAR_PERMANENT_FLAG";
-case VEHICLE_AUDIO_EXT_FOCUS_CAR_TRANSIENT_FLAG: return "VEHICLE_AUDIO_EXT_FOCUS_CAR_TRANSIENT_FLAG";
-case VEHICLE_AUDIO_EXT_FOCUS_CAR_PLAY_ONLY_FLAG: return "VEHICLE_AUDIO_EXT_FOCUS_CAR_PLAY_ONLY_FLAG";
-case VEHICLE_AUDIO_EXT_FOCUS_CAR_MUTE_MEDIA_FLAG: return "VEHICLE_AUDIO_EXT_FOCUS_CAR_MUTE_MEDIA_FLAG";
-default: return "UNKNOWN";
-}
-}
-}
-
-public static class VehicleAudioFocusIndex {
-public static final int VEHICLE_AUDIO_FOCUS_INDEX_FOCUS = 0;
-public static final int VEHICLE_AUDIO_FOCUS_INDEX_STREAMS = 1;
-public static final int VEHICLE_AUDIO_FOCUS_INDEX_EXTERNAL_FOCUS_STATE = 2;
-public static final int VEHICLE_AUDIO_FOCUS_INDEX_AUDIO_CONTEXTS = 3;
-public static String enumToString(int v) {
-switch(v) {
-case VEHICLE_AUDIO_FOCUS_INDEX_FOCUS: return "VEHICLE_AUDIO_FOCUS_INDEX_FOCUS";
-case VEHICLE_AUDIO_FOCUS_INDEX_STREAMS: return "VEHICLE_AUDIO_FOCUS_INDEX_STREAMS";
-case VEHICLE_AUDIO_FOCUS_INDEX_EXTERNAL_FOCUS_STATE: return "VEHICLE_AUDIO_FOCUS_INDEX_EXTERNAL_FOCUS_STATE";
-case VEHICLE_AUDIO_FOCUS_INDEX_AUDIO_CONTEXTS: return "VEHICLE_AUDIO_FOCUS_INDEX_AUDIO_CONTEXTS";
-default: return "UNKNOWN";
-}
-}
-}
-
-public static class VehicleAudioContextFlag {
-public static final int VEHICLE_AUDIO_CONTEXT_MUSIC_FLAG = 0x1;
-public static final int VEHICLE_AUDIO_CONTEXT_NAVIGATION_FLAG = 0x2;
-public static final int VEHICLE_AUDIO_CONTEXT_VOICE_COMMAND_FLAG = 0x4;
-public static final int VEHICLE_AUDIO_CONTEXT_CALL_FLAG = 0x8;
-public static final int VEHICLE_AUDIO_CONTEXT_ALARM_FLAG = 0x10;
-public static final int VEHICLE_AUDIO_CONTEXT_NOTIFICATION_FLAG = 0x20;
-public static final int VEHICLE_AUDIO_CONTEXT_UNKNOWN_FLAG = 0x40;
-public static final int VEHICLE_AUDIO_CONTEXT_SAFETY_ALERT_FLAG = 0x80;
-public static final int VEHICLE_AUDIO_CONTEXT_CD_ROM_FLAG = 0x100;
-public static final int VEHICLE_AUDIO_CONTEXT_AUX_AUDIO_FLAG = 0x200;
-public static final int VEHICLE_AUDIO_CONTEXT_SYSTEM_SOUND_FLAG = 0x400;
-public static final int VEHICLE_AUDIO_CONTEXT_RADIO_FLAG = 0x800;
-public static final int VEHICLE_AUDIO_CONTEXT_EXT_SOURCE_FLAG = 0x1000;
-public static String enumToString(int v) {
-switch(v) {
-case VEHICLE_AUDIO_CONTEXT_MUSIC_FLAG: return "VEHICLE_AUDIO_CONTEXT_MUSIC_FLAG";
-case VEHICLE_AUDIO_CONTEXT_NAVIGATION_FLAG: return "VEHICLE_AUDIO_CONTEXT_NAVIGATION_FLAG";
-case VEHICLE_AUDIO_CONTEXT_VOICE_COMMAND_FLAG: return "VEHICLE_AUDIO_CONTEXT_VOICE_COMMAND_FLAG";
-case VEHICLE_AUDIO_CONTEXT_CALL_FLAG: return "VEHICLE_AUDIO_CONTEXT_CALL_FLAG";
-case VEHICLE_AUDIO_CONTEXT_ALARM_FLAG: return "VEHICLE_AUDIO_CONTEXT_ALARM_FLAG";
-case VEHICLE_AUDIO_CONTEXT_NOTIFICATION_FLAG: return "VEHICLE_AUDIO_CONTEXT_NOTIFICATION_FLAG";
-case VEHICLE_AUDIO_CONTEXT_UNKNOWN_FLAG: return "VEHICLE_AUDIO_CONTEXT_UNKNOWN_FLAG";
-case VEHICLE_AUDIO_CONTEXT_SAFETY_ALERT_FLAG: return "VEHICLE_AUDIO_CONTEXT_SAFETY_ALERT_FLAG";
-case VEHICLE_AUDIO_CONTEXT_CD_ROM_FLAG: return "VEHICLE_AUDIO_CONTEXT_CD_ROM_FLAG";
-case VEHICLE_AUDIO_CONTEXT_AUX_AUDIO_FLAG: return "VEHICLE_AUDIO_CONTEXT_AUX_AUDIO_FLAG";
-case VEHICLE_AUDIO_CONTEXT_SYSTEM_SOUND_FLAG: return "VEHICLE_AUDIO_CONTEXT_SYSTEM_SOUND_FLAG";
-case VEHICLE_AUDIO_CONTEXT_RADIO_FLAG: return "VEHICLE_AUDIO_CONTEXT_RADIO_FLAG";
-case VEHICLE_AUDIO_CONTEXT_EXT_SOURCE_FLAG: return "VEHICLE_AUDIO_CONTEXT_EXT_SOURCE_FLAG";
-default: return "UNKNOWN";
-}
-}
-}
-
-public static class VehicleAudioVolumeCapabilityFlag {
-public static final int VEHICLE_AUDIO_VOLUME_CAPABILITY_PERSISTENT_STORAGE = 0x1;
-public static final int VEHICLE_AUDIO_VOLUME_CAPABILITY_MASTER_VOLUME_ONLY = 0x2;
-public static String enumToString(int v) {
-switch(v) {
-case VEHICLE_AUDIO_VOLUME_CAPABILITY_PERSISTENT_STORAGE: return "VEHICLE_AUDIO_VOLUME_CAPABILITY_PERSISTENT_STORAGE";
-case VEHICLE_AUDIO_VOLUME_CAPABILITY_MASTER_VOLUME_ONLY: return "VEHICLE_AUDIO_VOLUME_CAPABILITY_MASTER_VOLUME_ONLY";
-default: return "UNKNOWN";
-}
-}
-}
-
-public static class VehicleAudioVolumeState {
-public static final int VEHICLE_AUDIO_VOLUME_STATE_OK = 0;
-public static final int VEHICLE_AUDIO_VOLUME_STATE_LIMIT_REACHED = 1;
-public static String enumToString(int v) {
-switch(v) {
-case VEHICLE_AUDIO_VOLUME_STATE_OK: return "VEHICLE_AUDIO_VOLUME_STATE_OK";
-case VEHICLE_AUDIO_VOLUME_STATE_LIMIT_REACHED: return "VEHICLE_AUDIO_VOLUME_STATE_LIMIT_REACHED";
-default: return "UNKNOWN";
-}
-}
-}
-
-public static class VehicleAudioVolumeIndex {
-public static final int VEHICLE_AUDIO_VOLUME_INDEX_STREAM = 0;
-public static final int VEHICLE_AUDIO_VOLUME_INDEX_VOLUME = 1;
-public static final int VEHICLE_AUDIO_VOLUME_INDEX_STATE = 2;
-public static String enumToString(int v) {
-switch(v) {
-case VEHICLE_AUDIO_VOLUME_INDEX_STREAM: return "VEHICLE_AUDIO_VOLUME_INDEX_STREAM";
-case VEHICLE_AUDIO_VOLUME_INDEX_VOLUME: return "VEHICLE_AUDIO_VOLUME_INDEX_VOLUME";
-case VEHICLE_AUDIO_VOLUME_INDEX_STATE: return "VEHICLE_AUDIO_VOLUME_INDEX_STATE";
-default: return "UNKNOWN";
-}
-}
-}
-
-public static class VehicleAudioVolumeLimitIndex {
-public static final int VEHICLE_AUDIO_VOLUME_LIMIT_INDEX_STREAM = 0;
-public static final int VEHICLE_AUDIO_VOLUME_LIMIT_INDEX_MAX_VOLUME = 1;
-public static String enumToString(int v) {
-switch(v) {
-case VEHICLE_AUDIO_VOLUME_LIMIT_INDEX_STREAM: return "VEHICLE_AUDIO_VOLUME_LIMIT_INDEX_STREAM";
-case VEHICLE_AUDIO_VOLUME_LIMIT_INDEX_MAX_VOLUME: return "VEHICLE_AUDIO_VOLUME_LIMIT_INDEX_MAX_VOLUME";
-default: return "UNKNOWN";
-}
-}
-}
-
-public static class VehicleAudioRoutingPolicyIndex {
-public static final int VEHICLE_AUDIO_ROUTING_POLICY_INDEX_STREAM = 0;
-public static final int VEHICLE_AUDIO_ROUTING_POLICY_INDEX_CONTEXTS = 1;
-public static String enumToString(int v) {
-switch(v) {
-case VEHICLE_AUDIO_ROUTING_POLICY_INDEX_STREAM: return "VEHICLE_AUDIO_ROUTING_POLICY_INDEX_STREAM";
-case VEHICLE_AUDIO_ROUTING_POLICY_INDEX_CONTEXTS: return "VEHICLE_AUDIO_ROUTING_POLICY_INDEX_CONTEXTS";
-default: return "UNKNOWN";
-}
-}
-}
-
-public static class VehicleAudioHwVariantConfigFlag {
-public static final int VEHICLE_AUDIO_HW_VARIANT_FLAG_INTERNAL_RADIO_FLAG = 0x1;
-public static String enumToString(int v) {
-switch(v) {
-case VEHICLE_AUDIO_HW_VARIANT_FLAG_INTERNAL_RADIO_FLAG: return "VEHICLE_AUDIO_HW_VARIANT_FLAG_INTERNAL_RADIO_FLAG";
-default: return "UNKNOWN";
-}
-}
-}
-
-public static class VehicleApPowerStateConfigFlag {
-public static final int VEHICLE_AP_POWER_STATE_CONFIG_ENABLE_DEEP_SLEEP_FLAG = 0x1;
-public static final int VEHICLE_AP_POWER_STATE_CONFIG_SUPPORT_TIMER_POWER_ON_FLAG = 0x2;
-public static String enumToString(int v) {
-switch(v) {
-case VEHICLE_AP_POWER_STATE_CONFIG_ENABLE_DEEP_SLEEP_FLAG: return "VEHICLE_AP_POWER_STATE_CONFIG_ENABLE_DEEP_SLEEP_FLAG";
-case VEHICLE_AP_POWER_STATE_CONFIG_SUPPORT_TIMER_POWER_ON_FLAG: return "VEHICLE_AP_POWER_STATE_CONFIG_SUPPORT_TIMER_POWER_ON_FLAG";
-default: return "UNKNOWN";
-}
-}
-}
-
-public static class VehicleApPowerState {
-public static final int VEHICLE_AP_POWER_STATE_OFF = 0;
-public static final int VEHICLE_AP_POWER_STATE_DEEP_SLEEP = 1;
-public static final int VEHICLE_AP_POWER_STATE_ON_DISP_OFF = 2;
-public static final int VEHICLE_AP_POWER_STATE_ON_FULL = 3;
-public static final int VEHICLE_AP_POWER_STATE_SHUTDOWN_PREPARE = 4;
-public static String enumToString(int v) {
-switch(v) {
-case VEHICLE_AP_POWER_STATE_OFF: return "VEHICLE_AP_POWER_STATE_OFF";
-case VEHICLE_AP_POWER_STATE_DEEP_SLEEP: return "VEHICLE_AP_POWER_STATE_DEEP_SLEEP";
-case VEHICLE_AP_POWER_STATE_ON_DISP_OFF: return "VEHICLE_AP_POWER_STATE_ON_DISP_OFF";
-case VEHICLE_AP_POWER_STATE_ON_FULL: return "VEHICLE_AP_POWER_STATE_ON_FULL";
-case VEHICLE_AP_POWER_STATE_SHUTDOWN_PREPARE: return "VEHICLE_AP_POWER_STATE_SHUTDOWN_PREPARE";
-default: return "UNKNOWN";
-}
-}
-}
-
-public static class VehicleApPowerStateShutdownParam {
-public static final int VEHICLE_AP_POWER_SHUTDOWN_PARAM_SHUTDOWN_IMMEDIATELY = 1;
-public static final int VEHICLE_AP_POWER_SHUTDOWN_PARAM_CAN_SLEEP = 2;
-public static final int VEHICLE_AP_POWER_SHUTDOWN_PARAM_SHUTDOWN_ONLY = 3;
-public static String enumToString(int v) {
-switch(v) {
-case VEHICLE_AP_POWER_SHUTDOWN_PARAM_SHUTDOWN_IMMEDIATELY: return "VEHICLE_AP_POWER_SHUTDOWN_PARAM_SHUTDOWN_IMMEDIATELY";
-case VEHICLE_AP_POWER_SHUTDOWN_PARAM_CAN_SLEEP: return "VEHICLE_AP_POWER_SHUTDOWN_PARAM_CAN_SLEEP";
-case VEHICLE_AP_POWER_SHUTDOWN_PARAM_SHUTDOWN_ONLY: return "VEHICLE_AP_POWER_SHUTDOWN_PARAM_SHUTDOWN_ONLY";
-default: return "UNKNOWN";
-}
-}
-}
-
-public static class VehicleApPowerSetState {
-public static final int VEHICLE_AP_POWER_SET_BOOT_COMPLETE = 0x1;
-public static final int VEHICLE_AP_POWER_SET_DEEP_SLEEP_ENTRY = 0x2;
-public static final int VEHICLE_AP_POWER_SET_DEEP_SLEEP_EXIT = 0x3;
-public static final int VEHICLE_AP_POWER_SET_SHUTDOWN_POSTPONE = 0x4;
-public static final int VEHICLE_AP_POWER_SET_SHUTDOWN_START = 0x5;
-public static final int VEHICLE_AP_POWER_SET_DISPLAY_OFF = 0x6;
-public static final int VEHICLE_AP_POWER_SET_DISPLAY_ON = 0x7;
-public static String enumToString(int v) {
-switch(v) {
-case VEHICLE_AP_POWER_SET_BOOT_COMPLETE: return "VEHICLE_AP_POWER_SET_BOOT_COMPLETE";
-case VEHICLE_AP_POWER_SET_DEEP_SLEEP_ENTRY: return "VEHICLE_AP_POWER_SET_DEEP_SLEEP_ENTRY";
-case VEHICLE_AP_POWER_SET_DEEP_SLEEP_EXIT: return "VEHICLE_AP_POWER_SET_DEEP_SLEEP_EXIT";
-case VEHICLE_AP_POWER_SET_SHUTDOWN_POSTPONE: return "VEHICLE_AP_POWER_SET_SHUTDOWN_POSTPONE";
-case VEHICLE_AP_POWER_SET_SHUTDOWN_START: return "VEHICLE_AP_POWER_SET_SHUTDOWN_START";
-case VEHICLE_AP_POWER_SET_DISPLAY_OFF: return "VEHICLE_AP_POWER_SET_DISPLAY_OFF";
-case VEHICLE_AP_POWER_SET_DISPLAY_ON: return "VEHICLE_AP_POWER_SET_DISPLAY_ON";
-default: return "UNKNOWN";
-}
-}
-}
-
-public static class VehicleApPowerStateIndex {
-public static final int VEHICLE_AP_POWER_STATE_INDEX_STATE = 0;
-public static final int VEHICLE_AP_POWER_STATE_INDEX_ADDITIONAL = 1;
-public static String enumToString(int v) {
-switch(v) {
-case VEHICLE_AP_POWER_STATE_INDEX_STATE: return "VEHICLE_AP_POWER_STATE_INDEX_STATE";
-case VEHICLE_AP_POWER_STATE_INDEX_ADDITIONAL: return "VEHICLE_AP_POWER_STATE_INDEX_ADDITIONAL";
-default: return "UNKNOWN";
-}
-}
-}
-
-public static class VehicleApPowerBootupReason {
-public static final int VEHICLE_AP_POWER_BOOTUP_REASON_USER_POWER_ON = 0;
-public static final int VEHICLE_AP_POWER_BOOTUP_REASON_USER_UNLOCK = 1;
-public static final int VEHICLE_AP_POWER_BOOTUP_REASON_TIMER = 2;
-public static String enumToString(int v) {
-switch(v) {
-case VEHICLE_AP_POWER_BOOTUP_REASON_USER_POWER_ON: return "VEHICLE_AP_POWER_BOOTUP_REASON_USER_POWER_ON";
-case VEHICLE_AP_POWER_BOOTUP_REASON_USER_UNLOCK: return "VEHICLE_AP_POWER_BOOTUP_REASON_USER_UNLOCK";
-case VEHICLE_AP_POWER_BOOTUP_REASON_TIMER: return "VEHICLE_AP_POWER_BOOTUP_REASON_TIMER";
-default: return "UNKNOWN";
-}
-}
-}
-
-public static class VehicleHwKeyInputAction {
-public static final int VEHICLE_HW_KEY_INPUT_ACTION_DOWN = 0;
-public static final int VEHICLE_HW_KEY_INPUT_ACTION_UP = 1;
-public static String enumToString(int v) {
-switch(v) {
-case VEHICLE_HW_KEY_INPUT_ACTION_DOWN: return "VEHICLE_HW_KEY_INPUT_ACTION_DOWN";
-case VEHICLE_HW_KEY_INPUT_ACTION_UP: return "VEHICLE_HW_KEY_INPUT_ACTION_UP";
-default: return "UNKNOWN";
-}
-}
-}
-
-public static class VehicleDisplay {
-public static final int VEHICLE_DISPLAY_MAIN = 0;
-public static final int VEHICLE_DISPLAY_INSTRUMENT_CLUSTER = 1;
-public static String enumToString(int v) {
-switch(v) {
-case VEHICLE_DISPLAY_MAIN: return "VEHICLE_DISPLAY_MAIN";
-case VEHICLE_DISPLAY_INSTRUMENT_CLUSTER: return "VEHICLE_DISPLAY_INSTRUMENT_CLUSTER";
-default: return "UNKNOWN";
-}
-}
-}
-
-public static class VehicleInstumentClusterType {
-public static final int VEHICLE_INSTRUMENT_CLUSTER_TYPE_NONE = 0;
-public static final int VEHICLE_INSTRUMENT_CLUSTER_TYPE_HAL_INTERFACE = 1;
-public static final int VEHICLE_INSTRUMENT_CLUSTER_TYPE_EXTERNAL_DISPLAY = 2;
-public static String enumToString(int v) {
-switch(v) {
-case VEHICLE_INSTRUMENT_CLUSTER_TYPE_NONE: return "VEHICLE_INSTRUMENT_CLUSTER_TYPE_NONE";
-case VEHICLE_INSTRUMENT_CLUSTER_TYPE_HAL_INTERFACE: return "VEHICLE_INSTRUMENT_CLUSTER_TYPE_HAL_INTERFACE";
-case VEHICLE_INSTRUMENT_CLUSTER_TYPE_EXTERNAL_DISPLAY: return "VEHICLE_INSTRUMENT_CLUSTER_TYPE_EXTERNAL_DISPLAY";
-default: return "UNKNOWN";
-}
-}
-}
-
-public static class VehicleValueType {
-public static final int VEHICLE_VALUE_TYPE_SHOUD_NOT_USE = 0x00;
-public static final int VEHICLE_VALUE_TYPE_STRING = 0x01;
-public static final int VEHICLE_VALUE_TYPE_BYTES = 0x02;
-public static final int VEHICLE_VALUE_TYPE_BOOLEAN = 0x03;
-public static final int VEHICLE_VALUE_TYPE_ZONED_BOOLEAN = 0x04;
-public static final int VEHICLE_VALUE_TYPE_INT64 = 0x05;
-public static final int VEHICLE_VALUE_TYPE_FLOAT = 0x10;
-public static final int VEHICLE_VALUE_TYPE_FLOAT_VEC2 = 0x11;
-public static final int VEHICLE_VALUE_TYPE_FLOAT_VEC3 = 0x12;
-public static final int VEHICLE_VALUE_TYPE_FLOAT_VEC4 = 0x13;
-public static final int VEHICLE_VALUE_TYPE_INT32 = 0x20;
-public static final int VEHICLE_VALUE_TYPE_INT32_VEC2 = 0x21;
-public static final int VEHICLE_VALUE_TYPE_INT32_VEC3 = 0x22;
-public static final int VEHICLE_VALUE_TYPE_INT32_VEC4 = 0x23;
-public static final int VEHICLE_VALUE_TYPE_ZONED_FLOAT = 0x30;
-public static final int VEHICLE_VALUE_TYPE_ZONED_FLOAT_VEC2 = 0x31;
-public static final int VEHICLE_VALUE_TYPE_ZONED_FLOAT_VEC3 = 0x32;
-public static final int VEHICLE_VALUE_TYPE_ZONED_FLOAT_VEC4 = 0x33;
-public static final int VEHICLE_VALUE_TYPE_ZONED_INT32 = 0x40;
-public static final int VEHICLE_VALUE_TYPE_ZONED_INT32_VEC2 = 0x41;
-public static final int VEHICLE_VALUE_TYPE_ZONED_INT32_VEC3 = 0x42;
-public static final int VEHICLE_VALUE_TYPE_ZONED_INT32_VEC4 = 0x43;
-public static String enumToString(int v) {
-switch(v) {
-case VEHICLE_VALUE_TYPE_SHOUD_NOT_USE: return "VEHICLE_VALUE_TYPE_SHOUD_NOT_USE";
-case VEHICLE_VALUE_TYPE_STRING: return "VEHICLE_VALUE_TYPE_STRING";
-case VEHICLE_VALUE_TYPE_BYTES: return "VEHICLE_VALUE_TYPE_BYTES";
-case VEHICLE_VALUE_TYPE_BOOLEAN: return "VEHICLE_VALUE_TYPE_BOOLEAN";
-case VEHICLE_VALUE_TYPE_ZONED_BOOLEAN: return "VEHICLE_VALUE_TYPE_ZONED_BOOLEAN";
-case VEHICLE_VALUE_TYPE_INT64: return "VEHICLE_VALUE_TYPE_INT64";
-case VEHICLE_VALUE_TYPE_FLOAT: return "VEHICLE_VALUE_TYPE_FLOAT";
-case VEHICLE_VALUE_TYPE_FLOAT_VEC2: return "VEHICLE_VALUE_TYPE_FLOAT_VEC2";
-case VEHICLE_VALUE_TYPE_FLOAT_VEC3: return "VEHICLE_VALUE_TYPE_FLOAT_VEC3";
-case VEHICLE_VALUE_TYPE_FLOAT_VEC4: return "VEHICLE_VALUE_TYPE_FLOAT_VEC4";
-case VEHICLE_VALUE_TYPE_INT32: return "VEHICLE_VALUE_TYPE_INT32";
-case VEHICLE_VALUE_TYPE_INT32_VEC2: return "VEHICLE_VALUE_TYPE_INT32_VEC2";
-case VEHICLE_VALUE_TYPE_INT32_VEC3: return "VEHICLE_VALUE_TYPE_INT32_VEC3";
-case VEHICLE_VALUE_TYPE_INT32_VEC4: return "VEHICLE_VALUE_TYPE_INT32_VEC4";
-case VEHICLE_VALUE_TYPE_ZONED_FLOAT: return "VEHICLE_VALUE_TYPE_ZONED_FLOAT";
-case VEHICLE_VALUE_TYPE_ZONED_FLOAT_VEC2: return "VEHICLE_VALUE_TYPE_ZONED_FLOAT_VEC2";
-case VEHICLE_VALUE_TYPE_ZONED_FLOAT_VEC3: return "VEHICLE_VALUE_TYPE_ZONED_FLOAT_VEC3";
-case VEHICLE_VALUE_TYPE_ZONED_FLOAT_VEC4: return "VEHICLE_VALUE_TYPE_ZONED_FLOAT_VEC4";
-case VEHICLE_VALUE_TYPE_ZONED_INT32: return "VEHICLE_VALUE_TYPE_ZONED_INT32";
-case VEHICLE_VALUE_TYPE_ZONED_INT32_VEC2: return "VEHICLE_VALUE_TYPE_ZONED_INT32_VEC2";
-case VEHICLE_VALUE_TYPE_ZONED_INT32_VEC3: return "VEHICLE_VALUE_TYPE_ZONED_INT32_VEC3";
-case VEHICLE_VALUE_TYPE_ZONED_INT32_VEC4: return "VEHICLE_VALUE_TYPE_ZONED_INT32_VEC4";
-default: return "UNKNOWN";
-}
-}
-}
-
-public static class VehicleUnitType {
-public static final int VEHICLE_UNIT_TYPE_SHOULD_NOT_USE = 0x00000000;
-public static final int VEHICLE_UNIT_TYPE_METER_PER_SEC = 0x00000001;
-public static final int VEHICLE_UNIT_TYPE_RPM = 0x00000002;
-public static final int VEHICLE_UNIT_TYPE_HZ = 0x00000003;
-public static final int VEHICLE_UNIT_TYPE_PERCENTILE = 0x00000010;
-public static final int VEHICLE_UNIT_TYPE_MILLIMETER = 0x00000020;
-public static final int VEHICLE_UNIT_TYPE_METER = 0x00000021;
-public static final int VEHICLE_UNIT_TYPE_KILOMETER = 0x00000023;
-public static final int VEHICLE_UNIT_TYPE_CELSIUS = 0x00000030;
-public static final int VEHICLE_UNIT_TYPE_FAHRENHEIT = 0x00000031;
-public static final int VEHICLE_UNIT_TYPE_KELVIN = 0x00000032;
-public static final int VEHICLE_UNIT_TYPE_MILLILITER = 0x00000040;
-public static final int VEHICLE_UNIT_TYPE_NANO_SECS = 0x00000050;
-public static final int VEHICLE_UNIT_TYPE_SECS = 0x00000053;
-public static final int VEHICLE_UNIT_TYPE_YEAR = 0x00000059;
-public static String enumToString(int v) {
-switch(v) {
-case VEHICLE_UNIT_TYPE_SHOULD_NOT_USE: return "VEHICLE_UNIT_TYPE_SHOULD_NOT_USE";
-case VEHICLE_UNIT_TYPE_METER_PER_SEC: return "VEHICLE_UNIT_TYPE_METER_PER_SEC";
-case VEHICLE_UNIT_TYPE_RPM: return "VEHICLE_UNIT_TYPE_RPM";
-case VEHICLE_UNIT_TYPE_HZ: return "VEHICLE_UNIT_TYPE_HZ";
-case VEHICLE_UNIT_TYPE_PERCENTILE: return "VEHICLE_UNIT_TYPE_PERCENTILE";
-case VEHICLE_UNIT_TYPE_MILLIMETER: return "VEHICLE_UNIT_TYPE_MILLIMETER";
-case VEHICLE_UNIT_TYPE_METER: return "VEHICLE_UNIT_TYPE_METER";
-case VEHICLE_UNIT_TYPE_KILOMETER: return "VEHICLE_UNIT_TYPE_KILOMETER";
-case VEHICLE_UNIT_TYPE_CELSIUS: return "VEHICLE_UNIT_TYPE_CELSIUS";
-case VEHICLE_UNIT_TYPE_FAHRENHEIT: return "VEHICLE_UNIT_TYPE_FAHRENHEIT";
-case VEHICLE_UNIT_TYPE_KELVIN: return "VEHICLE_UNIT_TYPE_KELVIN";
-case VEHICLE_UNIT_TYPE_MILLILITER: return "VEHICLE_UNIT_TYPE_MILLILITER";
-case VEHICLE_UNIT_TYPE_NANO_SECS: return "VEHICLE_UNIT_TYPE_NANO_SECS";
-case VEHICLE_UNIT_TYPE_SECS: return "VEHICLE_UNIT_TYPE_SECS";
-case VEHICLE_UNIT_TYPE_YEAR: return "VEHICLE_UNIT_TYPE_YEAR";
-default: return "UNKNOWN";
-}
-}
-}
-
-public static class VehiclePropChangeMode {
-public static final int VEHICLE_PROP_CHANGE_MODE_STATIC = 0x00;
-public static final int VEHICLE_PROP_CHANGE_MODE_ON_CHANGE = 0x01;
-public static final int VEHICLE_PROP_CHANGE_MODE_CONTINUOUS = 0x02;
-public static final int VEHICLE_PROP_CHANGE_MODE_POLL = 0x03;
-public static final int VEHICLE_PROP_CHANGE_MODE_ON_SET = 0x04;
-public static String enumToString(int v) {
-switch(v) {
-case VEHICLE_PROP_CHANGE_MODE_STATIC: return "VEHICLE_PROP_CHANGE_MODE_STATIC";
-case VEHICLE_PROP_CHANGE_MODE_ON_CHANGE: return "VEHICLE_PROP_CHANGE_MODE_ON_CHANGE";
-case VEHICLE_PROP_CHANGE_MODE_CONTINUOUS: return "VEHICLE_PROP_CHANGE_MODE_CONTINUOUS";
-case VEHICLE_PROP_CHANGE_MODE_POLL: return "VEHICLE_PROP_CHANGE_MODE_POLL";
-case VEHICLE_PROP_CHANGE_MODE_ON_SET: return "VEHICLE_PROP_CHANGE_MODE_ON_SET";
-default: return "UNKNOWN";
-}
-}
-}
-
-public static class VehiclePropAccess {
-public static final int VEHICLE_PROP_ACCESS_READ = 0x01;
-public static final int VEHICLE_PROP_ACCESS_WRITE = 0x02;
-public static final int VEHICLE_PROP_ACCESS_READ_WRITE = 0x03;
-public static String enumToString(int v) {
-switch(v) {
-case VEHICLE_PROP_ACCESS_READ: return "VEHICLE_PROP_ACCESS_READ";
-case VEHICLE_PROP_ACCESS_WRITE: return "VEHICLE_PROP_ACCESS_WRITE";
-case VEHICLE_PROP_ACCESS_READ_WRITE: return "VEHICLE_PROP_ACCESS_READ_WRITE";
-default: return "UNKNOWN";
-}
-}
-}
-
-public static class VehiclePermissionModel {
-public static final int VEHICLE_PERMISSION_NO_RESTRICTION = 0;
-public static final int VEHICLE_PERMISSION_OEM_ONLY = 0x1;
-public static final int VEHICLE_PERMISSION_SYSTEM_APP_ONLY = 0x2;
-public static final int VEHICLE_PERMISSION_OEM_OR_SYSTEM_APP = 0x3;
-public static String enumToString(int v) {
-switch(v) {
-case VEHICLE_PERMISSION_NO_RESTRICTION: return "VEHICLE_PERMISSION_NO_RESTRICTION";
-case VEHICLE_PERMISSION_OEM_ONLY: return "VEHICLE_PERMISSION_OEM_ONLY";
-case VEHICLE_PERMISSION_SYSTEM_APP_ONLY: return "VEHICLE_PERMISSION_SYSTEM_APP_ONLY";
-case VEHICLE_PERMISSION_OEM_OR_SYSTEM_APP: return "VEHICLE_PERMISSION_OEM_OR_SYSTEM_APP";
-default: return "UNKNOWN";
-}
-}
-}
-
-public static class VehicleDrivingStatus {
-public static final int VEHICLE_DRIVING_STATUS_UNRESTRICTED = 0x00;
-public static final int VEHICLE_DRIVING_STATUS_NO_VIDEO = 0x01;
-public static final int VEHICLE_DRIVING_STATUS_NO_KEYBOARD_INPUT = 0x02;
-public static final int VEHICLE_DRIVING_STATUS_NO_VOICE_INPUT = 0x04;
-public static final int VEHICLE_DRIVING_STATUS_NO_CONFIG = 0x08;
-public static final int VEHICLE_DRIVING_STATUS_LIMIT_MESSAGE_LEN = 0x10;
-public static String enumToString(int v) {
-switch(v) {
-case VEHICLE_DRIVING_STATUS_UNRESTRICTED: return "VEHICLE_DRIVING_STATUS_UNRESTRICTED";
-case VEHICLE_DRIVING_STATUS_NO_VIDEO: return "VEHICLE_DRIVING_STATUS_NO_VIDEO";
-case VEHICLE_DRIVING_STATUS_NO_KEYBOARD_INPUT: return "VEHICLE_DRIVING_STATUS_NO_KEYBOARD_INPUT";
-case VEHICLE_DRIVING_STATUS_NO_VOICE_INPUT: return "VEHICLE_DRIVING_STATUS_NO_VOICE_INPUT";
-case VEHICLE_DRIVING_STATUS_NO_CONFIG: return "VEHICLE_DRIVING_STATUS_NO_CONFIG";
-case VEHICLE_DRIVING_STATUS_LIMIT_MESSAGE_LEN: return "VEHICLE_DRIVING_STATUS_LIMIT_MESSAGE_LEN";
-default: return "UNKNOWN";
-}
-}
-}
-
-public static class VehicleGear {
-public static final int VEHICLE_GEAR_NEUTRAL = 0x0001;
-public static final int VEHICLE_GEAR_REVERSE = 0x0002;
-public static final int VEHICLE_GEAR_PARK = 0x0004;
-public static final int VEHICLE_GEAR_DRIVE = 0x0008;
-public static final int VEHICLE_GEAR_LOW = 0x0010;
-public static final int VEHICLE_GEAR_1 = 0x0010;
-public static final int VEHICLE_GEAR_2 = 0x0020;
-public static final int VEHICLE_GEAR_3 = 0x0040;
-public static final int VEHICLE_GEAR_4 = 0x0080;
-public static final int VEHICLE_GEAR_5 = 0x0100;
-public static final int VEHICLE_GEAR_6 = 0x0200;
-public static final int VEHICLE_GEAR_7 = 0x0400;
-public static final int VEHICLE_GEAR_8 = 0x0800;
-public static final int VEHICLE_GEAR_9 = 0x1000;
-public static String enumToString(int v) {
-switch(v) {
-case VEHICLE_GEAR_NEUTRAL: return "VEHICLE_GEAR_NEUTRAL";
-case VEHICLE_GEAR_REVERSE: return "VEHICLE_GEAR_REVERSE";
-case VEHICLE_GEAR_PARK: return "VEHICLE_GEAR_PARK";
-case VEHICLE_GEAR_DRIVE: return "VEHICLE_GEAR_DRIVE";
-case VEHICLE_GEAR_LOW: return "VEHICLE_GEAR_LOW";
-case VEHICLE_GEAR_2: return "VEHICLE_GEAR_2";
-case VEHICLE_GEAR_3: return "VEHICLE_GEAR_3";
-case VEHICLE_GEAR_4: return "VEHICLE_GEAR_4";
-case VEHICLE_GEAR_5: return "VEHICLE_GEAR_5";
-case VEHICLE_GEAR_6: return "VEHICLE_GEAR_6";
-case VEHICLE_GEAR_7: return "VEHICLE_GEAR_7";
-case VEHICLE_GEAR_8: return "VEHICLE_GEAR_8";
-case VEHICLE_GEAR_9: return "VEHICLE_GEAR_9";
-default: return "UNKNOWN";
-}
-}
-}
-
-public static class VehicleZone {
-public static final int VEHICLE_ZONE_ROW_1_LEFT = 0x00000001;
-public static final int VEHICLE_ZONE_ROW_1_CENTER = 0x00000002;
-public static final int VEHICLE_ZONE_ROW_1_RIGHT = 0x00000004;
-public static final int VEHICLE_ZONE_ROW_1_ALL = 0x00000008;
-public static final int VEHICLE_ZONE_ROW_2_LEFT = 0x00000010;
-public static final int VEHICLE_ZONE_ROW_2_CENTER = 0x00000020;
-public static final int VEHICLE_ZONE_ROW_2_RIGHT = 0x00000040;
-public static final int VEHICLE_ZONE_ROW_2_ALL = 0x00000080;
-public static final int VEHICLE_ZONE_ROW_3_LEFT = 0x00000100;
-public static final int VEHICLE_ZONE_ROW_3_CENTER = 0x00000200;
-public static final int VEHICLE_ZONE_ROW_3_RIGHT = 0x00000400;
-public static final int VEHICLE_ZONE_ROW_3_ALL = 0x00000800;
-public static final int VEHICLE_ZONE_ROW_4_LEFT = 0x00001000;
-public static final int VEHICLE_ZONE_ROW_4_CENTER = 0x00002000;
-public static final int VEHICLE_ZONE_ROW_4_RIGHT = 0x00004000;
-public static final int VEHICLE_ZONE_ROW_4_ALL = 0x00008000;
-public static final int VEHICLE_ZONE_ALL = 0x80000000;
-public static String enumToString(int v) {
-switch(v) {
-case VEHICLE_ZONE_ROW_1_LEFT: return "VEHICLE_ZONE_ROW_1_LEFT";
-case VEHICLE_ZONE_ROW_1_CENTER: return "VEHICLE_ZONE_ROW_1_CENTER";
-case VEHICLE_ZONE_ROW_1_RIGHT: return "VEHICLE_ZONE_ROW_1_RIGHT";
-case VEHICLE_ZONE_ROW_1_ALL: return "VEHICLE_ZONE_ROW_1_ALL";
-case VEHICLE_ZONE_ROW_2_LEFT: return "VEHICLE_ZONE_ROW_2_LEFT";
-case VEHICLE_ZONE_ROW_2_CENTER: return "VEHICLE_ZONE_ROW_2_CENTER";
-case VEHICLE_ZONE_ROW_2_RIGHT: return "VEHICLE_ZONE_ROW_2_RIGHT";
-case VEHICLE_ZONE_ROW_2_ALL: return "VEHICLE_ZONE_ROW_2_ALL";
-case VEHICLE_ZONE_ROW_3_LEFT: return "VEHICLE_ZONE_ROW_3_LEFT";
-case VEHICLE_ZONE_ROW_3_CENTER: return "VEHICLE_ZONE_ROW_3_CENTER";
-case VEHICLE_ZONE_ROW_3_RIGHT: return "VEHICLE_ZONE_ROW_3_RIGHT";
-case VEHICLE_ZONE_ROW_3_ALL: return "VEHICLE_ZONE_ROW_3_ALL";
-case VEHICLE_ZONE_ROW_4_LEFT: return "VEHICLE_ZONE_ROW_4_LEFT";
-case VEHICLE_ZONE_ROW_4_CENTER: return "VEHICLE_ZONE_ROW_4_CENTER";
-case VEHICLE_ZONE_ROW_4_RIGHT: return "VEHICLE_ZONE_ROW_4_RIGHT";
-case VEHICLE_ZONE_ROW_4_ALL: return "VEHICLE_ZONE_ROW_4_ALL";
-case VEHICLE_ZONE_ALL: return "VEHICLE_ZONE_ALL";
-default: return "UNKNOWN";
-}
-}
-}
-
-public static class VehicleSeat {
-public static final int VEHICLE_SEAT_ROW_1_LEFT = 0x0001;
-public static final int VEHICLE_SEAT_ROW_1_CENTER = 0x0002;
-public static final int VEHICLE_SEAT_ROW_1_RIGHT = 0x0004;
-public static final int VEHICLE_SEAT_ROW_2_LEFT = 0x0010;
-public static final int VEHICLE_SEAT_ROW_2_CENTER = 0x0020;
-public static final int VEHICLE_SEAT_ROW_2_RIGHT = 0x0040;
-public static final int VEHICLE_SEAT_ROW_3_LEFT = 0x0100;
-public static final int VEHICLE_SEAT_ROW_3_CENTER = 0x0200;
-public static final int VEHICLE_SEAT_ROW_3_RIGHT = 0x0400;
-public static String enumToString(int v) {
-switch(v) {
-case VEHICLE_SEAT_ROW_1_LEFT: return "VEHICLE_SEAT_ROW_1_LEFT";
-case VEHICLE_SEAT_ROW_1_CENTER: return "VEHICLE_SEAT_ROW_1_CENTER";
-case VEHICLE_SEAT_ROW_1_RIGHT: return "VEHICLE_SEAT_ROW_1_RIGHT";
-case VEHICLE_SEAT_ROW_2_LEFT: return "VEHICLE_SEAT_ROW_2_LEFT";
-case VEHICLE_SEAT_ROW_2_CENTER: return "VEHICLE_SEAT_ROW_2_CENTER";
-case VEHICLE_SEAT_ROW_2_RIGHT: return "VEHICLE_SEAT_ROW_2_RIGHT";
-case VEHICLE_SEAT_ROW_3_LEFT: return "VEHICLE_SEAT_ROW_3_LEFT";
-case VEHICLE_SEAT_ROW_3_CENTER: return "VEHICLE_SEAT_ROW_3_CENTER";
-case VEHICLE_SEAT_ROW_3_RIGHT: return "VEHICLE_SEAT_ROW_3_RIGHT";
-default: return "UNKNOWN";
-}
-}
-}
-
-public static class VehicleWindow {
-public static final int VEHICLE_WINDOW_FRONT_WINDSHIELD = 0x0001;
-public static final int VEHICLE_WINDOW_REAR_WINDSHIELD = 0x0002;
-public static final int VEHICLE_WINDOW_ROOF_TOP = 0x0004;
-public static final int VEHICLE_WINDOW_ROW_1_LEFT = 0x0010;
-public static final int VEHICLE_WINDOW_ROW_1_RIGHT = 0x0020;
-public static final int VEHICLE_WINDOW_ROW_2_LEFT = 0x0100;
-public static final int VEHICLE_WINDOW_ROW_2_RIGHT = 0x0200;
-public static final int VEHICLE_WINDOW_ROW_3_LEFT = 0x1000;
-public static final int VEHICLE_WINDOW_ROW_3_RIGHT = 0x2000;
-public static String enumToString(int v) {
-switch(v) {
-case VEHICLE_WINDOW_FRONT_WINDSHIELD: return "VEHICLE_WINDOW_FRONT_WINDSHIELD";
-case VEHICLE_WINDOW_REAR_WINDSHIELD: return "VEHICLE_WINDOW_REAR_WINDSHIELD";
-case VEHICLE_WINDOW_ROOF_TOP: return "VEHICLE_WINDOW_ROOF_TOP";
-case VEHICLE_WINDOW_ROW_1_LEFT: return "VEHICLE_WINDOW_ROW_1_LEFT";
-case VEHICLE_WINDOW_ROW_1_RIGHT: return "VEHICLE_WINDOW_ROW_1_RIGHT";
-case VEHICLE_WINDOW_ROW_2_LEFT: return "VEHICLE_WINDOW_ROW_2_LEFT";
-case VEHICLE_WINDOW_ROW_2_RIGHT: return "VEHICLE_WINDOW_ROW_2_RIGHT";
-case VEHICLE_WINDOW_ROW_3_LEFT: return "VEHICLE_WINDOW_ROW_3_LEFT";
-case VEHICLE_WINDOW_ROW_3_RIGHT: return "VEHICLE_WINDOW_ROW_3_RIGHT";
-default: return "UNKNOWN";
-}
-}
-}
-
-public static class VehicleDoor {
-public static final int VEHICLE_DOOR_ROW_1_LEFT = 0x00000001;
-public static final int VEHICLE_DOOR_ROW_1_RIGHT = 0x00000004;
-public static final int VEHICLE_DOOR_ROW_2_LEFT = 0x00000010;
-public static final int VEHICLE_DOOR_ROW_2_RIGHT = 0x00000040;
-public static final int VEHICLE_DOOR_ROW_3_LEFT = 0x00000100;
-public static final int VEHICLE_DOOR_ROW_3_RIGHT = 0x00000400;
-public static final int VEHICLE_DOOR_HOOD = 0x10000000;
-public static final int VEHICLE_DOOR_REAR = 0x20000000;
-public static String enumToString(int v) {
-switch(v) {
-case VEHICLE_DOOR_ROW_1_LEFT: return "VEHICLE_DOOR_ROW_1_LEFT";
-case VEHICLE_DOOR_ROW_1_RIGHT: return "VEHICLE_DOOR_ROW_1_RIGHT";
-case VEHICLE_DOOR_ROW_2_LEFT: return "VEHICLE_DOOR_ROW_2_LEFT";
-case VEHICLE_DOOR_ROW_2_RIGHT: return "VEHICLE_DOOR_ROW_2_RIGHT";
-case VEHICLE_DOOR_ROW_3_LEFT: return "VEHICLE_DOOR_ROW_3_LEFT";
-case VEHICLE_DOOR_ROW_3_RIGHT: return "VEHICLE_DOOR_ROW_3_RIGHT";
-case VEHICLE_DOOR_HOOD: return "VEHICLE_DOOR_HOOD";
-case VEHICLE_DOOR_REAR: return "VEHICLE_DOOR_REAR";
-default: return "UNKNOWN";
-}
-}
-}
-
-public static class VehicleMirror {
-public static final int VEHICLE_MIRROR_DRIVER_LEFT = 0x00000001;
-public static final int VEHICLE_MIRROR_DRIVER_RIGHT = 0x00000002;
-public static final int VEHICLE_MIRROR_DRIVER_CENTER = 0x00000004;
-public static String enumToString(int v) {
-switch(v) {
-case VEHICLE_MIRROR_DRIVER_LEFT: return "VEHICLE_MIRROR_DRIVER_LEFT";
-case VEHICLE_MIRROR_DRIVER_RIGHT: return "VEHICLE_MIRROR_DRIVER_RIGHT";
-case VEHICLE_MIRROR_DRIVER_CENTER: return "VEHICLE_MIRROR_DRIVER_CENTER";
-default: return "UNKNOWN";
-}
-}
-}
-
-public static class VehicleTurnSignal {
-public static final int VEHICLE_SIGNAL_NONE = 0x00;
-public static final int VEHICLE_SIGNAL_RIGHT = 0x01;
-public static final int VEHICLE_SIGNAL_LEFT = 0x02;
-public static final int VEHICLE_SIGNAL_EMERGENCY = 0x04;
-public static String enumToString(int v) {
-switch(v) {
-case VEHICLE_SIGNAL_NONE: return "VEHICLE_SIGNAL_NONE";
-case VEHICLE_SIGNAL_RIGHT: return "VEHICLE_SIGNAL_RIGHT";
-case VEHICLE_SIGNAL_LEFT: return "VEHICLE_SIGNAL_LEFT";
-case VEHICLE_SIGNAL_EMERGENCY: return "VEHICLE_SIGNAL_EMERGENCY";
-default: return "UNKNOWN";
-}
-}
-}
-
-public static class VehicleZoneType {
-public static final int VEHICLE_ZONE_TYPE_NONE = 0x00;
-public static final int VEHICLE_ZONE_TYPE_ZONE = 0x01;
-public static final int VEHICLE_ZONE_TYPE_SEAT = 0x02;
-public static final int VEHICLE_ZONE_TYPE_DOOR = 0x04;
-public static final int VEHICLE_ZONE_TYPE_WINDOW = 0x10;
-public static final int VEHICLE_ZONE_TYPE_MIRROR = 0x20;
-public static String enumToString(int v) {
-switch(v) {
-case VEHICLE_ZONE_TYPE_NONE: return "VEHICLE_ZONE_TYPE_NONE";
-case VEHICLE_ZONE_TYPE_ZONE: return "VEHICLE_ZONE_TYPE_ZONE";
-case VEHICLE_ZONE_TYPE_SEAT: return "VEHICLE_ZONE_TYPE_SEAT";
-case VEHICLE_ZONE_TYPE_DOOR: return "VEHICLE_ZONE_TYPE_DOOR";
-case VEHICLE_ZONE_TYPE_WINDOW: return "VEHICLE_ZONE_TYPE_WINDOW";
-case VEHICLE_ZONE_TYPE_MIRROR: return "VEHICLE_ZONE_TYPE_MIRROR";
-default: return "UNKNOWN";
-}
-}
-}
-
-public static class VehicleBoolean {
-public static final int VEHICLE_FALSE = 0x00;
-public static final int VEHICLE_TRUE = 0x01;
-public static String enumToString(int v) {
-switch(v) {
-case VEHICLE_FALSE: return "VEHICLE_FALSE";
-case VEHICLE_TRUE: return "VEHICLE_TRUE";
-default: return "UNKNOWN";
-}
-}
-}
-
-public static class VehiclePropertyOperation {
-public static final int VEHICLE_OPERATION_GENERIC = 0;
-public static final int VEHICLE_OPERATION_SET = 1;
-public static final int VEHICLE_OPERATION_GET = 2;
-public static final int VEHICLE_OPERATION_SUBSCRIBE = 3;
-public static String enumToString(int v) {
-switch(v) {
-case VEHICLE_OPERATION_GENERIC: return "VEHICLE_OPERATION_GENERIC";
-case VEHICLE_OPERATION_SET: return "VEHICLE_OPERATION_SET";
-case VEHICLE_OPERATION_GET: return "VEHICLE_OPERATION_GET";
-case VEHICLE_OPERATION_SUBSCRIBE: return "VEHICLE_OPERATION_SUBSCRIBE";
-default: return "UNKNOWN";
-}
-}
-}
-
-public static class VehicleAudioStreamState {
-public static final int VEHICLE_AUDIO_STREAM_STATE_STOPPED = 0;
-public static final int VEHICLE_AUDIO_STREAM_STATE_STARTED = 1;
-public static String enumToString(int v) {
-switch(v) {
-case VEHICLE_AUDIO_STREAM_STATE_STOPPED: return "VEHICLE_AUDIO_STREAM_STATE_STOPPED";
-case VEHICLE_AUDIO_STREAM_STATE_STARTED: return "VEHICLE_AUDIO_STREAM_STATE_STARTED";
-default: return "UNKNOWN";
-}
-}
-}
-
-public static class VehicleAudioStreamStateIndex {
-public static final int VEHICLE_AUDIO_STREAM_STATE_INDEX_STATE = 0;
-public static final int VEHICLE_AUDIO_STREAM_STATE_INDEX_STREAM = 1;
-public static String enumToString(int v) {
-switch(v) {
-case VEHICLE_AUDIO_STREAM_STATE_INDEX_STATE: return "VEHICLE_AUDIO_STREAM_STATE_INDEX_STATE";
-case VEHICLE_AUDIO_STREAM_STATE_INDEX_STREAM: return "VEHICLE_AUDIO_STREAM_STATE_INDEX_STREAM";
-default: return "UNKNOWN";
-}
-}
-}
-
-
-}
-
diff --git a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehicleNetworkProtoUtil.java b/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehicleNetworkProtoUtil.java
deleted file mode 100644
index e8eedc1550..0000000000
--- a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehicleNetworkProtoUtil.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright (C) 2015 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 com.android.car.vehiclenetwork;
-
-import com.android.car.vehiclenetwork.VehicleNetworkProto.VehiclePropConfig;
-import com.android.car.vehiclenetwork.VehicleNetworkProto.VehiclePropValue;
-
-import java.util.Arrays;
-
-public class VehicleNetworkProtoUtil {
- public static String VehiclePropValueToString(VehiclePropValue value) {
- StringBuilder sb = new StringBuilder();
- sb.append("prop:0x");
- sb.append(Integer.toHexString(value.getProp()));
- sb.append(" type:0x");
- sb.append(Integer.toHexString(value.getValueType()));
- sb.append(" floatValues:" + Arrays.toString(value.getFloatValuesList().toArray()));
- sb.append(" integerValues:" + Arrays.toString(value.getInt32ValuesList().toArray()));
- return sb.toString();
- }
-
- public static String VehiclePropConfigToString(VehiclePropConfig config) {
- StringBuilder sb = new StringBuilder();
- sb.append("prop:0x");
- sb.append(Integer.toHexString(config.getProp()));
- sb.append(" access:0x");
- sb.append(Integer.toHexString(config.getAccess()));
- sb.append(" change_mode:0x");
- sb.append(Integer.toHexString(config.getChangeMode()));
- sb.append(" value_type:0x");
- sb.append(Integer.toHexString(config.getValueType()));
- sb.append(" permission_model:0x");
- sb.append(Integer.toHexString(config.getPermissionModel()));
- return sb.toString();
- }
-
- public static boolean VehiclePropConfigEquals(VehiclePropConfig l, VehiclePropConfig r) {
- if (l.getProp() != r.getProp()) {
- return false;
- }
- if (l.getAccess() != r.getAccess()) {
- return false;
- }
- if (l.getChangeMode() != r.getChangeMode()) {
- return false;
- }
- if (l.getValueType() != r.getValueType()) {
- return false;
- }
- if (l.getPermissionModel() != r.getPermissionModel()) {
- return false;
- }
- return true;
- }
-}
diff --git a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropConfigUtil.java b/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropConfigUtil.java
deleted file mode 100644
index 2482f39dbb..0000000000
--- a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropConfigUtil.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Copyright (C) 2015 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 com.android.car.vehiclenetwork;
-
-import com.android.car.vehiclenetwork.VehicleNetworkConsts.VehiclePermissionModel;
-import com.android.car.vehiclenetwork.VehicleNetworkConsts.VehiclePropAccess;
-import com.android.car.vehiclenetwork.VehicleNetworkConsts.VehiclePropChangeMode;
-import com.android.car.vehiclenetwork.VehicleNetworkConsts.VehicleValueType;
-import com.android.car.vehiclenetwork.VehicleNetworkProto.VehiclePropConfig;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Utility class to help creating VehiclePropConfig.
- */
-public class VehiclePropConfigUtil {
-
- public static VehiclePropConfig createStaticStringProperty(int property) {
- return getBuilder(property,
- VehiclePropAccess.VEHICLE_PROP_ACCESS_READ,
- VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_STATIC,
- VehicleValueType.VEHICLE_VALUE_TYPE_STRING,
- VehiclePermissionModel.VEHICLE_PERMISSION_NO_RESTRICTION,
- 0, 0f, 0f)
- .build();
- }
-
- public static VehiclePropConfig createZonedProperty(
- int property, int propAccess, int changeType, int valueType, int zones,
- int configFlags) {
- return VehiclePropConfig.newBuilder().
- setProp(property).
- setAccess(propAccess).
- setChangeMode(changeType).
- setValueType(valueType).
- setPermissionModel(VehiclePermissionModel.VEHICLE_PERMISSION_NO_RESTRICTION).
- setZones(zones).
- addConfigArray(configFlags).
- setSampleRateMax(0).
- setSampleRateMin(0).
- build();
- }
-
- public static VehiclePropConfig createProperty(
- int property, int propAccess, int changeType, int valueType, int configFlags) {
- return getBuilder(property,
- propAccess,
- changeType,
- valueType,
- VehiclePermissionModel.VEHICLE_PERMISSION_NO_RESTRICTION,
- configFlags, 0f, 0f)
- .build();
- }
-
- public static VehiclePropConfig.Builder getBuilder(int property, int access, int changeMode,
- int type, int permissionModel, int configFlags, float sampleRateMax,
- float sampleRateMin) {
- List<Integer> emptyList = new ArrayList<Integer>();
- return getBuilder(property, access, changeMode, type, permissionModel, configFlags,
- sampleRateMax, sampleRateMin, emptyList, emptyList);
- }
-
- public static VehiclePropConfig.Builder getBuilder(int property, int access, int changeMode,
- int type, int permissionModel, int configFlags, float sampleRateMax,
- float sampleRateMin, List<Integer> int32Maxs, List<Integer> int32Mins) {
- return VehiclePropConfig.newBuilder().
- setProp(property).
- setAccess(access).
- setChangeMode(changeMode).
- setValueType(type).
- setPermissionModel(permissionModel).
- addConfigArray(configFlags).
- setSampleRateMax(sampleRateMax).
- setSampleRateMin(sampleRateMin)
- .addAllInt32Maxs(int32Maxs)
- .addAllInt32Mins(int32Mins);
- }
-}
diff --git a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropConfigsParcelable.aidl b/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropConfigsParcelable.aidl
deleted file mode 100644
index 48219f0fd4..0000000000
--- a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropConfigsParcelable.aidl
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * Copyright (C) 2015 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 com.android.car.vehiclenetwork;
-
-parcelable VehiclePropConfigsParcelable;
diff --git a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropConfigsParcelable.java b/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropConfigsParcelable.java
deleted file mode 100644
index 29b20b6bb4..0000000000
--- a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropConfigsParcelable.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright (C) 2015 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 com.android.car.vehiclenetwork;
-
-import android.os.Parcel;
-import android.os.Parcelable;
-
-import com.android.car.vehiclenetwork.VehicleNetworkProto.VehiclePropConfigs;
-import com.google.protobuf.InvalidProtocolBufferException;
-
-public class VehiclePropConfigsParcelable implements Parcelable {
-
- public final VehiclePropConfigs configs;
-
- public VehiclePropConfigsParcelable(VehiclePropConfigs configs) {
- this.configs = configs;
- }
-
- public VehiclePropConfigsParcelable(Parcel in) {
- byte[] blob = in.readBlob();
- try {
- configs = VehiclePropConfigs.parseFrom(blob);
- } catch (InvalidProtocolBufferException e) {
- throw new IllegalArgumentException(e);
- }
- }
-
- @Override
- public int describeContents() {
- return 0;
- }
-
- @Override
- public void writeToParcel(Parcel dest, int flags) {
- // this is never used for java side as service is implemented in native side.
- dest.writeBlob(configs.toByteArray());
- }
-
- public static final Creator<VehiclePropConfigsParcelable> CREATOR =
- new Creator<VehiclePropConfigsParcelable>() {
- @Override
- public VehiclePropConfigsParcelable createFromParcel(Parcel in) {
- return new VehiclePropConfigsParcelable(in);
- }
-
- @Override
- public VehiclePropConfigsParcelable[] newArray(int size) {
- return new VehiclePropConfigsParcelable[size];
- }
- };
-}
diff --git a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropValueParcelable.aidl b/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropValueParcelable.aidl
deleted file mode 100644
index 6f0fd38b77..0000000000
--- a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropValueParcelable.aidl
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * Copyright (C) 2015 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 com.android.car.vehiclenetwork;
-
-parcelable VehiclePropValueParcelable;
diff --git a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropValueParcelable.java b/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropValueParcelable.java
deleted file mode 100644
index 00b3045015..0000000000
--- a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropValueParcelable.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright (C) 2015 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 com.android.car.vehiclenetwork;
-
-import android.os.Parcel;
-import android.os.Parcelable;
-import android.os.Parcelable.Creator;
-
-import com.android.car.vehiclenetwork.VehicleNetworkProto.VehiclePropValue;
-import com.google.protobuf.InvalidProtocolBufferException;
-
-public class VehiclePropValueParcelable implements Parcelable {
-
- public final VehiclePropValue value;
-
- public VehiclePropValueParcelable(VehiclePropValue value) {
- this.value = value;
- }
-
- public VehiclePropValueParcelable(Parcel in) {
- byte[] blob = in.readBlob();
- try {
- value = VehiclePropValue.parseFrom(blob);
- } catch (InvalidProtocolBufferException e) {
- throw new IllegalArgumentException(e);
- }
- }
-
- @Override
- public int describeContents() {
- return 0;
- }
-
- @Override
- public void writeToParcel(Parcel dest, int flags) {
- // this is never used for java side as service is implemented in native side.
- dest.writeBlob(value.toByteArray());
- }
-
- public static final Creator<VehiclePropValueParcelable> CREATOR =
- new Creator<VehiclePropValueParcelable>() {
- @Override
- public VehiclePropValueParcelable createFromParcel(Parcel in) {
- return new VehiclePropValueParcelable(in);
- }
-
- @Override
- public VehiclePropValueParcelable[] newArray(int size) {
- return new VehiclePropValueParcelable[size];
- }
- };
-}
diff --git a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropValueUtil.java b/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropValueUtil.java
deleted file mode 100644
index 5e47546300..0000000000
--- a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropValueUtil.java
+++ /dev/null
@@ -1,272 +0,0 @@
-/*
- * Copyright (C) 2015 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 com.android.car.vehiclenetwork;
-
-import static java.lang.Integer.toHexString;
-
-import com.google.protobuf.ByteString;
-
-import com.android.car.vehiclenetwork.VehicleNetworkConsts.VehicleValueType;
-import com.android.car.vehiclenetwork.VehicleNetworkProto.VehiclePropValue;
-
-import java.util.Arrays;
-import java.util.List;
-
-/**
- * Utility class to help creating VehiclePropValue.
- */
-public final class VehiclePropValueUtil {
-
- /** To prevent creating of utility class */
- private VehiclePropValueUtil() {}
-
- public static VehiclePropValue createIntValue(int property, int value, long timestamp) {
- return createBuilder(property, VehicleValueType.VEHICLE_VALUE_TYPE_INT32, timestamp).
- addInt32Values(value).
- build();
- }
-
- public static VehiclePropValue createIntVectorValue(int property, int[] values,
- long timestamp) {
- VehiclePropValue.Builder builder = createBuilder(property,
- getVectorValueType(VehicleValueType.VEHICLE_VALUE_TYPE_INT32, values.length),
- timestamp);
- for (int v : values) {
- builder.addInt32Values(v);
- }
- return builder.build();
- }
-
- public static VehiclePropValue createFloatValue(int property, float value, long timestamp) {
- return createBuilder(property, VehicleValueType.VEHICLE_VALUE_TYPE_FLOAT, timestamp).
- addFloatValues(value).
- build();
- }
-
- public static VehiclePropValue createFloatVectorValue(int property, float[] values,
- long timestamp) {
- VehiclePropValue.Builder builder = createBuilder(property,
- getVectorValueType(VehicleValueType.VEHICLE_VALUE_TYPE_FLOAT, values.length),
- timestamp);
- for (float v : values) {
- builder.addFloatValues(v);
- }
- return builder.build();
- }
-
- public static VehiclePropValue createLongValue(int property, long value, long timestamp) {
- return createBuilder(property, VehicleValueType.VEHICLE_VALUE_TYPE_INT64, timestamp).
- setInt64Value(value).
- build();
- }
-
- public static VehiclePropValue createStringValue(int property, String value, long timestamp) {
- return createBuilder(property, VehicleValueType.VEHICLE_VALUE_TYPE_STRING, timestamp).
- setStringValue(value).
- build();
- }
-
- public static VehiclePropValue createBooleanValue(int property, boolean value, long timestamp) {
- return createBuilder(property, VehicleValueType.VEHICLE_VALUE_TYPE_BOOLEAN, timestamp).
- addInt32Values(value ? 1 : 0).
- build();
- }
-
- public static VehiclePropValue createBytesValue(int property, byte[] value, long timestamp) {
- return createBuilder(property, VehicleValueType.VEHICLE_VALUE_TYPE_BYTES, timestamp).
- setBytesValue(ByteString.copyFrom(value)).
- build();
- }
-
- public static VehiclePropValue createZonedIntValue(int property, int zone, int value,
- long timestamp) {
- return createBuilder(property, VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32, timestamp).
- setZone(zone).
- addInt32Values(value).
- build();
- }
-
- public static VehiclePropValue createZonedIntVectorValue(int property, int zone, int[] values,
- long timestamp) {
- int valueType = getVectorValueType(
- VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32, values.length);
- VehiclePropValue.Builder builder = createBuilder(property, valueType, timestamp).
- setZone(zone);
- for (int value : values) {
- builder.addInt32Values(value);
- }
- return builder.build();
- }
-
- public static VehiclePropValue createZonedFloatVectorValue(int property, int zone,
- float[] values, long timestamp) {
- int valueType = getVectorValueType(
- VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_FLOAT, values.length);
- VehiclePropValue.Builder builder = createBuilder(property, valueType, timestamp).
- setZone(zone);
- for (float value : values) {
- builder.addFloatValues(value);
- }
- return builder.build();
- }
-
-
- public static VehiclePropValue createZonedBooleanValue(int property, int zone, boolean value,
- long timestamp) {
- return createBuilder(property, VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_BOOLEAN,timestamp).
- setZone(zone).
- addInt32Values(value ? 1 : 0).
- build();
- }
-
- public static VehiclePropValue createZonedFloatValue(int property, int zone, float value,
- long timestamp) {
- return createBuilder(property, VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_FLOAT,timestamp).
- setZone(zone).
- addFloatValues(value).
- build();
- }
-
- public static VehiclePropValue createDummyValue(int property, int valueType) {
- switch (valueType) {
- case VehicleValueType.VEHICLE_VALUE_TYPE_STRING: {
- return createStringValue(property, "dummy", 0);
- }
- case VehicleValueType.VEHICLE_VALUE_TYPE_BYTES: {
- return createBytesValue(property, new byte[1], 0);
- }
- case VehicleValueType.VEHICLE_VALUE_TYPE_BOOLEAN: {
- return createBooleanValue(property, false, 0);
- }
- case VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32: {
- return createZonedIntValue(property, 0, 0, 0);
- }
- case VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_FLOAT: {
- return createZonedFloatValue(property, 0, 0, 0);
- }
- case VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_BOOLEAN: {
- return createZonedBooleanValue(property, 0, false, 0);
- }
- case VehicleValueType.VEHICLE_VALUE_TYPE_INT64: {
- return createLongValue(property, 0, 0);
- }
- case VehicleValueType.VEHICLE_VALUE_TYPE_FLOAT: {
- return createFloatValue(property, 0, 0);
- }
- case VehicleValueType.VEHICLE_VALUE_TYPE_FLOAT_VEC2:
- case VehicleValueType.VEHICLE_VALUE_TYPE_FLOAT_VEC3:
- case VehicleValueType.VEHICLE_VALUE_TYPE_FLOAT_VEC4:
- case VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_FLOAT_VEC2:
- case VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_FLOAT_VEC3:
- case VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_FLOAT_VEC4:{
- return createFloatVectorValue(property, new float[getVectorLength(valueType)], 0);
- }
- case VehicleValueType.VEHICLE_VALUE_TYPE_INT32: {
- return createIntValue(property, 0, 0);
- }
- case VehicleValueType.VEHICLE_VALUE_TYPE_INT32_VEC2:
- case VehicleValueType.VEHICLE_VALUE_TYPE_INT32_VEC3:
- case VehicleValueType.VEHICLE_VALUE_TYPE_INT32_VEC4:
- case VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32_VEC2:
- case VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32_VEC3:
- case VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32_VEC4: {
- return createIntVectorValue(property, new int[getVectorLength(valueType)], 0);
- }
-
- }
- return null;
- }
-
- public static VehiclePropValue.Builder createBuilder(int property, int valueType,
- long timestamp) {
- return VehiclePropValue.newBuilder().
- setProp(property).
- setValueType(valueType).
- setTimestamp(timestamp);
- }
-
- public static int getVectorLength(int vehicleValueType) {
- switch (vehicleValueType) {
- case VehicleValueType.VEHICLE_VALUE_TYPE_BOOLEAN:
- case VehicleValueType.VEHICLE_VALUE_TYPE_INT32:
- case VehicleValueType.VEHICLE_VALUE_TYPE_FLOAT:
- case VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32:
- case VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_BOOLEAN:
- case VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_FLOAT:
- return 1;
- case VehicleValueType.VEHICLE_VALUE_TYPE_FLOAT_VEC2:
- case VehicleValueType.VEHICLE_VALUE_TYPE_INT32_VEC2:
- case VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_FLOAT_VEC2:
- case VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32_VEC2:
- return 2;
- case VehicleValueType.VEHICLE_VALUE_TYPE_FLOAT_VEC3:
- case VehicleValueType.VEHICLE_VALUE_TYPE_INT32_VEC3:
- case VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_FLOAT_VEC3:
- case VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32_VEC3:
- return 3;
- case VehicleValueType.VEHICLE_VALUE_TYPE_INT32_VEC4:
- case VehicleValueType.VEHICLE_VALUE_TYPE_FLOAT_VEC4:
- case VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_FLOAT_VEC4:
- case VehicleValueType.VEHICLE_VALUE_TYPE_ZONED_INT32_VEC4:
- return 4;
- default:
- throw new IllegalArgumentException("Unknown value type: " + vehicleValueType);
- }
- }
-
- public static boolean isCustomProperty(int property) {
- return property >= VehicleNetworkConsts.VEHICLE_PROPERTY_CUSTOM_START &&
- property <= VehicleNetworkConsts.VEHICLE_PROPERTY_CUSTOM_END;
- }
-
- /** Converts {@link VehiclePropValue} to string just for debug purpose. */
- public static String toString(VehiclePropValue value) {
- if (value == null) {
- return String.valueOf(null);
- }
- return value.getClass().getSimpleName() + " { prop: 0x" + toHexString(value.getProp()) +
- ", valueType: 0x" + toHexString(value.getValueType()) +
- ", timestamp: " + value.getTimestamp() +
- ", int32Values: " + Arrays.toString(toIntArray(value.getInt32ValuesList())) +
- ", int64Value: " + value.getInt64Value() +
- ", floatValues: " + Arrays.toString(toFloatArray(value.getFloatValuesList())) +
- ", stringValue: " + value.getStringValue() +
- ", byteValue: " + Arrays.toString(value.getBytesValue().toByteArray()) +
- ", zone: {" + value.getZone() + "} }";
- }
-
- public static int[] toIntArray(List<Integer> collection) {
- int[] array = new int[collection.size()];
- int i = 0;
- for (int value : collection) {
- array[i++] = value;
- }
- return array;
- }
-
- public static float[] toFloatArray(List<Float> collection) {
- float[] array = new float[collection.size()];
- int i = 0;
- for (float value : collection) {
- array[i++] = value;
- }
- return array;
- }
-
- public static int getVectorValueType(int vehicleValueType, int length) {
- return vehicleValueType + length - 1;
- }
-}
diff --git a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropValuesParcelable.aidl b/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropValuesParcelable.aidl
deleted file mode 100644
index a5dd94091b..0000000000
--- a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropValuesParcelable.aidl
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * Copyright (C) 2015 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 com.android.car.vehiclenetwork;
-
-parcelable VehiclePropValuesParcelable;
diff --git a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropValuesParcelable.java b/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropValuesParcelable.java
deleted file mode 100644
index fbbed1eb8f..0000000000
--- a/libvehiclenetwork/java/src/com/android/car/vehiclenetwork/VehiclePropValuesParcelable.java
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright (C) 2015 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 com.android.car.vehiclenetwork;
-
-import android.os.Parcel;
-import android.os.Parcelable;
-import android.os.Parcelable.Creator;
-
-import com.android.car.vehiclenetwork.VehicleNetworkProto.VehiclePropValues;
-import com.google.protobuf.InvalidProtocolBufferException;
-
-/**
- * Have separate Parcelable for {@link VehiclePropValues} to use only one Blob.
- * Handling this as array of single entry can lead into having multiple Blob,
- * which can increase binder transfer size a lot (as each data can be below blob start size),
- * or can add lots of Blob, which brings lots of performance issue.
- */
-public class VehiclePropValuesParcelable implements Parcelable {
-
- public final VehiclePropValues values;
-
- public VehiclePropValuesParcelable(VehiclePropValues values) {
- this.values = values;
- }
-
- public VehiclePropValuesParcelable(Parcel in) {
- byte[] blob = in.readBlob();
- try {
- values = VehiclePropValues.parseFrom(blob);
- } catch (InvalidProtocolBufferException e) {
- throw new IllegalArgumentException(e);
- }
- }
-
- @Override
- public int describeContents() {
- return 0;
- }
-
- @Override
- public void writeToParcel(Parcel dest, int flags) {
- // this is never used for java side as service is implemented in native side.
- dest.writeBlob(values.toByteArray());
- }
-
- public static final Creator<VehiclePropValuesParcelable> CREATOR =
- new Creator<VehiclePropValuesParcelable>() {
- @Override
- public VehiclePropValuesParcelable createFromParcel(Parcel in) {
- return new VehiclePropValuesParcelable(in);
- }
-
- @Override
- public VehiclePropValuesParcelable[] newArray(int size) {
- return new VehiclePropValuesParcelable[size];
- }
- };
-}