diff --git a/tests/robotests/src/com/android/settings/datetime/timezone/model/TimeZoneDataTest.java b/tests/robotests/src/com/android/settings/datetime/timezone/model/TimeZoneDataTest.java
index 6322b57..1acbcda 100644
--- a/tests/robotests/src/com/android/settings/datetime/timezone/model/TimeZoneDataTest.java
+++ b/tests/robotests/src/com/android/settings/datetime/timezone/model/TimeZoneDataTest.java
@@ -21,6 +21,8 @@
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
+import static java.util.Collections.emptyList;
+
 import com.android.i18n.timezone.CountryTimeZones;
 import com.android.i18n.timezone.CountryTimeZones.TimeZoneMapping;
 import com.android.i18n.timezone.CountryZonesFinder;
@@ -49,7 +51,7 @@
     public void testRegionsWithTimeZone() {
         TimeZoneData timeZoneData = new TimeZoneData(mCountryZonesFinder);
         CountryTimeZones countryTimeZones = mock(CountryTimeZones.class);
-        when(countryTimeZones.getTimeZoneMappings()).thenReturn(Collections.emptyList());
+        when(countryTimeZones.getTimeZoneMappings()).thenReturn(emptyList());
         when(mCountryZonesFinder.lookupCountryTimeZones("US")).thenReturn(countryTimeZones);
         assertThat(timeZoneData.lookupCountryTimeZones("US").getCountryTimeZones())
                 .isSameAs(countryTimeZones);
@@ -57,7 +59,7 @@
 
     @Test
     public void testGetRegionIds() {
-        when(mCountryZonesFinder.lookupAllCountryIsoCodes()).thenReturn(Collections.emptyList());
+        when(mCountryZonesFinder.lookupAllCountryIsoCodes()).thenReturn(emptyList());
         TimeZoneData timeZoneData = new TimeZoneData(mCountryZonesFinder);
         assertThat(timeZoneData.getRegionIds()).isEmpty();
 
@@ -73,13 +75,16 @@
         CountryTimeZones US = mock(CountryTimeZones.class);
         when(US.getCountryIso()).thenReturn("us");
         when(US.getTimeZoneMappings()).thenReturn(Arrays.asList(
-           TimeZoneMapping.createForTests("Unknown/Secret_City", true, null /* notUsedAfter */),
-           TimeZoneMapping.createForTests("Unknown/Secret_City2", false, null /* notUsedAfter */)
+                TimeZoneMapping.createForTests(
+                        "Unknown/Secret_City", true, null /* notUsedAfter */, emptyList()),
+                TimeZoneMapping.createForTests(
+                        "Unknown/Secret_City2", false, null /* notUsedAfter */, emptyList())
         ));
         CountryTimeZones GB = mock(CountryTimeZones.class);
         when(GB.getCountryIso()).thenReturn("gb");
         when(GB.getTimeZoneMappings()).thenReturn(Collections.singletonList(
-            TimeZoneMapping.createForTests("Unknown/Secret_City", true, null /* notUsedAfter */)
+                TimeZoneMapping.createForTests(
+                        "Unknown/Secret_City", true, null /* notUsedAfter */, emptyList())
         ));
         when(mCountryZonesFinder.lookupCountryTimeZonesForZoneId("Unknown/Secret_City"))
                 .thenReturn(Arrays.asList(US, GB));
