1d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko/*
2d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko * Copyright (C) 2016 The Android Open Source Project
3d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko *
4d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko * Licensed under the Apache License, Version 2.0 (the "License");
5d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko * you may not use this file except in compliance with the License.
6d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko * You may obtain a copy of the License at
7d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko *
8d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko *      http://www.apache.org/licenses/LICENSE-2.0
9d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko *
10d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko * Unless required by applicable law or agreed to in writing, software
11d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko * distributed under the License is distributed on an "AS IS" BASIS,
12d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko * See the License for the specific language governing permissions and
14d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko * limitations under the License.
15d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko */
16d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko
17d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalkopackage com.android.tv.util;
18d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko
19d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalkoimport android.content.Context;
20d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalkoimport android.support.annotation.MainThread;
21d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalkoimport android.widget.Toast;
22d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko
23d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalkoimport java.lang.ref.WeakReference;
24d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko
25d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko/**
26d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko * A utility class for the toast message.
27d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko */
28d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalkopublic class ToastUtils {
29d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko    private static WeakReference<Toast> sToast;
30d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko
31d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko    /**
32d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko     * Shows the toast message after canceling the previous one.
33d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko     */
34d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko    @MainThread
35d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko    public static void show(Context context, CharSequence text, int duration) {
36d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko        if (sToast != null && sToast.get() != null) {
37d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko            sToast.get().cancel();
38d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko        }
39d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko        Toast toast = Toast.makeText(context, text, duration);
40d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko        toast.show();
41d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko        sToast = new WeakReference<>(toast);
42d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko    }
43d41f0075a7d2ea826204e81fcec57d0aa57171a9Nick Chalko}
44