DO NOT MERGE - Language Picker Header heights should be car_sub_header_height

Change-Id: Ib5b12cce5d47151c00f72112aba5ac1545b4fa75
Fixes: 74199533
Test: In head unit
diff --git a/car-settings-lib/src/com/android/car/settingslib/language/LocaleListItemProvider.java b/car-settings-lib/src/com/android/car/settingslib/language/LocaleListItemProvider.java
index e425d2e..2f8ad98 100644
--- a/car-settings-lib/src/com/android/car/settingslib/language/LocaleListItemProvider.java
+++ b/car-settings-lib/src/com/android/car/settingslib/language/LocaleListItemProvider.java
@@ -19,20 +19,20 @@
 import android.content.Context;
 import android.util.Log;
 
+import androidx.car.widget.ListItem;
+import androidx.car.widget.ListItemProvider;
+import androidx.car.widget.SubheaderListItem;
+import androidx.car.widget.TextListItem;
+
+import com.android.car.settingslib.R;
 import com.android.internal.annotations.VisibleForTesting;
 import com.android.internal.app.LocaleStore;
 import com.android.internal.app.SuggestedLocaleAdapter;
 
-import com.android.car.settingslib.R;
-
 import java.util.HashSet;
 import java.util.Locale;
 import java.util.Set;
 
-import androidx.car.widget.ListItem;
-import androidx.car.widget.ListItemProvider;
-import androidx.car.widget.TextListItem;
-
 /**
  * ListItemProvider that wraps {@link SuggestedLocaleAdapter}.
  */
@@ -68,20 +68,16 @@
 
     @Override
     public ListItem get(int position) {
-        TextListItem item = new TextListItem(mContext);
         int type = mSuggestedLocaleAdapter.getItemViewType(position);
         switch (type) {
             case TYPE_HEADER_SUGGESTED:
             case TYPE_HEADER_ALL_OTHERS:
-                item.addViewBinder(viewHolder ->
-                        viewHolder.getTitle().setTextAppearance(
-                                R.style.TextAppearance_Car_Settings_ListHeader));
-                item.setTitle(mContext.getString(type == TYPE_HEADER_SUGGESTED
+                String title = mContext.getString(type == TYPE_HEADER_SUGGESTED
                         ? R.string.language_picker_list_suggested_header
-                        : R.string.language_picker_list_all_header));
-                break;
-
+                        : R.string.language_picker_list_all_header);
+                return new SubheaderListItem(mContext, title);
             case TYPE_LOCALE:
+                TextListItem item = new TextListItem(mContext);
                 LocaleStore.LocaleInfo info =
                         (LocaleStore.LocaleInfo) mSuggestedLocaleAdapter.getItem(position);
                 item.setTitle(info.getFullNameNative());
@@ -115,15 +111,13 @@
                         mLocaleSelectionListener.onLocaleSelected(info);
                     }
                 });
-                break;
-
+                return item;
             default:
                 if (Log.isLoggable(TAG, Log.DEBUG)) {
                     Log.d(TAG, "Attempting to get unknown type: " + type);
                 }
-                break;
+                throw new IllegalStateException("Unknown locale list item type");
         }
-        return item;
     }
 
     @Override