blob: f34f9e6d5ce89a1c218cccea46389997728596f5 [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
Dianne Hackbornc4aad012013-02-22 15:05:25 -080054 void resized(in Rect frame, in Rect overscanInsets, in Rect contentInsets,
Filip Gruszczynski2217f612015-05-26 11:32:08 -070055 in Rect visibleInsets, in Rect stableInsets, in Rect outsets, 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
Craig Mautner5702d4d2012-06-30 14:10:16 -070076 void moved(int newX, int newY);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080077 void dispatchAppVisibility(boolean visible);
78 void dispatchGetNewSurface();
79
80 /**
Tiger Huang51c5a1d2018-12-11 20:24:51 +080081 * Tell the window that it is either gaining or losing focus. Keep it up
82 * to date on the current state showing navigational focus (touch mode) too.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080083 */
Tiger Huang51c5a1d2018-12-11 20:24:51 +080084 void windowFocusChanged(boolean hasFocus, boolean inTouchMode);
85
Dianne Hackbornffa42482009-09-23 22:20:11 -070086 void closeSystemDialogs(String reason);
Tiger Huang51c5a1d2018-12-11 20:24:51 +080087
Dianne Hackborn72c82ab2009-08-11 21:13:54 -070088 /**
89 * Called for wallpaper windows when their offsets change.
90 */
Marco Nelissenbf6956b2009-11-09 15:21:13 -080091 void dispatchWallpaperOffsets(float x, float y, float xStep, float yStep, boolean sync);
Tiger Huang51c5a1d2018-12-11 20:24:51 +080092
Dianne Hackborn75804932009-10-20 20:15:20 -070093 void dispatchWallpaperCommand(String action, int x, int y,
94 int z, in Bundle extras, boolean sync);
Christopher Tatea53146c2010-09-07 11:57:52 -070095
96 /**
97 * Drag/drop events
98 */
Dianne Hackborn12d3a942012-04-27 14:16:30 -070099 void dispatchDragEvent(in DragEvent event);
Joe Onorato664644d2011-01-23 17:53:23 -0800100
101 /**
Vladislav Kaznacheevec6a4472016-01-22 12:21:52 -0800102 * Pointer icon events
103 */
104 void updatePointerIcon(float x, float y);
105
106 /**
Joe Onorato664644d2011-01-23 17:53:23 -0800107 * System chrome visibility changes
108 */
Dianne Hackborn12d3a942012-04-27 14:16:30 -0700109 void dispatchSystemUiVisibilityChanged(int seq, int globalVisibility,
Dianne Hackborn9a230e02011-10-06 11:51:27 -0700110 int localValue, int localChanges);
Dianne Hackborn12d3a942012-04-27 14:16:30 -0700111
112 /**
Craig Mautner9c795042014-10-28 19:59:59 -0700113 * Called for non-application windows when the enter animation has completed.
114 */
115 void dispatchWindowShown();
Clara Bayarri75e09792015-07-29 16:20:40 +0100116
117 /**
118 * Called when Keyboard Shortcuts are requested for the window.
119 */
Clara Bayarrifcd7e802016-03-10 12:58:18 +0000120 void requestAppKeyboardShortcuts(IResultReceiver receiver, int deviceId);
Vladislav Kaznacheev3787de12016-12-21 10:36:35 -0800121
122 /**
123 * Tell the window that it is either gaining or losing pointer capture.
124 */
125 void dispatchPointerCaptureChanged(boolean hasCapture);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800126}