Add a header view to show the country in RegionZonePicker

Extra fixes in this CL
- Minor string update in time zone picker.
  Use date_time_search_region string in search bar,
  and date_time_set_timezone_title string for lower case "zone".
- Fixed b/76893139. Remove the unnecessary top padding in RecyclerView.
  Create a new layout file time_zone_items_list.xml without the padding.
- Add missing return statement when region ISO code
  is invalid in RegionZonePicker#getAllTimeZoneInfos

Bug: 76209571
Bug: 76893139
Test: m RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.datetime.timezone
Test: Verified that the strings are updated in the UI
Change-Id: I1fb3e2abf80da3cb53cfbc3363bbe46e40a6ac22
This commit is contained in:
Victor Chang
2018-03-27 17:34:53 +01:00
parent 201c629fcc
commit 65f09f3091
11 changed files with 161 additions and 32 deletions

View File

@@ -62,7 +62,7 @@ public class BaseTimeZoneAdapterTest {
observer.await();
assertThat(adapter.getItemCount()).isEqualTo(items.length);
for (int i = 0; i < items.length; i++) {
assertThat(adapter.getItem(i)).isEqualTo(items[i]);
assertThat(adapter.getDataItem(i)).isEqualTo(items[i]);
}
}
@@ -90,7 +90,8 @@ public class BaseTimeZoneAdapterTest {
private static class TestTimeZoneAdapter extends BaseTimeZoneAdapter<TestItem> {
public TestTimeZoneAdapter(List<TestItem> items) {
super(items, position -> {}, Locale.US, false);
super(items, position -> {}, Locale.US, false /* showItemSummary */,
null /* headerText */);
}
}

View File

@@ -61,13 +61,13 @@ public class BaseTimeZoneInfoPickerTest {
BaseTimeZoneAdapter adapter = picker.createAdapter(mock(TimeZoneData.class));
Truth.assertThat(adapter.getItemCount()).isEqualTo(2);
BaseTimeZoneAdapter.AdapterItem item1 = adapter.getItem(0);
BaseTimeZoneAdapter.AdapterItem item1 = adapter.getDataItem(0);
Truth.assertThat(item1.getTitle().toString()).isEqualTo("Los Angeles");
Truth.assertThat(item1.getSummary().toString()).isEqualTo("Pacific Time (GMT-08:00)");
Truth.assertThat(item1.getCurrentTime())
.hasLength(ShadowDataFormat.sTimeFormatString.length());
BaseTimeZoneAdapter.AdapterItem item2 = adapter.getItem(1);
BaseTimeZoneAdapter.AdapterItem item2 = adapter.getDataItem(1);
Truth.assertThat(item2.getTitle().toString()).isEqualTo("New York");
Truth.assertThat(item2.getSummary().toString()).isEqualTo("Eastern Time (GMT-05:00)");
Truth.assertThat(item2.getCurrentTime())

View File

@@ -65,10 +65,10 @@ public class FixedOffsetPickerTest {
TestFixedOffsetPicker picker = new TestFixedOffsetPicker();
BaseTimeZoneAdapter adapter = picker.createAdapter(new TimeZoneData(mFinder));
assertThat(adapter.getItemCount()).isEqualTo(12 + 1 + 14); // 27 GMT offsets from -12 to +14
AdapterItem utc = adapter.getItem(0);
AdapterItem utc = adapter.getDataItem(0);
assertThat(utc.getTitle().toString()).isEqualTo("Coordinated Universal Time");
assertThat(utc.getSummary().toString()).isEqualTo("GMT+00:00");
AdapterItem gmtMinus12 = adapter.getItem(1);
AdapterItem gmtMinus12 = adapter.getDataItem(1);
assertThat(gmtMinus12.getTitle().toString()).isEqualTo("GMT-12:00");
assertThat(gmtMinus12.getSummary().toString()).isEmpty();
}

View File

@@ -66,7 +66,7 @@ public class RegionSearchPickerTest {
RegionSearchPicker picker = new RegionSearchPicker();
BaseTimeZoneAdapter adapter = picker.createAdapter(new TimeZoneData(finder));
assertEquals(1, adapter.getItemCount());
AdapterItem item = adapter.getItem(0);
AdapterItem item = adapter.getDataItem(0);
assertEquals("United States", item.getTitle().toString());
assertThat(Arrays.asList(item.getSearchKeys())).contains("United States");
}
@@ -86,8 +86,8 @@ public class RegionSearchPickerTest {
RegionSearchPicker picker = new RegionSearchPicker();
BaseTimeZoneAdapter<RegionItem> adapter = picker.createAdapter(new TimeZoneData(finder));
// Prepare and bind a new ItemViewHolder with United States
ItemViewHolder viewHolder = adapter.onCreateViewHolder(
new LinearLayout(RuntimeEnvironment.application), 0);
ItemViewHolder viewHolder = (ItemViewHolder) adapter.onCreateViewHolder(
new LinearLayout(RuntimeEnvironment.application), BaseTimeZoneAdapter.TYPE_ITEM);
adapter.onBindViewHolder(viewHolder, 0);
assertEquals(1, adapter.getItemCount());