Fix navigation state backwards compatibility crash
am: c90f017575
Change-Id: I030dbf208207970b7fd5a968a2f3de3dc3c8a36d
diff --git a/Android.mk b/Android.mk
index ef92d7e..8da51c3 100644
--- a/Android.mk
+++ b/Android.mk
@@ -36,7 +36,8 @@
LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res
LOCAL_STATIC_JAVA_LIBRARIES := \
- android.car.cluster.navigation
+ android.car.cluster.navigation \
+ androidx.car_car-cluster
LOCAL_JAVA_LIBRARIES += android.car
LOCAL_STATIC_ANDROID_LIBRARIES += \
diff --git a/src/android/car/cluster/ClusterRenderingService.java b/src/android/car/cluster/ClusterRenderingService.java
index 6c924c4..5770773 100644
--- a/src/android/car/cluster/ClusterRenderingService.java
+++ b/src/android/car/cluster/ClusterRenderingService.java
@@ -40,6 +40,8 @@
import android.view.InputDevice;
import android.view.KeyEvent;
+import androidx.versionedparcelable.ParcelUtils;
+
import com.google.protobuf.InvalidProtocolBufferException;
import java.io.FileDescriptor;
@@ -191,6 +193,10 @@
public void onEvent(int eventType, Bundle bundle) {
StringBuilder bundleSummary = new StringBuilder();
if (eventType == NAV_STATE_EVENT_ID) {
+ // Required to prevent backwards compatibility crash with old map providers
+ // sending androidx.versionedparcelables
+ bundle.setClassLoader(ParcelUtils.class.getClassLoader());
+
// Attempt to read proto byte array
byte[] protoBytes = bundle.getByteArray(NAV_STATE_PROTO_BUNDLE_KEY);
if (protoBytes != null) {