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);
}
}