Fix TabTemplateLoadingDemoScreen

The old screen didn't actually show a tab template with tabs and a
loading content template. This commit fixes that.

Bug: b/297437841
Test: none
Change-Id: I1ad5b469ad4d4af267568645f4acffd275b0ad4c
diff --git a/car/app/app-samples/showcase/common/src/main/java/androidx/car/app/sample/showcase/common/screens/templatelayouts/tabtemplates/TabTemplateLoadingDemoScreen.java b/car/app/app-samples/showcase/common/src/main/java/androidx/car/app/sample/showcase/common/screens/templatelayouts/tabtemplates/TabTemplateLoadingDemoScreen.java
index e695b2e..ab66eb3 100644
--- a/car/app/app-samples/showcase/common/src/main/java/androidx/car/app/sample/showcase/common/screens/templatelayouts/tabtemplates/TabTemplateLoadingDemoScreen.java
+++ b/car/app/app-samples/showcase/common/src/main/java/androidx/car/app/sample/showcase/common/screens/templatelayouts/tabtemplates/TabTemplateLoadingDemoScreen.java
@@ -18,14 +18,13 @@
 
 import static androidx.car.app.model.Action.APP_ICON;
 
-import android.text.TextUtils;
-
 import androidx.annotation.NonNull;
 import androidx.car.app.CarContext;
 import androidx.car.app.CarToast;
 import androidx.car.app.Screen;
 import androidx.car.app.model.CarIcon;
 import androidx.car.app.model.ItemList;
+import androidx.car.app.model.ListTemplate;
 import androidx.car.app.model.Row;
 import androidx.car.app.model.SearchTemplate;
 import androidx.car.app.model.Tab;
@@ -43,14 +42,8 @@
  * state.
  */
 public final class TabTemplateLoadingDemoScreen extends Screen {
-    private static final int[] sTitleResIds = new int[]{
-            R.string.tab_title_message, R.string.tab_title_search
-    };
-
-    private static final int[] sIconResIds = new int[]{
-            R.drawable.ic_explore_white_24dp,
-            R.drawable.ic_face_24px
-    };
+    private static final String LOADING_ID = "Loading";
+    private static final String SEARCH_ID = "Search";
 
     private final Map<String, Tab> mTabs;
     private TabTemplate.Builder mTabTemplateBuilder;
@@ -75,34 +68,46 @@
 
         mTabs.clear();
 
-        for (int i = 0; i < 2; i++) {
-            String contentId = String.valueOf(i);
+        Tab loadingTab =
+                new Tab.Builder()
+                        .setTitle(getCarContext().getString(R.string.tab_title_loading))
+                        .setIcon(new CarIcon.Builder(IconCompat.createWithResource(getCarContext(),
+                                R.drawable.ic_explore_white_24dp)).build())
+                        .setContentId(LOADING_ID)
+                        .build();
+        mTabTemplateBuilder.addTab(loadingTab);
 
-            Tab.Builder tabBuilder = new Tab.Builder()
-                    .setTitle(getCarContext().getString(sTitleResIds[i]))
-                    .setIcon(new CarIcon.Builder(IconCompat.createWithResource(getCarContext(),
-                            sIconResIds[i])).build())
-                    .setContentId(contentId);
-            if (TextUtils.isEmpty(mActiveContentId) && i == 0) {
-                mActiveContentId = contentId;
-            }
+        Tab otherTab =
+                new Tab.Builder()
+                        .setTitle(getCarContext().getString(R.string.tab_title_search))
+                        .setIcon(new CarIcon.Builder(IconCompat.createWithResource(getCarContext(),
+                                R.drawable.ic_face_24px)).build())
+                        .setContentId(SEARCH_ID)
+                        .build();
+        mTabTemplateBuilder.addTab(otherTab);
 
-            Tab tab = tabBuilder.build();
-            mTabs.put(tab.getContentId(), tab);
-            mTabTemplateBuilder.addTab(tab);
-
-            if (TextUtils.equals(mActiveContentId, contentId)) {
-                if (i == 0) {
-                    mTabTemplateBuilder.setLoading(true);
-                } else {
-                    mTabTemplateBuilder.setTabContents(createSearchTab());
-                }
-            }
+        if (mActiveContentId == null) {
+            mActiveContentId = LOADING_ID;
         }
-        return mTabTemplateBuilder.setActiveTabContentId(mActiveContentId).build();
+
+        Template contentTemplate;
+        switch (mActiveContentId) {
+            case LOADING_ID:
+                contentTemplate = new ListTemplate.Builder().setLoading(true).build();
+                break;
+            case SEARCH_ID:
+                contentTemplate = createSearchTemplate();
+                break;
+            default:
+                throw new IllegalStateException("What happened?!");
+        }
+
+        return mTabTemplateBuilder.setTabContents(
+                new TabContents.Builder(contentTemplate).build()).setActiveTabContentId(
+                mActiveContentId).build();
     }
 
-    private TabContents createSearchTab() {
+    private Template createSearchTemplate() {
         ItemList.Builder listBuilder = new ItemList.Builder();
         for (int i = 1; i <= 6; ++i) {
             listBuilder.addItem(
@@ -125,7 +130,7 @@
                 .setItemList(listBuilder.build())
                 .setShowKeyboardByDefault(true)
                 .build();
-        return new TabContents.Builder(searchTemplate).build();
+        return searchTemplate;
     }
 
 }
diff --git a/car/app/app-samples/showcase/common/src/main/res/values/strings.xml b/car/app/app-samples/showcase/common/src/main/res/values/strings.xml
index 81a7dbd..f0623a2 100644
--- a/car/app/app-samples/showcase/common/src/main/res/values/strings.xml
+++ b/car/app/app-samples/showcase/common/src/main/res/values/strings.xml
@@ -335,6 +335,7 @@
   <string name="tab_title_list">List Tab</string>
   <string name="tab_title_grid">Grid Tab with Long Tab Title</string>
   <string name="tab_title_search">Search Tab</string>
+  <string name="tab_title_loading">Loading Tab</string>
   <string name="tab_template_loading_demo_title">Tab Template Loading Demo</string>
   <string name="tab_template_no_tabs_demo_title">Tab Template No Tabs Demo</string>