Snap for 15106092 from 1aff54ef30c502110bcb4aa0de107064941f835f to 26Q2-release

Change-Id: I2edd49b2b0198322957e3d79000f4ffafad7984d
diff --git a/car-scalable-ui-lib/src/com/android/car/scalableui/model/PanelControllerMetadata.java b/car-scalable-ui-lib/src/com/android/car/scalableui/model/PanelControllerMetadata.java
index 502f25f..24a20b5 100644
--- a/car-scalable-ui-lib/src/com/android/car/scalableui/model/PanelControllerMetadata.java
+++ b/car-scalable-ui-lib/src/com/android/car/scalableui/model/PanelControllerMetadata.java
@@ -172,11 +172,15 @@
          */
         public Builder addConfiguration(@NonNull String key, @NonNull String value) {
             if (mConfigurations.containsKey(key)) {
-                ArrayList<String> list = mConfigurations.getStringArrayList(key);
-                if (list == null) {
-                    String oldValue = mConfigurations.getString(key);
+                Object existingValue = mConfigurations.get(key);
+                ArrayList<String> list;
+                if (existingValue instanceof ArrayList) {
+                    list = (ArrayList<String>) existingValue;
+                } else {
                     list = new ArrayList<>();
-                    list.add(oldValue);
+                    if (existingValue instanceof String) {
+                        list.add((String) existingValue);
+                    }
                 }
                 list.add(value);
                 mConfigurations.putStringArrayList(key, list);
diff --git a/car-scalable-ui-lib/test/unit/src/com/android/car/scalableui/model/PanelControllerMetadataTest.java b/car-scalable-ui-lib/test/unit/src/com/android/car/scalableui/model/PanelControllerMetadataTest.java
new file mode 100644
index 0000000..4a0ab06
--- /dev/null
+++ b/car-scalable-ui-lib/test/unit/src/com/android/car/scalableui/model/PanelControllerMetadataTest.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2026 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.car.scalableui.model;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
+import androidx.test.ext.junit.runners.AndroidJUnit4;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import java.util.List;
+
+@RunWith(AndroidJUnit4.class)
+public class PanelControllerMetadataTest {
+
+    @Test
+    public void builder_addConfiguration_multipleValuesYieldsList() {
+        PanelControllerMetadata.Builder builder = PanelControllerMetadata.builder("testId");
+        builder.addConfiguration("ControllerName", "com.test.Controller");
+
+        builder.addConfiguration("TEST_KEY", "value1");
+        builder.addConfiguration("TEST_KEY", "value2");
+        builder.addConfiguration("TEST_KEY", "value3");
+
+        PanelControllerMetadata metadata = builder.build();
+
+        List<String> list = metadata.getListConfiguration("TEST_KEY");
+        assertNotNull(list);
+        assertEquals(3, list.size());
+        assertEquals("value1", list.get(0));
+        assertEquals("value2", list.get(1));
+        assertEquals("value3", list.get(2));
+    }
+
+    @Test
+    public void builder_addConfiguration_singleValueYieldsStringButListIsStillAccessible() {
+        PanelControllerMetadata.Builder builder = PanelControllerMetadata.builder("testId");
+        builder.addConfiguration("ControllerName", "com.test.Controller");
+        builder.addConfiguration("TEST_KEY", "value1");
+
+        PanelControllerMetadata metadata = builder.build();
+
+        assertEquals("value1", metadata.getStringConfiguration("TEST_KEY"));
+
+        List<String> list = metadata.getListConfiguration("TEST_KEY");
+        assertNotNull(list);
+        assertEquals(1, list.size());
+        assertEquals("value1", list.get(0));
+    }
+}