diff options
author | Asaf Rosenfeld <asafro@google.com> | 2017-03-31 14:32:10 -0700 |
---|---|---|
committer | Asaf Rosenfeld <asafro@google.com> | 2017-04-05 14:46:53 -0700 |
commit | eb541d4fae5171ca480069ff821581226df3ddb0 (patch) | |
tree | 9acf9c02636ca2fe6e4fb787358d478c4252836a /car-lib/src/android | |
parent | f50230d087f356300957af2317b4b0f4df6631e6 (diff) | |
download | Car-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')
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; } /** |