aboutsummaryrefslogtreecommitdiff
path: root/car-lib/src/android
diff options
context:
space:
mode:
authorAsaf Rosenfeld <asafro@google.com>2017-03-31 14:32:10 -0700
committerAsaf Rosenfeld <asafro@google.com>2017-04-05 14:46:53 -0700
commiteb541d4fae5171ca480069ff821581226df3ddb0 (patch)
tree9acf9c02636ca2fe6e4fb787358d478c4252836a /car-lib/src/android
parentf50230d087f356300957af2317b4b0f4df6631e6 (diff)
downloadCar-eb541d4fae5171ca480069ff821581226df3ddb0.tar.gz
Adding availability HAL support
Test: Added tests that inject offering and check change in availability. Also verified the following pass: runtest -x ../tests/carservice_test/src/com/android/car/test/VmsSubscriberManagerTest.java runtest -x ../tests/carservice_test/src/com/android/car/test/VmsPublisherClientServiceTest.java runtest -x ../tests/carservice_test/src/com/android/car/test/VmsPublisherSubscriberTest.java runtest -x ../tests/carservice_unit_test/src/com/android/car/VmsRoutingTest.java runtest -x ../tests/carservice_unit_test/src/com/android/car/VmsLayersAvailabilityTest.java Change-Id: Ia641499a60e79a2c8665257d94e1050a070da18d
Diffstat (limited to 'car-lib/src/android')
-rw-r--r--car-lib/src/android/car/vms/VmsLayer.java4
-rw-r--r--car-lib/src/android/car/vms/VmsLayerDependency.java4
-rw-r--r--car-lib/src/android/car/vms/VmsLayersOffering.java5
-rw-r--r--car-lib/src/android/car/vms/VmsPublisherClientService.java43
4 files changed, 48 insertions, 8 deletions
diff --git a/car-lib/src/android/car/vms/VmsLayer.java b/car-lib/src/android/car/vms/VmsLayer.java
index 702daec9ef..afd0ae7835 100644
--- a/car-lib/src/android/car/vms/VmsLayer.java
+++ b/car-lib/src/android/car/vms/VmsLayer.java
@@ -24,8 +24,10 @@ import java.util.Objects;
/**
* A VMS Layer which can be subscribed to by VMS clients.
- * Consists of the layer ID and the layer version.
+ * Consists of the layer ID and the layer major version.
*
+ * This class does not contain the minor version since all minor version are backward and forward
+ * compatible and should not be used for routing messages.
* @hide
*/
@FutureFeature
diff --git a/car-lib/src/android/car/vms/VmsLayerDependency.java b/car-lib/src/android/car/vms/VmsLayerDependency.java
index bb588ebf7a..e14c7ecbc2 100644
--- a/car-lib/src/android/car/vms/VmsLayerDependency.java
+++ b/car-lib/src/android/car/vms/VmsLayerDependency.java
@@ -80,6 +80,10 @@ public final class VmsLayerDependency implements Parcelable {
}
};
+ public String toString() {
+ return "VmsLayerDependency{ Layer: " + mLayer + " Dependency: " + mDependency + "}";
+ }
+
@Override
public void writeToParcel(Parcel out, int flags) {
out.writeParcelable(mLayer, flags);
diff --git a/car-lib/src/android/car/vms/VmsLayersOffering.java b/car-lib/src/android/car/vms/VmsLayersOffering.java
index 12b3dd30b2..51a0b995be 100644
--- a/car-lib/src/android/car/vms/VmsLayersOffering.java
+++ b/car-lib/src/android/car/vms/VmsLayersOffering.java
@@ -55,6 +55,11 @@ public final class VmsLayersOffering implements Parcelable {
};
@Override
+ public String toString() {
+ return "VmsLayersOffering{" + mDependencies+ "}";
+ }
+
+ @Override
public void writeToParcel(Parcel out, int flags) {
out.writeParcelableList(mDependencies, flags);
}
diff --git a/car-lib/src/android/car/vms/VmsPublisherClientService.java b/car-lib/src/android/car/vms/VmsPublisherClientService.java
index 2743ff157b..85fd2c2b8d 100644
--- a/car-lib/src/android/car/vms/VmsPublisherClientService.java
+++ b/car-lib/src/android/car/vms/VmsPublisherClientService.java
@@ -106,6 +106,41 @@ public abstract class VmsPublisherClientService extends Service {
if (DBG) {
Log.d(TAG, "Publishing for layer : " + layer);
}
+
+ IBinder token = getTokenForPublisherServiceThreadSafe();
+
+ try {
+ mVmsPublisherService.publish(token, layer, payload);
+ return true;
+ } catch (RemoteException e) {
+ Log.e(TAG, "unable to publish message: " + payload, e);
+ }
+ return false;
+ }
+
+ /**
+ * Uses the VmsPublisherService binder to set the layers offering.
+ *
+ * @param offering the layers that the publisher may publish.
+ * @return if the call to VmsPublisherService.setLayersOffering was successful.
+ */
+ public final boolean setLayersOffering(VmsLayersOffering offering) {
+ if (DBG) {
+ Log.d(TAG, "Setting layers offering : " + offering);
+ }
+
+ IBinder token = getTokenForPublisherServiceThreadSafe();
+
+ try {
+ mVmsPublisherService.setLayersOffering(token, offering);
+ return true;
+ } catch (RemoteException e) {
+ Log.e(TAG, "unable to set layers offering: " + offering, e);
+ }
+ return false;
+ }
+
+ private IBinder getTokenForPublisherServiceThreadSafe() {
if (mVmsPublisherService == null) {
throw new IllegalStateException("VmsPublisherService not set.");
}
@@ -117,13 +152,7 @@ public abstract class VmsPublisherClientService extends Service {
if (token == null) {
throw new IllegalStateException("VmsPublisherService does not have a valid token.");
}
- try {
- mVmsPublisherService.publish(token, layer, payload);
- return true;
- } catch (RemoteException e) {
- Log.e(TAG, "unable to publish message: " + payload, e);
- }
- return false;
+ return token;
}
/**