diff options
author | Steve Paik | 2018-04-27 15:28:31 -0500 |
---|---|---|
committer | Steve Paik | 2018-06-01 22:48:39 -0500 |
commit | 4d257023389c23b8836f10cda1bfa1ea136f56c9 (patch) | |
tree | d9b0d6e859dc1db4b0f7acd01c6fb28d85c42026 /vehicle-hal-support-lib | |
parent | d3cb98e76080151bdfb5085b8971b5070f11d28b (diff) | |
download | platform-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.java | 28 |
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 | ||
17 | package com.android.car.vehiclehal.test; | 17 | package com.android.car.vehiclehal.test; |
18 | 18 | ||
19 | import static java.lang.Integer.toHexString; | ||
20 | import static junit.framework.Assert.assertEquals; | 19 | import static junit.framework.Assert.assertEquals; |
21 | import static junit.framework.Assert.assertNotNull; | 20 | import static junit.framework.Assert.assertNotNull; |
22 | import static junit.framework.Assert.fail; | 21 | import static junit.framework.Assert.fail; |
23 | 22 | ||
23 | import static java.lang.Integer.toHexString; | ||
24 | |||
24 | import android.hardware.automotive.vehicle.V2_0.IVehicle; | 25 | import android.hardware.automotive.vehicle.V2_0.IVehicle; |
25 | import android.hardware.automotive.vehicle.V2_0.IVehicleCallback; | 26 | import android.hardware.automotive.vehicle.V2_0.IVehicleCallback; |
26 | import android.hardware.automotive.vehicle.V2_0.StatusCode; | 27 | import 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 | } |