1/*
2 * Copyright (C) 2013 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.internal.policy;
17
18import com.android.internal.policy.IKeyguardDrawnCallback;
19import com.android.internal.policy.IKeyguardStateCallback;
20import com.android.internal.policy.IKeyguardExitCallback;
21
22import android.os.Bundle;
23
24oneway interface IKeyguardService {
25
26    /**
27     * Sets the Keyguard as occluded when a window dismisses the Keyguard with flag
28     * FLAG_SHOW_ON_LOCK_SCREEN.
29     *
30     * @param isOccluded Whether the Keyguard is occluded by another window.
31     */
32    void setOccluded(boolean isOccluded);
33
34    void addStateMonitorCallback(IKeyguardStateCallback callback);
35    void verifyUnlock(IKeyguardExitCallback callback);
36    void keyguardDone(boolean authenticated, boolean wakeup);
37    void dismiss();
38    void onDreamingStarted();
39    void onDreamingStopped();
40
41    /**
42     * Called when the device has started going to sleep.
43     *
44     * @param why {@link #OFF_BECAUSE_OF_USER}, {@link #OFF_BECAUSE_OF_ADMIN},
45     * or {@link #OFF_BECAUSE_OF_TIMEOUT}.
46     */
47    void onStartedGoingToSleep(int reason);
48
49    /**
50     * Called when the device has finished going to sleep.
51     *
52     * @param why {@link #OFF_BECAUSE_OF_USER}, {@link #OFF_BECAUSE_OF_ADMIN},
53     *            or {@link #OFF_BECAUSE_OF_TIMEOUT}.
54     * @param cameraGestureTriggered whether the camera gesture was triggered between
55     *                               {@link #onStartedGoingToSleep} and this method; if it's been
56     *                               triggered, we shouldn't lock the device.
57     */
58    void onFinishedGoingToSleep(int reason, boolean cameraGestureTriggered);
59
60    /**
61     * Called when the device has started waking up.
62     */
63    void onStartedWakingUp();
64
65    /**
66     * Called when the device screen is turning on.
67     */
68    void onScreenTurningOn(IKeyguardDrawnCallback callback);
69
70    /**
71     * Called when the screen has actually turned on.
72     */
73    void onScreenTurnedOn();
74
75    /**
76     * Called when the screen has turned off.
77     */
78    void onScreenTurnedOff();
79
80    void setKeyguardEnabled(boolean enabled);
81    void onSystemReady();
82    void doKeyguardTimeout(in Bundle options);
83    void setCurrentUser(int userId);
84    void onBootCompleted();
85
86    /**
87     * Notifies that the activity behind has now been drawn and it's safe to remove the wallpaper
88     * and keyguard flag.
89     *
90     * @param startTime the start time of the animation in uptime milliseconds
91     * @param fadeoutDuration the duration of the exit animation, in milliseconds
92     */
93    void startKeyguardExitAnimation(long startTime, long fadeoutDuration);
94
95    /**
96     * Notifies the Keyguard that the activity that was starting has now been drawn and it's safe
97     * to start the keyguard dismiss sequence.
98     */
99    void onActivityDrawn();
100}
101