Return non-null default values when RemoteException is thrown.

Updates return values of getSubscriptions, getAvailableLayers,
and getPublisherInfo.

Bug: 147520300
Test: atest AndroidCarApiTest CarServiceTest CarServiceUnitTest
Change-Id: Id308a870bf66bf2314241a8d2acdb6b8da052bf0
diff --git a/car-lib/src/android/car/vms/VmsPublisherClientService.java b/car-lib/src/android/car/vms/VmsPublisherClientService.java
index 13ee129..9bc69f3 100644
--- a/car-lib/src/android/car/vms/VmsPublisherClientService.java
+++ b/car-lib/src/android/car/vms/VmsPublisherClientService.java
@@ -36,6 +36,7 @@
 import com.android.internal.annotations.GuardedBy;
 
 import java.lang.ref.WeakReference;
+import java.util.Collections;
 import java.util.Objects;
 
 /**
@@ -59,6 +60,10 @@
     private static final boolean DBG = false;
     private static final String TAG = "VmsPublisherClientService";
 
+    private static final VmsSubscriptionState DEFAULT_SUBSCRIPTIONS =
+            new VmsSubscriptionState(0, Collections.emptySet(),
+                    Collections.emptySet());
+
     private final Object mLock = new Object();
 
     private Handler mHandler = new VmsEventHandler(this);
@@ -195,7 +200,7 @@
         try {
             return mVmsPublisherService.getSubscriptions();
         } catch (RemoteException e) {
-            return Car.handleRemoteExceptionFromCarService(this, e, null);
+            return Car.handleRemoteExceptionFromCarService(this, e, DEFAULT_SUBSCRIPTIONS);
         }
     }
 
diff --git a/car-lib/src/android/car/vms/VmsSubscriberManager.java b/car-lib/src/android/car/vms/VmsSubscriberManager.java
index 94e0d94..69f6ff6 100644
--- a/car-lib/src/android/car/vms/VmsSubscriberManager.java
+++ b/car-lib/src/android/car/vms/VmsSubscriberManager.java
@@ -29,6 +29,7 @@
 
 import com.android.internal.annotations.GuardedBy;
 
+import java.util.Collections;
 import java.util.Objects;
 import java.util.concurrent.Executor;
 
@@ -45,6 +46,10 @@
 public final class VmsSubscriberManager extends CarManagerBase {
     private static final String TAG = "VmsSubscriberManager";
 
+    private static final byte[] DEFAULT_PUBLISHER_INFO = new byte[0];
+    private static final VmsAvailableLayers DEFAULT_AVAILABLE_LAYERS =
+            new VmsAvailableLayers(Collections.emptySet(), 0);
+
     private final IVmsSubscriberService mVmsSubscriberService;
     private final IVmsSubscriberClient mSubscriberManagerClient;
     private final Object mClientCallbackLock = new Object();
@@ -172,7 +177,7 @@
         try {
             return mVmsSubscriberService.getPublisherInfo(publisherId);
         } catch (RemoteException e) {
-            return handleRemoteExceptionFromCarService(e, null);
+            return handleRemoteExceptionFromCarService(e, DEFAULT_PUBLISHER_INFO);
         }
     }
 
@@ -186,7 +191,7 @@
         try {
             return mVmsSubscriberService.getAvailableLayers();
         } catch (RemoteException e) {
-            return handleRemoteExceptionFromCarService(e, null);
+            return handleRemoteExceptionFromCarService(e, DEFAULT_AVAILABLE_LAYERS);
         }
     }