vehicle hal update: add zone to subscription and others

- add zones to subscribe and mocking
- extend config_flags to config_array

bug: 25265553

Change-Id: Icfc1911178daa4ff4b5b6f12bc8e0002af5530bb
diff --git a/tests/carservice_test/src/com/android/support/car/test/AppContextTest.java b/tests/carservice_test/src/com/android/support/car/test/AppContextTest.java
index 481deb3..034c543 100644
--- a/tests/carservice_test/src/com/android/support/car/test/AppContextTest.java
+++ b/tests/carservice_test/src/com/android/support/car/test/AppContextTest.java
@@ -23,7 +23,7 @@
 
 import com.android.car.VehicleHalEmulator.VehicleHalPropertyHandler;
 import com.android.car.vehiclenetwork.VehicleNetworkConsts;
-import com.android.car.vehiclenetwork.VehicleNetworkConsts.VehicleAppContextFlag;
+import com.android.car.vehiclenetwork.VehicleNetworkConsts.VehicleAudioContextFlag;
 import com.android.car.vehiclenetwork.VehiclePropConfigUtil;
 import com.android.car.vehiclenetwork.VehicleNetworkConsts.VehiclePermissionModel;
 import com.android.car.vehiclenetwork.VehicleNetworkConsts.VehiclePropAccess;
@@ -44,7 +44,7 @@
         super.setUp();
         getVehicleHalEmulator().addProperty(
                 VehiclePropConfigUtil.getBuilder(
-                        VehicleNetworkConsts.VEHICLE_PROPERTY_APP_CONTEXT,
+                        VehicleNetworkConsts.VEHICLE_PROPERTY_AUDIO_CONTEXT,
                         VehiclePropAccess.VEHICLE_PROP_ACCESS_WRITE,
                         VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE,
                         VehicleValueType.VEHICLE_VALUE_TYPE_INT32,
@@ -62,14 +62,14 @@
                 CarAppContextManager.APP_CONTEXT_VOICE_COMMAND);
         manager.setActiveContexts(CarAppContextManager.APP_CONTEXT_NAVIGATION);
         mAppContextHandler.waitForPropertySetAndAssert(DEFAULT_WAIT_TIMEOUT_MS,
-                VehicleAppContextFlag.VEHICLE_APP_CONTEXT_NAVIGATION_FLAG);
+                VehicleAudioContextFlag.VEHICLE_AUDIO_CONTEXT_NAVIGATION_FLAG);
         manager.setActiveContexts(CarAppContextManager.APP_CONTEXT_VOICE_COMMAND);
         mAppContextHandler.waitForPropertySetAndAssert(DEFAULT_WAIT_TIMEOUT_MS,
-                VehicleAppContextFlag.VEHICLE_APP_CONTEXT_NAVIGATION_FLAG |
-                VehicleAppContextFlag.VEHICLE_APP_CONTEXT_VOICE_COMMAND_FLAG);
+                VehicleAudioContextFlag.VEHICLE_AUDIO_CONTEXT_NAVIGATION_FLAG |
+                VehicleAudioContextFlag.VEHICLE_AUDIO_CONTEXT_VOICE_COMMAND_FLAG);
         manager.resetActiveContexts(CarAppContextManager.APP_CONTEXT_NAVIGATION);
         mAppContextHandler.waitForPropertySetAndAssert(DEFAULT_WAIT_TIMEOUT_MS,
-                VehicleAppContextFlag.VEHICLE_APP_CONTEXT_VOICE_COMMAND_FLAG);
+                VehicleAudioContextFlag.VEHICLE_AUDIO_CONTEXT_VOICE_COMMAND_FLAG);
         manager.resetActiveContexts(CarAppContextManager.APP_CONTEXT_VOICE_COMMAND);
         mAppContextHandler.waitForPropertySetAndAssert(DEFAULT_WAIT_TIMEOUT_MS, 0);
         manager.unregisterContextListener();
@@ -100,7 +100,7 @@
         }
 
         @Override
-        public void onPropertySubscribe(int property, int sampleRate) {
+        public void onPropertySubscribe(int property, float sampleRate, int zones) {
             fail();
         }
 
diff --git a/tests/carservice_test/src/com/android/support/car/test/AudioRoutingPolicyTest.java b/tests/carservice_test/src/com/android/support/car/test/AudioRoutingPolicyTest.java
index fcafbde..5803808 100644
--- a/tests/carservice_test/src/com/android/support/car/test/AudioRoutingPolicyTest.java
+++ b/tests/carservice_test/src/com/android/support/car/test/AudioRoutingPolicyTest.java
@@ -17,7 +17,7 @@
 
 import com.android.car.VehicleHalEmulator.VehicleHalPropertyHandler;
 import com.android.car.vehiclenetwork.VehicleNetworkConsts;
-import com.android.car.vehiclenetwork.VehicleNetworkConsts.VehicleAppContextFlag;
+import com.android.car.vehiclenetwork.VehicleNetworkConsts.VehicleAudioContextFlag;
 import com.android.car.vehiclenetwork.VehicleNetworkConsts.VehicleAudioRoutingPolicyIndex;
 import com.android.car.vehiclenetwork.VehicleNetworkConsts.VehiclePermissionModel;
 import com.android.car.vehiclenetwork.VehicleNetworkConsts.VehiclePropAccess;
@@ -50,7 +50,7 @@
         }
 
         @Override
-        public void onPropertySubscribe(int property, int sampleRate) {
+        public void onPropertySubscribe(int property, float sampleRate, int zones) {
             fail("cannot subscribe");
         }
 
@@ -111,13 +111,13 @@
         assertEquals(0, v.getInt32Values(
                 VehicleAudioRoutingPolicyIndex.VEHICLE_AUDIO_ROUTING_POLICY_INDEX_STREAM));
         assertEquals(
-                VehicleAppContextFlag.VEHICLE_APP_CONTEXT_ALARM_FLAG |
-                VehicleAppContextFlag.VEHICLE_APP_CONTEXT_CALL_FLAG |
-                VehicleAppContextFlag.VEHICLE_APP_CONTEXT_MUSIC_FLAG |
-                VehicleAppContextFlag.VEHICLE_APP_CONTEXT_NAVIGATION_FLAG |
-                VehicleAppContextFlag.VEHICLE_APP_CONTEXT_NOTIFICATION_FLAG |
-                VehicleAppContextFlag.VEHICLE_APP_CONTEXT_UNKNOWN_FLAG |
-                VehicleAppContextFlag.VEHICLE_APP_CONTEXT_VOICE_COMMAND_FLAG,
+                VehicleAudioContextFlag.VEHICLE_AUDIO_CONTEXT_ALARM_FLAG |
+                VehicleAudioContextFlag.VEHICLE_AUDIO_CONTEXT_CALL_FLAG |
+                VehicleAudioContextFlag.VEHICLE_AUDIO_CONTEXT_MUSIC_FLAG |
+                VehicleAudioContextFlag.VEHICLE_AUDIO_CONTEXT_NAVIGATION_FLAG |
+                VehicleAudioContextFlag.VEHICLE_AUDIO_CONTEXT_NOTIFICATION_FLAG |
+                VehicleAudioContextFlag.VEHICLE_AUDIO_CONTEXT_UNKNOWN_FLAG |
+                VehicleAudioContextFlag.VEHICLE_AUDIO_CONTEXT_VOICE_COMMAND_FLAG,
                 v.getInt32Values(
                         VehicleAudioRoutingPolicyIndex.VEHICLE_AUDIO_ROUTING_POLICY_INDEX_CONTEXTS)
                         );
@@ -131,9 +131,9 @@
         assertEquals(0, v.getInt32Values(
                 VehicleAudioRoutingPolicyIndex.VEHICLE_AUDIO_ROUTING_POLICY_INDEX_STREAM));
         assertEquals(
-                VehicleAppContextFlag.VEHICLE_APP_CONTEXT_CALL_FLAG |
-                VehicleAppContextFlag.VEHICLE_APP_CONTEXT_MUSIC_FLAG |
-                VehicleAppContextFlag.VEHICLE_APP_CONTEXT_UNKNOWN_FLAG,
+                VehicleAudioContextFlag.VEHICLE_AUDIO_CONTEXT_CALL_FLAG |
+                VehicleAudioContextFlag.VEHICLE_AUDIO_CONTEXT_MUSIC_FLAG |
+                VehicleAudioContextFlag.VEHICLE_AUDIO_CONTEXT_UNKNOWN_FLAG,
                 v.getInt32Values(
                         VehicleAudioRoutingPolicyIndex.VEHICLE_AUDIO_ROUTING_POLICY_INDEX_CONTEXTS)
                         );
@@ -141,10 +141,10 @@
         assertEquals(1, v.getInt32Values(
                 VehicleAudioRoutingPolicyIndex.VEHICLE_AUDIO_ROUTING_POLICY_INDEX_STREAM));
         assertEquals(
-                VehicleAppContextFlag.VEHICLE_APP_CONTEXT_ALARM_FLAG |
-                VehicleAppContextFlag.VEHICLE_APP_CONTEXT_NAVIGATION_FLAG |
-                VehicleAppContextFlag.VEHICLE_APP_CONTEXT_NOTIFICATION_FLAG |
-                VehicleAppContextFlag.VEHICLE_APP_CONTEXT_VOICE_COMMAND_FLAG,
+                VehicleAudioContextFlag.VEHICLE_AUDIO_CONTEXT_ALARM_FLAG |
+                VehicleAudioContextFlag.VEHICLE_AUDIO_CONTEXT_NAVIGATION_FLAG |
+                VehicleAudioContextFlag.VEHICLE_AUDIO_CONTEXT_NOTIFICATION_FLAG |
+                VehicleAudioContextFlag.VEHICLE_AUDIO_CONTEXT_VOICE_COMMAND_FLAG,
                 v.getInt32Values(
                         VehicleAudioRoutingPolicyIndex.VEHICLE_AUDIO_ROUTING_POLICY_INDEX_CONTEXTS)
                         );
diff --git a/tests/carservice_test/src/com/android/support/car/test/CarAudioFocusTest.java b/tests/carservice_test/src/com/android/support/car/test/CarAudioFocusTest.java
index bcdcfbd..4e6cd8e 100644
--- a/tests/carservice_test/src/com/android/support/car/test/CarAudioFocusTest.java
+++ b/tests/carservice_test/src/com/android/support/car/test/CarAudioFocusTest.java
@@ -59,7 +59,7 @@
         }
 
         @Override
-        public void onPropertySubscribe(int property, int sampleRate) {
+        public void onPropertySubscribe(int property, float sampleRate, int zones) {
             fail("cannot subscribe");
         }
 
@@ -88,7 +88,7 @@
         }
 
         @Override
-        public void onPropertySubscribe(int property, int sampleRate) {
+        public void onPropertySubscribe(int property, float sampleRate, int zones) {
             // TODO Auto-generated method stub
 
         }
@@ -135,7 +135,7 @@
                         mAudioFocusPropertyHandler);
         getVehicleHalEmulator().addProperty(
                 VehiclePropConfigUtil.getBuilder(
-                        VehicleNetworkConsts.VEHICLE_PROPERTY_APP_CONTEXT,
+                        VehicleNetworkConsts.VEHICLE_PROPERTY_AUDIO_CONTEXT,
                         VehiclePropAccess.VEHICLE_PROP_ACCESS_WRITE,
                         VehiclePropChangeMode.VEHICLE_PROP_CHANGE_MODE_ON_CHANGE,
                         VehicleValueType.VEHICLE_VALUE_TYPE_INT32,
@@ -543,7 +543,7 @@
         }
 
         @Override
-        public void onPropertySubscribe(int property, int sampleRate) {
+        public void onPropertySubscribe(int property, float sampleRate, int zones) {
             assertEquals(VehicleNetworkConsts.VEHICLE_PROPERTY_AUDIO_FOCUS, property);
         }
 
diff --git a/tests/carservice_test/src/com/android/support/car/test/CarHvacManagerTest.java b/tests/carservice_test/src/com/android/support/car/test/CarHvacManagerTest.java
index 712018f..2c3d4a6 100644
--- a/tests/carservice_test/src/com/android/support/car/test/CarHvacManagerTest.java
+++ b/tests/carservice_test/src/com/android/support/car/test/CarHvacManagerTest.java
@@ -196,7 +196,7 @@
         }
 
         @Override
-        public synchronized void onPropertySubscribe(int property, int sampleRate) {
+        public synchronized void onPropertySubscribe(int property, float sampleRate, int zones) {
             Log.d(TAG, "onPropertySubscribe property " + property + " sampleRate " + sampleRate);
         }
 
diff --git a/tests/carservice_test/src/com/android/support/car/test/CarPowerManagementTest.java b/tests/carservice_test/src/com/android/support/car/test/CarPowerManagementTest.java
index 8ba4e17..10f5eb0 100644
--- a/tests/carservice_test/src/com/android/support/car/test/CarPowerManagementTest.java
+++ b/tests/carservice_test/src/com/android/support/car/test/CarPowerManagementTest.java
@@ -184,7 +184,7 @@
         }
 
         @Override
-        public void onPropertySubscribe(int property, int sampleRate) {
+        public void onPropertySubscribe(int property, float sampleRate, int zones) {
             mSubscriptionWaitSemaphore.release();
         }
 
diff --git a/tests/carservice_test/src/com/android/support/car/test/CarRadioManagerTest.java b/tests/carservice_test/src/com/android/support/car/test/CarRadioManagerTest.java
index b1f6317..3841428 100644
--- a/tests/carservice_test/src/com/android/support/car/test/CarRadioManagerTest.java
+++ b/tests/carservice_test/src/com/android/support/car/test/CarRadioManagerTest.java
@@ -111,7 +111,7 @@
         }
 
         @Override
-        public synchronized void onPropertySubscribe(int property, int sampleRate) {
+        public synchronized void onPropertySubscribe(int property, float sampleRate, int zones) {
             Log.d(TAG, "onPropertySubscribe property: " + property + " rate: " + sampleRate);
             if (mAvailable.availablePermits() != 0) {
                 Log.d(TAG, "Lock was free, should have been locked.");
diff --git a/tests/libvehiclenetwork-java-test/src/com/android/car/vehiclenetwork/libtest/VehicleNetworkMockedTest.java b/tests/libvehiclenetwork-java-test/src/com/android/car/vehiclenetwork/libtest/VehicleNetworkMockedTest.java
index b618584..a48fa83 100644
--- a/tests/libvehiclenetwork-java-test/src/com/android/car/vehiclenetwork/libtest/VehicleNetworkMockedTest.java
+++ b/tests/libvehiclenetwork-java-test/src/com/android/car/vehiclenetwork/libtest/VehicleNetworkMockedTest.java
@@ -162,7 +162,7 @@
     private interface VehiclePropertyHandler {
         void onPropertySet(VehiclePropValue value);
         VehiclePropValue onPropertyGet(VehiclePropValue property);
-        void onPropertySubscribe(int property, int sampleRate);
+        void onPropertySubscribe(int property, float sampleRate, int zones);
         void onPropertyUnsubscribe(int property);
     }
 
@@ -206,12 +206,12 @@
         }
 
         @Override
-        public void onPropertySubscribe(int property, int sampleRate) {
+        public void onPropertySubscribe(int property, float sampleRate, int zones) {
             VehiclePropertyHandler handler = getPropertyHandler(property);
             if (handler == null) {
                 fail("onPropertySubscribe for unknown property " + Integer.toHexString(property));
             }
-            handler.onPropertySubscribe(property, sampleRate);
+            handler.onPropertySubscribe(property, sampleRate, zones);
         }
 
         @Override
@@ -246,7 +246,7 @@
         }
 
         @Override
-        public void onPropertySubscribe(int property, int sampleRate) {
+        public void onPropertySubscribe(int property, float sampleRate, int zones) {
             // TODO Auto-generated method stub
         }
 
diff --git a/tests/libvehiclenetwork-native-test/IVehicleNetworkMockedTest.cpp b/tests/libvehiclenetwork-native-test/IVehicleNetworkMockedTest.cpp
index bae4e8a..82a3765 100644
--- a/tests/libvehiclenetwork-native-test/IVehicleNetworkMockedTest.cpp
+++ b/tests/libvehiclenetwork-native-test/IVehicleNetworkMockedTest.cpp
@@ -105,7 +105,7 @@
 TEST_F(IVehicleNetworkMockedTest, halPropertyError) {
     sp<IVehicleNetworkTestListener> listener(new IVehicleNetworkTestListener());
     ASSERT_EQ(NO_ERROR, mVN->startMocking(mHalMock));
-    ASSERT_EQ(NO_ERROR, mVN->subscribe(listener, TEST_PROPERTY_INT32, 0));
+    ASSERT_EQ(NO_ERROR, mVN->subscribe(listener, TEST_PROPERTY_INT32, 0, 0));
     const int ERROR_CODE = -123;
     const int OPERATION_CODE = 4567;
     ASSERT_EQ(NO_ERROR, mVN->injectHalError(ERROR_CODE, TEST_PROPERTY_INT32, OPERATION_CODE));
diff --git a/tests/libvehiclenetwork-native-test/IVehicleNetworkTest.cpp b/tests/libvehiclenetwork-native-test/IVehicleNetworkTest.cpp
index 3797dd9..eafa1d9 100644
--- a/tests/libvehiclenetwork-native-test/IVehicleNetworkTest.cpp
+++ b/tests/libvehiclenetwork-native-test/IVehicleNetworkTest.cpp
@@ -158,7 +158,7 @@
     for (auto& config : properties->getList()) {
         String8 msg = String8::format("subscribing property 0x%x\n", config->prop);
         std::cout<<msg.string();
-        status_t r = vn->subscribe(listener, config->prop, config->max_sample_rate);
+        status_t r = vn->subscribe(listener, config->prop, config->max_sample_rate, 0);
         if (((config->access & VEHICLE_PROP_ACCESS_READ) == 0) ||
                 (config->change_mode == VEHICLE_PROP_CHANGE_MODE_STATIC)) { // cannot subsctibe
             ASSERT_TRUE(r != NO_ERROR);
diff --git a/tests/libvehiclenetwork-native-test/VehicleHalMock.h b/tests/libvehiclenetwork-native-test/VehicleHalMock.h
index f712040..777bbbe 100644
--- a/tests/libvehiclenetwork-native-test/VehicleHalMock.h
+++ b/tests/libvehiclenetwork-native-test/VehicleHalMock.h
@@ -50,7 +50,7 @@
         return NO_ERROR;
     };
 
-    virtual status_t onPropertySubscribe(int32_t property, float sampleRate) {
+    virtual status_t onPropertySubscribe(int32_t property, float sampleRate, int32_t zones) {
         return NO_ERROR;
     };