summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Paik2018-04-27 15:28:31 -0500
committerSteve Paik2018-06-01 22:48:39 -0500
commit4d257023389c23b8836f10cda1bfa1ea136f56c9 (patch)
treed9b0d6e859dc1db4b0f7acd01c6fb28d85c42026 /vehicle-hal-support-lib
parentd3cb98e76080151bdfb5085b8971b5070f11d28b (diff)
downloadplatform-packages-services-car-4d257023389c23b8836f10cda1bfa1ea136f56c9.tar.gz
platform-packages-services-car-4d257023389c23b8836f10cda1bfa1ea136f56c9.tar.xz
platform-packages-services-car-4d257023389c23b8836f10cda1bfa1ea136f56c9.zip
Create CarPropertyService and CarPropertyManager
CarPropertyService replaces Cabin, Hvac, Info, Sensor, and VendorExtension services. Bug: 78782959 Bug: 36649684 Bug: 68056035 Test: runtest -x packages/services/Car/tests/android_car_api_test runtest -x packages/services/Car/tests/carservice_unit_test Change-Id: I69756654473fe66ef95e9e2cd4f3c1045e3ac938 Merged-In: Ic0a94805f83cc0222fb2bcf9674b6031bc050986 (cherry picked from commit fc0257133967edcb217e07e9ab942690eeaae3de) (cherry picked from commit 0265d8348716b2971f76e697f410f4cf7128371c)
Diffstat (limited to 'vehicle-hal-support-lib')
-rw-r--r--vehicle-hal-support-lib/src/com/android/car/vehiclehal/test/MockedVehicleHal.java28
1 files changed, 25 insertions, 3 deletions
diff --git a/vehicle-hal-support-lib/src/com/android/car/vehiclehal/test/MockedVehicleHal.java b/vehicle-hal-support-lib/src/com/android/car/vehiclehal/test/MockedVehicleHal.java
index a248269d..477c2c57 100644
--- a/vehicle-hal-support-lib/src/com/android/car/vehiclehal/test/MockedVehicleHal.java
+++ b/vehicle-hal-support-lib/src/com/android/car/vehiclehal/test/MockedVehicleHal.java
@@ -16,11 +16,12 @@
16 16
17package com.android.car.vehiclehal.test; 17package com.android.car.vehiclehal.test;
18 18
19import static java.lang.Integer.toHexString;
20import static junit.framework.Assert.assertEquals; 19import static junit.framework.Assert.assertEquals;
21import static junit.framework.Assert.assertNotNull; 20import static junit.framework.Assert.assertNotNull;
22import static junit.framework.Assert.fail; 21import static junit.framework.Assert.fail;
23 22
23import static java.lang.Integer.toHexString;
24
24import android.hardware.automotive.vehicle.V2_0.IVehicle; 25import android.hardware.automotive.vehicle.V2_0.IVehicle;
25import android.hardware.automotive.vehicle.V2_0.IVehicleCallback; 26import android.hardware.automotive.vehicle.V2_0.IVehicleCallback;
26import android.hardware.automotive.vehicle.V2_0.StatusCode; 27import android.hardware.automotive.vehicle.V2_0.StatusCode;
@@ -92,11 +93,20 @@ public class MockedVehicleHal extends IVehicle.Stub {
92 } 93 }
93 } 94 }
94 95
95 public synchronized void injectEvent(VehiclePropValue value) { 96 public synchronized void injectEvent(VehiclePropValue value, boolean setProperty) {
96 List<IVehicleCallback> callbacks = mSubscribers.get(value.prop); 97 List<IVehicleCallback> callbacks = mSubscribers.get(value.prop);
97 assertNotNull("Injecting event failed for property: " + value.prop 98 assertNotNull("Injecting event failed for property: " + value.prop
98 + ". No listeners found", callbacks); 99 + ". No listeners found", callbacks);
99 for (IVehicleCallback callback : callbacks) { 100
101 if (setProperty) {
102 // Update property if requested
103 VehicleHalPropertyHandler handler = mPropertyHandlerMap.get(value.prop);
104 if (handler != null) {
105 handler.onPropertySet(value);
106 }
107 }
108
109 for (IVehicleCallback callback: callbacks) {
100 try { 110 try {
101 callback.onPropertyEvent(Lists.newArrayList(value)); 111 callback.onPropertyEvent(Lists.newArrayList(value));
102 } catch (RemoteException e) { 112 } catch (RemoteException e) {
@@ -106,6 +116,10 @@ public class MockedVehicleHal extends IVehicle.Stub {
106 } 116 }
107 } 117 }
108 118
119 public synchronized void injectEvent(VehiclePropValue value) {
120 injectEvent(value, false);
121 }
122
109 public synchronized void injectError(int errorCode, int propertyId, int areaId) { 123 public synchronized void injectError(int errorCode, int propertyId, int areaId) {
110 List<IVehicleCallback> callbacks = mSubscribers.get(propertyId); 124 List<IVehicleCallback> callbacks = mSubscribers.get(propertyId);
111 assertNotNull("Injecting error failed for property: " + propertyId 125 assertNotNull("Injecting error failed for property: " + propertyId
@@ -175,6 +189,14 @@ public class MockedVehicleHal extends IVehicle.Stub {
175 subscribers = new ArrayList<>(); 189 subscribers = new ArrayList<>();
176 mSubscribers.put(opt.propId, subscribers); 190 mSubscribers.put(opt.propId, subscribers);
177 notifyAll(); 191 notifyAll();
192 } else {
193 for (IVehicleCallback s : subscribers) {
194 if (callback.asBinder() == s.asBinder()) {
195 // Remove callback that was registered previously for this property
196 subscribers.remove(callback);
197 break;
198 }
199 }
178 } 200 }
179 subscribers.add(callback); 201 subscribers.add(callback);
180 } 202 }