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.hardware.biometrics.BiometricSourceType;
     21 import android.media.AudioManager;
     22 import android.os.SystemClock;
     23 import android.telephony.TelephonyManager;
     24 import android.view.WindowManagerPolicyConstants;
     25 
     26 import com.android.internal.telephony.IccCardConstants;
     27 import com.android.systemui.statusbar.KeyguardIndicationController;
     28 
     29 import java.util.TimeZone;
     30 
     31 /**
     32  * Callback for general information relevant to lock screen.
     33  */
     34 public class KeyguardUpdateMonitorCallback {
     35 
     36     private static final long VISIBILITY_CHANGED_COLLAPSE_MS = 1000;
     37     private long mVisibilityChangedCalled;
     38     private boolean mShowing;
     39 
     40     /**
     41      * Called when the battery status changes, e.g. when plugged in or unplugged, charge
     42      * level, etc. changes.
     43      *
     44      * @param status current battery status
     45      */
     46     public void onRefreshBatteryInfo(KeyguardUpdateMonitor.BatteryStatus status) { }
     47 
     48     /**
     49      * Called once per minute or when the time changes.
     50      */
     51     public void onTimeChanged() { }
     52 
     53     /**
     54      * Called when time zone changes.
     55      *
     56      * @note When time zone changes, onTimeChanged will be called too.
     57      */
     58     public void onTimeZoneChanged(TimeZone timeZone) { }
     59 
     60     /**
     61      * Called when the carrier PLMN or SPN changes.
     62      */
     63     public void onRefreshCarrierInfo() { }
     64 
     65     /**
     66      * Called when the ringer mode changes.
     67      * @param state the current ringer state, as defined in
     68      * {@link AudioManager#RINGER_MODE_CHANGED_ACTION}
     69      */
     70     public void onRingerModeChanged(int state) { }
     71 
     72     /**
     73      * Called when the phone state changes. String will be one of:
     74      * {@link TelephonyManager#EXTRA_STATE_IDLE}
     75      * {@link TelephonyManager@EXTRA_STATE_RINGING}
     76      * {@link TelephonyManager#EXTRA_STATE_OFFHOOK
     77      */
     78     public void onPhoneStateChanged(int phoneState) { }
     79 
     80     /**
     81      * Called when the visibility of the keyguard changes.
     82      * @param showing Indicates if the keyguard is now visible.
     83      */
     84     public void onKeyguardVisibilityChanged(boolean showing) { }
     85 
     86     public void onKeyguardVisibilityChangedRaw(boolean showing) {
     87         final long now = SystemClock.elapsedRealtime();
     88         if (showing == mShowing
     89                 && (now - mVisibilityChangedCalled) < VISIBILITY_CHANGED_COLLAPSE_MS) return;
     90         onKeyguardVisibilityChanged(showing);
     91         mVisibilityChangedCalled = now;
     92         mShowing = showing;
     93     }
     94 
     95     /**
     96      * Called when the keyguard enters or leaves bouncer mode.
     97      * @param bouncer if true, keyguard is now in bouncer mode.
     98      */
     99     public void onKeyguardBouncerChanged(boolean bouncer) { }
    100 
    101     /**
    102      * Called when visibility of lockscreen clock changes, such as when
    103      * obscured by a widget.
    104      */
    105     public void onClockVisibilityChanged() { }
    106 
    107     /**
    108      * Called when the device becomes provisioned
    109      */
    110     public void onDeviceProvisioned() { }
    111 
    112     /**
    113      * Called when the device policy changes.
    114      * See {@link DevicePolicyManager#ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED}
    115      */
    116     public void onDevicePolicyManagerStateChanged() { }
    117 
    118     /**
    119      * Called when the user change begins.
    120      */
    121     public void onUserSwitching(int userId) { }
    122 
    123     /**
    124      * Called when the user change is complete.
    125      */
    126     public void onUserSwitchComplete(int userId) { }
    127 
    128     /**
    129      * Called when the Telephony capable
    130      * @param capable
    131      */
    132     public void onTelephonyCapable(boolean capable) { }
    133 
    134     /**
    135      * Called when the SIM state changes.
    136      * @param slotId
    137      * @param simState
    138      */
    139     public void onSimStateChanged(int subId, int slotId, IccCardConstants.State simState) { }
    140 
    141     /**
    142      * Called when the user's info changed.
    143      */
    144     public void onUserInfoChanged(int userId) { }
    145 
    146     /**
    147      * Called when a user got unlocked.
    148      */
    149     public void onUserUnlocked() { }
    150 
    151     /**
    152      * Called when boot completed.
    153      *
    154      * Note, this callback will only be received if boot complete occurs after registering with
    155      * KeyguardUpdateMonitor.
    156      */
    157     public void onBootCompleted() { }
    158 
    159     /**
    160      * Called when the emergency call button is pressed.
    161      */
    162     public void onEmergencyCallAction() { }
    163 
    164     /**
    165      * Called when the transport background changes.
    166      * @param bitmap
    167      */
    168     public void onSetBackground(Bitmap bitmap) {
    169     }
    170 
    171     /**
    172      * Called when the device has started waking up.
    173      *
    174      * @deprecated use {@link com.android.systemui.keyguard.WakefulnessLifecycle}.
    175      */
    176     @Deprecated
    177     public void onStartedWakingUp() { }
    178 
    179     /**
    180      * Called when the device has started going to sleep.
    181      * @param why see {@link #onFinishedGoingToSleep(int)}
    182      *
    183      * @deprecated use {@link com.android.systemui.keyguard.WakefulnessLifecycle}.
    184      */
    185     @Deprecated
    186     public void onStartedGoingToSleep(int why) { }
    187 
    188     /**
    189      * Called when the device has finished going to sleep.
    190      * @param why either {@link WindowManagerPolicyConstants#OFF_BECAUSE_OF_ADMIN},
    191      * {@link WindowManagerPolicyConstants#OFF_BECAUSE_OF_USER}, or
    192      * {@link WindowManagerPolicyConstants#OFF_BECAUSE_OF_TIMEOUT}.
    193      *
    194      * @deprecated use {@link com.android.systemui.keyguard.WakefulnessLifecycle}.
    195      */
    196     @Deprecated
    197     public void onFinishedGoingToSleep(int why) { }
    198 
    199     /**
    200      * Called when the screen has been turned on.
    201      *
    202      * @deprecated use {@link com.android.systemui.keyguard.ScreenLifecycle}.
    203      */
    204     @Deprecated
    205     public void onScreenTurnedOn() { }
    206 
    207     /**
    208      * Called when the screen has been turned off.
    209      *
    210      * @deprecated use {@link com.android.systemui.keyguard.ScreenLifecycle}.
    211      */
    212     @Deprecated
    213     public void onScreenTurnedOff() { }
    214 
    215     /**
    216      * Called when trust changes for a user.
    217      */
    218     public void onTrustChanged(int userId) { }
    219 
    220     /**
    221      * Called when trust being managed changes for a user.
    222      */
    223     public void onTrustManagedChanged(int userId) { }
    224 
    225     /**
    226      * Called after trust was granted with non-zero flags.
    227      */
    228     public void onTrustGrantedWithFlags(int flags, int userId) { }
    229 
    230     /**
    231      * Called when a biometric has been acquired.
    232      * <p>
    233      * It is guaranteed that either {@link #onBiometricAuthenticated} or
    234      * {@link #onBiometricAuthFailed(BiometricSourceType)} is called after this method eventually.
    235      * @param biometricSourceType
    236      */
    237     public void onBiometricAcquired(BiometricSourceType biometricSourceType) { }
    238 
    239     /**
    240      * Called when a biometric couldn't be authenticated.
    241      * @param biometricSourceType
    242      */
    243     public void onBiometricAuthFailed(BiometricSourceType biometricSourceType) { }
    244 
    245     /**
    246      * Called when a biometric is recognized.
    247      * @param userId the user id for which the biometric sample was authenticated
    248      * @param biometricSourceType
    249      */
    250     public void onBiometricAuthenticated(int userId, BiometricSourceType biometricSourceType) { }
    251 
    252     /**
    253      * Called when biometric authentication provides help string (e.g. "Try again")
    254      * @param msgId
    255      * @param helpString
    256      * @param biometricSourceType
    257      */
    258     public void onBiometricHelp(int msgId, String helpString,
    259             BiometricSourceType biometricSourceType) { }
    260 
    261     /**
    262      * Called when biometric authentication method provides a semi-permanent
    263      * error message (e.g. "Hardware not available").
    264      * @param msgId one of the error messages listed in
    265      *        {@link android.hardware.biometrics.BiometricConstants}
    266      * @param errString
    267      * @param biometricSourceType
    268      */
    269     public void onBiometricError(int msgId, String errString,
    270             BiometricSourceType biometricSourceType) { }
    271 
    272     /**
    273      * Called when the state of face unlock changed.
    274      */
    275     public void onFaceUnlockStateChanged(boolean running, int userId) { }
    276 
    277     /**
    278      * Called when biometric running state changed.
    279      */
    280     public void onBiometricRunningStateChanged(boolean running,
    281             BiometricSourceType biometricSourceType) { }
    282 
    283     /**
    284      * Called when the state that the user hasn't used strong authentication since quite some time
    285      * has changed.
    286      */
    287     public void onStrongAuthStateChanged(int userId) { }
    288 
    289     /**
    290      * Called when the state whether we have a lockscreen wallpaper has changed.
    291      */
    292     public void onHasLockscreenWallpaperChanged(boolean hasLockscreenWallpaper) { }
    293 
    294     /**
    295      * Called when the dream's window state is changed.
    296      * @param dreaming true if the dream's window has been created and is visible
    297      */
    298     public void onDreamingStateChanged(boolean dreaming) { }
    299 
    300     /**
    301      * Called when an error message needs to be presented on the keyguard.
    302      * Message will be visible briefly, and might be overridden by other keyguard events,
    303      * like fingerprint authentication errors.
    304      *
    305      * @param message Message that indicates an error.
    306      * @see KeyguardIndicationController.BaseKeyguardCallback#HIDE_DELAY_MS
    307      * @see KeyguardIndicationController#showTransientIndication(CharSequence)
    308      */
    309     public void onTrustAgentErrorMessage(CharSequence message) { }
    310 
    311 
    312     /**
    313      * Called when a value of logout enabled is change.
    314      */
    315     public void onLogoutEnabledChanged() { }
    316 
    317 }
    318