diff options
Diffstat (limited to 'car-lib')
4 files changed, 21 insertions, 12 deletions
diff --git a/car-lib/src/android/car/vms/IVmsPublisherService.aidl b/car-lib/src/android/car/vms/IVmsPublisherService.aidl index 5e210fe703..f122ec6a21 100644 --- a/car-lib/src/android/car/vms/IVmsPublisherService.aidl +++ b/car-lib/src/android/car/vms/IVmsPublisherService.aidl @@ -31,7 +31,7 @@ interface IVmsPublisherService { oneway void publish(in IBinder token, int layer, int version, in byte[] message) = 0; /** - * Returns whether the layer/version has any clients subscribed to it. + * Returns the list of VmsLayers that has any clients subscribed to it. */ List<VmsLayer> getSubscriptions() = 1; diff --git a/car-lib/src/android/car/vms/VmsLayerDependency.java b/car-lib/src/android/car/vms/VmsLayerDependency.java index 254330e3a3..a6c513d0e5 100644 --- a/car-lib/src/android/car/vms/VmsLayerDependency.java +++ b/car-lib/src/android/car/vms/VmsLayerDependency.java @@ -20,6 +20,7 @@ import android.car.annotation.FutureFeature; import android.os.Parcel; import android.os.Parcelable; import java.util.ArrayList; +import java.util.Collections; import java.util.List; /** @@ -30,14 +31,14 @@ import java.util.List; @FutureFeature public final class VmsLayerDependency implements Parcelable { private final VmsLayer mLayer; - private final List<VmsLayer> mDependency = new ArrayList<>(); + private final List<VmsLayer> mDependency; /** * Construct a dependency for layer on other layers. */ public VmsLayerDependency(VmsLayer layer, List<VmsLayer> dependencies) { mLayer = layer; - mDependency.addAll(dependencies); + mDependency = Collections.unmodifiableList(dependencies); } /** @@ -45,6 +46,7 @@ public final class VmsLayerDependency implements Parcelable { */ public VmsLayerDependency(VmsLayer layer) { mLayer = layer; + mDependency = Collections.emptyList(); } /** @@ -62,7 +64,7 @@ public final class VmsLayerDependency implements Parcelable { * Returns the dependencies. */ public List<VmsLayer> getDependencies() { - return new ArrayList<VmsLayer>(mDependency); + return mDependency; } public static final Parcelable.Creator<VmsLayerDependency> CREATOR = new @@ -88,7 +90,8 @@ public final class VmsLayerDependency implements Parcelable { private VmsLayerDependency(Parcel in) { mLayer = in.readParcelable(VmsLayer.class.getClassLoader()); - in.readParcelableList(mDependency, VmsLayer.class.getClassLoader()); - + List<VmsLayer> dependency = new ArrayList<>(); + in.readParcelableList(dependency, VmsLayer.class.getClassLoader()); + mDependency = Collections.unmodifiableList(dependency); } }
\ No newline at end of file diff --git a/car-lib/src/android/car/vms/VmsLayersOffering.java b/car-lib/src/android/car/vms/VmsLayersOffering.java index e3691bcc06..12b3dd30b2 100644 --- a/car-lib/src/android/car/vms/VmsLayersOffering.java +++ b/car-lib/src/android/car/vms/VmsLayersOffering.java @@ -20,6 +20,7 @@ import android.car.annotation.FutureFeature; import android.os.Parcel; import android.os.Parcelable; import java.util.ArrayList; +import java.util.Collections; import java.util.List; /** @@ -30,13 +31,17 @@ import java.util.List; @FutureFeature public final class VmsLayersOffering implements Parcelable { - private final List<VmsLayerDependency> mDependencies = new ArrayList<>(); + private final List<VmsLayerDependency> mDependencies; + + public VmsLayersOffering(List<VmsLayerDependency> dependencies) { + mDependencies = Collections.unmodifiableList(dependencies); + } /** * Returns the dependencies. */ public List<VmsLayerDependency> getDependencies() { - return new ArrayList<VmsLayerDependency>(mDependencies); + return mDependencies; } public static final Parcelable.Creator<VmsLayersOffering> CREATOR = new @@ -60,6 +65,8 @@ public final class VmsLayersOffering implements Parcelable { } private VmsLayersOffering(Parcel in) { - in.readParcelableList(mDependencies, VmsLayerDependency.class.getClassLoader()); + List<VmsLayerDependency> dependencies = new ArrayList<>(); + in.readParcelableList(dependencies, VmsLayerDependency.class.getClassLoader()); + mDependencies = Collections.unmodifiableList(dependencies); } }
\ No newline at end of file diff --git a/car-lib/src/android/car/vms/VmsPublisherClientService.java b/car-lib/src/android/car/vms/VmsPublisherClientService.java index 7cda632e8a..c1ef1dd06c 100644 --- a/car-lib/src/android/car/vms/VmsPublisherClientService.java +++ b/car-lib/src/android/car/vms/VmsPublisherClientService.java @@ -58,7 +58,7 @@ public abstract class VmsPublisherClientService extends Service { private final VmsPublisherClientBinder mVmsPublisherClient = new VmsPublisherClientBinder(this); private volatile IVmsPublisherService mVmsPublisherService = null; @GuardedBy("mLock") - private volatile IBinder mToken = null; + private IBinder mToken = null; @Override public final IBinder onBind(Intent intent) { @@ -122,8 +122,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, layerId, layerVersion, payload); return true; } catch (RemoteException e) { Log.e(TAG, "unable to publish message: " + payload, e); |