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}