blob: c06a1fe0a257de9c978312636c549c0cbe705ef8 [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
20import android.graphics.Rect;
Dianne Hackborn75804932009-10-20 20:15:20 -070021import android.os.Bundle;
22import android.os.ParcelFileDescriptor;
Christopher Tatea53146c2010-09-07 11:57:52 -070023import android.view.DragEvent;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080024import android.view.KeyEvent;
25import android.view.MotionEvent;
Adrian Roos5c6b6222017-11-07 17:36:10 +010026import android.view.DisplayCutout;
Jorim Jaggif96c90a2018-09-26 16:55:15 +020027import android.view.InsetsState;
Jorim Jaggib6030952018-10-23 18:31:52 +020028import android.view.InsetsSourceControl;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080029
Clara Bayarri75e09792015-07-29 16:20:40 +010030import com.android.internal.os.IResultReceiver;
Andrii Kulian44607962017-03-16 11:06:24 -070031import android.util.MergedConfiguration;
Clara Bayarri75e09792015-07-29 16:20:40 +010032
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080033/**
34 * API back to a client window that the Window Manager uses to inform it of
35 * interesting things happening.
36 *
37 * {@hide}
38 */
39oneway interface IWindow {
40 /**
41 * ===== NOTICE =====
42 * The first method must remain the first method. Scripts
43 * and tools rely on their transaction number to work properly.
44 */
45
46 /**
47 * Invoked by the view server to tell a window to execute the specified
48 * command. Any response from the receiver must be sent through the
49 * specified file descriptor.
50 */
51 void executeCommand(String command, String parameters, in ParcelFileDescriptor descriptor);
52
Dianne Hackbornc4aad012013-02-22 15:05:25 -080053 void resized(in Rect frame, in Rect overscanInsets, in Rect contentInsets,
Filip Gruszczynski2217f612015-05-26 11:32:08 -070054 in Rect visibleInsets, in Rect stableInsets, in Rect outsets, boolean reportDraw,
Andrii Kulian44607962017-03-16 11:06:24 -070055 in MergedConfiguration newMergedConfiguration, in Rect backDropFrame,
Adrian Roos5c6b6222017-11-07 17:36:10 +010056 boolean forceLayout, boolean alwaysConsumeNavBar, int displayId,
57 in DisplayCutout.ParcelableWrapper displayCutout);
Jorim Jaggif96c90a2018-09-26 16:55:15 +020058
59 /**
60 * Called when the window insets configuration has changed.
61 */
62 void insetsChanged(in InsetsState insetsState);
63
Jorim Jaggib6030952018-10-23 18:31:52 +020064 /**
65 * Called when this window retrieved control over a specified set of inset sources.
66 */
67 void insetsControlChanged(in InsetsState insetsState, in InsetsSourceControl[] activeControls);
68
Craig Mautner5702d4d2012-06-30 14:10:16 -070069 void moved(int newX, int newY);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080070 void dispatchAppVisibility(boolean visible);
71 void dispatchGetNewSurface();
72
73 /**
Tiger Huang51c5a1d2018-12-11 20:24:51 +080074 * Tell the window that it is either gaining or losing focus. Keep it up
75 * to date on the current state showing navigational focus (touch mode) too.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080076 */
Tiger Huang51c5a1d2018-12-11 20:24:51 +080077 void windowFocusChanged(boolean hasFocus, boolean inTouchMode);
78
Dianne Hackbornffa42482009-09-23 22:20:11 -070079 void closeSystemDialogs(String reason);
Tiger Huang51c5a1d2018-12-11 20:24:51 +080080
Dianne Hackborn72c82ab2009-08-11 21:13:54 -070081 /**
82 * Called for wallpaper windows when their offsets change.
83 */
Marco Nelissenbf6956b2009-11-09 15:21:13 -080084 void dispatchWallpaperOffsets(float x, float y, float xStep, float yStep, boolean sync);
Tiger Huang51c5a1d2018-12-11 20:24:51 +080085
Dianne Hackborn75804932009-10-20 20:15:20 -070086 void dispatchWallpaperCommand(String action, int x, int y,
87 int z, in Bundle extras, boolean sync);
Christopher Tatea53146c2010-09-07 11:57:52 -070088
89 /**
90 * Drag/drop events
91 */
Dianne Hackborn12d3a942012-04-27 14:16:30 -070092 void dispatchDragEvent(in DragEvent event);
Joe Onorato664644d2011-01-23 17:53:23 -080093
94 /**
Vladislav Kaznacheevec6a4472016-01-22 12:21:52 -080095 * Pointer icon events
96 */
97 void updatePointerIcon(float x, float y);
98
99 /**
Joe Onorato664644d2011-01-23 17:53:23 -0800100 * System chrome visibility changes
101 */
Dianne Hackborn12d3a942012-04-27 14:16:30 -0700102 void dispatchSystemUiVisibilityChanged(int seq, int globalVisibility,
Dianne Hackborn9a230e02011-10-06 11:51:27 -0700103 int localValue, int localChanges);
Dianne Hackborn12d3a942012-04-27 14:16:30 -0700104
105 /**
Craig Mautner9c795042014-10-28 19:59:59 -0700106 * Called for non-application windows when the enter animation has completed.
107 */
108 void dispatchWindowShown();
Clara Bayarri75e09792015-07-29 16:20:40 +0100109
110 /**
111 * Called when Keyboard Shortcuts are requested for the window.
112 */
Clara Bayarrifcd7e802016-03-10 12:58:18 +0000113 void requestAppKeyboardShortcuts(IResultReceiver receiver, int deviceId);
Vladislav Kaznacheev3787de12016-12-21 10:36:35 -0800114
115 /**
116 * Tell the window that it is either gaining or losing pointer capture.
117 */
118 void dispatchPointerCaptureChanged(boolean hasCapture);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800119}