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 @@ + + + + + + + + + +