diff --git a/catalog/java/io/material/catalog/bottomsheet/BottomSheetFragment.java b/catalog/java/io/material/catalog/bottomsheet/BottomSheetFragment.java index 1e66c216d..bcb7a8b2d 100644 --- a/catalog/java/io/material/catalog/bottomsheet/BottomSheetFragment.java +++ b/catalog/java/io/material/catalog/bottomsheet/BottomSheetFragment.java @@ -28,6 +28,8 @@ import io.material.catalog.application.scope.FragmentScope; import io.material.catalog.feature.Demo; import io.material.catalog.feature.DemoLandingFragment; import io.material.catalog.feature.FeatureDemo; +import java.util.ArrayList; +import java.util.List; /** A landing fragment that links to BottomSheet demos for the Catalog app. */ public class BottomSheetFragment extends DemoLandingFragment { @@ -52,6 +54,22 @@ public class BottomSheetFragment extends DemoLandingFragment { }; } + @Override + public List getAdditionalDemos() { + List additionalDemos = new ArrayList<>(); + // TODO: Enable below once this bug is fixed. + if (false) { + additionalDemos.add( + new Demo(R.string.cat_bottomsheet_scrollable_content_demo_title) { + @Override + public Fragment createFragment() { + return new BottomSheetScrollableContentDemoFragment(); + } + }); + } + return additionalDemos; + } + /** The Dagger module for {@link BottomSheetMainDemoFragment} dependencies. */ @dagger.Module public abstract static class Module { diff --git a/catalog/java/io/material/catalog/bottomsheet/BottomSheetScrollableContentDemoFragment.java b/catalog/java/io/material/catalog/bottomsheet/BottomSheetScrollableContentDemoFragment.java new file mode 100644 index 000000000..a63faf25f --- /dev/null +++ b/catalog/java/io/material/catalog/bottomsheet/BottomSheetScrollableContentDemoFragment.java @@ -0,0 +1,56 @@ +/* + * Copyright 2019 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 + * + * http://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.bottomsheet; + +import io.material.catalog.R; + +import android.os.Bundle; +import androidx.annotation.LayoutRes; +import androidx.annotation.Nullable; +import com.google.android.material.bottomsheet.BottomSheetBehavior; +import com.google.android.material.bottomsheet.BottomSheetDialog; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import io.material.catalog.feature.DemoFragment; + +/** + * A fragment that displays the a BottomSheet demo with vertical scrollable content for the Catalog + * app. + */ +public class BottomSheetScrollableContentDemoFragment extends DemoFragment { + + @Override + public View onCreateDemoView( + LayoutInflater layoutInflater, @Nullable ViewGroup viewGroup, @Nullable Bundle bundle) { + View view = layoutInflater.inflate(getDemoContent(), viewGroup, false /* attachToRoot */); + + // Set up BottomSheetDialog + BottomSheetDialog bottomSheetDialog = new BottomSheetDialog(getContext()); + bottomSheetDialog.setContentView(R.layout.cat_bottomsheet_scrollable_content); + View bottomSheetInternal = bottomSheetDialog.findViewById(R.id.design_bottom_sheet); + BottomSheetBehavior.from(bottomSheetInternal).setPeekHeight(400); + View button = view.findViewById(R.id.bottomsheet_button); + button.setOnClickListener(v -> bottomSheetDialog.show()); + return view; + } + + @LayoutRes + protected int getDemoContent() { + return R.layout.cat_bottomsheet_scrollable_content_fragment; + } +} diff --git a/catalog/java/io/material/catalog/bottomsheet/res/drawable/ic_delete_24dp.xml b/catalog/java/io/material/catalog/bottomsheet/res/drawable/ic_delete_24dp.xml new file mode 100644 index 000000000..96876409e --- /dev/null +++ b/catalog/java/io/material/catalog/bottomsheet/res/drawable/ic_delete_24dp.xml @@ -0,0 +1,21 @@ + + + + + diff --git a/catalog/java/io/material/catalog/bottomsheet/res/drawable/ic_edit_24dp.xml b/catalog/java/io/material/catalog/bottomsheet/res/drawable/ic_edit_24dp.xml new file mode 100644 index 000000000..2368da0d6 --- /dev/null +++ b/catalog/java/io/material/catalog/bottomsheet/res/drawable/ic_edit_24dp.xml @@ -0,0 +1,21 @@ + + + + + diff --git a/catalog/java/io/material/catalog/bottomsheet/res/drawable/ic_folder_24dp.xml b/catalog/java/io/material/catalog/bottomsheet/res/drawable/ic_folder_24dp.xml new file mode 100644 index 000000000..542e3d4cf --- /dev/null +++ b/catalog/java/io/material/catalog/bottomsheet/res/drawable/ic_folder_24dp.xml @@ -0,0 +1,21 @@ + + + + + diff --git a/catalog/java/io/material/catalog/bottomsheet/res/drawable/ic_link_24dp.xml b/catalog/java/io/material/catalog/bottomsheet/res/drawable/ic_link_24dp.xml new file mode 100644 index 000000000..8035d6daf --- /dev/null +++ b/catalog/java/io/material/catalog/bottomsheet/res/drawable/ic_link_24dp.xml @@ -0,0 +1,25 @@ + + + + + diff --git a/catalog/java/io/material/catalog/bottomsheet/res/drawable/ic_offline_pin_24dp.xml b/catalog/java/io/material/catalog/bottomsheet/res/drawable/ic_offline_pin_24dp.xml new file mode 100644 index 000000000..f355694be --- /dev/null +++ b/catalog/java/io/material/catalog/bottomsheet/res/drawable/ic_offline_pin_24dp.xml @@ -0,0 +1,21 @@ + + + + + diff --git a/catalog/java/io/material/catalog/bottomsheet/res/drawable/ic_open_in_browser_24dp.xml b/catalog/java/io/material/catalog/bottomsheet/res/drawable/ic_open_in_browser_24dp.xml new file mode 100644 index 000000000..92ac8f5de --- /dev/null +++ b/catalog/java/io/material/catalog/bottomsheet/res/drawable/ic_open_in_browser_24dp.xml @@ -0,0 +1,21 @@ + + + + + diff --git a/catalog/java/io/material/catalog/bottomsheet/res/drawable/ic_person_add_24dp.xml b/catalog/java/io/material/catalog/bottomsheet/res/drawable/ic_person_add_24dp.xml new file mode 100644 index 000000000..b6f806f9f --- /dev/null +++ b/catalog/java/io/material/catalog/bottomsheet/res/drawable/ic_person_add_24dp.xml @@ -0,0 +1,21 @@ + + + + + diff --git a/catalog/java/io/material/catalog/bottomsheet/res/drawable/ic_star_24dp.xml b/catalog/java/io/material/catalog/bottomsheet/res/drawable/ic_star_24dp.xml new file mode 100644 index 000000000..20a15e007 --- /dev/null +++ b/catalog/java/io/material/catalog/bottomsheet/res/drawable/ic_star_24dp.xml @@ -0,0 +1,21 @@ + + + + + diff --git a/catalog/java/io/material/catalog/bottomsheet/res/layout/cat_bottomsheet_scrollable_content.xml b/catalog/java/io/material/catalog/bottomsheet/res/layout/cat_bottomsheet_scrollable_content.xml new file mode 100644 index 000000000..3aa4c2bac --- /dev/null +++ b/catalog/java/io/material/catalog/bottomsheet/res/layout/cat_bottomsheet_scrollable_content.xml @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/catalog/java/io/material/catalog/bottomsheet/res/layout/cat_bottomsheet_scrollable_content_fragment.xml b/catalog/java/io/material/catalog/bottomsheet/res/layout/cat_bottomsheet_scrollable_content_fragment.xml new file mode 100644 index 000000000..392f8a63f --- /dev/null +++ b/catalog/java/io/material/catalog/bottomsheet/res/layout/cat_bottomsheet_scrollable_content_fragment.xml @@ -0,0 +1,30 @@ + + + +