IWindowManager.aidl revision 9066cfe9886ac131c34d59ed0e2d287b0e3c0087
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;
299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.view.MotionEvent;
309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/**
329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * System private interface to the window manager.
339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@hide}
359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectinterface IWindowManager
379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project{
389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * ===== NOTICE =====
409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The first three methods must remain the first three methods. Scripts
419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * and tools rely on their transaction number to work properly.
429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // This is used for debugging
449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean startViewServer(int port);   // Transaction #1
459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean stopViewServer();            // Transaction #2
469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean isViewServerRunning();       // Transaction #3
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    IWindowSession openSession(in IInputMethodClient client,
499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            in IInputContext inputContext);
509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean inputMethodClientHasFocus(IInputMethodClient client);
519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // These can only be called when injecting events to your own window,
539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // or by holding the INJECT_EVENTS permission.
549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean injectKeyEvent(in KeyEvent ev, boolean sync);
559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean injectPointerEvent(in MotionEvent ev, boolean sync);
569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean injectTrackballEvent(in MotionEvent ev, boolean sync);
579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // These can only be called when holding the MANAGE_APP_TOKENS permission.
599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void pauseKeyDispatching(IBinder token);
609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void resumeKeyDispatching(IBinder token);
619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setEventDispatching(boolean enabled);
629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void addAppToken(int addPos, IApplicationToken token,
639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int groupId, int requestedOrientation, boolean fullscreen);
649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setAppGroupId(IBinder token, int groupId);
659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    Configuration updateOrientationFromAppTokens(IBinder freezeThisOneIfNeeded);
669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setAppOrientation(IApplicationToken token, int requestedOrientation);
679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int getAppOrientation(IApplicationToken token);
689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setFocusedApp(IBinder token, boolean moveFocusNow);
699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void prepareAppTransition(int transit);
709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int getPendingAppTransition();
719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void executeAppTransition();
729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setAppStartingWindow(IBinder token, String pkg, int theme,
739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            CharSequence nonLocalizedLabel, int labelRes,
749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int icon, IBinder transferFrom, boolean createIfNeeded);
759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setAppWillBeHidden(IBinder token);
769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setAppVisibility(IBinder token, boolean visible);
779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void startAppFreezingScreen(IBinder token, int configChanges);
789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void stopAppFreezingScreen(IBinder token, boolean force);
799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void removeAppToken(IBinder token);
809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void moveAppToken(int index, IBinder token);
819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void moveAppTokensToTop(in List<IBinder> tokens);
829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void moveAppTokensToBottom(in List<IBinder> tokens);
839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void addWindowToken(IBinder token, int type);
849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void removeWindowToken(IBinder token);
859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // these require DISABLE_KEYGUARD permission
879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void disableKeyguard(IBinder token, String tag);
889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void reenableKeyguard(IBinder token);
899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void exitKeyguardSecurely(IOnKeyguardExitResult callback);
909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean inKeyguardRestrictedInputMode();
919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // These can only be called with the SET_ANIMATON_SCALE permission.
949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    float getAnimationScale(int which);
959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    float[] getAnimationScales();
969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setAnimationScale(int which, float scale);
979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setAnimationScales(in float[] scales);
989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // These require the READ_INPUT_STATE permission.
1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int getSwitchState(int sw);
1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int getSwitchStateForDevice(int devid, int sw);
1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int getScancodeState(int sw);
1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int getScancodeStateForDevice(int devid, int sw);
1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int getKeycodeState(int sw);
1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int getKeycodeStateForDevice(int devid, int sw);
1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // Report whether the hardware supports the given keys; returns true if successful
1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    boolean hasKeys(in int[] keycodes, inout boolean[] keyExists);
1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // For testing
1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setInTouchMode(boolean showFocus);
1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // These can only be called with the SET_ORIENTATION permission.
1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Change the current screen rotation, constants as per
1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.view.Surface}.
1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param rotation the intended rotation.
1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param alwaysSendConfiguration Flag to force a new configuration to
1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * be evaluated.  This can be used when there are other parameters in
1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * configuration that are changing.
1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.view.Surface}.
1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    void setRotation(int rotation, boolean alwaysSendConfiguration);
1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Retrieve the current screen orientation, constants as per
1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.view.Surface}.
1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int getRotation();
1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Watch the rotation of the screen.  Returns the current rotation,
1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * calls back when it changes.
1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    int watchRotation(IRotationWatcher watcher);
1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
137