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>