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