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}