From 8726702fa29259491f887b8fafed03db02cd1941 Mon Sep 17 00:00:00 2001
From: pekingme <8545955+pekingme@users.noreply.github.com>
Date: Fri, 20 Dec 2024 20:33:37 +0000
Subject: [PATCH] [TopAppBar] Added a demo to show case using collapsing
toolbar layout with a toggleable button; reduced the number of menu items in
all demos.
PiperOrigin-RevId: 708397663
---
...BarCollapsingFilledActionDemoFragment.java | 2 +-
...ollapsingToggleableActionDemoFragment.java | 69 ++++++++++++++++++
.../catalog/topappbar/TopAppBarFragment.java | 7 ++
..._collapsing_toggleable_action_fragment.xml | 73 +++++++++++++++++++
.../topappbar/res/menu/cat_topappbar_menu.xml | 9 +--
.../catalog/topappbar/res/values/strings.xml | 1 +
6 files changed, 153 insertions(+), 8 deletions(-)
create mode 100644 catalog/java/io/material/catalog/topappbar/TopAppBarCollapsingToggleableActionDemoFragment.java
create mode 100644 catalog/java/io/material/catalog/topappbar/res/layout/cat_topappbar_collapsing_toggleable_action_fragment.xml
diff --git a/catalog/java/io/material/catalog/topappbar/TopAppBarCollapsingFilledActionDemoFragment.java b/catalog/java/io/material/catalog/topappbar/TopAppBarCollapsingFilledActionDemoFragment.java
index 1cadac9ab..b8e3fbff3 100644
--- a/catalog/java/io/material/catalog/topappbar/TopAppBarCollapsingFilledActionDemoFragment.java
+++ b/catalog/java/io/material/catalog/topappbar/TopAppBarCollapsingFilledActionDemoFragment.java
@@ -31,7 +31,7 @@ import com.google.android.material.snackbar.Snackbar;
import io.material.catalog.feature.DemoFragment;
/**
- * A fragment that displays a large Collapsing Toolbar Top App Bar with a filled action button demo
+ * A fragment that displays a medium Collapsing Toolbar Top App Bar with a filled action button demo
* for the Catalog app.
*/
public class TopAppBarCollapsingFilledActionDemoFragment extends DemoFragment {
diff --git a/catalog/java/io/material/catalog/topappbar/TopAppBarCollapsingToggleableActionDemoFragment.java b/catalog/java/io/material/catalog/topappbar/TopAppBarCollapsingToggleableActionDemoFragment.java
new file mode 100644
index 000000000..560ef590e
--- /dev/null
+++ b/catalog/java/io/material/catalog/topappbar/TopAppBarCollapsingToggleableActionDemoFragment.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package io.material.catalog.topappbar;
+
+import io.material.catalog.R;
+
+import android.os.Bundle;
+import androidx.appcompat.app.AppCompatActivity;
+import androidx.appcompat.widget.Toolbar;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import com.google.android.material.button.MaterialButton;
+import com.google.android.material.snackbar.Snackbar;
+import io.material.catalog.feature.DemoFragment;
+
+/**
+ * A fragment that displays a medium Collapsing Toolbar Top App Bar with a toggleable action button
+ * demo for the Catalog app.
+ */
+public class TopAppBarCollapsingToggleableActionDemoFragment extends DemoFragment {
+
+ @Override
+ @Nullable
+ public View onCreateDemoView(
+ @NonNull LayoutInflater layoutInflater,
+ @Nullable ViewGroup viewGroup,
+ @Nullable Bundle bundle) {
+ View view =
+ layoutInflater.inflate(
+ R.layout.cat_topappbar_collapsing_toggleable_action_fragment, viewGroup, false);
+
+ Toolbar toolbar = view.findViewById(R.id.toolbar);
+ AppCompatActivity activity = (AppCompatActivity) getActivity();
+ activity.setSupportActionBar(toolbar);
+
+ MaterialButton actionButton = view.findViewById(R.id.action_button);
+ actionButton.setOnClickListener(
+ v ->
+ Snackbar.make(
+ v,
+ (actionButton.isChecked() ? "Marked as favorite." : "Marked as not favorite"),
+ Snackbar.LENGTH_SHORT)
+ .show());
+
+ return view;
+ }
+
+ @Override
+ public boolean shouldShowDefaultDemoActionBar() {
+ return false;
+ }
+}
diff --git a/catalog/java/io/material/catalog/topappbar/TopAppBarFragment.java b/catalog/java/io/material/catalog/topappbar/TopAppBarFragment.java
index a5d824530..71d405af4 100644
--- a/catalog/java/io/material/catalog/topappbar/TopAppBarFragment.java
+++ b/catalog/java/io/material/catalog/topappbar/TopAppBarFragment.java
@@ -139,6 +139,13 @@ public class TopAppBarFragment extends DemoLandingFragment {
public Fragment createFragment() {
return new TopAppBarCollapsingFilledActionDemoFragment();
}
+ },
+ new Demo(R.string.cat_topappbar_collapsing_with_toggleable_action_demo_title) {
+ @Nullable
+ @Override
+ public Fragment createFragment() {
+ return new TopAppBarCollapsingToggleableActionDemoFragment();
+ }
});
}
diff --git a/catalog/java/io/material/catalog/topappbar/res/layout/cat_topappbar_collapsing_toggleable_action_fragment.xml b/catalog/java/io/material/catalog/topappbar/res/layout/cat_topappbar_collapsing_toggleable_action_fragment.xml
new file mode 100644
index 000000000..85ef4ba23
--- /dev/null
+++ b/catalog/java/io/material/catalog/topappbar/res/layout/cat_topappbar_collapsing_toggleable_action_fragment.xml
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/catalog/java/io/material/catalog/topappbar/res/menu/cat_topappbar_menu.xml b/catalog/java/io/material/catalog/topappbar/res/menu/cat_topappbar_menu.xml
index 7bf07a819..a06b548eb 100644
--- a/catalog/java/io/material/catalog/topappbar/res/menu/cat_topappbar_menu.xml
+++ b/catalog/java/io/material/catalog/topappbar/res/menu/cat_topappbar_menu.xml
@@ -19,7 +19,8 @@
xmlns:tools="http://schemas.android.com/tools"
tools:ignore="AppCompatResource">
-
-
diff --git a/catalog/java/io/material/catalog/topappbar/res/values/strings.xml b/catalog/java/io/material/catalog/topappbar/res/values/strings.xml
index 20e02d2ec..66ca0bc92 100644
--- a/catalog/java/io/material/catalog/topappbar/res/values/strings.xml
+++ b/catalog/java/io/material/catalog/topappbar/res/values/strings.xml
@@ -27,6 +27,7 @@
Collapsing Demo (Large)Collapsing with Subtitle Demo (Large)Collapsing Demo (Filled Action)
+ Collapsing Demo (Toggleable Action)Collapsing Demo (Multiline title)Toolbar DemoAction Bar Demo