IWindowManager.aidl revision a41ca77fabe1c7ad12ebb9b69b9e786c07d49fa0
19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/* //device/java/android/android/view/IWindowManager.aidl 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** Copyright 2006, The Android Open Source Project 49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** 59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** Licensed under the Apache License, Version 2.0 (the "License"); 69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** you may not use this file except in compliance with the License. 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** You may obtain a copy of the License at 89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** http://www.apache.org/licenses/LICENSE-2.0 109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** 119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** Unless required by applicable law or agreed to in writing, software 129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** distributed under the License is distributed on an "AS IS" BASIS, 139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** See the License for the specific language governing permissions and 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** limitations under the License. 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project*/ 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.view; 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport com.android.internal.view.IInputContext; 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport com.android.internal.view.IInputMethodClient; 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.res.Configuration; 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.view.IApplicationToken; 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.view.IOnKeyguardExitResult; 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.view.IRotationWatcher; 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.view.IWindowSession; 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.view.KeyEvent; 296ec402b5ae33c8927694d8522b4cc6a5c8ba974eJeff Brownimport android.view.InputEvent; 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.view.MotionEvent; 31a41ca77fabe1c7ad12ebb9b69b9e786c07d49fa0Jeff Brownimport android.view.InputChannel; 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * System private interface to the window manager. 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@hide} 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectinterface IWindowManager 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{ 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * ===== NOTICE ===== 429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The first three methods must remain the first three methods. Scripts 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * and tools rely on their transaction number to work properly. 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // This is used for debugging 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean startViewServer(int port); // Transaction #1 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean stopViewServer(); // Transaction #2 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean isViewServerRunning(); // Transaction #3 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IWindowSession openSession(in IInputMethodClient client, 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project in IInputContext inputContext); 529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean inputMethodClientHasFocus(IInputMethodClient client); 539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // These can only be called when injecting events to your own window, 556ec402b5ae33c8927694d8522b4cc6a5c8ba974eJeff Brown // or by holding the INJECT_EVENTS permission. These methods may block 566ec402b5ae33c8927694d8522b4cc6a5c8ba974eJeff Brown // until pending input events are finished being dispatched even when 'sync' is false. 576ec402b5ae33c8927694d8522b4cc6a5c8ba974eJeff Brown // Avoid calling these methods on your UI thread or use the 'NoWait' version instead. 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean injectKeyEvent(in KeyEvent ev, boolean sync); 599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean injectPointerEvent(in MotionEvent ev, boolean sync); 609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean injectTrackballEvent(in MotionEvent ev, boolean sync); 616ec402b5ae33c8927694d8522b4cc6a5c8ba974eJeff Brown boolean injectInputEventNoWait(in InputEvent ev); 629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // These can only be called when holding the MANAGE_APP_TOKENS permission. 649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void pauseKeyDispatching(IBinder token); 659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void resumeKeyDispatching(IBinder token); 669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setEventDispatching(boolean enabled); 67e4fbd6235c8d1c5b0ed4883ec275dd3fc9c919fbDianne Hackborn void addWindowToken(IBinder token, int type); 68e4fbd6235c8d1c5b0ed4883ec275dd3fc9c919fbDianne Hackborn void removeWindowToken(IBinder token); 699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void addAppToken(int addPos, IApplicationToken token, 709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int groupId, int requestedOrientation, boolean fullscreen); 719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setAppGroupId(IBinder token, int groupId); 729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setAppOrientation(IApplicationToken token, int requestedOrientation); 739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getAppOrientation(IApplicationToken token); 749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setFocusedApp(IBinder token, boolean moveFocusNow); 759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void prepareAppTransition(int transit); 769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getPendingAppTransition(); 773b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn void overridePendingAppTransition(String packageName, int enterAnim, int exitAnim); 789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void executeAppTransition(); 799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setAppStartingWindow(IBinder token, String pkg, int theme, 809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project CharSequence nonLocalizedLabel, int labelRes, 819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int icon, IBinder transferFrom, boolean createIfNeeded); 829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setAppWillBeHidden(IBinder token); 839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setAppVisibility(IBinder token, boolean visible); 849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void startAppFreezingScreen(IBinder token, int configChanges); 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void stopAppFreezingScreen(IBinder token, boolean force); 869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void removeAppToken(IBinder token); 879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void moveAppToken(int index, IBinder token); 889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void moveAppTokensToTop(in List<IBinder> tokens); 899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void moveAppTokensToBottom(in List<IBinder> tokens); 909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 91e36d6e277e49475076b7872d36ea6a5c5b996e9dDianne Hackborn // Re-evaluate the current orientation from the caller's state. 92e36d6e277e49475076b7872d36ea6a5c5b996e9dDianne Hackborn // If there is a change, the new Configuration is returned and the 93e36d6e277e49475076b7872d36ea6a5c5b996e9dDianne Hackborn // caller must call setNewConfiguration() sometime later. 94e36d6e277e49475076b7872d36ea6a5c5b996e9dDianne Hackborn Configuration updateOrientationFromAppTokens(in Configuration currentConfig, 95e36d6e277e49475076b7872d36ea6a5c5b996e9dDianne Hackborn IBinder freezeThisOneIfNeeded); 96e36d6e277e49475076b7872d36ea6a5c5b996e9dDianne Hackborn void setNewConfiguration(in Configuration config); 97e36d6e277e49475076b7872d36ea6a5c5b996e9dDianne Hackborn 989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // these require DISABLE_KEYGUARD permission 999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void disableKeyguard(IBinder token, String tag); 1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void reenableKeyguard(IBinder token); 1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void exitKeyguardSecurely(IOnKeyguardExitResult callback); 1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean inKeyguardRestrictedInputMode(); 1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 104ffa424800d0338b8b894aef2ea1e3e3344cbda7aDianne Hackborn void closeSystemDialogs(String reason); 105ffa424800d0338b8b894aef2ea1e3e3344cbda7aDianne Hackborn 1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // These can only be called with the SET_ANIMATON_SCALE permission. 1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project float getAnimationScale(int which); 1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project float[] getAnimationScales(); 1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setAnimationScale(int which, float scale); 1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setAnimationScales(in float[] scales); 1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // These require the READ_INPUT_STATE permission. 1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getSwitchState(int sw); 1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getSwitchStateForDevice(int devid, int sw); 1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getScancodeState(int sw); 1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getScancodeStateForDevice(int devid, int sw); 1171d62ea9d8c2646d198b6967e2c6ae3dad5c18f9eDianne Hackborn int getTrackballScancodeState(int sw); 1181d62ea9d8c2646d198b6967e2c6ae3dad5c18f9eDianne Hackborn int getDPadScancodeState(int sw); 1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getKeycodeState(int sw); 1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getKeycodeStateForDevice(int devid, int sw); 1211d62ea9d8c2646d198b6967e2c6ae3dad5c18f9eDianne Hackborn int getTrackballKeycodeState(int sw); 1221d62ea9d8c2646d198b6967e2c6ae3dad5c18f9eDianne Hackborn int getDPadKeycodeState(int sw); 123a41ca77fabe1c7ad12ebb9b69b9e786c07d49fa0Jeff Brown InputChannel monitorInput(String inputChannelName); 1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Report whether the hardware supports the given keys; returns true if successful 1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean hasKeys(in int[] keycodes, inout boolean[] keyExists); 1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // For testing 1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setInTouchMode(boolean showFocus); 1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // These can only be called with the SET_ORIENTATION permission. 1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Change the current screen rotation, constants as per 1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link android.view.Surface}. 1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param rotation the intended rotation. 1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param alwaysSendConfiguration Flag to force a new configuration to 1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * be evaluated. This can be used when there are other parameters in 1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * configuration that are changing. 139e4fbd6235c8d1c5b0ed4883ec275dd3fc9c919fbDianne Hackborn * @param animFlags Animation flags as per {@link android.view.Surface}. 1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 141e4fbd6235c8d1c5b0ed4883ec275dd3fc9c919fbDianne Hackborn void setRotation(int rotation, boolean alwaysSendConfiguration, int animFlags); 1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Retrieve the current screen orientation, constants as per 1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link android.view.Surface}. 1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getRotation(); 1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Watch the rotation of the screen. Returns the current rotation, 1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * calls back when it changes. 1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int watchRotation(IRotationWatcher watcher); 1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 155