blob: 37b685a230668125c8bd089cfff88c3b3a1304dc [file] [log] [blame]
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001/* //device/java/android/android/view/IWindow.aidl
2**
3** Copyright 2007, The Android Open Source Project
4**
5** Licensed under the Apache License, Version 2.0 (the "License");
6** you may not use this file except in compliance with the License.
7** You may obtain a copy of the License at
8**
9** http://www.apache.org/licenses/LICENSE-2.0
10**
11** Unless required by applicable law or agreed to in writing, software
12** distributed under the License is distributed on an "AS IS" BASIS,
13** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14** See the License for the specific language governing permissions and
15** limitations under the License.
16*/
17
18package android.view;
19
Jackal Guoc43a0a62019-04-23 09:15:14 +080020import android.graphics.Point;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080021import android.graphics.Rect;
Dianne Hackborn75804932009-10-20 20:15:20 -070022import android.os.Bundle;
23import android.os.ParcelFileDescriptor;
Christopher Tatea53146c2010-09-07 11:57:52 -070024import android.view.DragEvent;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080025import android.view.KeyEvent;
26import android.view.MotionEvent;
Adrian Roos5c6b6222017-11-07 17:36:10 +010027import android.view.DisplayCutout;
Jorim Jaggif96c90a2018-09-26 16:55:15 +020028import android.view.InsetsState;
Jorim Jaggib6030952018-10-23 18:31:52 +020029import android.view.InsetsSourceControl;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080030
Clara Bayarri75e09792015-07-29 16:20:40 +010031import com.android.internal.os.IResultReceiver;
Andrii Kulian44607962017-03-16 11:06:24 -070032import android.util.MergedConfiguration;
Clara Bayarri75e09792015-07-29 16:20:40 +010033
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080034/**
35 * API back to a client window that the Window Manager uses to inform it of
36 * interesting things happening.
37 *
38 * {@hide}
39 */
40oneway interface IWindow {
41 /**
42 * ===== NOTICE =====
43 * The first method must remain the first method. Scripts
44 * and tools rely on their transaction number to work properly.
45 */
46
47 /**
48 * Invoked by the view server to tell a window to execute the specified
49 * command. Any response from the receiver must be sent through the
50 * specified file descriptor.
51 */
52 void executeCommand(String command, String parameters, in ParcelFileDescriptor descriptor);
53
Jorim Jaggif081f062019-10-24 16:24:54 +020054 void resized(in Rect frame, in Rect contentInsets,
55 in Rect visibleInsets, in Rect stableInsets, boolean reportDraw,
Andrii Kulian44607962017-03-16 11:06:24 -070056 in MergedConfiguration newMergedConfiguration, in Rect backDropFrame,
Brad Stenninge0573692019-03-11 13:52:46 -070057 boolean forceLayout, boolean alwaysConsumeSystemBars, int displayId,
Adrian Roos5c6b6222017-11-07 17:36:10 +010058 in DisplayCutout.ParcelableWrapper displayCutout);
Jorim Jaggif96c90a2018-09-26 16:55:15 +020059
60 /**
Jackal Guoc43a0a62019-04-23 09:15:14 +080061 * Called when the window location in parent display has changed. The offset will only be a
62 * nonzero value if the window is on an embedded display that is re-parented to another window.
63 */
64 void locationInParentDisplayChanged(in Point offset);
65
66 /**
Jorim Jaggif96c90a2018-09-26 16:55:15 +020067 * Called when the window insets configuration has changed.
68 */
69 void insetsChanged(in InsetsState insetsState);
70
Jorim Jaggib6030952018-10-23 18:31:52 +020071 /**
72 * Called when this window retrieved control over a specified set of inset sources.
73 */
74 void insetsControlChanged(in InsetsState insetsState, in InsetsSourceControl[] activeControls);
75
Tarandeep Singh0bedd942019-09-26 13:34:03 -070076 /**
77 * Called when a set of insets source window should be shown by policy.
78 *
79 * @param types internal inset types (WindowInsets.Type.InsetType) to show
80 * @param fromIme true if this request originated from IME (InputMethodService).
81 */
82 void showInsets(int types, boolean fromIme);
83
Taran Singhf1e08872019-10-10 14:38:52 +020084 /**
85 * Called when a set of insets source window should be hidden by policy.
86 *
87 * @param types internal inset types (WindowInsets.Type.InsetType) to hide
88 * @param fromIme true if this request originated from IME (InputMethodService).
89 */
90 void hideInsets(int types, boolean fromIme);
91
Craig Mautner5702d4d2012-06-30 14:10:16 -070092 void moved(int newX, int newY);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080093 void dispatchAppVisibility(boolean visible);
94 void dispatchGetNewSurface();
95
96 /**
Tiger Huang51c5a1d2018-12-11 20:24:51 +080097 * Tell the window that it is either gaining or losing focus. Keep it up
98 * to date on the current state showing navigational focus (touch mode) too.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080099 */
Tiger Huang51c5a1d2018-12-11 20:24:51 +0800100 void windowFocusChanged(boolean hasFocus, boolean inTouchMode);
101
Dianne Hackbornffa42482009-09-23 22:20:11 -0700102 void closeSystemDialogs(String reason);
Tiger Huang51c5a1d2018-12-11 20:24:51 +0800103
Dianne Hackborn72c82ab2009-08-11 21:13:54 -0700104 /**
105 * Called for wallpaper windows when their offsets change.
106 */
Marco Nelissenbf6956b2009-11-09 15:21:13 -0800107 void dispatchWallpaperOffsets(float x, float y, float xStep, float yStep, boolean sync);
Tiger Huang51c5a1d2018-12-11 20:24:51 +0800108
Dianne Hackborn75804932009-10-20 20:15:20 -0700109 void dispatchWallpaperCommand(String action, int x, int y,
110 int z, in Bundle extras, boolean sync);
Christopher Tatea53146c2010-09-07 11:57:52 -0700111
112 /**
113 * Drag/drop events
114 */
Dianne Hackborn12d3a942012-04-27 14:16:30 -0700115 void dispatchDragEvent(in DragEvent event);
Joe Onorato664644d2011-01-23 17:53:23 -0800116
117 /**
Vladislav Kaznacheevec6a4472016-01-22 12:21:52 -0800118 * Pointer icon events
119 */
120 void updatePointerIcon(float x, float y);
121
122 /**
Joe Onorato664644d2011-01-23 17:53:23 -0800123 * System chrome visibility changes
124 */
Dianne Hackborn12d3a942012-04-27 14:16:30 -0700125 void dispatchSystemUiVisibilityChanged(int seq, int globalVisibility,
Dianne Hackborn9a230e02011-10-06 11:51:27 -0700126 int localValue, int localChanges);
Dianne Hackborn12d3a942012-04-27 14:16:30 -0700127
128 /**
Craig Mautner9c795042014-10-28 19:59:59 -0700129 * Called for non-application windows when the enter animation has completed.
130 */
131 void dispatchWindowShown();
Clara Bayarri75e09792015-07-29 16:20:40 +0100132
133 /**
134 * Called when Keyboard Shortcuts are requested for the window.
135 */
Clara Bayarrifcd7e802016-03-10 12:58:18 +0000136 void requestAppKeyboardShortcuts(IResultReceiver receiver, int deviceId);
Vladislav Kaznacheev3787de12016-12-21 10:36:35 -0800137
138 /**
139 * Tell the window that it is either gaining or losing pointer capture.
140 */
141 void dispatchPointerCaptureChanged(boolean hasCapture);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800142}