IWindowManager.aidl revision 8078d8c8a282ca81344febe7256f63b1e805e3aa
17da6ac33a9de82be52e22846d5f22d502452854cDianne Hackborn/*
29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** Copyright 2006, The Android Open Source Project
39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project**
49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** Licensed under the Apache License, Version 2.0 (the "License");
59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** you may not use this file except in compliance with the License.
69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** You may obtain a copy of the License at
79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project**
89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project**     http://www.apache.org/licenses/LICENSE-2.0
99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project**
109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** Unless required by applicable law or agreed to in writing, software
119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** distributed under the License is distributed on an "AS IS" BASIS,
129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project** 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;
2638e29a61d0c87fe3e391d24e2eb11dd1800d107dDianne Hackbornimport android.os.IRemoteCallback;
279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.view.IApplicationToken;
289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.view.IOnKeyguardExitResult;
299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.view.IRotationWatcher;
309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.view.IWindowSession;
319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.view.KeyEvent;
326ec402b5ae33c8927694d8522b4cc6a5c8ba974eJeff Brownimport android.view.InputEvent;
339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.view.MotionEvent;
34a41ca77fabe1c7ad12ebb9b69b9e786c07d49fa0Jeff Brownimport android.view.InputChannel;
358d60866e2100db70ecf0502c14768a384514d7e9Jeff Brownimport android.view.InputDevice;
369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/**
389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * System private interface to the window manager.
399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@hide}
419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectinterface IWindowManager
439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{
449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * ===== NOTICE =====
469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The first three methods must remain the first three methods. Scripts
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * and tools rely on their transaction number to work properly.
489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // This is used for debugging
509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean startViewServer(int port);   // Transaction #1
519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean stopViewServer();            // Transaction #2
529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean isViewServerRunning();       // Transaction #3
539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    IWindowSession openSession(in IInputMethodClient client,
559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            in IInputContext inputContext);
569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean inputMethodClientHasFocus(IInputMethodClient client);
579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
58ac8dea12c17aa047e03a358110aeb60401d36aa2Dianne Hackborn    void getDisplaySize(out Point size);
59bc68a59c024bdb745dac8e2ec7408a9f30595f1aJeff Brown    void getRealDisplaySize(out Point size);
60ac8dea12c17aa047e03a358110aeb60401d36aa2Dianne Hackborn    int getMaximumSizeDimension();
61ac8dea12c17aa047e03a358110aeb60401d36aa2Dianne Hackborn
627916ac65dc492e4e1431879875c77d7121fbf82eDianne Hackborn    void setForcedDisplaySize(int longDimen, int shortDimen);
637916ac65dc492e4e1431879875c77d7121fbf82eDianne Hackborn    void clearForcedDisplaySize();
647916ac65dc492e4e1431879875c77d7121fbf82eDianne Hackborn
6581e56d535c853d73ff537357da5b935f51cb779dDianne Hackborn    // Is device configured with a hideable status bar or a tablet system bar?
6681e56d535c853d73ff537357da5b935f51cb779dDianne Hackborn    boolean canStatusBarHide();
6781e56d535c853d73ff537357da5b935f51cb779dDianne Hackborn
689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // These can only be called when injecting events to your own window,
696ec402b5ae33c8927694d8522b4cc6a5c8ba974eJeff Brown    // or by holding the INJECT_EVENTS permission.  These methods may block
706ec402b5ae33c8927694d8522b4cc6a5c8ba974eJeff Brown    // until pending input events are finished being dispatched even when 'sync' is false.
716ec402b5ae33c8927694d8522b4cc6a5c8ba974eJeff Brown    // Avoid calling these methods on your UI thread or use the 'NoWait' version instead.
729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean injectKeyEvent(in KeyEvent ev, boolean sync);
739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean injectPointerEvent(in MotionEvent ev, boolean sync);
749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean injectTrackballEvent(in MotionEvent ev, boolean sync);
756ec402b5ae33c8927694d8522b4cc6a5c8ba974eJeff Brown    boolean injectInputEventNoWait(in InputEvent ev);
769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
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,
849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int groupId, int requestedOrientation, boolean fullscreen);
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();
913b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn    void overridePendingAppTransition(String packageName, int enterAnim, int exitAnim);
928078d8c8a282ca81344febe7256f63b1e805e3aaDianne Hackborn    void overridePendingAppTransitionThumb(in Bitmap srcThumb, int startX, int startY,
938078d8c8a282ca81344febe7256f63b1e805e3aaDianne Hackborn            IRemoteCallback startedCallback);
949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void executeAppTransition();
959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setAppStartingWindow(IBinder token, String pkg, int theme,
962f0b17573d4324832f7a20402a3d2b5920bc4866Dianne Hackborn            in CompatibilityInfo compatInfo, CharSequence nonLocalizedLabel, int labelRes,
977eec10e6c99c30d5ee061fec08ac89ad4254ac32Dianne Hackborn            int icon, int windowFlags, IBinder transferFrom, boolean createIfNeeded);
989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setAppWillBeHidden(IBinder token);
999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setAppVisibility(IBinder token, boolean visible);
1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void startAppFreezingScreen(IBinder token, int configChanges);
1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void stopAppFreezingScreen(IBinder token, boolean force);
1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void removeAppToken(IBinder token);
1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void moveAppToken(int index, IBinder token);
1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void moveAppTokensToTop(in List<IBinder> tokens);
1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void moveAppTokensToBottom(in List<IBinder> tokens);
1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
107e36d6e277e49475076b7872d36ea6a5c5b996e9dDianne Hackborn    // Re-evaluate the current orientation from the caller's state.
108e36d6e277e49475076b7872d36ea6a5c5b996e9dDianne Hackborn    // If there is a change, the new Configuration is returned and the
109e36d6e277e49475076b7872d36ea6a5c5b996e9dDianne Hackborn    // caller must call setNewConfiguration() sometime later.
110e36d6e277e49475076b7872d36ea6a5c5b996e9dDianne Hackborn    Configuration updateOrientationFromAppTokens(in Configuration currentConfig,
111e36d6e277e49475076b7872d36ea6a5c5b996e9dDianne Hackborn            IBinder freezeThisOneIfNeeded);
112e36d6e277e49475076b7872d36ea6a5c5b996e9dDianne Hackborn    void setNewConfiguration(in Configuration config);
113e36d6e277e49475076b7872d36ea6a5c5b996e9dDianne Hackborn
1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // these require DISABLE_KEYGUARD permission
1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void disableKeyguard(IBinder token, String tag);
1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void reenableKeyguard(IBinder token);
1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void exitKeyguardSecurely(IOnKeyguardExitResult callback);
118520d8bc1d840966b5519195aaa514597a662c053Mike Lockwood    boolean isKeyguardLocked();
119520d8bc1d840966b5519195aaa514597a662c053Mike Lockwood    boolean isKeyguardSecure();
1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean inKeyguardRestrictedInputMode();
12190c52de28691ca0bbbf7c039ef20f85ce46882ccDianne Hackborn    void dismissKeyguard();
1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
123ffa424800d0338b8b894aef2ea1e3e3344cbda7aDianne Hackborn    void closeSystemDialogs(String reason);
124ffa424800d0338b8b894aef2ea1e3e3344cbda7aDianne Hackborn
1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // These can only be called with the SET_ANIMATON_SCALE permission.
1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    float getAnimationScale(int which);
1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    float[] getAnimationScales();
1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setAnimationScale(int which, float scale);
1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setAnimationScales(in float[] scales);
1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // These require the READ_INPUT_STATE permission.
1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int getSwitchState(int sw);
1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int getSwitchStateForDevice(int devid, int sw);
1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int getScancodeState(int sw);
1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int getScancodeStateForDevice(int devid, int sw);
1361d62ea9d8c2646d198b6967e2c6ae3dad5c18f9eDianne Hackborn    int getTrackballScancodeState(int sw);
1371d62ea9d8c2646d198b6967e2c6ae3dad5c18f9eDianne Hackborn    int getDPadScancodeState(int sw);
1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int getKeycodeState(int sw);
1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int getKeycodeStateForDevice(int devid, int sw);
1401d62ea9d8c2646d198b6967e2c6ae3dad5c18f9eDianne Hackborn    int getTrackballKeycodeState(int sw);
1411d62ea9d8c2646d198b6967e2c6ae3dad5c18f9eDianne Hackborn    int getDPadKeycodeState(int sw);
142a41ca77fabe1c7ad12ebb9b69b9e786c07d49fa0Jeff Brown    InputChannel monitorInput(String inputChannelName);
1436804433b0af50f33a338307ae8ddb50bc49e886bBrad Fitzpatrick
1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // Report whether the hardware supports the given keys; returns true if successful
1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean hasKeys(in int[] keycodes, inout boolean[] keyExists);
1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1478d60866e2100db70ecf0502c14768a384514d7e9Jeff Brown    // Get input device information.
1488d60866e2100db70ecf0502c14768a384514d7e9Jeff Brown    InputDevice getInputDevice(int deviceId);
1498d60866e2100db70ecf0502c14768a384514d7e9Jeff Brown    int[] getInputDeviceIds();
1508d60866e2100db70ecf0502c14768a384514d7e9Jeff Brown
1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // For testing
1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setInTouchMode(boolean showFocus);
1536804433b0af50f33a338307ae8ddb50bc49e886bBrad Fitzpatrick
1546804433b0af50f33a338307ae8ddb50bc49e886bBrad Fitzpatrick    // For StrictMode flashing a red border on violations from the UI
1556804433b0af50f33a338307ae8ddb50bc49e886bBrad Fitzpatrick    // thread.  The uid/pid is implicit from the Binder call, and the Window
1566804433b0af50f33a338307ae8ddb50bc49e886bBrad Fitzpatrick    // Manager uses that to determine whether or not the red border should
1576804433b0af50f33a338307ae8ddb50bc49e886bBrad Fitzpatrick    // actually be shown.  (it will be ignored that pid doesn't have windows
1586804433b0af50f33a338307ae8ddb50bc49e886bBrad Fitzpatrick    // on screen)
1596804433b0af50f33a338307ae8ddb50bc49e886bBrad Fitzpatrick    void showStrictModeViolation(boolean on);
1606804433b0af50f33a338307ae8ddb50bc49e886bBrad Fitzpatrick
161c1a968a8ed45181312f7d4bcdbba0cc8ddc201baBrad Fitzpatrick    // Proxy to set the system property for whether the flashing
162c1a968a8ed45181312f7d4bcdbba0cc8ddc201baBrad Fitzpatrick    // should be enabled.  The 'enabled' value is null or blank for
163c1a968a8ed45181312f7d4bcdbba0cc8ddc201baBrad Fitzpatrick    // the system default (differs per build variant) or any valid
164c1a968a8ed45181312f7d4bcdbba0cc8ddc201baBrad Fitzpatrick    // boolean string as parsed by SystemProperties.getBoolean().
165c1a968a8ed45181312f7d4bcdbba0cc8ddc201baBrad Fitzpatrick    void setStrictModeVisualIndicatorPreference(String enabled);
166c1a968a8ed45181312f7d4bcdbba0cc8ddc201baBrad Fitzpatrick
1679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // These can only be called with the SET_ORIENTATION permission.
1689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
16901a98ddbdfbaf1f0d2bc602537e6e314364902a3Jeff Brown     * Update the current screen rotation based on the current state of
17001a98ddbdfbaf1f0d2bc602537e6e314364902a3Jeff Brown     * the world.
1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param alwaysSendConfiguration Flag to force a new configuration to
1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * be evaluated.  This can be used when there are other parameters in
1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * configuration that are changing.
1749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
17501a98ddbdfbaf1f0d2bc602537e6e314364902a3Jeff Brown    void updateRotation(boolean alwaysSendConfiguration);
1769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Retrieve the current screen orientation, constants as per
1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.view.Surface}.
1809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int getRotation();
1829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Watch the rotation of the screen.  Returns the current rotation,
1859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * calls back when it changes.
1869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int watchRotation(IRotationWatcher watcher);
188b73617de462579f7c12c25a4c2747c576f00f6a2Daniel Sandler
189dfee59afb3e4cdcde38f6338f9360655de76da92Adam Powell    /**
190dfee59afb3e4cdcde38f6338f9360655de76da92Adam Powell     * Determine the preferred edge of the screen to pin the compact options menu against.
191dfee59afb3e4cdcde38f6338f9360655de76da92Adam Powell     * @return a Gravity value for the options menu panel
192dfee59afb3e4cdcde38f6338f9360655de76da92Adam Powell     * @hide
193dfee59afb3e4cdcde38f6338f9360655de76da92Adam Powell     */
194dfee59afb3e4cdcde38f6338f9360655de76da92Adam Powell    int getPreferredOptionsPanelGravity();
195dfee59afb3e4cdcde38f6338f9360655de76da92Adam Powell
196b73617de462579f7c12c25a4c2747c576f00f6a2Daniel Sandler	/**
1974dfce20cac7492882d366d053006795aefad59daJeff Brown	 * Lock the device orientation to the specified rotation, or to the
1984dfce20cac7492882d366d053006795aefad59daJeff Brown	 * current rotation if -1.  Sensor input will be ignored until
1994dfce20cac7492882d366d053006795aefad59daJeff Brown	 * thawRotation() is called.
200b73617de462579f7c12c25a4c2747c576f00f6a2Daniel Sandler	 * @hide
201b73617de462579f7c12c25a4c2747c576f00f6a2Daniel Sandler	 */
2024dfce20cac7492882d366d053006795aefad59daJeff Brown	void freezeRotation(int rotation);
203b73617de462579f7c12c25a4c2747c576f00f6a2Daniel Sandler
204b73617de462579f7c12c25a4c2747c576f00f6a2Daniel Sandler	/**
205b73617de462579f7c12c25a4c2747c576f00f6a2Daniel Sandler	 * Release the orientation lock imposed by freezeRotation().
206b73617de462579f7c12c25a4c2747c576f00f6a2Daniel Sandler	 * @hide
207b73617de462579f7c12c25a4c2747c576f00f6a2Daniel Sandler	 */
208b73617de462579f7c12c25a4c2747c576f00f6a2Daniel Sandler	void thawRotation();
2090aae2d4e0075fd699cf40b26dca0eb2c3b3e37d2Dianne Hackborn
2100aae2d4e0075fd699cf40b26dca0eb2c3b3e37d2Dianne Hackborn	/**
2110aae2d4e0075fd699cf40b26dca0eb2c3b3e37d2Dianne Hackborn	 * Create a screenshot of the applications currently displayed.
2120aae2d4e0075fd699cf40b26dca0eb2c3b3e37d2Dianne Hackborn	 */
213d2835935d2df8be70d1b37d3ef3b2fe0155b3422Dianne Hackborn	Bitmap screenshotApplications(IBinder appToken, int maxWidth, int maxHeight);
214664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato
215664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato    /**
216664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato     * Called by the status bar to notify Views of changes to System UI visiblity.
217664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato     */
218664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato    void statusBarVisibilityChanged(int visibility);
2191a84fd1fb7a51f3fe4f8865e1cdd09f3490f696cJeff Brown
2201a84fd1fb7a51f3fe4f8865e1cdd09f3490f696cJeff Brown    /**
2211a84fd1fb7a51f3fe4f8865e1cdd09f3490f696cJeff Brown     * Called by the settings application to temporarily set the pointer speed.
2221a84fd1fb7a51f3fe4f8865e1cdd09f3490f696cJeff Brown     */
2231a84fd1fb7a51f3fe4f8865e1cdd09f3490f696cJeff Brown    void setPointerSpeed(int speed);
22429aae6f36e565b8f2a99f2193597b964bb800ee8Dianne Hackborn
22529aae6f36e565b8f2a99f2193597b964bb800ee8Dianne Hackborn    /**
22638e29a61d0c87fe3e391d24e2eb11dd1800d107dDianne Hackborn     * Block until the given window has been drawn to the screen.
22729aae6f36e565b8f2a99f2193597b964bb800ee8Dianne Hackborn     */
22838e29a61d0c87fe3e391d24e2eb11dd1800d107dDianne Hackborn    void waitForWindowDrawn(IBinder token, in IRemoteCallback callback);
2290c4ccff36930ff4f0292b94ad51e164c9fa060a3Daniel Sandler
2300c4ccff36930ff4f0292b94ad51e164c9fa060a3Daniel Sandler    /**
2310c4ccff36930ff4f0292b94ad51e164c9fa060a3Daniel Sandler     * Device has a software navigation bar (separate from the status bar).
2320c4ccff36930ff4f0292b94ad51e164c9fa060a3Daniel Sandler     */
2330c4ccff36930ff4f0292b94ad51e164c9fa060a3Daniel Sandler    boolean hasNavigationBar();
23493c518e4f8abd98f87cda1712b30a5a86cfa60ddJim Miller
23593c518e4f8abd98f87cda1712b30a5a86cfa60ddJim Miller    /**
23693c518e4f8abd98f87cda1712b30a5a86cfa60ddJim Miller     * Lock the device immediately.
23793c518e4f8abd98f87cda1712b30a5a86cfa60ddJim Miller     */
23893c518e4f8abd98f87cda1712b30a5a86cfa60ddJim Miller    void lockNow();
2399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
240