aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntonio Cortes <antoniocortes@google.com>2017-03-22 13:00:02 -0700
committerAntonio Cortes <antoniocortes@google.com>2017-03-23 08:44:51 -0700
commit01a60395cdba8df0e306d1f692d4677799485b6f (patch)
tree84bf0ae9b79e3644b61c6cc76914f6b190d0e739
parent7837d8d872331dce3c68facc81affd684db929bf (diff)
downloadCar-01a60395cdba8df0e306d1f692d4677799485b6f.tar.gz
Updating VMS interfaces to use VmsLayer.
Test: runtest -x packages/services/Car/tests/carservice_test/src/com/android/car/test/VmsPublisherClientServiceTest.java Test: runtest -x packages/services/Car/tests/carservice_test/src/com/android/car/test/VmsPublisherSubscriberTest.java Test: runtest -x packages/services/Car/tests/carservice_test/src/com/android/car/test/VmsSubscriberManagerTest.java Test: runtest -x packages/services/Car/tests/carservice_unit_test/src/com/android/car/VmsRoutingTest.java Bug: 36214569 Change-Id: Iee5a0595ba5bb175d9b1b6189d15902fd222a967
-rw-r--r--car-lib/src/android/car/vms/IVmsPublisherService.aidl2
-rw-r--r--car-lib/src/android/car/vms/IVmsSubscriberClient.aidl2
-rw-r--r--car-lib/src/android/car/vms/IVmsSubscriberService.aidl6
-rw-r--r--car-lib/src/android/car/vms/VmsPublisherClientService.java9
-rw-r--r--car-lib/src/android/car/vms/VmsSubscriberManager.java50
-rw-r--r--service/src/com/android/car/VmsPublisherService.java9
-rw-r--r--service/src/com/android/car/VmsSubscriberService.java13
-rw-r--r--service/src/com/android/car/hal/VmsHalService.java43
-rw-r--r--tests/VmsPublisherClientSample/src/com/google/android/car/vms/publisher/VmsPublisherClientSampleService.java7
-rw-r--r--tests/VmsSubscriberClientSample/src/com/google/android/car/vms/subscriber/VmsSubscriberClientSampleActivity.java7
-rw-r--r--tests/carservice_test/src/com/android/car/test/SimpleVmsPublisherClientService.java16
-rw-r--r--tests/carservice_test/src/com/android/car/test/VmsPublisherClientMockService.java7
-rw-r--r--tests/carservice_test/src/com/android/car/test/VmsPublisherClientServiceTest.java10
-rw-r--r--tests/carservice_test/src/com/android/car/test/VmsPublisherSubscriberTest.java29
-rw-r--r--tests/carservice_test/src/com/android/car/test/VmsSubscriberManagerTest.java29
-rw-r--r--tests/carservice_unit_test/src/com/android/car/VmsRoutingTest.java2
16 files changed, 96 insertions, 145 deletions
diff --git a/car-lib/src/android/car/vms/IVmsPublisherService.aidl b/car-lib/src/android/car/vms/IVmsPublisherService.aidl
index f122ec6a21..e7464579cd 100644
--- a/car-lib/src/android/car/vms/IVmsPublisherService.aidl
+++ b/car-lib/src/android/car/vms/IVmsPublisherService.aidl
@@ -28,7 +28,7 @@ interface IVmsPublisherService {
/**
* Client call to publish a message.
*/
- oneway void publish(in IBinder token, int layer, int version, in byte[] message) = 0;
+ oneway void publish(in IBinder token, in VmsLayer layer, in byte[] message) = 0;
/**
* Returns the list of VmsLayers that has any clients subscribed to it.
diff --git a/car-lib/src/android/car/vms/IVmsSubscriberClient.aidl b/car-lib/src/android/car/vms/IVmsSubscriberClient.aidl
index 8a0f546e82..79c88ac46e 100644
--- a/car-lib/src/android/car/vms/IVmsSubscriberClient.aidl
+++ b/car-lib/src/android/car/vms/IVmsSubscriberClient.aidl
@@ -25,7 +25,7 @@ oneway interface IVmsSubscriberClient {
/**
* A VmsService uses this callback to pass messages to subscribers.
*/
- void onVmsMessageReceived(in int layerId, in int layerVersion, in byte[] payload) = 0;
+ void onVmsMessageReceived(in VmsLayer layer, in byte[] payload) = 0;
void onLayersAvailabilityChange(in List<VmsLayer> availableLayers) = 1;
}
diff --git a/car-lib/src/android/car/vms/IVmsSubscriberService.aidl b/car-lib/src/android/car/vms/IVmsSubscriberService.aidl
index 40ee67fc25..236ae5a94c 100644
--- a/car-lib/src/android/car/vms/IVmsSubscriberService.aidl
+++ b/car-lib/src/android/car/vms/IVmsSubscriberService.aidl
@@ -28,8 +28,7 @@ interface IVmsSubscriberService {
*/
void addVmsSubscriberClientListener(
in IVmsSubscriberClient listener,
- int layer,
- int version) = 0;
+ in VmsLayer layer) = 0;
/**
* Subscribes the listener to receive messages from all published layer/version. The
@@ -43,8 +42,7 @@ interface IVmsSubscriberService {
   */
void removeVmsSubscriberClientListener(
in IVmsSubscriberClient listener,
- int layer,
- int version) = 2;
+ in VmsLayer layer) = 2;
/**
   * Tells the VmsSubscriberService a passive client unsubscribes. This will not unsubscribe
diff --git a/car-lib/src/android/car/vms/VmsPublisherClientService.java b/car-lib/src/android/car/vms/VmsPublisherClientService.java
index c1ef1dd06c..5fae38c687 100644
--- a/car-lib/src/android/car/vms/VmsPublisherClientService.java
+++ b/car-lib/src/android/car/vms/VmsPublisherClientService.java
@@ -101,14 +101,13 @@ public abstract class VmsPublisherClientService extends Service {
/**
* Uses the VmsPublisherService binder to publish messages.
*
- * @param layerId the layer to publish to.
- * @param layerVersion the layer's version to publish to.
+ * @param layer the layer to publish to.
* @param payload the message to be sent.
* @return if the call to the method VmsPublisherService.publish was successful.
*/
- public final boolean publish(int layerId, int layerVersion, byte[] payload) {
+ public final boolean publish(VmsLayer layer, byte[] payload) {
if (DBG) {
- Log.d(TAG, "Publishing for layer ID: " + layerId + " Version: " + layerVersion);
+ Log.d(TAG, "Publishing for layer : " + layer);
}
if (mVmsPublisherService == null) {
throw new IllegalStateException("VmsPublisherService not set.");
@@ -122,7 +121,7 @@ public abstract class VmsPublisherClientService extends Service {
throw new IllegalStateException("VmsPublisherService does not have a valid token.");
}
try {
- mVmsPublisherService.publish(token, layerId, layerVersion, payload);
+ mVmsPublisherService.publish(token, layer, payload);
return true;
} catch (RemoteException e) {
Log.e(TAG, "unable to publish message: " + payload, e);
diff --git a/car-lib/src/android/car/vms/VmsSubscriberManager.java b/car-lib/src/android/car/vms/VmsSubscriberManager.java
index 0bdab95c51..d0b8c624c8 100644
--- a/car-lib/src/android/car/vms/VmsSubscriberManager.java
+++ b/car-lib/src/android/car/vms/VmsSubscriberManager.java
@@ -53,7 +53,7 @@ public final class VmsSubscriberManager implements CarManagerBase {
/** Interface exposed to VMS subscribers: it is a wrapper of IVmsSubscriberClient. */
public interface VmsSubscriberClientListener {
/** Called when the property is updated */
- void onVmsMessageReceived(int layerId, int layerVersion, byte[] payload);
+ void onVmsMessageReceived(VmsLayer layer, byte[] payload);
/** Called when layers availability change */
void onLayersAvailabilityChange(List<VmsLayer> availableLayers);
@@ -84,8 +84,7 @@ public final class VmsSubscriberManager implements CarManagerBase {
VmsDataMessage vmsDataMessage = (VmsDataMessage) msg.obj;
// Dispatch the parsed message
- mgr.dispatchOnReceiveMessage(vmsDataMessage.getLayerId(),
- vmsDataMessage.getLayerVersion(),
+ mgr.dispatchOnReceiveMessage(vmsDataMessage.getLayer(),
vmsDataMessage.getPayload());
}
break;
@@ -111,10 +110,10 @@ public final class VmsSubscriberManager implements CarManagerBase {
mHandler = new VmsEventHandler(this, handler.getLooper());
mIListener = new IVmsSubscriberClient.Stub() {
@Override
- public void onVmsMessageReceived(int layerId, int layerVersion, byte[] payload)
+ public void onVmsMessageReceived(VmsLayer layer, byte[] payload)
throws RemoteException {
// Create the data message
- VmsDataMessage vmsDataMessage = new VmsDataMessage(layerId, layerVersion, payload);
+ VmsDataMessage vmsDataMessage = new VmsDataMessage(layer, payload);
mHandler.sendMessage(
mHandler.obtainMessage(
VmsEventHandler.ON_RECEIVE_MESSAGE_EVENT,
@@ -163,16 +162,15 @@ public final class VmsSubscriberManager implements CarManagerBase {
}
/**
- * Subscribes to listen to the layer/version specified.
+ * Subscribes to listen to the layer specified.
*
- * @param layer the layer id to subscribe to.
- * @param version the layer version to subscribe to.
+ * @param layer the layer to subscribe to.
* @throws IllegalStateException if the listener was not set via {@link #setListener}.
*/
- public void subscribe(int layer, int version)
+ public void subscribe(VmsLayer layer)
throws CarNotConnectedException {
if (DBG) {
- Log.d(TAG, "Subscribing to layer: " + layer + ", version: " + version);
+ Log.d(TAG, "Subscribing to layer: " + layer);
}
VmsSubscriberClientListener listener;
synchronized (mListenerLock) {
@@ -184,7 +182,7 @@ public final class VmsSubscriberManager implements CarManagerBase {
throw new IllegalStateException("Listener was not set.");
}
try {
- mVmsSubscriberService.addVmsSubscriberClientListener(mIListener, layer, version);
+ mVmsSubscriberService.addVmsSubscriberClientListener(mIListener, layer);
} catch (RemoteException e) {
Log.e(TAG, "Could not connect: ", e);
throw new CarNotConnectedException(e);
@@ -220,13 +218,12 @@ public final class VmsSubscriberManager implements CarManagerBase {
/**
* Unsubscribes from the layer/version specified.
*
- * @param layer the layer id to unsubscribe from.
- * @param version the layer version to unsubscribe from.
+ * @param layer the layer to unsubscribe from.
* @throws IllegalStateException if the listener was not set via {@link #setListener}.
*/
- public void unsubscribe(int layer, int version) {
+ public void unsubscribe(VmsLayer layer) {
if (DBG) {
- Log.d(TAG, "Unsubscribing from layer: " + layer + ", version: " + version);
+ Log.d(TAG, "Unsubscribing from layer: " + layer);
}
VmsSubscriberClientListener listener;
synchronized (mListenerLock) {
@@ -238,7 +235,7 @@ public final class VmsSubscriberManager implements CarManagerBase {
throw new IllegalStateException("Listener was not set.");
}
try {
- mVmsSubscriberService.removeVmsSubscriberClientListener(mIListener, layer, version);
+ mVmsSubscriberService.removeVmsSubscriberClientListener(mIListener, layer);
} catch (RemoteException e) {
Log.e(TAG, "Failed to unregister subscriber", e);
// ignore
@@ -247,7 +244,7 @@ public final class VmsSubscriberManager implements CarManagerBase {
}
}
- private void dispatchOnReceiveMessage(int layerId, int layerVersion, byte[] payload) {
+ private void dispatchOnReceiveMessage(VmsLayer layer, byte[] payload) {
VmsSubscriberClientListener listener;
synchronized (mListenerLock) {
listener = mListener;
@@ -256,7 +253,7 @@ public final class VmsSubscriberManager implements CarManagerBase {
Log.e(TAG, "Listener died, not dispatching event.");
return;
}
- listener.onVmsMessageReceived(layerId, layerVersion, payload);
+ listener.onVmsMessageReceived(layer, payload);
}
private void dispatchOnAvailabilityChangeMessage(List<VmsLayer> availableLayers) {
@@ -278,21 +275,16 @@ public final class VmsSubscriberManager implements CarManagerBase {
}
private static final class VmsDataMessage {
- private int mLayerId;
- private int mLayerVersion;
- private byte[] mPayload;
+ private final VmsLayer mLayer;
+ private final byte[] mPayload;
- public VmsDataMessage(int layerId, int layerVersion, byte[] payload) {
- mLayerId = layerId;
- mLayerVersion = layerVersion;
+ public VmsDataMessage(VmsLayer layer, byte[] payload) {
+ mLayer = layer;
mPayload = payload;
}
- public int getLayerId() {
- return mLayerId;
- }
- public int getLayerVersion() {
- return mLayerVersion;
+ public VmsLayer getLayer() {
+ return mLayer;
}
public byte[] getPayload() {
return mPayload;
diff --git a/service/src/com/android/car/VmsPublisherService.java b/service/src/com/android/car/VmsPublisherService.java
index 7fb5bb3121..ab2c570bc7 100644
--- a/service/src/com/android/car/VmsPublisherService.java
+++ b/service/src/com/android/car/VmsPublisherService.java
@@ -105,12 +105,11 @@ public class VmsPublisherService extends IVmsPublisherService.Stub
// Implements IVmsPublisherService interface.
@Override
- public void publish(IBinder token, int layerId, int layerVersion, byte[] payload) {
+ public void publish(IBinder token, VmsLayer layer, byte[] payload) {
if (DBG) {
- Log.d(TAG, "Publishing for layer ID: " + layerId + " Version: " + layerVersion);
+ Log.d(TAG, "Publishing for layer: " + layer);
}
ICarImpl.assertVmsPublisherPermission(mContext);
- VmsLayer layer = new VmsLayer(layerId, layerVersion);
// Send the message to application listeners.
Set<IVmsSubscriberClient> listeners = mHal.getListeners(layer);
@@ -120,7 +119,7 @@ public class VmsPublisherService extends IVmsPublisherService.Stub
}
for (IVmsSubscriberClient listener : listeners) {
try {
- listener.onVmsMessageReceived(layerId, layerVersion, payload);
+ listener.onVmsMessageReceived(layer, payload);
} catch (RemoteException ex) {
Log.e(TAG, "unable to publish to listener: " + listener);
}
@@ -129,7 +128,7 @@ public class VmsPublisherService extends IVmsPublisherService.Stub
// Send the message to HAL
if (mHal.isHalSubscribed(layer)) {
Log.d(TAG, "HAL is subscribed");
- mHal.setDataMessage(layerId, layerVersion, payload);
+ mHal.setDataMessage(layer, payload);
} else {
Log.d(TAG, "HAL is NOT subscribed");
}
diff --git a/service/src/com/android/car/VmsSubscriberService.java b/service/src/com/android/car/VmsSubscriberService.java
index f591f7648c..97ed27ff8c 100644
--- a/service/src/com/android/car/VmsSubscriberService.java
+++ b/service/src/com/android/car/VmsSubscriberService.java
@@ -217,24 +217,20 @@ public class VmsSubscriberService extends IVmsSubscriberService.Stub
// Implements IVmsService interface.
@Override
- public void addVmsSubscriberClientListener(IVmsSubscriberClient listener,
- int layerId, int layerVersion) {
+ public void addVmsSubscriberClientListener(IVmsSubscriberClient listener, VmsLayer layer) {
synchronized (mSubscriberServiceLock) {
// Add the listener so it can subscribe.
mMessageReceivedManager.add(listener);
// Add the subscription for the layer.
- VmsLayer layer = new VmsLayer(layerId, layerVersion);
mHal.addSubscription(listener, layer);
}
}
@Override
- public void removeVmsSubscriberClientListener(IVmsSubscriberClient listener,
- int layerId, int layerVersion) {
+ public void removeVmsSubscriberClientListener(IVmsSubscriberClient listener, VmsLayer layer) {
synchronized (mSubscriberServiceLock) {
// Remove the subscription.
- VmsLayer layer = new VmsLayer(layerId, layerVersion);
mHal.removeSubscription(listener, layer);
// Remove the listener if it has no more subscriptions.
@@ -273,8 +269,7 @@ public class VmsSubscriberService extends IVmsSubscriberService.Stub
// Implements VmsHalSubscriberListener interface
@Override
- public void onChange(int layerId, int layerVersion, byte[] payload) {
- VmsLayer layer = new VmsLayer(layerId, layerVersion);
+ public void onChange(VmsLayer layer, byte[] payload) {
if(DBG) {
Log.d(TAG, "Publishing a message for layer: " + layer);
}
@@ -288,7 +283,7 @@ public class VmsSubscriberService extends IVmsSubscriberService.Stub
for (IVmsSubscriberClient subscriber : listeners) {
try {
- subscriber.onVmsMessageReceived(layerId, layerVersion, payload);
+ subscriber.onVmsMessageReceived(layer, payload);
} catch (RemoteException e) {
// If we could not send a record, its likely the connection snapped. Let the binder
// death handle the situation.
diff --git a/service/src/com/android/car/hal/VmsHalService.java b/service/src/com/android/car/hal/VmsHalService.java
index 0c4c094b7e..141205e45f 100644
--- a/service/src/com/android/car/hal/VmsHalService.java
+++ b/service/src/com/android/car/hal/VmsHalService.java
@@ -79,7 +79,7 @@ public class VmsHalService extends HalServiceBase {
* The VmsSubscriberService implements this interface to receive data from the HAL.
*/
public interface VmsHalSubscriberListener {
- void onChange(int layerId, int layerVersion, byte[] payload);
+ void onChange(VmsLayer layer, byte[] payload);
}
/**
@@ -229,7 +229,7 @@ public class VmsHalService extends HalServiceBase {
public void notifyPublishers(VmsLayer layer, boolean hasSubscribers) {
synchronized (mLock) {
// notify the HAL
- setSubscriptionRequest(layer.getId(), layer.getVersion(), hasSubscribers);
+ setSubscriptionRequest(layer, hasSubscribers);
// Notify the App publishers
for (VmsHalPublisherListener listener : mPublisherListeners) {
@@ -312,7 +312,7 @@ public class VmsHalService extends HalServiceBase {
// Send the message.
for (VmsHalSubscriberListener listener : mSubscriberListeners) {
- listener.onChange(layerId, layerVersion, payload);
+ listener.onChange(new VmsLayer(layerId, layerVersion), payload);
}
} else if (messageType == VmsMessageType.SUBSCRIBE) {
addHalSubscription(new VmsLayer(layerId, layerVersion));
@@ -332,22 +332,20 @@ public class VmsHalService extends HalServiceBase {
/**
* Updates the VMS HAL property with the given value.
*
- * @param property the value used to update the HAL property.
- * @return true if the call to the HAL to update the property was successful.
+ * @param layer layer data to update the hal property.
+ * @param hasSubscribers if it is a subscribe or unsubscribe message.
+ * @return true if the call to the HAL to update the property was successful.
*/
- public boolean setSubscriptionRequest(int layerId, int layerVersion, boolean hasSubscribers) {
+ public boolean setSubscriptionRequest(VmsLayer layer, boolean hasSubscribers) {
VehiclePropValue vehiclePropertyValue = toVehiclePropValue(
- hasSubscribers ? VmsMessageType.SUBSCRIBE : VmsMessageType.UNSUBSCRIBE,
- layerId,
- layerVersion);
+ hasSubscribers ? VmsMessageType.SUBSCRIBE : VmsMessageType.UNSUBSCRIBE, layer);
return setPropertyValue(vehiclePropertyValue);
}
- public boolean setDataMessage(int layerId, int layerVersion, byte[] payload) {
+ public boolean setDataMessage(VmsLayer layer, byte[] payload) {
VehiclePropValue vehiclePropertyValue = toVehiclePropValue(VmsMessageType.DATA,
- layerId,
- layerVersion,
- payload);
+ layer,
+ payload);
return setPropertyValue(vehiclePropertyValue);
}
@@ -362,26 +360,23 @@ public class VmsHalService extends HalServiceBase {
}
/** Creates a {@link VehiclePropValue} */
- static VehiclePropValue toVehiclePropValue(int messageType,
- int layerId,
- int layerVersion) {
+ private static VehiclePropValue toVehiclePropValue(int messageType, VmsLayer layer) {
VehiclePropValue vehicleProp = new VehiclePropValue();
vehicleProp.prop = HAL_PROPERTY_ID;
vehicleProp.areaId = VehicleAreaType.VEHICLE_AREA_TYPE_NONE;
VehiclePropValue.RawValue v = vehicleProp.value;
v.int32Values.add(messageType);
- v.int32Values.add(layerId);
- v.int32Values.add(layerVersion);
+ v.int32Values.add(layer.getId());
+ v.int32Values.add(layer.getVersion());
return vehicleProp;
}
- /** Creates a {@link VehiclePropValue} with payload*/
- static VehiclePropValue toVehiclePropValue(int messageType,
- int layerId,
- int layerVersion,
- byte[] payload) {
- VehiclePropValue vehicleProp = toVehiclePropValue(messageType, layerId, layerVersion);
+ /** Creates a {@link VehiclePropValue} with payload */
+ private static VehiclePropValue toVehiclePropValue(int messageType,
+ VmsLayer layer,
+ byte[] payload) {
+ VehiclePropValue vehicleProp = toVehiclePropValue(messageType, layer);
VehiclePropValue.RawValue v = vehicleProp.value;
v.bytes.ensureCapacity(payload.length);
for (byte b : payload) {
diff --git a/tests/VmsPublisherClientSample/src/com/google/android/car/vms/publisher/VmsPublisherClientSampleService.java b/tests/VmsPublisherClientSample/src/com/google/android/car/vms/publisher/VmsPublisherClientSampleService.java
index 1677eafe85..d414d08128 100644
--- a/tests/VmsPublisherClientSample/src/com/google/android/car/vms/publisher/VmsPublisherClientSampleService.java
+++ b/tests/VmsPublisherClientSample/src/com/google/android/car/vms/publisher/VmsPublisherClientSampleService.java
@@ -30,8 +30,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
*/
public class VmsPublisherClientSampleService extends VmsPublisherClientService {
public static final int PUBLISH_EVENT = 0;
- public static final int TEST_LAYER_ID = 0;
- public static final int TEST_LAYER_VERSION = 0;
+ public static final VmsLayer TEST_LAYER = new VmsLayer(0,0);
private byte mCounter = 0;
private AtomicBoolean mInitialized = new AtomicBoolean(false);
@@ -57,7 +56,7 @@ public class VmsPublisherClientSampleService extends VmsPublisherClientService {
public void onVmsSubscriptionChange(List<VmsLayer> layers, long sequence) {
if (mInitialized.compareAndSet(false, true)) {
for (VmsLayer layer : layers) {
- if (layer.getId() == TEST_LAYER_ID && layer.getVersion() == TEST_LAYER_VERSION) {
+ if (layer.equals(TEST_LAYER)) {
mHandler.sendEmptyMessage(PUBLISH_EVENT);
}
}
@@ -65,7 +64,7 @@ public class VmsPublisherClientSampleService extends VmsPublisherClientService {
}
private void periodicPublish() {
- publish(TEST_LAYER_ID, TEST_LAYER_VERSION, new byte[]{mCounter});
+ publish(TEST_LAYER, new byte[]{mCounter});
++mCounter;
mHandler.sendEmptyMessageDelayed(PUBLISH_EVENT, 1000);
}
diff --git a/tests/VmsSubscriberClientSample/src/com/google/android/car/vms/subscriber/VmsSubscriberClientSampleActivity.java b/tests/VmsSubscriberClientSample/src/com/google/android/car/vms/subscriber/VmsSubscriberClientSampleActivity.java
index 74b377a04e..4ee95a131d 100644
--- a/tests/VmsSubscriberClientSample/src/com/google/android/car/vms/subscriber/VmsSubscriberClientSampleActivity.java
+++ b/tests/VmsSubscriberClientSample/src/com/google/android/car/vms/subscriber/VmsSubscriberClientSampleActivity.java
@@ -36,8 +36,7 @@ public class VmsSubscriberClientSampleActivity extends Activity {
private static final String TAG = "VmsSampleActivity";
// The layer id and version should match the ones defined in
// com.google.android.car.vms.publisher.VmsPublisherClientSampleService
- public static final int TEST_LAYER_ID = 0;
- public static final int TEST_LAYER_VERSION = 0;
+ public static final VmsLayer TEST_LAYER = new VmsLayer(0, 0);
private Car mCarApi;
private TextView mTextView;
@@ -91,7 +90,7 @@ public class VmsSubscriberClientSampleActivity extends Activity {
private void configureSubscriptions(VmsSubscriberManager vmsSubscriberManager) {
try {
vmsSubscriberManager.setListener(mListener);
- vmsSubscriberManager.subscribe(TEST_LAYER_ID, TEST_LAYER_VERSION);
+ vmsSubscriberManager.subscribe(TEST_LAYER);
} catch (android.car.CarNotConnectedException e) {
Log.e(TAG, "Car is not connected!", e);
}
@@ -101,7 +100,7 @@ public class VmsSubscriberClientSampleActivity extends Activity {
private final VmsSubscriberManager.VmsSubscriberClientListener mListener =
new VmsSubscriberManager.VmsSubscriberClientListener() {
@Override
- public void onVmsMessageReceived(int layerId, int layerVersion, byte[] payload) {
+ public void onVmsMessageReceived(VmsLayer layer, byte[] payload) {
mTextView.setText(String.valueOf(payload[0]));
}
diff --git a/tests/carservice_test/src/com/android/car/test/SimpleVmsPublisherClientService.java b/tests/carservice_test/src/com/android/car/test/SimpleVmsPublisherClientService.java
index 4d03759bfd..96635f14f6 100644
--- a/tests/carservice_test/src/com/android/car/test/SimpleVmsPublisherClientService.java
+++ b/tests/carservice_test/src/com/android/car/test/SimpleVmsPublisherClientService.java
@@ -35,19 +35,7 @@ public class SimpleVmsPublisherClientService extends VmsPublisherClientService {
@Override
public void onVmsPublisherServiceReady() {
// Publish a property that is going to be verified in the test.
- publish(getLayerId(), getLayerVersion(), getPayload());
- }
-
- // methods exposed for testing.
- static public int getLayerId() {
- return 12;
- }
-
- static public int getLayerVersion() {
- return 34;
- }
-
- static byte[] getPayload() {
- return new byte[]{1, 1, 2, 3, 5, 8, 13};
+ publish(VmsPublisherClientServiceTest.MOCK_PUBLISHER_LAYER,
+ VmsPublisherClientServiceTest.PAYLOAD);
}
}
diff --git a/tests/carservice_test/src/com/android/car/test/VmsPublisherClientMockService.java b/tests/carservice_test/src/com/android/car/test/VmsPublisherClientMockService.java
index 5d36875b9b..b6770f7c4f 100644
--- a/tests/carservice_test/src/com/android/car/test/VmsPublisherClientMockService.java
+++ b/tests/carservice_test/src/com/android/car/test/VmsPublisherClientMockService.java
@@ -47,11 +47,8 @@ public class VmsPublisherClientMockService extends VmsPublisherClientService {
private void publishIfNeeded(List<VmsLayer> layers) {
for (VmsLayer layer : layers) {
- if (layer.getId() == VmsPublisherSubscriberTest.LAYER_ID
- && layer.getVersion() == VmsPublisherSubscriberTest.LAYER_VERSION) {
- publish(VmsPublisherSubscriberTest.LAYER_ID,
- VmsPublisherSubscriberTest.LAYER_VERSION,
- VmsPublisherSubscriberTest.PAYLOAD);
+ if (layer.equals(VmsPublisherSubscriberTest.LAYER)) {
+ publish(VmsPublisherSubscriberTest.LAYER, VmsPublisherSubscriberTest.PAYLOAD);
}
}
}
diff --git a/tests/carservice_test/src/com/android/car/test/VmsPublisherClientServiceTest.java b/tests/carservice_test/src/com/android/car/test/VmsPublisherClientServiceTest.java
index 84f564de05..c4b054aca1 100644
--- a/tests/carservice_test/src/com/android/car/test/VmsPublisherClientServiceTest.java
+++ b/tests/carservice_test/src/com/android/car/test/VmsPublisherClientServiceTest.java
@@ -19,6 +19,7 @@ package com.android.car.test;
import android.annotation.ArrayRes;
import android.car.VehicleAreaType;
import android.car.annotation.FutureFeature;
+import android.car.vms.VmsLayer;
import android.content.Context;
import android.content.ContextWrapper;
import android.content.pm.PackageManager;
@@ -48,6 +49,9 @@ public class VmsPublisherClientServiceTest extends MockedCarTestBase {
private static final String TAG = "VmsPublisherTest";
private static final int MOCK_PUBLISHER_LAYER_ID = 12;
private static final int MOCK_PUBLISHER_LAYER_VERSION = 34;
+ public static final VmsLayer MOCK_PUBLISHER_LAYER = new VmsLayer(MOCK_PUBLISHER_LAYER_ID,
+ MOCK_PUBLISHER_LAYER_VERSION);
+ public static final byte[] PAYLOAD = new byte[]{1, 1, 2, 3, 5, 8, 13};
private HalHandler mHalHandler;
// Used to block until the HAL property is updated in HalHandler.onPropertySet.
@@ -135,9 +139,9 @@ public class VmsPublisherClientServiceTest extends MockedCarTestBase {
payload[i] = rawValue.bytes.get(i);
}
assertEquals(VmsMessageType.DATA, messageType);
- assertEquals(SimpleVmsPublisherClientService.getLayerId(), layerId);
- assertEquals(SimpleVmsPublisherClientService.getLayerVersion(), layerVersion);
- assertTrue(Arrays.equals(SimpleVmsPublisherClientService.getPayload(), payload));
+ assertEquals(MOCK_PUBLISHER_LAYER_ID, layerId);
+ assertEquals(MOCK_PUBLISHER_LAYER_VERSION, layerVersion);
+ assertTrue(Arrays.equals(PAYLOAD, payload));
}
private class HalHandler implements VehicleHalPropertyHandler {
diff --git a/tests/carservice_test/src/com/android/car/test/VmsPublisherSubscriberTest.java b/tests/carservice_test/src/com/android/car/test/VmsPublisherSubscriberTest.java
index b215ffb46c..401adb2f60 100644
--- a/tests/carservice_test/src/com/android/car/test/VmsPublisherSubscriberTest.java
+++ b/tests/carservice_test/src/com/android/car/test/VmsPublisherSubscriberTest.java
@@ -39,8 +39,9 @@ import java.util.concurrent.TimeUnit;
@FutureFeature
public class VmsPublisherSubscriberTest extends MockedCarTestBase {
- public static final int LAYER_ID = 88;
- public static final int LAYER_VERSION = 19;
+ private static final int LAYER_ID = 88;
+ private static final int LAYER_VERSION = 19;
+ public static final VmsLayer LAYER = new VmsLayer(LAYER_ID, LAYER_VERSION);
public static final byte[] PAYLOAD = new byte[]{2, 3, 5, 7, 11, 13, 17};
private HalHandler mHalHandler;
@@ -103,11 +104,10 @@ public class VmsPublisherSubscriberTest extends MockedCarTestBase {
Car.VMS_SUBSCRIBER_SERVICE);
TestListener listener = new TestListener();
vmsSubscriberManager.setListener(listener);
- vmsSubscriberManager.subscribe(LAYER_ID, LAYER_VERSION);
+ vmsSubscriberManager.subscribe(LAYER);
assertTrue(mSubscriberSemaphore.tryAcquire(2L, TimeUnit.SECONDS));
- assertEquals(LAYER_ID, listener.getLayerId());
- assertEquals(LAYER_VERSION, listener.getLayerVersion());
+ assertEquals(LAYER, listener.getLayer());
assertTrue(Arrays.equals(PAYLOAD, listener.getPayload()));
}
@@ -115,17 +115,14 @@ public class VmsPublisherSubscriberTest extends MockedCarTestBase {
}
private class TestListener implements VmsSubscriberManager.VmsSubscriberClientListener {
- private int mLayerId;
- private int mLayerVersion;
+ private VmsLayer mLayer;
private byte[] mPayload;
@Override
- public void onVmsMessageReceived(int layerId, int layerVersion, byte[] payload) {
- assertEquals(LAYER_ID, layerId);
- assertEquals(LAYER_VERSION, layerVersion);
+ public void onVmsMessageReceived(VmsLayer layer, byte[] payload) {
+ assertEquals(LAYER, layer);
assertTrue(Arrays.equals(PAYLOAD, payload));
- mLayerId = layerId;
- mLayerVersion = layerVersion;
+ mLayer = layer;
mPayload = payload;
mSubscriberSemaphore.release();
}
@@ -137,12 +134,8 @@ public class VmsPublisherSubscriberTest extends MockedCarTestBase {
// and update VmsPublisherClientMockService
}
- public int getLayerId() {
- return mLayerId;
- }
-
- public int getLayerVersion() {
- return mLayerVersion;
+ public VmsLayer getLayer() {
+ return mLayer;
}
public byte[] getPayload() {
diff --git a/tests/carservice_test/src/com/android/car/test/VmsSubscriberManagerTest.java b/tests/carservice_test/src/com/android/car/test/VmsSubscriberManagerTest.java
index 0a6563a809..58a4c98966 100644
--- a/tests/carservice_test/src/com/android/car/test/VmsSubscriberManagerTest.java
+++ b/tests/carservice_test/src/com/android/car/test/VmsSubscriberManagerTest.java
@@ -43,6 +43,8 @@ public class VmsSubscriberManagerTest extends MockedCarTestBase {
private static final String TAG = "VmsSubscriberManagerTest";
private static final int SUBSCRIPTION_LAYER_ID = 2;
private static final int SUBSCRIPTION_LAYER_VERSION = 3;
+ private static final VmsLayer SUBSCRIPTION_LAYER = new VmsLayer(SUBSCRIPTION_LAYER_ID,
+ SUBSCRIPTION_LAYER_VERSION);
private HalHandler mHalHandler;
// Used to block until the HAL property is updated in HalHandler.onPropertySet.
@@ -72,7 +74,7 @@ public class VmsSubscriberManagerTest extends MockedCarTestBase {
Car.VMS_SUBSCRIBER_SERVICE);
TestListener listener = new TestListener();
vmsSubscriberManager.setListener(listener);
- vmsSubscriberManager.subscribe(SUBSCRIPTION_LAYER_ID, SUBSCRIPTION_LAYER_VERSION);
+ vmsSubscriberManager.subscribe(SUBSCRIPTION_LAYER);
// Inject a value and wait for its callback in TestListener.onVmsMessageReceived.
VehiclePropValue v = VehiclePropValueBuilder.newBuilder(VehicleProperty.VEHICLE_MAP_SERVICE)
@@ -88,8 +90,7 @@ public class VmsSubscriberManagerTest extends MockedCarTestBase {
getMockedVehicleHal().injectEvent(v);
assertTrue(mSubscriberSemaphore.tryAcquire(2L, TimeUnit.SECONDS));
- assertEquals(SUBSCRIPTION_LAYER_ID, listener.getLayerId());
- assertEquals(SUBSCRIPTION_LAYER_VERSION, listener.getLayerVersion());
+ assertEquals(SUBSCRIPTION_LAYER, listener.getLayer());
byte[] expectedPayload = {(byte) 0xa, (byte) 0xb};
assertTrue(Arrays.equals(expectedPayload, listener.getPayload()));
}
@@ -117,8 +118,7 @@ public class VmsSubscriberManagerTest extends MockedCarTestBase {
getMockedVehicleHal().injectEvent(v);
assertTrue(mSubscriberSemaphore.tryAcquire(2L, TimeUnit.SECONDS));
- assertEquals(SUBSCRIPTION_LAYER_ID, listener.getLayerId());
- assertEquals(SUBSCRIPTION_LAYER_VERSION, listener.getLayerVersion());
+ assertEquals(SUBSCRIPTION_LAYER, listener.getLayer());
byte[] expectedPayload = {(byte) 0xa, (byte) 0xb};
assertTrue(Arrays.equals(expectedPayload, listener.getPayload()));
}
@@ -154,16 +154,13 @@ public class VmsSubscriberManagerTest extends MockedCarTestBase {
private class TestListener implements VmsSubscriberClientListener{
- private int mLayerId;
- private int mLayerVersion;
+ private VmsLayer mLayer;
private byte[] mPayload;
@Override
- public void onVmsMessageReceived(int layerId, int layerVersion, byte[] payload) {
- Log.d(TAG, "onVmsMessageReceived: Layer: " + layerId +
- " Version: " + layerVersion + " Payload: " + payload);
- mLayerId = layerId;
- mLayerVersion = layerVersion;
+ public void onVmsMessageReceived(VmsLayer layer, byte[] payload) {
+ Log.d(TAG, "onVmsMessageReceived: layer: " + layer + " Payload: " + payload);
+ mLayer = layer;
mPayload = payload;
mSubscriberSemaphore.release();
}
@@ -173,12 +170,8 @@ public class VmsSubscriberManagerTest extends MockedCarTestBase {
Log.d(TAG, "onLayersAvailabilityChange: Layers: " + availableLayers);
}
- public int getLayerId() {
- return mLayerId;
- }
-
- public int getLayerVersion() {
- return mLayerVersion;
+ public VmsLayer getLayer() {
+ return mLayer;
}
public byte[] getPayload() {
diff --git a/tests/carservice_unit_test/src/com/android/car/VmsRoutingTest.java b/tests/carservice_unit_test/src/com/android/car/VmsRoutingTest.java
index 7a889e9c7e..d9a395e0e0 100644
--- a/tests/carservice_unit_test/src/com/android/car/VmsRoutingTest.java
+++ b/tests/carservice_unit_test/src/com/android/car/VmsRoutingTest.java
@@ -130,7 +130,7 @@ public class VmsRoutingTest extends AndroidTestCase {
class MockVmsListener extends IVmsSubscriberClient.Stub {
@Override
- public void onVmsMessageReceived(int layerId, int layerVersion, byte[] payload) {}
+ public void onVmsMessageReceived(VmsLayer layer, byte[] payload) {}
@Override
public void onLayersAvailabilityChange(List<VmsLayer> availableLayers) {}