IWindowManager.aidl revision 4eeb4f664ac6b5901a8e874dcf70c0382295f792
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;
301cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganovimport android.view.IDisplayContentChangeListener;
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;
369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.view.MotionEvent;
37a41ca77fabe1c7ad12ebb9b69b9e786c07d49fa0Jeff Brownimport android.view.InputChannel;
388d60866e2100db70ecf0502c14768a384514d7e9Jeff Brownimport android.view.InputDevice;
391cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganovimport android.view.IInputFilter;
401cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganovimport android.view.WindowInfo;
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
6343aa15912891930833edfc101615a9c881de54a1Jeff Brown    void setForcedDisplaySize(int displayId, int width, int height);
6459c009776dae5ccbdfb93d7151ff2065ca049dc3Craig Mautner    void clearForcedDisplaySize(int displayId);
65dde331cebd87982faded6818ad5f9927ff994c96Dianne Hackborn    void setForcedDisplayDensity(int displayId, int density);
66dde331cebd87982faded6818ad5f9927ff994c96Dianne Hackborn    void clearForcedDisplayDensity(int displayId);
677916ac65dc492e4e1431879875c77d7121fbf82eDianne Hackborn
68f87d19621dc2a30232bba1f51862a0b671eb9729Dianne Hackborn    // Is the device configured to have a full system bar for larger screens?
69f87d19621dc2a30232bba1f51862a0b671eb9729Dianne Hackborn    boolean hasSystemNavBar();
7081e56d535c853d73ff537357da5b935f51cb779dDianne Hackborn
719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // These can only be called when holding the MANAGE_APP_TOKENS permission.
729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void pauseKeyDispatching(IBinder token);
739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void resumeKeyDispatching(IBinder token);
749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setEventDispatching(boolean enabled);
75e4fbd6235c8d1c5b0ed4883ec275dd3fc9c919fbDianne Hackborn    void addWindowToken(IBinder token, int type);
76e4fbd6235c8d1c5b0ed4883ec275dd3fc9c919fbDianne Hackborn    void removeWindowToken(IBinder token);
779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void addAppToken(int addPos, IApplicationToken token,
785962b12bedc4a1d0354816c1cd6b06ba04f6d807Craig Mautner            int groupId, int requestedOrientation, boolean fullscreen, boolean showWhenLocked);
799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setAppGroupId(IBinder token, int groupId);
809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setAppOrientation(IApplicationToken token, int requestedOrientation);
819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int getAppOrientation(IApplicationToken token);
829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setFocusedApp(IBinder token, boolean moveFocusNow);
837da6ac33a9de82be52e22846d5f22d502452854cDianne Hackborn    void prepareAppTransition(int transit, boolean alwaysKeepCurrent);
849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int getPendingAppTransition();
8584375876fcef73c5fa9c3de205c7db908ee14e15Dianne Hackborn    void overridePendingAppTransition(String packageName, int enterAnim, int exitAnim,
8684375876fcef73c5fa9c3de205c7db908ee14e15Dianne Hackborn            IRemoteCallback startedCallback);
87eabfb3a36e9469c5e219f92b39b7200104319185Dianne Hackborn    void overridePendingAppTransitionScaleUp(int startX, int startY, int startWidth,
88eabfb3a36e9469c5e219f92b39b7200104319185Dianne Hackborn            int startHeight);
898078d8c8a282ca81344febe7256f63b1e805e3aaDianne Hackborn    void overridePendingAppTransitionThumb(in Bitmap srcThumb, int startX, int startY,
90832cb229cd748505c90f74ae8154fc3557d61a73Michael Jurka            IRemoteCallback startedCallback, boolean scaleUp);
919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void executeAppTransition();
929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setAppStartingWindow(IBinder token, String pkg, int theme,
932f0b17573d4324832f7a20402a3d2b5920bc4866Dianne Hackborn            in CompatibilityInfo compatInfo, CharSequence nonLocalizedLabel, int labelRes,
947eec10e6c99c30d5ee061fec08ac89ad4254ac32Dianne Hackborn            int icon, int windowFlags, IBinder transferFrom, boolean createIfNeeded);
959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setAppWillBeHidden(IBinder token);
969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setAppVisibility(IBinder token, boolean visible);
979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void startAppFreezingScreen(IBinder token, int configChanges);
989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void stopAppFreezingScreen(IBinder token, boolean force);
999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void removeAppToken(IBinder token);
1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void moveAppToken(int index, IBinder token);
1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void moveAppTokensToTop(in List<IBinder> tokens);
1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void moveAppTokensToBottom(in List<IBinder> tokens);
1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
104e36d6e277e49475076b7872d36ea6a5c5b996e9dDianne Hackborn    // Re-evaluate the current orientation from the caller's state.
105e36d6e277e49475076b7872d36ea6a5c5b996e9dDianne Hackborn    // If there is a change, the new Configuration is returned and the
106e36d6e277e49475076b7872d36ea6a5c5b996e9dDianne Hackborn    // caller must call setNewConfiguration() sometime later.
107e36d6e277e49475076b7872d36ea6a5c5b996e9dDianne Hackborn    Configuration updateOrientationFromAppTokens(in Configuration currentConfig,
108e36d6e277e49475076b7872d36ea6a5c5b996e9dDianne Hackborn            IBinder freezeThisOneIfNeeded);
109e36d6e277e49475076b7872d36ea6a5c5b996e9dDianne Hackborn    void setNewConfiguration(in Configuration config);
1104eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller
1119d9ece3c1e16001b63244459cdf4b428f4272d2eDianne Hackborn    void startFreezingScreen(int exitAnim, int enterAnim);
1129d9ece3c1e16001b63244459cdf4b428f4272d2eDianne Hackborn    void stopFreezingScreen();
1139d9ece3c1e16001b63244459cdf4b428f4272d2eDianne 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);
1244eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller
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);
1304eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller
1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // For testing
1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setInTouchMode(boolean showFocus);
1336804433b0af50f33a338307ae8ddb50bc49e886bBrad Fitzpatrick
1346804433b0af50f33a338307ae8ddb50bc49e886bBrad Fitzpatrick    // For StrictMode flashing a red border on violations from the UI
1356804433b0af50f33a338307ae8ddb50bc49e886bBrad Fitzpatrick    // thread.  The uid/pid is implicit from the Binder call, and the Window
1366804433b0af50f33a338307ae8ddb50bc49e886bBrad Fitzpatrick    // Manager uses that to determine whether or not the red border should
1376804433b0af50f33a338307ae8ddb50bc49e886bBrad Fitzpatrick    // actually be shown.  (it will be ignored that pid doesn't have windows
1386804433b0af50f33a338307ae8ddb50bc49e886bBrad Fitzpatrick    // on screen)
1396804433b0af50f33a338307ae8ddb50bc49e886bBrad Fitzpatrick    void showStrictModeViolation(boolean on);
1406804433b0af50f33a338307ae8ddb50bc49e886bBrad Fitzpatrick
141c1a968a8ed45181312f7d4bcdbba0cc8ddc201baBrad Fitzpatrick    // Proxy to set the system property for whether the flashing
142c1a968a8ed45181312f7d4bcdbba0cc8ddc201baBrad Fitzpatrick    // should be enabled.  The 'enabled' value is null or blank for
143c1a968a8ed45181312f7d4bcdbba0cc8ddc201baBrad Fitzpatrick    // the system default (differs per build variant) or any valid
144c1a968a8ed45181312f7d4bcdbba0cc8ddc201baBrad Fitzpatrick    // boolean string as parsed by SystemProperties.getBoolean().
145c1a968a8ed45181312f7d4bcdbba0cc8ddc201baBrad Fitzpatrick    void setStrictModeVisualIndicatorPreference(String enabled);
146c1a968a8ed45181312f7d4bcdbba0cc8ddc201baBrad Fitzpatrick
1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // These can only be called with the SET_ORIENTATION permission.
1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
14901a98ddbdfbaf1f0d2bc602537e6e314364902a3Jeff Brown     * Update the current screen rotation based on the current state of
15001a98ddbdfbaf1f0d2bc602537e6e314364902a3Jeff Brown     * the world.
1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param alwaysSendConfiguration Flag to force a new configuration to
1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * be evaluated.  This can be used when there are other parameters in
1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * configuration that are changing.
154f87d19621dc2a30232bba1f51862a0b671eb9729Dianne Hackborn     * @param forceRelayout If true, the window manager will always do a relayout
155f87d19621dc2a30232bba1f51862a0b671eb9729Dianne Hackborn     * of its windows even if the rotation hasn't changed.
1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
157f87d19621dc2a30232bba1f51862a0b671eb9729Dianne Hackborn    void updateRotation(boolean alwaysSendConfiguration, boolean forceRelayout);
1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Retrieve the current screen orientation, constants as per
1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.view.Surface}.
1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int getRotation();
1644eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller
1659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Watch the rotation of the screen.  Returns the current rotation,
1679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * calls back when it changes.
1689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int watchRotation(IRotationWatcher watcher);
170b73617de462579f7c12c25a4c2747c576f00f6a2Daniel Sandler
171dfee59afb3e4cdcde38f6338f9360655de76da92Adam Powell    /**
172dfee59afb3e4cdcde38f6338f9360655de76da92Adam Powell     * Determine the preferred edge of the screen to pin the compact options menu against.
173dfee59afb3e4cdcde38f6338f9360655de76da92Adam Powell     * @return a Gravity value for the options menu panel
174dfee59afb3e4cdcde38f6338f9360655de76da92Adam Powell     * @hide
175dfee59afb3e4cdcde38f6338f9360655de76da92Adam Powell     */
176dfee59afb3e4cdcde38f6338f9360655de76da92Adam Powell    int getPreferredOptionsPanelGravity();
177dfee59afb3e4cdcde38f6338f9360655de76da92Adam Powell
1784eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller    /**
1794eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller     * Lock the device orientation to the specified rotation, or to the
1804eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller     * current rotation if -1.  Sensor input will be ignored until
1814eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller     * thawRotation() is called.
1824eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller     * @hide
1834eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller     */
1844eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller    void freezeRotation(int rotation);
1854eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller
1864eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller    /**
1874eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller     * Release the orientation lock imposed by freezeRotation().
1884eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller     * @hide
1894eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller     */
1904eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller    void thawRotation();
1914eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller
1924eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller    /**
1934eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller     * Create a screenshot of the applications currently displayed.
1944eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller     */
1954eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller    Bitmap screenshotApplications(IBinder appToken, int displayId, int maxWidth, int maxHeight);
196664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato
197664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato    /**
198664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato     * Called by the status bar to notify Views of changes to System UI visiblity.
199664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato     */
200664644d9e012aa2a28ac96f305b1ce6499ec8806Joe Onorato    void statusBarVisibilityChanged(int visibility);
2011a84fd1fb7a51f3fe4f8865e1cdd09f3490f696cJeff Brown
2021a84fd1fb7a51f3fe4f8865e1cdd09f3490f696cJeff Brown    /**
20338e29a61d0c87fe3e391d24e2eb11dd1800d107dDianne Hackborn     * Block until the given window has been drawn to the screen.
204c38c9be031ddad5cf551b55458889f11e01dc5b2Jeff Brown     * Returns true if really waiting, false if the window does not exist.
20529aae6f36e565b8f2a99f2193597b964bb800ee8Dianne Hackborn     */
206c38c9be031ddad5cf551b55458889f11e01dc5b2Jeff Brown    boolean waitForWindowDrawn(IBinder token, in IRemoteCallback callback);
2070c4ccff36930ff4f0292b94ad51e164c9fa060a3Daniel Sandler
2080c4ccff36930ff4f0292b94ad51e164c9fa060a3Daniel Sandler    /**
2090c4ccff36930ff4f0292b94ad51e164c9fa060a3Daniel Sandler     * Device has a software navigation bar (separate from the status bar).
2100c4ccff36930ff4f0292b94ad51e164c9fa060a3Daniel Sandler     */
2110c4ccff36930ff4f0292b94ad51e164c9fa060a3Daniel Sandler    boolean hasNavigationBar();
21293c518e4f8abd98f87cda1712b30a5a86cfa60ddJim Miller
21393c518e4f8abd98f87cda1712b30a5a86cfa60ddJim Miller    /**
214f752202bee88e31ce765483ba2efa6999ae9c9adAdam Cohen     * Lock the device immediately with the specified options (can be null).
21593c518e4f8abd98f87cda1712b30a5a86cfa60ddJim Miller     */
216f752202bee88e31ce765483ba2efa6999ae9c9adAdam Cohen    void lockNow(in Bundle options);
217c9c9a48e7bafae63cb35a9aa69255e80aba83988Svetoslav Ganov
218c9c9a48e7bafae63cb35a9aa69255e80aba83988Svetoslav Ganov    /**
219c9c9a48e7bafae63cb35a9aa69255e80aba83988Svetoslav Ganov     * Gets the token for the focused window.
220c9c9a48e7bafae63cb35a9aa69255e80aba83988Svetoslav Ganov     */
221c9c9a48e7bafae63cb35a9aa69255e80aba83988Svetoslav Ganov    IBinder getFocusedWindowToken();
222c9c9a48e7bafae63cb35a9aa69255e80aba83988Svetoslav Ganov
223c9c9a48e7bafae63cb35a9aa69255e80aba83988Svetoslav Ganov    /**
224c9c9a48e7bafae63cb35a9aa69255e80aba83988Svetoslav Ganov     * Gets the compatibility scale of e window given its token.
225c9c9a48e7bafae63cb35a9aa69255e80aba83988Svetoslav Ganov     */
226c9c9a48e7bafae63cb35a9aa69255e80aba83988Svetoslav Ganov    float getWindowCompatibilityScale(IBinder windowToken);
227c9c9a48e7bafae63cb35a9aa69255e80aba83988Svetoslav Ganov
228c9c9a48e7bafae63cb35a9aa69255e80aba83988Svetoslav Ganov    /**
229c9c9a48e7bafae63cb35a9aa69255e80aba83988Svetoslav Ganov     * Sets an input filter for manipulating the input event stream.
230c9c9a48e7bafae63cb35a9aa69255e80aba83988Svetoslav Ganov     */
231c9c9a48e7bafae63cb35a9aa69255e80aba83988Svetoslav Ganov    void setInputFilter(in IInputFilter filter);
2321cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov
2331cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov    /**
2341cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov     * Sets the scale and offset for implementing accessibility magnification.
2351cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov     */
2361cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov    void magnifyDisplay(int dipslayId, float scale, float offsetX, float offsetY);
2371cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov
2381cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov    /**
2391cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov     * Adds a listener for display content changes.
2401cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov     */
2411cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov    void addDisplayContentChangeListener(int displayId, IDisplayContentChangeListener listener);
2421cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov
2431cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov    /**
2441cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov     * Removes a listener for display content changes.
2451cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov     */
2461cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov    void removeDisplayContentChangeListener(int displayId, IDisplayContentChangeListener listener);
2471cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov
2481cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov    /**
2491cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov     * Gets the info for a window given its token.
2501cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov     */
2511cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov    WindowInfo getWindowInfo(IBinder token);
2521cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov
2531cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov    /**
2541cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov     * Gets the infos for all visible windows.
2551cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov     */
2561cf70bbf96930662cab0e699d70b62865766ff52Svetoslav Ganov    void getVisibleWindowsForDisplay(int displayId, out List<WindowInfo> outInfos);
257bfec0a8616bc197ee3b7b71be6fed1939d0c3c4dJim Miller
258bfec0a8616bc197ee3b7b71be6fed1939d0c3c4dJim Miller    /**
259bfec0a8616bc197ee3b7b71be6fed1939d0c3c4dJim Miller     * Device is in safe mode.
260bfec0a8616bc197ee3b7b71be6fed1939d0c3c4dJim Miller     */
261bfec0a8616bc197ee3b7b71be6fed1939d0c3c4dJim Miller    boolean isSafeModeEnabled();
2624eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller
2634eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller    /**
2644eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller     * Tell keyguard to show the assistant (Intent.ACTION_ASSIST) after asking for the user's
2654eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller     * credentials.
2664eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller     */
2674eeb4f664ac6b5901a8e874dcf70c0382295f792Jim Miller    void showAssistant();
2689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
269