blob: c08880dfc8723776a8eab999db350b90f8c75a2a [file] [log] [blame]
Jim Millerbbf1a742012-07-17 18:30:30 -07001/*
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 */
Jim Miller5ecd8112013-01-09 18:50:26 -080016package com.android.keyguard;
Jim Millerbbf1a742012-07-17 18:30:30 -070017
Jim Miller8f09fd22013-03-14 19:04:28 -070018import android.app.PendingIntent;
Jim Millerbbf1a742012-07-17 18:30:30 -070019import android.app.admin.DevicePolicyManager;
Adam Powell43a372f2013-09-27 17:43:53 -070020import android.graphics.Bitmap;
Jim Millerbbf1a742012-07-17 18:30:30 -070021import android.media.AudioManager;
John Spurlock385a63d2013-10-30 19:40:48 -040022import android.os.SystemClock;
Jim Miller20daffd2013-10-07 14:59:53 -070023import android.view.WindowManagerPolicy;
Jim Millerbbf1a742012-07-17 18:30:30 -070024
Jim Millerbbf1a742012-07-17 18:30:30 -070025import com.android.internal.telephony.IccCardConstants;
26
27/**
28 * Callback for general information relevant to lock screen.
29 */
30class KeyguardUpdateMonitorCallback {
John Spurlock385a63d2013-10-30 19:40:48 -040031
32 private static final long VISIBILITY_CHANGED_COLLAPSE_MS = 1000;
33 private long mVisibilityChangedCalled;
34 private boolean mShowing;
35
Jim Millerbbf1a742012-07-17 18:30:30 -070036 /**
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 */
Jim Millerdcb3d842012-08-23 19:18:12 -070042 void onRefreshBatteryInfo(KeyguardUpdateMonitor.BatteryStatus status) { }
Jim Millerbbf1a742012-07-17 18:30:30 -070043
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 /**
Danielle Millettf6d0fc12012-10-23 16:16:52 -040074 * 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
John Spurlock385a63d2013-10-30 19:40:48 -040079 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
Danielle Millettf6d0fc12012-10-23 16:16:52 -040088 /**
Jim Millerbbf1a742012-07-17 18:30:30 -070089 * 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 /**
Chris Wrenf41c61b2012-11-29 15:19:54 -0500106 * Called when the user change begins.
Jim Millerbbf1a742012-07-17 18:30:30 -0700107 */
Chris Wrenf41c61b2012-11-29 15:19:54 -0500108 void onUserSwitching(int userId) { }
109
110 /**
111 * Called when the user change is complete.
112 */
113 void onUserSwitchComplete(int userId) { }
Jim Millerbbf1a742012-07-17 18:30:30 -0700114
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) { }
Adam Cohenefb3ffb2012-11-06 16:55:32 -0800125
126 /**
Amith Yamasani6fc1d4e2013-05-08 16:43:58 -0700127 * Called when the user's info changed.
128 */
129 void onUserInfoChanged(int userId) { }
130
131 /**
Adam Cohenefb3ffb2012-11-06 16:55:32 -0800132 * 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() { }
Jim Miller8f09fd22013-03-14 19:04:28 -0700138
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
Brian Colonna7fce3802013-09-17 15:51:32 -0400151 /**
152 * Called when the emergency call button is pressed.
153 */
154 void onEmergencyCallAction() { }
Adam Powell43a372f2013-09-27 17:43:53 -0700155
Jim Miller20daffd2013-10-07 14:59:53 -0700156 /**
157 * Called when the transport background changes.
158 * @param bitmap
159 */
Adam Powell43a372f2013-09-27 17:43:53 -0700160 public void onSetBackground(Bitmap bitmap) {
Adam Powell43a372f2013-09-27 17:43:53 -0700161 }
Jim Miller20daffd2013-10-07 14:59:53 -0700162
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) { }
Jim Millerbbf1a742012-07-17 18:30:30 -0700175}