18da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov/*
28da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov * Copyright (C) 2016 The Android Open Source Project
38da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov *
48da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov * Licensed under the Apache License, Version 2.0 (the "License");
58da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov * you may not use this file except in compliance with the License.
68da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov * You may obtain a copy of the License at
78da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov *
88da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov *      http://www.apache.org/licenses/LICENSE-2.0
98da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov *
108da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov * Unless required by applicable law or agreed to in writing, software
118da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov * distributed under the License is distributed on an "AS IS" BASIS,
128da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
138da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov * See the License for the specific language governing permissions and
148da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov * limitations under the License.
158da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov */
168da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov
178da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikovpackage com.example.android.support.design.widget;
188da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov
198da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikovimport android.os.Bundle;
208da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikovimport android.view.LayoutInflater;
218da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikovimport android.view.View;
228da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov
23def582a5836579a3fadabfdbe4413cb1652bf098Aurimas Liutikasimport androidx.appcompat.app.AppCompatActivity;
24def582a5836579a3fadabfdbe4413cb1652bf098Aurimas Liutikasimport androidx.coordinatorlayout.widget.CoordinatorLayout;
25def582a5836579a3fadabfdbe4413cb1652bf098Aurimas Liutikas
268da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikovimport com.example.android.support.design.R;
27f87e4dfc7bcd2583e7908ca3cda65cec6c697080Aurimas Liutikasimport com.google.android.material.snackbar.BaseTransientBottomBar;
288da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov
298da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov/**
308da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov * This demonstrates custom usage of the snackbar
318da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov */
328da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikovpublic class CustomSnackbarUsage extends AppCompatActivity {
338da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov
348da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov    private CoordinatorLayout mContentView;
358da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov
368da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov    @Override
378da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov    protected void onCreate(Bundle savedInstanceState) {
388da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov        super.onCreate(savedInstanceState);
398da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov        setContentView(R.layout.custom_snackbar_with_fab);
408da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov
41fa2e2acf79d791a90410025daad438968550d18cAlan Viverette        mContentView = findViewById(R.id.content_view);
428da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov    }
438da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov
448da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov    /** Shows a custom snackbar with no action. */
458da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov    public void show(View view) {
468da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov        final LayoutInflater inflater = LayoutInflater.from(mContentView.getContext());
478da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov        final CustomSnackbarMainContent content =
488da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov                (CustomSnackbarMainContent) inflater.inflate(
498da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov                        R.layout.custom_snackbar_include, mContentView, false);
508da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov        final BaseTransientBottomBar.ContentViewCallback contentViewCallback =
518da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov                new BaseTransientBottomBar.ContentViewCallback() {
528da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov                    @Override
538da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov                    public void animateContentIn(int delay, int duration) {
54fa0f82f629bf95681c14ed559922f77a3030aa18Aurimas Liutikas                        content.setAlpha(0f);
55fa0f82f629bf95681c14ed559922f77a3030aa18Aurimas Liutikas                        content.animate().alpha(1f).setDuration(duration)
568da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov                                .setStartDelay(delay).start();
578da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov                    }
588da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov
598da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov                    @Override
608da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov                    public void animateContentOut(int delay, int duration) {
61fa0f82f629bf95681c14ed559922f77a3030aa18Aurimas Liutikas                        content.setAlpha(1f);
62fa0f82f629bf95681c14ed559922f77a3030aa18Aurimas Liutikas                        content.animate().alpha(0f).setDuration(duration)
638da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov                                .setStartDelay(delay).start();
648da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov                    }
658da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov                };
668da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov        new CustomSnackbar(mContentView, content, contentViewCallback).setTitle("Custom title")
678da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov                .setSubtitle("Custom subtitle").show();
688da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov    }
698da7b24b08afba7ec155a371117df018bcc25eefKirill Grouchnikov}
70