17da6ac33a9de82be52e22846d5f22d502452854cDianne Hackborn/* 29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** Copyright 2006, The Android Open Source Project 39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** 44eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller** Licensed under the Apache License, Version 2.0 (the "License"); 54eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller** you may not use this file except in compliance with the License. 64eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller** You may obtain a copy of the License at 79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** 84eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller** http://www.apache.org/licenses/LICENSE-2.0 99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** 104eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller** Unless required by applicable law or agreed to in writing, software 114eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller** distributed under the License is distributed on an "AS IS" BASIS, 124eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 134eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller** See the License for the specific language governing permissions and 149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** limitations under the License. 159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project*/ 169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.view; 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport com.android.internal.view.IInputContext; 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport com.android.internal.view.IInputMethodClient; 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 222f0b17573d4324832f7a20402a3d2b5920bc4866Dianne Hackbornimport android.content.res.CompatibilityInfo; 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.res.Configuration; 240aae2d4e0075fd699cf40b26dca0eb2c3b3e37d2Dianne Hackbornimport android.graphics.Bitmap; 25ac8dea12c17aa047e03a358110aeb60401d36aa2Dianne Hackbornimport android.graphics.Point; 26c9c9a48e7bafae63cb35a9aa69255e80aba83988Svetoslav Ganovimport android.graphics.Rect; 27f752202bee88e31ce765483ba2efa6999ae9c9adAdam Cohenimport android.os.Bundle; 2838e29a61d0c87fe3e391d24e2eb11dd1800d107dDianne Hackbornimport android.os.IRemoteCallback; 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.view.IApplicationToken; 30545252f4fde6fbb70b07e97a120c7d1405758017Svetoslav Ganovimport android.view.IMagnificationCallbacks; 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.view.IOnKeyguardExitResult; 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.view.IRotationWatcher; 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.view.IWindowSession; 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.view.KeyEvent; 356ec402b5ae33c8927694d8522b4cc6a5c8ba974eJeff Brownimport android.view.InputEvent; 36152e9bb81aa5b2ab4637f4b2dae04b3ce89fa891Svetoslav Ganovimport android.view.MagnificationSpec; 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.view.MotionEvent; 38a41ca77fabe1c7ad12ebb9b69b9e786c07d49fa0Jeff Brownimport android.view.InputChannel; 398d60866e2100db70ecf0502c14768a384514d7e9Jeff Brownimport android.view.InputDevice; 401cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganovimport android.view.IInputFilter; 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * System private interface to the window manager. 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@hide} 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectinterface IWindowManager 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{ 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * ===== NOTICE ===== 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The first three methods must remain the first three methods. Scripts 529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * and tools rely on their transaction number to work properly. 539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // This is used for debugging 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean startViewServer(int port); // Transaction #1 569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean stopViewServer(); // Transaction #2 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean isViewServerRunning(); // Transaction #3 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project IWindowSession openSession(in IInputMethodClient client, 609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project in IInputContext inputContext); 619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean inputMethodClientHasFocus(IInputMethodClient client); 62ac8dea12c17aa047e03a358110aeb60401d36aa2Dianne Hackborn 63672cf45de7aa5ad6fd1f75512ee5a451a16c0b39Dianne Hackborn void getInitialDisplaySize(int displayId, out Point size); 64672cf45de7aa5ad6fd1f75512ee5a451a16c0b39Dianne Hackborn void getBaseDisplaySize(int displayId, out Point size); 6543aa15912891930833edfc101615a9c881de54a1Jeff Brown void setForcedDisplaySize(int displayId, int width, int height); 6659c009776dae5ccbdfb93d7151ff2065ca049dc3Craig Mautner void clearForcedDisplaySize(int displayId); 67672cf45de7aa5ad6fd1f75512ee5a451a16c0b39Dianne Hackborn int getInitialDisplayDensity(int displayId); 68672cf45de7aa5ad6fd1f75512ee5a451a16c0b39Dianne Hackborn int getBaseDisplayDensity(int displayId); 69dde331cebd87982faded6818ad5f9927ff994c96Dianne Hackborn void setForcedDisplayDensity(int displayId, int density); 70dde331cebd87982faded6818ad5f9927ff994c96Dianne Hackborn void clearForcedDisplayDensity(int displayId); 717916ac65dc492e4e1431879875c77d7121fbf82eDianne Hackborn 72c652de8141f5b8e3c6bcf8916842b6e106413b1aDianne Hackborn void setOverscan(int displayId, int left, int top, int right, int bottom); 73c652de8141f5b8e3c6bcf8916842b6e106413b1aDianne Hackborn 74f87d19621dc2a30232bba1f51862a0b671eb9729Dianne Hackborn // Is the device configured to have a full system bar for larger screens? 75f87d19621dc2a30232bba1f51862a0b671eb9729Dianne Hackborn boolean hasSystemNavBar(); 7681e56d535c853d73ff537357da5b935f51cb779dDianne Hackborn 779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // These can only be called when holding the MANAGE_APP_TOKENS permission. 789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void pauseKeyDispatching(IBinder token); 799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void resumeKeyDispatching(IBinder token); 809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setEventDispatching(boolean enabled); 81e4fbd6235c8d1c5b0ed4883ec275dd3fc9c919fbDianne Hackborn void addWindowToken(IBinder token, int type); 82e4fbd6235c8d1c5b0ed4883ec275dd3fc9c919fbDianne Hackborn void removeWindowToken(IBinder token); 839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void addAppToken(int addPos, IApplicationToken token, 845962b12bedc4a1d0354816c1cd6b06ba04f6d807Craig Mautner int groupId, int requestedOrientation, boolean fullscreen, boolean showWhenLocked); 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setAppGroupId(IBinder token, int groupId); 869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setAppOrientation(IApplicationToken token, int requestedOrientation); 879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getAppOrientation(IApplicationToken token); 889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setFocusedApp(IBinder token, boolean moveFocusNow); 897da6ac33a9de82be52e22846d5f22d502452854cDianne Hackborn void prepareAppTransition(int transit, boolean alwaysKeepCurrent); 909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getPendingAppTransition(); 9184375876fcef73c5fa9c3de205c7db908ee14e15Dianne Hackborn void overridePendingAppTransition(String packageName, int enterAnim, int exitAnim, 9284375876fcef73c5fa9c3de205c7db908ee14e15Dianne Hackborn IRemoteCallback startedCallback); 93eabfb3a36e9469c5e219f92b39b7200104319185Dianne Hackborn void overridePendingAppTransitionScaleUp(int startX, int startY, int startWidth, 94eabfb3a36e9469c5e219f92b39b7200104319185Dianne Hackborn int startHeight); 958078d8c8a282ca81344febe7256f63b1e805e3aaDianne Hackborn void overridePendingAppTransitionThumb(in Bitmap srcThumb, int startX, int startY, 96832cb229cd748505c90f74ae8154fc3557d61a73Michael Jurka IRemoteCallback startedCallback, boolean scaleUp); 979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void executeAppTransition(); 989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setAppStartingWindow(IBinder token, String pkg, int theme, 992f0b17573d4324832f7a20402a3d2b5920bc4866Dianne Hackborn in CompatibilityInfo compatInfo, CharSequence nonLocalizedLabel, int labelRes, 1007eec10e6c99c30d5ee061fec08ac89ad4254ac32Dianne Hackborn int icon, int windowFlags, IBinder transferFrom, boolean createIfNeeded); 1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setAppWillBeHidden(IBinder token); 1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setAppVisibility(IBinder token, boolean visible); 1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void startAppFreezingScreen(IBinder token, int configChanges); 1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void stopAppFreezingScreen(IBinder token, boolean force); 1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void removeAppToken(IBinder token); 1062ad920759b1981eaf526fd37a314fbc5a3ed90aeCraig Mautner void moveAppToken(int index, IBinder token); 1072ad920759b1981eaf526fd37a314fbc5a3ed90aeCraig Mautner void moveAppTokensToTop(in List<IBinder> tokens); 1082ad920759b1981eaf526fd37a314fbc5a3ed90aeCraig Mautner void moveAppTokensToBottom(in List<IBinder> tokens); 1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 110e36d6e277e49475076b7872d36ea6a5c5b996e9dDianne Hackborn // Re-evaluate the current orientation from the caller's state. 111e36d6e277e49475076b7872d36ea6a5c5b996e9dDianne Hackborn // If there is a change, the new Configuration is returned and the 112e36d6e277e49475076b7872d36ea6a5c5b996e9dDianne Hackborn // caller must call setNewConfiguration() sometime later. 113e36d6e277e49475076b7872d36ea6a5c5b996e9dDianne Hackborn Configuration updateOrientationFromAppTokens(in Configuration currentConfig, 114e36d6e277e49475076b7872d36ea6a5c5b996e9dDianne Hackborn IBinder freezeThisOneIfNeeded); 115e36d6e277e49475076b7872d36ea6a5c5b996e9dDianne Hackborn void setNewConfiguration(in Configuration config); 1164eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller 1179d9ece3c1e16001b63244459cdf4b428f4272d2eDianne Hackborn void startFreezingScreen(int exitAnim, int enterAnim); 1189d9ece3c1e16001b63244459cdf4b428f4272d2eDianne Hackborn void stopFreezingScreen(); 1199d9ece3c1e16001b63244459cdf4b428f4272d2eDianne Hackborn 1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // these require DISABLE_KEYGUARD permission 1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void disableKeyguard(IBinder token, String tag); 1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void reenableKeyguard(IBinder token); 1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void exitKeyguardSecurely(IOnKeyguardExitResult callback); 124520d8bc1d840966b5519195aaa514597a662c053Mike Lockwood boolean isKeyguardLocked(); 125520d8bc1d840966b5519195aaa514597a662c053Mike Lockwood boolean isKeyguardSecure(); 1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean inKeyguardRestrictedInputMode(); 12790c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn void dismissKeyguard(); 1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 129ffa424800d0338b8b894aef2ea1e3e3344cbda7aDianne Hackborn void closeSystemDialogs(String reason); 1304eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller 1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // These can only be called with the SET_ANIMATON_SCALE permission. 1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project float getAnimationScale(int which); 1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project float[] getAnimationScales(); 1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setAnimationScale(int which, float scale); 1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setAnimationScales(in float[] scales); 1364eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller 1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // For testing 1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project void setInTouchMode(boolean showFocus); 1396804433b0af50f33a338307ae8ddb50bc49e886bBrad Fitzpatrick 1406804433b0af50f33a338307ae8ddb50bc49e886bBrad Fitzpatrick // For StrictMode flashing a red border on violations from the UI 1416804433b0af50f33a338307ae8ddb50bc49e886bBrad Fitzpatrick // thread. The uid/pid is implicit from the Binder call, and the Window 1426804433b0af50f33a338307ae8ddb50bc49e886bBrad Fitzpatrick // Manager uses that to determine whether or not the red border should 1436804433b0af50f33a338307ae8ddb50bc49e886bBrad Fitzpatrick // actually be shown. (it will be ignored that pid doesn't have windows 1446804433b0af50f33a338307ae8ddb50bc49e886bBrad Fitzpatrick // on screen) 1456804433b0af50f33a338307ae8ddb50bc49e886bBrad Fitzpatrick void showStrictModeViolation(boolean on); 1466804433b0af50f33a338307ae8ddb50bc49e886bBrad Fitzpatrick 147c1a968a8ed45181312f7d4bcdbba0cc8ddc201baBrad Fitzpatrick // Proxy to set the system property for whether the flashing 148c1a968a8ed45181312f7d4bcdbba0cc8ddc201baBrad Fitzpatrick // should be enabled. The 'enabled' value is null or blank for 149c1a968a8ed45181312f7d4bcdbba0cc8ddc201baBrad Fitzpatrick // the system default (differs per build variant) or any valid 150c1a968a8ed45181312f7d4bcdbba0cc8ddc201baBrad Fitzpatrick // boolean string as parsed by SystemProperties.getBoolean(). 151c1a968a8ed45181312f7d4bcdbba0cc8ddc201baBrad Fitzpatrick void setStrictModeVisualIndicatorPreference(String enabled); 152c1a968a8ed45181312f7d4bcdbba0cc8ddc201baBrad Fitzpatrick 1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // These can only be called with the SET_ORIENTATION permission. 1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 15501a98ddbdfbaf1f0d2bc602537e6e314364902a3Jeff Brown * Update the current screen rotation based on the current state of 15601a98ddbdfbaf1f0d2bc602537e6e314364902a3Jeff Brown * the world. 1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @param alwaysSendConfiguration Flag to force a new configuration to 1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * be evaluated. This can be used when there are other parameters in 1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * configuration that are changing. 160f87d19621dc2a30232bba1f51862a0b671eb9729Dianne Hackborn * @param forceRelayout If true, the window manager will always do a relayout 161f87d19621dc2a30232bba1f51862a0b671eb9729Dianne Hackborn * of its windows even if the rotation hasn't changed. 1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 163f87d19621dc2a30232bba1f51862a0b671eb9729Dianne Hackborn void updateRotation(boolean alwaysSendConfiguration, boolean forceRelayout); 1649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Retrieve the current screen orientation, constants as per 1679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link android.view.Surface}. 1689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int getRotation(); 1704eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller 1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /** 1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Watch the rotation of the screen. Returns the current rotation, 1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * calls back when it changes. 1749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project int watchRotation(IRotationWatcher watcher); 176b1b9a8ac07ea7d438eda613f4c798dd8b10a66ceBrian Colonna 177b1b9a8ac07ea7d438eda613f4c798dd8b10a66ceBrian Colonna /** 178b1b9a8ac07ea7d438eda613f4c798dd8b10a66ceBrian Colonna * Remove a rotation watcher set using watchRotation. 179b1b9a8ac07ea7d438eda613f4c798dd8b10a66ceBrian Colonna * @hide 180b1b9a8ac07ea7d438eda613f4c798dd8b10a66ceBrian Colonna */ 181b1b9a8ac07ea7d438eda613f4c798dd8b10a66ceBrian Colonna void removeRotationWatcher(IRotationWatcher watcher); 182b73617de462579f7c12c25a4c2747c576f00f6a2Daniel Sandler 183dfee59afb3e4cdcde38f6338f9360655de76da92Adam Powell /** 184dfee59afb3e4cdcde38f6338f9360655de76da92Adam Powell * Determine the preferred edge of the screen to pin the compact options menu against. 185dfee59afb3e4cdcde38f6338f9360655de76da92Adam Powell * @return a Gravity value for the options menu panel 186dfee59afb3e4cdcde38f6338f9360655de76da92Adam Powell * @hide 187dfee59afb3e4cdcde38f6338f9360655de76da92Adam Powell */ 188dfee59afb3e4cdcde38f6338f9360655de76da92Adam Powell int getPreferredOptionsPanelGravity(); 189dfee59afb3e4cdcde38f6338f9360655de76da92Adam Powell 1904eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller /** 1914eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller * Lock the device orientation to the specified rotation, or to the 1924eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller * current rotation if -1. Sensor input will be ignored until 1934eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller * thawRotation() is called. 1944eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller * @hide 1954eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller */ 1964eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller void freezeRotation(int rotation); 1974eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller 1984eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller /** 1994eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller * Release the orientation lock imposed by freezeRotation(). 2004eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller * @hide 2014eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller */ 2024eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller void thawRotation(); 2034eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller 2044eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller /** 20580943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov * Gets whether the rotation is frozen. 20680943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov * 20780943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov * @return Whether the rotation is frozen. 20880943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov */ 20980943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov boolean isRotationFrozen(); 21080943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov 21180943d8daa6ab31ab5c486d57aea406aa0730d58Svetoslav Ganov /** 2124eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller * Create a screenshot of the applications currently displayed. 2134eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller */ 2144eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller Bitmap screenshotApplications(IBinder appToken, int displayId, int maxWidth, int maxHeight); 215664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato 216664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato /** 217664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato * Called by the status bar to notify Views of changes to System UI visiblity. 218664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato */ 219664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato void statusBarVisibilityChanged(int visibility); 2201a84fd1fb7a51f3fe4f8865e1cdd09f3490f696cJeff Brown 2211a84fd1fb7a51f3fe4f8865e1cdd09f3490f696cJeff Brown /** 22238e29a61d0c87fe3e391d24e2eb11dd1800d107dDianne Hackborn * Block until the given window has been drawn to the screen. 223c38c9be031ddad5cf551b55458889f11e01dc5b2Jeff Brown * Returns true if really waiting, false if the window does not exist. 22429aae6f36e565b8f2a99f2193597b964bb800ee8Dianne Hackborn */ 225c38c9be031ddad5cf551b55458889f11e01dc5b2Jeff Brown boolean waitForWindowDrawn(IBinder token, in IRemoteCallback callback); 2260c4ccff36930ff4f0292b94ad51e164c9fa060a3Daniel Sandler 2270c4ccff36930ff4f0292b94ad51e164c9fa060a3Daniel Sandler /** 2280c4ccff36930ff4f0292b94ad51e164c9fa060a3Daniel Sandler * Device has a software navigation bar (separate from the status bar). 2290c4ccff36930ff4f0292b94ad51e164c9fa060a3Daniel Sandler */ 2300c4ccff36930ff4f0292b94ad51e164c9fa060a3Daniel Sandler boolean hasNavigationBar(); 23193c518e4f8abd98f87cda1712b30a5a86cfa60ddJim Miller 23293c518e4f8abd98f87cda1712b30a5a86cfa60ddJim Miller /** 233f752202bee88e31ce765483ba2efa6999ae9c9adAdam Cohen * Lock the device immediately with the specified options (can be null). 23493c518e4f8abd98f87cda1712b30a5a86cfa60ddJim Miller */ 235f752202bee88e31ce765483ba2efa6999ae9c9adAdam Cohen void lockNow(in Bundle options); 236c9c9a48e7bafae63cb35a9aa69255e80aba83988Svetoslav Ganov 237c9c9a48e7bafae63cb35a9aa69255e80aba83988Svetoslav Ganov /** 238c9c9a48e7bafae63cb35a9aa69255e80aba83988Svetoslav Ganov * Gets the token for the focused window. 239c9c9a48e7bafae63cb35a9aa69255e80aba83988Svetoslav Ganov */ 240c9c9a48e7bafae63cb35a9aa69255e80aba83988Svetoslav Ganov IBinder getFocusedWindowToken(); 241c9c9a48e7bafae63cb35a9aa69255e80aba83988Svetoslav Ganov 242c9c9a48e7bafae63cb35a9aa69255e80aba83988Svetoslav Ganov /** 243c9c9a48e7bafae63cb35a9aa69255e80aba83988Svetoslav Ganov * Sets an input filter for manipulating the input event stream. 244c9c9a48e7bafae63cb35a9aa69255e80aba83988Svetoslav Ganov */ 245c9c9a48e7bafae63cb35a9aa69255e80aba83988Svetoslav Ganov void setInputFilter(in IInputFilter filter); 2461cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov 2471cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov /** 248152e9bb81aa5b2ab4637f4b2dae04b3ce89fa891Svetoslav Ganov * Gets the frame of a window given its token. 2491cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov */ 250152e9bb81aa5b2ab4637f4b2dae04b3ce89fa891Svetoslav Ganov void getWindowFrame(IBinder token, out Rect outFrame); 251bfec0a8616bc197ee3b7b71be6fed1939d0c3c4dJim Miller 252bfec0a8616bc197ee3b7b71be6fed1939d0c3c4dJim Miller /** 253bfec0a8616bc197ee3b7b71be6fed1939d0c3c4dJim Miller * Device is in safe mode. 254bfec0a8616bc197ee3b7b71be6fed1939d0c3c4dJim Miller */ 255bfec0a8616bc197ee3b7b71be6fed1939d0c3c4dJim Miller boolean isSafeModeEnabled(); 2564eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller 2574eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller /** 2584eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller * Tell keyguard to show the assistant (Intent.ACTION_ASSIST) after asking for the user's 2594eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller * credentials. 2604eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller */ 2614eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller void showAssistant(); 262545252f4fde6fbb70b07e97a120c7d1405758017Svetoslav Ganov 263545252f4fde6fbb70b07e97a120c7d1405758017Svetoslav Ganov /** 264545252f4fde6fbb70b07e97a120c7d1405758017Svetoslav Ganov * Sets the display magnification callbacks. These callbacks notify 265545252f4fde6fbb70b07e97a120c7d1405758017Svetoslav Ganov * the client for contextual changes related to display magnification. 266545252f4fde6fbb70b07e97a120c7d1405758017Svetoslav Ganov * 267545252f4fde6fbb70b07e97a120c7d1405758017Svetoslav Ganov * @param callbacks The magnification callbacks. 268545252f4fde6fbb70b07e97a120c7d1405758017Svetoslav Ganov */ 269545252f4fde6fbb70b07e97a120c7d1405758017Svetoslav Ganov void setMagnificationCallbacks(IMagnificationCallbacks callbacks); 270545252f4fde6fbb70b07e97a120c7d1405758017Svetoslav Ganov 271545252f4fde6fbb70b07e97a120c7d1405758017Svetoslav Ganov /** 272545252f4fde6fbb70b07e97a120c7d1405758017Svetoslav Ganov * Sets the magnification spec to be applied to all windows that can be 273545252f4fde6fbb70b07e97a120c7d1405758017Svetoslav Ganov * magnified. 274545252f4fde6fbb70b07e97a120c7d1405758017Svetoslav Ganov * 275545252f4fde6fbb70b07e97a120c7d1405758017Svetoslav Ganov * @param spec The current magnification spec. 276545252f4fde6fbb70b07e97a120c7d1405758017Svetoslav Ganov */ 277545252f4fde6fbb70b07e97a120c7d1405758017Svetoslav Ganov void setMagnificationSpec(in MagnificationSpec spec); 278545252f4fde6fbb70b07e97a120c7d1405758017Svetoslav Ganov 279545252f4fde6fbb70b07e97a120c7d1405758017Svetoslav Ganov /** 280545252f4fde6fbb70b07e97a120c7d1405758017Svetoslav Ganov * Gets the magnification spec for a window given its token. If the 281545252f4fde6fbb70b07e97a120c7d1405758017Svetoslav Ganov * window has a compatibility scale it is also folded in the returned 282545252f4fde6fbb70b07e97a120c7d1405758017Svetoslav Ganov * magnification spec. 283545252f4fde6fbb70b07e97a120c7d1405758017Svetoslav Ganov * 284545252f4fde6fbb70b07e97a120c7d1405758017Svetoslav Ganov * @param windowToken The unique window token. 285545252f4fde6fbb70b07e97a120c7d1405758017Svetoslav Ganov * @return The magnification spec if such or null. 286545252f4fde6fbb70b07e97a120c7d1405758017Svetoslav Ganov */ 287545252f4fde6fbb70b07e97a120c7d1405758017Svetoslav Ganov MagnificationSpec getCompatibleMagnificationSpecForWindow(in IBinder windowToken); 2889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 289