KeyguardUpdateMonitorCallback.java revision 385a63d56a1f5afdf064539d033da999b748289a
1/*
2 * Copyright (C) 2012 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 *      http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package com.android.keyguard;
17
18import android.app.PendingIntent;
19import android.app.admin.DevicePolicyManager;
20import android.graphics.Bitmap;
21import android.media.AudioManager;
22import android.os.SystemClock;
23import android.view.WindowManagerPolicy;
24
25import com.android.internal.telephony.IccCardConstants;
26
27/**
28 * Callback for general information relevant to lock screen.
29 */
30class KeyguardUpdateMonitorCallback {
31
32    private static final long VISIBILITY_CHANGED_COLLAPSE_MS = 1000;
33    private long mVisibilityChangedCalled;
34    private boolean mShowing;
35
36    /**
37     * Called when the battery status changes, e.g. when plugged in or unplugged, charge
38     * level, etc. changes.
39     *
40     * @param status current battery status
41     */
42    void onRefreshBatteryInfo(KeyguardUpdateMonitor.BatteryStatus status) { }
43
44    /**
45     * Called once per minute or when the time changes.
46     */
47    void onTimeChanged() { }
48
49    /**
50     * Called when the carrier PLMN or SPN changes.
51     *
52     * @param plmn The operator name of the registered network.  May be null if it shouldn't
53     *   be displayed.
54     * @param spn The service provider name.  May be null if it shouldn't be displayed.
55     */
56    void onRefreshCarrierInfo(CharSequence plmn, CharSequence spn) { }
57
58    /**
59     * Called when the ringer mode changes.
60     * @param state the current ringer state, as defined in
61     * {@link AudioManager#RINGER_MODE_CHANGED_ACTION}
62     */
63    void onRingerModeChanged(int state) { }
64
65    /**
66     * Called when the phone state changes. String will be one of:
67     * {@link TelephonyManager#EXTRA_STATE_IDLE}
68     * {@link TelephonyManager@EXTRA_STATE_RINGING}
69     * {@link TelephonyManager#EXTRA_STATE_OFFHOOK
70     */
71    void onPhoneStateChanged(int phoneState) { }
72
73    /**
74     * Called when the visibility of the keyguard changes.
75     * @param showing Indicates if the keyguard is now visible.
76     */
77    void onKeyguardVisibilityChanged(boolean showing) { }
78
79    void onKeyguardVisibilityChangedRaw(boolean showing) {
80        final long now = SystemClock.elapsedRealtime();
81        if (showing == mShowing
82                && (now - mVisibilityChangedCalled) < VISIBILITY_CHANGED_COLLAPSE_MS) return;
83        onKeyguardVisibilityChanged(showing);
84        mVisibilityChangedCalled = now;
85        mShowing = showing;
86    }
87
88    /**
89     * Called when visibility of lockscreen clock changes, such as when
90     * obscured by a widget.
91     */
92    void onClockVisibilityChanged() { }
93
94    /**
95     * Called when the device becomes provisioned
96     */
97    void onDeviceProvisioned() { }
98
99    /**
100     * Called when the device policy changes.
101     * See {@link DevicePolicyManager#ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED}
102     */
103    void onDevicePolicyManagerStateChanged() { }
104
105    /**
106     * Called when the user change begins.
107     */
108    void onUserSwitching(int userId) { }
109
110    /**
111     * Called when the user change is complete.
112     */
113    void onUserSwitchComplete(int userId) { }
114
115    /**
116     * Called when the SIM state changes.
117     * @param simState
118     */
119    void onSimStateChanged(IccCardConstants.State simState) { }
120
121    /**
122     * Called when a user is removed.
123     */
124    void onUserRemoved(int userId) { }
125
126    /**
127     * Called when the user's info changed.
128     */
129    void onUserInfoChanged(int userId) { }
130
131    /**
132     * Called when boot completed.
133     *
134     * Note, this callback will only be received if boot complete occurs after registering with
135     * KeyguardUpdateMonitor.
136     */
137    void onBootCompleted() { }
138
139    /**
140     * Called when audio client attaches or detaches from AudioManager.
141     */
142    void onMusicClientIdChanged(int clientGeneration, boolean clearing, PendingIntent intent) { }
143
144    /**
145     * Called when the audio playback state changes.
146     * @param playbackState
147     * @param eventTime
148     */
149    public void onMusicPlaybackStateChanged(int playbackState, long eventTime) { }
150
151    /**
152     * Called when the emergency call button is pressed.
153     */
154    void onEmergencyCallAction() { }
155
156    /**
157     * Called when the transport background changes.
158     * @param bitmap
159     */
160    public void onSetBackground(Bitmap bitmap) {
161    }
162
163    /**
164     * Called when the screen turns on
165     */
166    public void onScreenTurnedOn() { }
167
168    /**
169     * Called when the screen turns off
170     * @param why {@link WindowManagerPolicy#OFF_BECAUSE_OF_USER},
171     *   {@link WindowManagerPolicy#OFF_BECAUSE_OF_TIMEOUT} or
172     *   {@link WindowManagerPolicy#OFF_BECAUSE_OF_PROX_SENSOR}.
173     */
174    public void onScreenTurnedOff(int why) { }
175}
176