1657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock/*
2657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock * Copyright (C) 2014 The Android Open Source Project
3657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock *
4657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock * Licensed under the Apache License, Version 2.0 (the "License");
5657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock * you may not use this file except in compliance with the License.
6657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock * You may obtain a copy of the License at
7657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock *
8657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock *      http://www.apache.org/licenses/LICENSE-2.0
9657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock *
10657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock * Unless required by applicable law or agreed to in writing, software
11657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock * distributed under the License is distributed on an "AS IS" BASIS,
12657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock * See the License for the specific language governing permissions and
14657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock * limitations under the License.
15657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock */
16657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock
17657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlockpackage com.android.systemui.statusbar.policy;
18657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock
19657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlockimport java.util.ArrayList;
20657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock
21657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlockpublic final class KeyguardMonitor {
22657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock
23657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock    private final ArrayList<Callback> mCallbacks = new ArrayList<Callback>();
24657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock
25657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock    private boolean mShowing;
26657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock    private boolean mSecure;
27657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock
28657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock    public void addCallback(Callback callback) {
29657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock        mCallbacks.add(callback);
30657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock    }
31657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock
32657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock    public void removeCallback(Callback callback) {
33657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock        mCallbacks.remove(callback);
34657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock    }
35657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock
36657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock    public boolean isShowing() {
37657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock        return mShowing;
38657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock    }
39657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock
40657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock    public boolean isSecure() {
41657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock        return mSecure;
42657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock    }
43657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock
44657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock    public void notifyKeyguardState(boolean showing, boolean secure) {
45657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock        if (mShowing == showing && mSecure == secure) return;
46657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock        mShowing = showing;
47657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock        mSecure = secure;
48657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock        for (Callback callback : mCallbacks) {
49657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock            callback.onKeyguardChanged();
50657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock        }
51657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock    }
52657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock
53657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock    public interface Callback {
54657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock        void onKeyguardChanged();
55657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock    }
56657c62c31ecdade22f67f13102c2fb19765cbe13John Spurlock}