Stop using framework internal layout for timezone header.

The framework version header has deviated from supportlib version long
ago, and we shouldn't hack our theme to make this layout work. Instead
we now have a custom layout compatible to settings theme.

Fixes: 128833223
Test: visual
Change-Id: I83087352240de183b0639daf844bd7f90e02056a
This commit is contained in:
Fan Zhang
2019-03-18 16:37:28 -07:00
parent 9f5e7b77ff
commit 5d2e0fc10f
2 changed files with 37 additions and 3 deletions

View File

@@ -77,9 +77,10 @@ public class BaseTimeZoneAdapter<T extends BaseTimeZoneAdapter.AdapterItem>
@Override
public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
switch(viewType) {
switch (viewType) {
case TYPE_HEADER: {
final View view = inflater.inflate(R.layout.preference_category_material,
final View view = inflater.inflate(
R.layout.time_zone_search_header,
parent, false);
return new HeaderViewHolder(view);
}
@@ -136,7 +137,8 @@ public class BaseTimeZoneAdapter<T extends BaseTimeZoneAdapter.AdapterItem>
return mShowHeader && position == 0;
}
public @NonNull ArrayFilter getFilter() {
@NonNull
public ArrayFilter getFilter() {
if (mFilter == null) {
mFilter = new ArrayFilter();
}
@@ -153,14 +155,18 @@ public class BaseTimeZoneAdapter<T extends BaseTimeZoneAdapter.AdapterItem>
public interface AdapterItem {
CharSequence getTitle();
CharSequence getSummary();
String getIconText();
String getCurrentTime();
/**
* @return unique non-negative number
*/
long getItemId();
String[] getSearchKeys();
}