17c955e743119c9101b753d151a7a6deba227ddf9Fan Zhang/* 27c955e743119c9101b753d151a7a6deba227ddf9Fan Zhang * Copyright (C) 2015 The Android Open Source Project 37c955e743119c9101b753d151a7a6deba227ddf9Fan Zhang * 47c955e743119c9101b753d151a7a6deba227ddf9Fan Zhang * Licensed under the Apache License, Version 2.0 (the "License"); 57c955e743119c9101b753d151a7a6deba227ddf9Fan Zhang * you may not use this file except in compliance with the License. 67c955e743119c9101b753d151a7a6deba227ddf9Fan Zhang * You may obtain a copy of the License at 77c955e743119c9101b753d151a7a6deba227ddf9Fan Zhang * 87c955e743119c9101b753d151a7a6deba227ddf9Fan Zhang * http://www.apache.org/licenses/LICENSE-2.0 97c955e743119c9101b753d151a7a6deba227ddf9Fan Zhang * 107c955e743119c9101b753d151a7a6deba227ddf9Fan Zhang * Unless required by applicable law or agreed to in writing, software 117c955e743119c9101b753d151a7a6deba227ddf9Fan Zhang * distributed under the License is distributed on an "AS IS" BASIS, 127c955e743119c9101b753d151a7a6deba227ddf9Fan Zhang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137c955e743119c9101b753d151a7a6deba227ddf9Fan Zhang * See the License for the specific language governing permissions and 147c955e743119c9101b753d151a7a6deba227ddf9Fan Zhang * limitations under the License. 157c955e743119c9101b753d151a7a6deba227ddf9Fan Zhang */ 167c955e743119c9101b753d151a7a6deba227ddf9Fan Zhang 177c955e743119c9101b753d151a7a6deba227ddf9Fan Zhangpackage com.android.deskclock.widget.toast; 187c955e743119c9101b753d151a7a6deba227ddf9Fan Zhang 197c955e743119c9101b753d151a7a6deba227ddf9Fan Zhangimport android.support.design.widget.Snackbar; 207c955e743119c9101b753d151a7a6deba227ddf9Fan Zhang 217c955e743119c9101b753d151a7a6deba227ddf9Fan Zhangimport java.lang.ref.WeakReference; 227c955e743119c9101b753d151a7a6deba227ddf9Fan Zhang 237c955e743119c9101b753d151a7a6deba227ddf9Fan Zhang/** 246e24cbd21f30a3770369fc41efb2f809b93ff5e2James Lemieux * Manages visibility of Snackbar and allow preemptive dismiss of current displayed Snackbar. 257c955e743119c9101b753d151a7a6deba227ddf9Fan Zhang */ 267c955e743119c9101b753d151a7a6deba227ddf9Fan Zhangpublic final class SnackbarManager { 277c955e743119c9101b753d151a7a6deba227ddf9Fan Zhang 287c955e743119c9101b753d151a7a6deba227ddf9Fan Zhang private static WeakReference<Snackbar> sSnackbar = null; 297c955e743119c9101b753d151a7a6deba227ddf9Fan Zhang 307c955e743119c9101b753d151a7a6deba227ddf9Fan Zhang private SnackbarManager() {} 317c955e743119c9101b753d151a7a6deba227ddf9Fan Zhang 327c955e743119c9101b753d151a7a6deba227ddf9Fan Zhang public static void show(Snackbar snackbar) { 337c955e743119c9101b753d151a7a6deba227ddf9Fan Zhang sSnackbar = new WeakReference<>(snackbar); 347c955e743119c9101b753d151a7a6deba227ddf9Fan Zhang snackbar.show(); 357c955e743119c9101b753d151a7a6deba227ddf9Fan Zhang } 367c955e743119c9101b753d151a7a6deba227ddf9Fan Zhang 377c955e743119c9101b753d151a7a6deba227ddf9Fan Zhang public static void dismiss() { 386e24cbd21f30a3770369fc41efb2f809b93ff5e2James Lemieux final Snackbar snackbar = sSnackbar == null ? null : sSnackbar.get(); 396e24cbd21f30a3770369fc41efb2f809b93ff5e2James Lemieux if (snackbar != null) { 406e24cbd21f30a3770369fc41efb2f809b93ff5e2James Lemieux snackbar.dismiss(); 417c955e743119c9101b753d151a7a6deba227ddf9Fan Zhang sSnackbar = null; 427c955e743119c9101b753d151a7a6deba227ddf9Fan Zhang } 437c955e743119c9101b753d151a7a6deba227ddf9Fan Zhang } 446e24cbd21f30a3770369fc41efb2f809b93ff5e2James Lemieux}