blob: 3ab771b7c6ecc29a12d4f529838cc3f25d8899dd [file] [log] [blame]
Adam Lesinski182f73f2013-12-05 16:48:06 -08001/**
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 */
16
17package com.android.server.statusbar;
18
Jorim Jaggi86905582016-02-09 21:36:09 -080019import android.graphics.Rect;
Jorim Jaggi165ce062015-07-06 16:18:11 -070020import android.os.Bundle;
21
Adam Lesinski182f73f2013-12-05 16:48:06 -080022import com.android.server.notification.NotificationDelegate;
23
Adam Lesinski182f73f2013-12-05 16:48:06 -080024public interface StatusBarManagerInternal {
25 void setNotificationDelegate(NotificationDelegate delegate);
Andrii Kulian0f051f52016-04-14 00:41:51 -070026 void showScreenPinningRequest(int taskId);
Adrian Roos4f43dc02015-06-17 16:43:38 -070027 void showAssistDisclosure();
Adrian Roosf2efdd82016-04-15 17:43:18 -070028
29 void preloadRecentApps();
30
31 void cancelPreloadRecentApps();
32
Winson Chungdff7a732017-12-11 12:17:06 -080033 void showRecentApps(boolean triggeredFromAltTab);
Adrian Roosf2efdd82016-04-15 17:43:18 -070034
35 void hideRecentApps(boolean triggeredFromAltTab, boolean triggeredFromHomeKey);
36
Andrei Stingaceanu0bf096f2016-04-14 18:11:57 +010037 void dismissKeyboardShortcutsMenu();
Adrian Roosf2efdd82016-04-15 17:43:18 -070038 void toggleKeyboardShortcutsMenu(int deviceId);
39
Beverlyae79ab92017-12-11 09:20:02 -050040 void showChargingAnimation(int batteryLevel);
41
Adrian Roosf2efdd82016-04-15 17:43:18 -070042 /**
Winson Chungac52f282017-03-30 14:44:52 -070043 * Show picture-in-picture menu.
Adrian Roosf2efdd82016-04-15 17:43:18 -070044 */
Winson Chungac52f282017-03-30 14:44:52 -070045 void showPictureInPictureMenu();
Adrian Roosf2efdd82016-04-15 17:43:18 -070046
47 void setWindowState(int window, int state);
48
49 /**
50 * Notifies the status bar that an app transition is pending to delay applying some flags with
51 * visual impact until {@link #appTransitionReady} is called.
52 */
53 void appTransitionPending();
54
55 /**
56 * Notifies the status bar that a pending app transition has been cancelled.
57 */
58 void appTransitionCancelled();
59
60 /**
61 * Notifies the status bar that an app transition is now being executed.
62 *
63 * @param statusBarAnimationsStartTime the desired start time for all visual animations in the
64 * status bar caused by this app transition in uptime millis
65 * @param statusBarAnimationsDuration the duration for all visual animations in the status
66 * bar caused by this app transition in millis
67 */
68 void appTransitionStarting(long statusBarAnimationsStartTime, long statusBarAnimationsDuration);
69
Jorim Jaggi165ce062015-07-06 16:18:11 -070070 void startAssist(Bundle args);
Jorim Jaggi40aa8812015-09-23 12:59:22 -070071 void onCameraLaunchGestureDetected(int source);
Jorim Jaggi86905582016-02-09 21:36:09 -080072 void topAppWindowChanged(boolean menuVisible);
73 void setSystemUiVisibility(int vis, int fullscreenStackVis, int dockedStackVis, int mask,
74 Rect fullscreenBounds, Rect dockedBounds, String cause);
Phil Weaver315c34e2016-02-19 15:12:29 -080075 void toggleSplitScreen();
Jorim Jaggi2adba072016-03-03 13:43:39 +010076 void appTransitionFinished();
Adrian Roosf2efdd82016-04-15 17:43:18 -070077
78 void toggleRecentApps();
79
80 void setCurrentUser(int newUserId);
Jason Monk361915c2017-03-21 20:33:59 -040081
Charles He9851a8d2017-10-10 17:31:30 +010082 boolean isGlobalActionsDisabled();
Jason Monk361915c2017-03-21 20:33:59 -040083 void setGlobalActionsListener(GlobalActionsListener listener);
84 void showGlobalActions();
85
Selim Cinek3a49ba22017-08-10 11:17:39 -070086 /**
87 * Set whether the top app currently hides the statusbar.
88 *
89 * @param hidesStatusBar whether it is being hidden
90 */
91 void setTopAppHidesStatusBar(boolean hidesStatusBar);
92
Jason Monkb4302182017-08-04 13:39:17 -040093 boolean showShutdownUi(boolean isReboot, String requestString);
94
Mike Digman93f08342017-11-24 21:46:53 -080095 /**
96 * Show a rotation suggestion that a user may approve to rotate the screen.
97 *
98 * @param rotation rotation suggestion
99 */
Mike Digmane0777312018-01-19 12:41:51 -0800100 void onProposedRotationChanged(int rotation, boolean isValid);
Mike Digman93f08342017-11-24 21:46:53 -0800101
Jason Monk361915c2017-03-21 20:33:59 -0400102 public interface GlobalActionsListener {
103 /**
104 * Called when sysui starts and connects its status bar, or when the status bar binder
105 * dies indicating sysui is no longer alive.
106 */
107 void onStatusBarConnectedChanged(boolean connected);
108
109 /**
110 * Callback from sysui to notify system that global actions has been successfully shown.
111 */
112 void onGlobalActionsShown();
113
114 /**
115 * Callback from sysui to notify system that the user has dismissed global actions and
116 * it no longer needs to be displayed (even if sysui dies).
117 */
118 void onGlobalActionsDismissed();
119 }
Adam Lesinski182f73f2013-12-05 16:48:06 -0800120}