Home | History | Annotate | Download | only in keyguard
      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  */
     16 package com.android.keyguard;
     17 
     18 import android.app.admin.DevicePolicyManager;
     19 import android.graphics.Bitmap;
     20 import android.media.AudioManager;
     21 import android.os.SystemClock;
     22 import android.hardware.fingerprint.FingerprintManager;
     23 import android.telephony.TelephonyManager;
     24 import android.view.WindowManagerPolicy;
     25 
     26 import com.android.internal.telephony.IccCardConstants;
     27 
     28 /**
     29  * Callback for general information relevant to lock screen.
     30  */
     31 public class KeyguardUpdateMonitorCallback {
     32 
     33     private static final long VISIBILITY_CHANGED_COLLAPSE_MS = 1000;
     34     private long mVisibilityChangedCalled;
     35     private boolean mShowing;
     36 
     37     /**
     38      * Called when the battery status changes, e.g. when plugged in or unplugged, charge
     39      * level, etc. changes.
     40      *
     41      * @param status current battery status
     42      */
     43     public void onRefreshBatteryInfo(KeyguardUpdateMonitor.BatteryStatus status) { }
     44 
     45     /**
     46      * Called once per minute or when the time changes.
     47      */
     48     public void onTimeChanged() { }
     49 
     50     /**
     51      * Called when the carrier PLMN or SPN changes.
     52      */
     53     public void onRefreshCarrierInfo() { }
     54 
     55     /**
     56      * Called when the ringer mode changes.
     57      * @param state the current ringer state, as defined in
     58      * {@link AudioManager#RINGER_MODE_CHANGED_ACTION}
     59      */
     60     public void onRingerModeChanged(int state) { }
     61 
     62     /**
     63      * Called when the phone state changes. String will be one of:
     64      * {@link TelephonyManager#EXTRA_STATE_IDLE}
     65      * {@link TelephonyManager@EXTRA_STATE_RINGING}
     66      * {@link TelephonyManager#EXTRA_STATE_OFFHOOK
     67      */
     68     public void onPhoneStateChanged(int phoneState) { }
     69 
     70     /**
     71      * Called when the visibility of the keyguard changes.
     72      * @param showing Indicates if the keyguard is now visible.
     73      */
     74     public void onKeyguardVisibilityChanged(boolean showing) { }
     75 
     76     public void onKeyguardVisibilityChangedRaw(boolean showing) {
     77         final long now = SystemClock.elapsedRealtime();
     78         if (showing == mShowing
     79                 && (now - mVisibilityChangedCalled) < VISIBILITY_CHANGED_COLLAPSE_MS) return;
     80         onKeyguardVisibilityChanged(showing);
     81         mVisibilityChangedCalled = now;
     82         mShowing = showing;
     83     }
     84 
     85     /**
     86      * Called when the keyguard enters or leaves bouncer mode.
     87      * @param bouncer if true, keyguard is now in bouncer mode.
     88      */
     89     public void onKeyguardBouncerChanged(boolean bouncer) { }
     90 
     91     /**
     92      * Called when visibility of lockscreen clock changes, such as when
     93      * obscured by a widget.
     94      */
     95     public void onClockVisibilityChanged() { }
     96 
     97     /**
     98      * Called when the device becomes provisioned
     99      */
    100     public void onDeviceProvisioned() { }
    101 
    102     /**
    103      * Called when the device policy changes.
    104      * See {@link DevicePolicyManager#ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED}
    105      */
    106     public void onDevicePolicyManagerStateChanged() { }
    107 
    108     /**
    109      * Called when the user change begins.
    110      */
    111     public void onUserSwitching(int userId) { }
    112 
    113     /**
    114      * Called when the user change is complete.
    115      */
    116     public void onUserSwitchComplete(int userId) { }
    117 
    118     /**
    119      * Called when the SIM state changes.
    120      * @param slotId
    121      * @param simState
    122      */
    123     public void onSimStateChanged(int subId, int slotId, IccCardConstants.State simState) { }
    124 
    125     /**
    126      * Called when the user's info changed.
    127      */
    128     public void onUserInfoChanged(int userId) { }
    129 
    130     /**
    131      * Called when boot completed.
    132      *
    133      * Note, this callback will only be received if boot complete occurs after registering with
    134      * KeyguardUpdateMonitor.
    135      */
    136     public void onBootCompleted() { }
    137 
    138     /**
    139      * Called when the emergency call button is pressed.
    140      */
    141     public void onEmergencyCallAction() { }
    142 
    143     /**
    144      * Called when the transport background changes.
    145      * @param bitmap
    146      */
    147     public void onSetBackground(Bitmap bitmap) {
    148     }
    149 
    150     /**
    151      * Called when the device has started waking up.
    152      */
    153     public void onStartedWakingUp() { }
    154 
    155     /**
    156      * Called when the device has started going to sleep.
    157      * @param why see {@link #onFinishedGoingToSleep(int)}
    158      */
    159     public void onStartedGoingToSleep(int why) { }
    160 
    161     /**
    162      * Called when the device has finished going to sleep.
    163      * @param why either {@link WindowManagerPolicy#OFF_BECAUSE_OF_ADMIN},
    164      * {@link WindowManagerPolicy#OFF_BECAUSE_OF_USER}, or
    165      * {@link WindowManagerPolicy#OFF_BECAUSE_OF_TIMEOUT}.
    166      */
    167     public void onFinishedGoingToSleep(int why) { }
    168 
    169     /**
    170      * Called when the screen has been turned on.
    171      */
    172     public void onScreenTurnedOn() { }
    173 
    174     /**
    175      * Called when the screen has been turned off.
    176      */
    177     public void onScreenTurnedOff() { }
    178 
    179     /**
    180      * Called when trust changes for a user.
    181      */
    182     public void onTrustChanged(int userId) { }
    183 
    184     /**
    185      * Called when trust being managed changes for a user.
    186      */
    187     public void onTrustManagedChanged(int userId) { }
    188 
    189     /**
    190      * Called after trust was granted with non-zero flags.
    191      */
    192     public void onTrustGrantedWithFlags(int flags, int userId) { }
    193 
    194     /**
    195      * Called when a finger has been acquired.
    196      * <p>
    197      * It is guaranteed that either {@link #onFingerprintAuthenticated} or
    198      * {@link #onFingerprintAuthFailed()} is called after this method eventually.
    199      */
    200     public void onFingerprintAcquired() { }
    201 
    202     /**
    203      * Called when a fingerprint couldn't be authenticated.
    204      */
    205     public void onFingerprintAuthFailed() { }
    206 
    207     /**
    208      * Called when a fingerprint is recognized.
    209      * @param userId the user id for which the fingerprint was authenticated
    210      */
    211     public void onFingerprintAuthenticated(int userId) { }
    212 
    213     /**
    214      * Called when fingerprint provides help string (e.g. "Try again")
    215      * @param msgId
    216      * @param helpString
    217      */
    218     public void onFingerprintHelp(int msgId, String helpString) { }
    219 
    220     /**
    221      * Called when fingerprint provides an semi-permanent error message
    222      * (e.g. "Hardware not available").
    223      * @param msgId one of the error messages listed in {@link FingerprintManager}
    224      * @param errString
    225      */
    226     public void onFingerprintError(int msgId, String errString) { }
    227 
    228     /**
    229      * Called when the state of face unlock changed.
    230      */
    231     public void onFaceUnlockStateChanged(boolean running, int userId) { }
    232 
    233     /**
    234      * Called when the fingerprint running state changed.
    235      */
    236     public void onFingerprintRunningStateChanged(boolean running) { }
    237 
    238     /**
    239      * Called when the state that the user hasn't used strong authentication since quite some time
    240      * has changed.
    241      */
    242     public void onStrongAuthStateChanged(int userId) { }
    243 
    244     /**
    245      * Called when the state whether we have a lockscreen wallpaper has changed.
    246      */
    247     public void onHasLockscreenWallpaperChanged(boolean hasLockscreenWallpaper) { }
    248 }
    249