WindowManager.java revision 611fae4c39edbeb23b53f789a0219c539cf32fa6
19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/*
29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 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 android.content.pm.ActivityInfo;
209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.graphics.PixelFormat;
219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.IBinder;
229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Parcel;
239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Parcelable;
249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.text.TextUtils;
259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.util.Log;
269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/**
299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * The interface that apps use to talk to the window manager.
309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>
319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Use <code>Context.getSystemService(Context.WINDOW_SERVICE)</code> to get one of these.
329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see android.content.Context#getSystemService
349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * @see android.content.Context#WINDOW_SERVICE
359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic interface WindowManager extends ViewManager {
379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Exception that is thrown when trying to add view whose
399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link WindowManager.LayoutParams} {@link WindowManager.LayoutParams#token}
409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * is invalid.
419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static class BadTokenException extends RuntimeException {
439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public BadTokenException() {
449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public BadTokenException(String name) {
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            super(name);
489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Use this method to get the default Display object.
539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return default Display object
559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public Display getDefaultDisplay();
579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Special variation of {@link #removeView} that immediately invokes
609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * the given view hierarchy's {@link View#onDetachedFromWindow()
619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * View.onDetachedFromWindow()} methods before returning.  This is not
629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * for normal applications; using it correctly requires great care.
639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @param view The view to be removed.
659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void removeViewImmediate(View view);
679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static class LayoutParams extends ViewGroup.LayoutParams
699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            implements Parcelable {
709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * X position for this window.  With the default gravity it is ignored.
729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * When using {@link Gravity#LEFT} or {@link Gravity#RIGHT} it provides
739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * an offset from the given edge.
749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public int x;
769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Y position for this window.  With the default gravity it is ignored.
799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * When using {@link Gravity#TOP} or {@link Gravity#BOTTOM} it provides
809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * an offset from the given edge.
819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public int y;
839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Indicates how much of the extra space will be allocated horizontally
869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * to the view associated with these LayoutParams. Specify 0 if the view
879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * should not be stretched. Otherwise the extra pixels will be pro-rated
889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * among all views whose weight is greater than 0.
899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public float horizontalWeight;
919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Indicates how much of the extra space will be allocated vertically
949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * to the view associated with these LayoutParams. Specify 0 if the view
959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * should not be stretched. Otherwise the extra pixels will be pro-rated
969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * among all views whose weight is greater than 0.
979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public float verticalWeight;
999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * The general type of window.  There are three main classes of
1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * window types:
1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * <ul>
1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * <li> <strong>Application windows</strong> (ranging from
1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * {@link #FIRST_APPLICATION_WINDOW} to
1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * {@link #LAST_APPLICATION_WINDOW}) are normal top-level application
1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * windows.  For these types of windows, the {@link #token} must be
1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * set to the token of the activity they are a part of (this will
1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * normally be done for you if {@link #token} is null).
1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * <li> <strong>Sub-windows</strong> (ranging from
1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * {@link #FIRST_SUB_WINDOW} to
1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * {@link #LAST_SUB_WINDOW}) are associated with another top-level
1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * window.  For these types of windows, the {@link #token} must be
1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * the token of the window it is attached to.
1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * <li> <strong>System windows</strong> (ranging from
1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * {@link #FIRST_SYSTEM_WINDOW} to
1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * {@link #LAST_SYSTEM_WINDOW}) are special types of windows for
1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * use by the system for specific purposes.  They should not normally
1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * be used by applications, and a special permission is required
1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * to use them.
1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * </ul>
1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @see #TYPE_BASE_APPLICATION
1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @see #TYPE_APPLICATION
1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @see #TYPE_APPLICATION_STARTING
1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @see #TYPE_APPLICATION_PANEL
1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @see #TYPE_APPLICATION_MEDIA
1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @see #TYPE_APPLICATION_SUB_PANEL
1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @see #TYPE_APPLICATION_ATTACHED_DIALOG
1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @see #TYPE_STATUS_BAR
1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @see #TYPE_SEARCH_BAR
1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @see #TYPE_PHONE
1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @see #TYPE_SYSTEM_ALERT
1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @see #TYPE_KEYGUARD
1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @see #TYPE_TOAST
1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @see #TYPE_SYSTEM_OVERLAY
1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @see #TYPE_PRIORITY_PHONE
1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @see #TYPE_STATUS_BAR_PANEL
1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @see #TYPE_SYSTEM_DIALOG
1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @see #TYPE_KEYGUARD_DIALOG
1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @see #TYPE_SYSTEM_ERROR
1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @see #TYPE_INPUT_METHOD
1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @see #TYPE_INPUT_METHOD_DIALOG
1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
1458f2bd4328a7cc9dd70e597b7cc011be22c6ca566Joe Onorato        @ViewDebug.ExportedProperty(mapping = {
1468f2bd4328a7cc9dd70e597b7cc011be22c6ca566Joe Onorato            @ViewDebug.IntToString(from = TYPE_BASE_APPLICATION, to = "TYPE_BASE_APPLICATION"),
1478f2bd4328a7cc9dd70e597b7cc011be22c6ca566Joe Onorato            @ViewDebug.IntToString(from = TYPE_APPLICATION, to = "TYPE_APPLICATION"),
1488f2bd4328a7cc9dd70e597b7cc011be22c6ca566Joe Onorato            @ViewDebug.IntToString(from = TYPE_APPLICATION_STARTING, to = "TYPE_APPLICATION_STARTING"),
1498f2bd4328a7cc9dd70e597b7cc011be22c6ca566Joe Onorato            @ViewDebug.IntToString(from = TYPE_APPLICATION_PANEL, to = "TYPE_APPLICATION_PANEL"),
1508f2bd4328a7cc9dd70e597b7cc011be22c6ca566Joe Onorato            @ViewDebug.IntToString(from = TYPE_APPLICATION_MEDIA, to = "TYPE_APPLICATION_MEDIA"),
1518f2bd4328a7cc9dd70e597b7cc011be22c6ca566Joe Onorato            @ViewDebug.IntToString(from = TYPE_APPLICATION_SUB_PANEL, to = "TYPE_APPLICATION_SUB_PANEL"),
1528f2bd4328a7cc9dd70e597b7cc011be22c6ca566Joe Onorato            @ViewDebug.IntToString(from = TYPE_APPLICATION_ATTACHED_DIALOG, to = "TYPE_APPLICATION_ATTACHED_DIALOG"),
1538f2bd4328a7cc9dd70e597b7cc011be22c6ca566Joe Onorato            @ViewDebug.IntToString(from = TYPE_STATUS_BAR, to = "TYPE_STATUS_BAR"),
1548f2bd4328a7cc9dd70e597b7cc011be22c6ca566Joe Onorato            @ViewDebug.IntToString(from = TYPE_SEARCH_BAR, to = "TYPE_SEARCH_BAR"),
1558f2bd4328a7cc9dd70e597b7cc011be22c6ca566Joe Onorato            @ViewDebug.IntToString(from = TYPE_PHONE, to = "TYPE_PHONE"),
1568f2bd4328a7cc9dd70e597b7cc011be22c6ca566Joe Onorato            @ViewDebug.IntToString(from = TYPE_SYSTEM_ALERT, to = "TYPE_SYSTEM_ALERT"),
1578f2bd4328a7cc9dd70e597b7cc011be22c6ca566Joe Onorato            @ViewDebug.IntToString(from = TYPE_KEYGUARD, to = "TYPE_KEYGUARD"),
1588f2bd4328a7cc9dd70e597b7cc011be22c6ca566Joe Onorato            @ViewDebug.IntToString(from = TYPE_TOAST, to = "TYPE_TOAST"),
1598f2bd4328a7cc9dd70e597b7cc011be22c6ca566Joe Onorato            @ViewDebug.IntToString(from = TYPE_SYSTEM_OVERLAY, to = "TYPE_SYSTEM_OVERLAY"),
1608f2bd4328a7cc9dd70e597b7cc011be22c6ca566Joe Onorato            @ViewDebug.IntToString(from = TYPE_PRIORITY_PHONE, to = "TYPE_PRIORITY_PHONE"),
1618f2bd4328a7cc9dd70e597b7cc011be22c6ca566Joe Onorato            @ViewDebug.IntToString(from = TYPE_STATUS_BAR_PANEL, to = "TYPE_STATUS_BAR_PANEL"),
1628f2bd4328a7cc9dd70e597b7cc011be22c6ca566Joe Onorato            @ViewDebug.IntToString(from = TYPE_SYSTEM_DIALOG, to = "TYPE_SYSTEM_DIALOG"),
1638f2bd4328a7cc9dd70e597b7cc011be22c6ca566Joe Onorato            @ViewDebug.IntToString(from = TYPE_KEYGUARD_DIALOG, to = "TYPE_KEYGUARD_DIALOG"),
1648f2bd4328a7cc9dd70e597b7cc011be22c6ca566Joe Onorato            @ViewDebug.IntToString(from = TYPE_SYSTEM_ERROR, to = "TYPE_SYSTEM_ERROR"),
1658f2bd4328a7cc9dd70e597b7cc011be22c6ca566Joe Onorato            @ViewDebug.IntToString(from = TYPE_INPUT_METHOD, to = "TYPE_INPUT_METHOD"),
1668f2bd4328a7cc9dd70e597b7cc011be22c6ca566Joe Onorato            @ViewDebug.IntToString(from = TYPE_INPUT_METHOD_DIALOG, to = "TYPE_INPUT_METHOD_DIALOG")
1678f2bd4328a7cc9dd70e597b7cc011be22c6ca566Joe Onorato        })
1689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public int type;
1699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Start of window types that represent normal application windows.
1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int FIRST_APPLICATION_WINDOW = 1;
1749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
1769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Window type: an application window that serves as the "base" window
1779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * of the overall application; all other application windows will
1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * appear on top of it.
1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
1809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int TYPE_BASE_APPLICATION   = 1;
1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
1839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Window type: a normal application window.  The {@link #token} must be
1849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * an Activity token identifying who the window belongs to.
1859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
1869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int TYPE_APPLICATION        = 2;
1879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
1899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Window type: special application window that is displayed while the
1909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * application is starting.  Not for use by applications themselves;
1919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * this is used by the system to display something until the
1929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * application can show its own windows.
1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int TYPE_APPLICATION_STARTING = 3;
1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
1979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * End of types of application windows.
1989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
1999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int LAST_APPLICATION_WINDOW = 99;
2009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
2029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Start of types of sub-windows.  The {@link #token} of these windows
2039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * must be set to the window they are attached to.  These types of
2049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * windows are kept next to their attached window in Z-order, and their
2059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * coordinate space is relative to their attached window.
2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
2079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int FIRST_SUB_WINDOW        = 1000;
2089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
2109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Window type: a panel on top of an application window.  These windows
2119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * appear on top of their attached window.
2129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
2139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int TYPE_APPLICATION_PANEL  = FIRST_SUB_WINDOW;
2149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
2169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Window type: window for showing media (e.g. video).  These windows
2179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * are displayed behind their attached window.
2189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
2199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int TYPE_APPLICATION_MEDIA  = FIRST_SUB_WINDOW+1;
2209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
2229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Window type: a sub-panel on top of an application window.  These
2239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * windows are displayed on top their attached window and any
2249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * {@link #TYPE_APPLICATION_PANEL} panels.
2259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
2269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int TYPE_APPLICATION_SUB_PANEL = FIRST_SUB_WINDOW+2;
2279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /** Window type: like {@link #TYPE_APPLICATION_PANEL}, but layout
2299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * of the window happens as that of a top-level window, <em>not</em>
2309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * as a child of its container.
2319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
2329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int TYPE_APPLICATION_ATTACHED_DIALOG = FIRST_SUB_WINDOW+3;
2339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
235c4d5d02667af6989a3121072871f6a4b1e68b594Dianne Hackborn         * Window type: window for showing overlays on top of media windows.
236c4d5d02667af6989a3121072871f6a4b1e68b594Dianne Hackborn         * These windows are displayed between TYPE_APPLICATION_MEDIA and the
237c4d5d02667af6989a3121072871f6a4b1e68b594Dianne Hackborn         * application window.  They should be translucent to be useful.  This
238c4d5d02667af6989a3121072871f6a4b1e68b594Dianne Hackborn         * is a big ugly hack so:
239c4d5d02667af6989a3121072871f6a4b1e68b594Dianne Hackborn         * @hide
240c4d5d02667af6989a3121072871f6a4b1e68b594Dianne Hackborn         */
241c4d5d02667af6989a3121072871f6a4b1e68b594Dianne Hackborn        public static final int TYPE_APPLICATION_MEDIA_OVERLAY  = FIRST_SUB_WINDOW+4;
242c4d5d02667af6989a3121072871f6a4b1e68b594Dianne Hackborn
243c4d5d02667af6989a3121072871f6a4b1e68b594Dianne Hackborn        /**
2449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * End of types of sub-windows.
2459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
2469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int LAST_SUB_WINDOW         = 1999;
2479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
2499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Start of system-specific window types.  These are not normally
2509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * created by applications.
2519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
2529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int FIRST_SYSTEM_WINDOW     = 2000;
2539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
2559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Window type: the status bar.  There can be only one status bar
2569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * window; it is placed at the top of the screen, and all other
2579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * windows are shifted down so they are below it.
2589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
2599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int TYPE_STATUS_BAR         = FIRST_SYSTEM_WINDOW;
2609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
2629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Window type: the search bar.  There can be only one search bar
2639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * window; it is placed at the top of the screen.
2649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
2659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int TYPE_SEARCH_BAR         = FIRST_SYSTEM_WINDOW+1;
2669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
2689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Window type: phone.  These are non-application windows providing
2699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * user interaction with the phone (in particular incoming calls).
2709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * These windows are normally placed above all applications, but behind
2719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * the status bar.
2729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
2739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int TYPE_PHONE              = FIRST_SYSTEM_WINDOW+2;
2749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
2769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Window type: system window, such as low power alert. These windows
2779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * are always on top of application windows.
2789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
2799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int TYPE_SYSTEM_ALERT       = FIRST_SYSTEM_WINDOW+3;
2809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
2829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Window type: keyguard window.
2839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
2849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int TYPE_KEYGUARD           = FIRST_SYSTEM_WINDOW+4;
2859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
2879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Window type: transient notifications.
2889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
2899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int TYPE_TOAST              = FIRST_SYSTEM_WINDOW+5;
2909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
2929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Window type: system overlay windows, which need to be displayed
2939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * on top of everything else.  These windows must not take input
2949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * focus, or they will interfere with the keyguard.
2959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
2969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int TYPE_SYSTEM_OVERLAY     = FIRST_SYSTEM_WINDOW+6;
2979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
2999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Window type: priority phone UI, which needs to be displayed even if
3009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * the keyguard is active.  These windows must not take input
3019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * focus, or they will interfere with the keyguard.
3029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
3039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int TYPE_PRIORITY_PHONE     = FIRST_SYSTEM_WINDOW+7;
3049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
3069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Window type: panel that slides out from the status bar
3079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
3089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int TYPE_SYSTEM_DIALOG      = FIRST_SYSTEM_WINDOW+8;
3099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
3119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Window type: dialogs that the keyguard shows
3129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
3139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int TYPE_KEYGUARD_DIALOG    = FIRST_SYSTEM_WINDOW+9;
3149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
3169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Window type: internal system error windows, appear on top of
3179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * everything they can.
3189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
3199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int TYPE_SYSTEM_ERROR       = FIRST_SYSTEM_WINDOW+10;
3209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
3229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Window type: internal input methods windows, which appear above
3239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * the normal UI.  Application windows may be resized or panned to keep
3249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * the input focus visible while this window is displayed.
3259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
3269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int TYPE_INPUT_METHOD       = FIRST_SYSTEM_WINDOW+11;
3279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
3299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Window type: internal input methods dialog windows, which appear above
3309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * the current input method window.
3319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
3329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int TYPE_INPUT_METHOD_DIALOG= FIRST_SYSTEM_WINDOW+12;
3339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
3354c62fc0e1e5ea9c69a12a7d1cf8b3ec8b2d114a3Dianne Hackborn         * Window type: wallpaper window, placed behind any window that wants
3364c62fc0e1e5ea9c69a12a7d1cf8b3ec8b2d114a3Dianne Hackborn         * to sit on top of the wallpaper.
3374c62fc0e1e5ea9c69a12a7d1cf8b3ec8b2d114a3Dianne Hackborn         */
3384c62fc0e1e5ea9c69a12a7d1cf8b3ec8b2d114a3Dianne Hackborn        public static final int TYPE_WALLPAPER          = FIRST_SYSTEM_WINDOW+13;
3394c62fc0e1e5ea9c69a12a7d1cf8b3ec8b2d114a3Dianne Hackborn
3404c62fc0e1e5ea9c69a12a7d1cf8b3ec8b2d114a3Dianne Hackborn        /**
341badc47ecd1677d5f53bb16f8f30c158a879f5832Dianne Hackborn         * Window type: panel that slides out from the status bar
342badc47ecd1677d5f53bb16f8f30c158a879f5832Dianne Hackborn         */
343badc47ecd1677d5f53bb16f8f30c158a879f5832Dianne Hackborn        public static final int TYPE_STATUS_BAR_PANEL   = FIRST_SYSTEM_WINDOW+14;
344badc47ecd1677d5f53bb16f8f30c158a879f5832Dianne Hackborn
345badc47ecd1677d5f53bb16f8f30c158a879f5832Dianne Hackborn        /**
3469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * End of types of system windows.
3479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
3489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int LAST_SYSTEM_WINDOW      = 2999;
3499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
3519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Specifies what type of memory buffers should be used by this window.
3529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Default is normal.
3539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
3549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @see #MEMORY_TYPE_NORMAL
3559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @see #MEMORY_TYPE_PUSH_BUFFERS
3569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
3579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public int memoryType;
3589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /** Memory type: The window's surface is allocated in main memory. */
3609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int MEMORY_TYPE_NORMAL = 0;
3619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /** Memory type: The window's surface is configured to be accessible
362317a6280cc109e873646e4652be1582d870eedfdMathias Agopian         * by DMA engines and hardware accelerators.
363317a6280cc109e873646e4652be1582d870eedfdMathias Agopian         * @deprecated this is ignored, this value is set automatically when needed.
364317a6280cc109e873646e4652be1582d870eedfdMathias Agopian         */
365317a6280cc109e873646e4652be1582d870eedfdMathias Agopian        @Deprecated
3669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int MEMORY_TYPE_HARDWARE = 1;
3679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /** Memory type: The window's surface is configured to be accessible
368317a6280cc109e873646e4652be1582d870eedfdMathias Agopian         * by graphics accelerators.
369317a6280cc109e873646e4652be1582d870eedfdMathias Agopian         * @deprecated this is ignored, this value is set automatically when needed.
370317a6280cc109e873646e4652be1582d870eedfdMathias Agopian         */
371317a6280cc109e873646e4652be1582d870eedfdMathias Agopian        @Deprecated
3729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int MEMORY_TYPE_GPU = 2;
3739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /** Memory type: The window's surface doesn't own its buffers and
3749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * therefore cannot be locked. Instead the buffers are pushed to
3759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * it through native binder calls. */
3769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int MEMORY_TYPE_PUSH_BUFFERS = 3;
3779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
3799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Various behavioral options/flags.  Default is none.
3809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
3819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @see #FLAG_BLUR_BEHIND
3829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @see #FLAG_DIM_BEHIND
3839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @see #FLAG_NOT_FOCUSABLE
3849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @see #FLAG_NOT_TOUCHABLE
3859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @see #FLAG_NOT_TOUCH_MODAL
3869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @see #FLAG_LAYOUT_IN_SCREEN
3879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @see #FLAG_DITHER
3889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @see #FLAG_KEEP_SCREEN_ON
3899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @see #FLAG_FULLSCREEN
3909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @see #FLAG_FORCE_NOT_FULLSCREEN
3919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @see #FLAG_IGNORE_CHEEK_PRESSES
3929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
3938f2bd4328a7cc9dd70e597b7cc011be22c6ca566Joe Onorato        @ViewDebug.ExportedProperty(flagMapping = {
3948f2bd4328a7cc9dd70e597b7cc011be22c6ca566Joe Onorato            @ViewDebug.FlagToString(mask = FLAG_BLUR_BEHIND, equals = FLAG_BLUR_BEHIND,
3958f2bd4328a7cc9dd70e597b7cc011be22c6ca566Joe Onorato                    name = "FLAG_BLUR_BEHIND"),
3968f2bd4328a7cc9dd70e597b7cc011be22c6ca566Joe Onorato            @ViewDebug.FlagToString(mask = FLAG_DIM_BEHIND, equals = FLAG_DIM_BEHIND,
3978f2bd4328a7cc9dd70e597b7cc011be22c6ca566Joe Onorato                    name = "FLAG_DIM_BEHIND"),
3988f2bd4328a7cc9dd70e597b7cc011be22c6ca566Joe Onorato            @ViewDebug.FlagToString(mask = FLAG_NOT_FOCUSABLE, equals = FLAG_NOT_FOCUSABLE,
3998f2bd4328a7cc9dd70e597b7cc011be22c6ca566Joe Onorato                    name = "FLAG_NOT_FOCUSABLE"),
4008f2bd4328a7cc9dd70e597b7cc011be22c6ca566Joe Onorato            @ViewDebug.FlagToString(mask = FLAG_NOT_TOUCHABLE, equals = FLAG_NOT_TOUCHABLE,
4018f2bd4328a7cc9dd70e597b7cc011be22c6ca566Joe Onorato                    name = "FLAG_NOT_TOUCHABLE"),
4028f2bd4328a7cc9dd70e597b7cc011be22c6ca566Joe Onorato            @ViewDebug.FlagToString(mask = FLAG_NOT_TOUCH_MODAL, equals = FLAG_NOT_TOUCH_MODAL,
4038f2bd4328a7cc9dd70e597b7cc011be22c6ca566Joe Onorato                    name = "FLAG_NOT_TOUCH_MODAL"),
4048f2bd4328a7cc9dd70e597b7cc011be22c6ca566Joe Onorato            @ViewDebug.FlagToString(mask = FLAG_LAYOUT_IN_SCREEN, equals = FLAG_LAYOUT_IN_SCREEN,
4058f2bd4328a7cc9dd70e597b7cc011be22c6ca566Joe Onorato                    name = "FLAG_LAYOUT_IN_SCREEN"),
4068f2bd4328a7cc9dd70e597b7cc011be22c6ca566Joe Onorato            @ViewDebug.FlagToString(mask = FLAG_DITHER, equals = FLAG_DITHER,
4078f2bd4328a7cc9dd70e597b7cc011be22c6ca566Joe Onorato                    name = "FLAG_DITHER"),
40820e9271cf25e48d8ea17bed74e87465ca3d77b8cDaniel Sandler            @ViewDebug.FlagToString(mask = FLAG_TURN_SCREEN_ON, equals = FLAG_TURN_SCREEN_ON,
40920e9271cf25e48d8ea17bed74e87465ca3d77b8cDaniel Sandler                    name = "FLAG_TURN_SCREEN_ON"),
4108f2bd4328a7cc9dd70e597b7cc011be22c6ca566Joe Onorato            @ViewDebug.FlagToString(mask = FLAG_KEEP_SCREEN_ON, equals = FLAG_KEEP_SCREEN_ON,
4118f2bd4328a7cc9dd70e597b7cc011be22c6ca566Joe Onorato                    name = "FLAG_KEEP_SCREEN_ON"),
41220e9271cf25e48d8ea17bed74e87465ca3d77b8cDaniel Sandler            @ViewDebug.FlagToString(mask = FLAG_SHOW_WHEN_LOCKED, equals = FLAG_SHOW_WHEN_LOCKED,
41320e9271cf25e48d8ea17bed74e87465ca3d77b8cDaniel Sandler                    name = "FLAG_SHOW_WHEN_LOCKED"),
41420e9271cf25e48d8ea17bed74e87465ca3d77b8cDaniel Sandler            @ViewDebug.FlagToString(mask = FLAG_ALLOW_LOCK_WHILE_SCREEN_ON, equals = FLAG_ALLOW_LOCK_WHILE_SCREEN_ON,
41520e9271cf25e48d8ea17bed74e87465ca3d77b8cDaniel Sandler                    name = "FLAG_ALLOW_LOCK_WHILE_SCREEN_ON"),
41620e9271cf25e48d8ea17bed74e87465ca3d77b8cDaniel Sandler            @ViewDebug.FlagToString(mask = FLAG_DISMISS_KEYGUARD, equals = FLAG_DISMISS_KEYGUARD,
41720e9271cf25e48d8ea17bed74e87465ca3d77b8cDaniel Sandler                    name = "FLAG_DISMISS_KEYGUARD"),
4188f2bd4328a7cc9dd70e597b7cc011be22c6ca566Joe Onorato            @ViewDebug.FlagToString(mask = FLAG_FULLSCREEN, equals = FLAG_FULLSCREEN,
4198f2bd4328a7cc9dd70e597b7cc011be22c6ca566Joe Onorato                    name = "FLAG_FULLSCREEN"),
4208f2bd4328a7cc9dd70e597b7cc011be22c6ca566Joe Onorato            @ViewDebug.FlagToString(mask = FLAG_FORCE_NOT_FULLSCREEN,
4218f2bd4328a7cc9dd70e597b7cc011be22c6ca566Joe Onorato                    equals = FLAG_FORCE_NOT_FULLSCREEN, name = "FLAG_FORCE_NOT_FULLSCREEN"),
4228f2bd4328a7cc9dd70e597b7cc011be22c6ca566Joe Onorato            @ViewDebug.FlagToString(mask = FLAG_IGNORE_CHEEK_PRESSES,
4238f2bd4328a7cc9dd70e597b7cc011be22c6ca566Joe Onorato                    equals = FLAG_IGNORE_CHEEK_PRESSES, name = "FLAG_IGNORE_CHEEK_PRESSES")
4248f2bd4328a7cc9dd70e597b7cc011be22c6ca566Joe Onorato        })
4259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public int flags;
4269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
427ef73162887943e16587b8e737b19e59348338e8cMike Lockwood        /** Window flag: as long as this window is visible to the user, allow
428ef73162887943e16587b8e737b19e59348338e8cMike Lockwood         *  the lock screen to activate while the screen is on.
429ef73162887943e16587b8e737b19e59348338e8cMike Lockwood         *  This can be used independently, or in combination with
43095f7850a9d9c7c4f020d06986300f4740fb6a52cChristopher Tate         *  {@link #FLAG_KEEP_SCREEN_ON} and/or {@link #FLAG_SHOW_WHEN_LOCKED} */
431ef73162887943e16587b8e737b19e59348338e8cMike Lockwood        public static final int FLAG_ALLOW_LOCK_WHILE_SCREEN_ON     = 0x00000001;
432ef73162887943e16587b8e737b19e59348338e8cMike Lockwood
4339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /** Window flag: everything behind this window will be dimmed.
4349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *  Use {@link #dimAmount} to control the amount of dim. */
4359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int FLAG_DIM_BEHIND        = 0x00000002;
4369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /** Window flag: blur everything behind this window. */
4389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int FLAG_BLUR_BEHIND        = 0x00000004;
4399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /** Window flag: this window won't ever get key input focus, so the
4419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * user can not send key or other button events to it.  Those will
4429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * instead go to whatever focusable window is behind it.  This flag
4439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * will also enable {@link #FLAG_NOT_TOUCH_MODAL} whether or not that
4449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * is explicitly set.
4459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
4469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * <p>Setting this flag also implies that the window will not need to
4479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * interact with
4489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * a soft input method, so it will be Z-ordered and positioned
4499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * independently of any active input method (typically this means it
4509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * gets Z-ordered on top of the input method, so it can use the full
4519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * screen for its content and cover the input method if needed.  You
4529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * can use {@link #FLAG_ALT_FOCUSABLE_IM} to modify this behavior. */
4539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int FLAG_NOT_FOCUSABLE      = 0x00000008;
4549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /** Window flag: this window can never receive touch events. */
4569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int FLAG_NOT_TOUCHABLE      = 0x00000010;
4579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /** Window flag: Even when this window is focusable (its
4599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * {@link #FLAG_NOT_FOCUSABLE is not set), allow any pointer events
4609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * outside of the window to be sent to the windows behind it.  Otherwise
4619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * it will consume all pointer events itself, regardless of whether they
4629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * are inside of the window. */
4639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int FLAG_NOT_TOUCH_MODAL    = 0x00000020;
4649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /** Window flag: When set, if the device is asleep when the touch
4669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * screen is pressed, you will receive this first touch event.  Usually
4679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * the first touch event is consumed by the system since the user can
4689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * not see what they are pressing on.
4699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
4709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int FLAG_TOUCHABLE_WHEN_WAKING = 0x00000040;
4719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /** Window flag: as long as this window is visible to the user, keep
4739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *  the device's screen turned on and bright. */
4749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int FLAG_KEEP_SCREEN_ON     = 0x00000080;
4759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /** Window flag: place the window within the entire screen, ignoring
4779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *  decorations around the border (a.k.a. the status bar).  The
4789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *  window must correctly position its contents to take the screen
4799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *  decoration into account.  This flag is normally set for you
4809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *  by Window as described in {@link Window#setFlags}. */
4819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int FLAG_LAYOUT_IN_SCREEN   = 0x00000100;
4829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /** Window flag: allow window to extend outside of the screen. */
4849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int FLAG_LAYOUT_NO_LIMITS   = 0x00000200;
4859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /** Window flag: Hide all screen decorations (e.g. status bar) while
4879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * this window is displayed.  This allows the window to use the entire
4889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * display space for itself -- the status bar will be hidden when
4899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * an app window with this flag set is on the top layer. */
4909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int FLAG_FULLSCREEN      = 0x00000400;
4919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /** Window flag: Override {@link #FLAG_FULLSCREEN and force the
4939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *  screen decorations (such as status bar) to be shown. */
4949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int FLAG_FORCE_NOT_FULLSCREEN   = 0x00000800;
4959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /** Window flag: turn on dithering when compositing this window to
4979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *  the screen. */
4989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int FLAG_DITHER             = 0x00001000;
4999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /** Window flag: don't allow screen shots while this window is
5019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * displayed. */
5029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int FLAG_SECURE             = 0x00002000;
5039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /** Window flag: a special mode where the layout parameters are used
5059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * to perform scaling of the surface when it is composited to the
5069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * screen. */
5079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int FLAG_SCALED             = 0x00004000;
5089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /** Window flag: intended for windows that will often be used when the user is
5109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * holding the screen against their face, it will aggressively filter the event
5119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * stream to prevent unintended presses in this situation that may not be
5129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * desired for a particular window, when such an event stream is detected, the
5139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * application will receive a CANCEL motion event to indicate this so applications
5149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * can handle this accordingly by taking no action on the event
5159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * until the finger is released. */
5169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int FLAG_IGNORE_CHEEK_PRESSES    = 0x00008000;
5179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /** Window flag: a special option only for use in combination with
5199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * {@link #FLAG_LAYOUT_IN_SCREEN}.  When requesting layout in the
5209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * screen your window may appear on top of or behind screen decorations
5219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * such as the status bar.  By also including this flag, the window
5229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * manager will report the inset rectangle needed to ensure your
5239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * content is not covered by screen decorations.  This flag is normally
5249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * set for you by Window as described in {@link Window#setFlags}.*/
5259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int FLAG_LAYOUT_INSET_DECOR = 0x00010000;
5269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /** Window flag: invert the state of {@link #FLAG_NOT_FOCUSABLE} with
5289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * respect to how this window interacts with the current method.  That
5299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * is, if FLAG_NOT_FOCUSABLE is set and this flag is set, then the
5309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * window will behave as if it needs to interact with the input method
5319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * and thus be placed behind/away from it; if FLAG_NOT_FOCUSABLE is
5329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * not set and this flag is set, then the window will behave as if it
5339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * doesn't need to interact with the input method and can be placed
5349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * to use more space and cover the input method.
5359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
5369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int FLAG_ALT_FOCUSABLE_IM = 0x00020000;
5379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /** Window flag: if you have set {@link #FLAG_NOT_TOUCH_MODAL}, you
5399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * can set this flag to receive a single special MotionEvent with
5409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * the action
5419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * {@link MotionEvent#ACTION_OUTSIDE MotionEvent.ACTION_OUTSIDE} for
5429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * touches that occur outside of your window.  Note that you will not
5439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * receive the full down/move/up gesture, only the location of the
5449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * first down as an ACTION_OUTSIDE.
5459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
5469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int FLAG_WATCH_OUTSIDE_TOUCH = 0x00040000;
5479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
548d1a9337380cf9f40f1aa095457b11242d483295dSuchi Amalapurapu        /** Window flag: special flag to let windows be shown when the screen
549d1a9337380cf9f40f1aa095457b11242d483295dSuchi Amalapurapu         * is locked. This will let application windows take precedence over
550d1a9337380cf9f40f1aa095457b11242d483295dSuchi Amalapurapu         * key guard or any other lock screens. Can be used with
551d1a9337380cf9f40f1aa095457b11242d483295dSuchi Amalapurapu         * {@link #FLAG_KEEP_SCREEN_ON} to turn screen on and display windows
5529bfb707597898f54722460b48588007b682f3e2aDianne Hackborn         * directly before showing the key guard window.  Can be used with
5539bfb707597898f54722460b48588007b682f3e2aDianne Hackborn         * {@link #FLAG_DISMISS_KEYGUARD} to automatically fully dismisss
5549bfb707597898f54722460b48588007b682f3e2aDianne Hackborn         * non-secure keyguards.  This flag only applies to the top-most
5559bfb707597898f54722460b48588007b682f3e2aDianne Hackborn         * full-screen window.
5564c62fc0e1e5ea9c69a12a7d1cf8b3ec8b2d114a3Dianne Hackborn         */
557d1a9337380cf9f40f1aa095457b11242d483295dSuchi Amalapurapu        public static final int FLAG_SHOW_WHEN_LOCKED = 0x00080000;
558d1a9337380cf9f40f1aa095457b11242d483295dSuchi Amalapurapu
5594c62fc0e1e5ea9c69a12a7d1cf8b3ec8b2d114a3Dianne Hackborn        /** Window flag: ask that the system wallpaper be shown behind
5604c62fc0e1e5ea9c69a12a7d1cf8b3ec8b2d114a3Dianne Hackborn         * your window.  The window surface must be translucent to be able
5614c62fc0e1e5ea9c69a12a7d1cf8b3ec8b2d114a3Dianne Hackborn         * to actually see the wallpaper behind it; this flag just ensures
5624c62fc0e1e5ea9c69a12a7d1cf8b3ec8b2d114a3Dianne Hackborn         * that the wallpaper surface will be there if this window actually
5634c62fc0e1e5ea9c69a12a7d1cf8b3ec8b2d114a3Dianne Hackborn         * has translucent regions.
5644c62fc0e1e5ea9c69a12a7d1cf8b3ec8b2d114a3Dianne Hackborn         */
5654c62fc0e1e5ea9c69a12a7d1cf8b3ec8b2d114a3Dianne Hackborn        public static final int FLAG_SHOW_WALLPAPER = 0x00100000;
5664c62fc0e1e5ea9c69a12a7d1cf8b3ec8b2d114a3Dianne Hackborn
56793e462b79d6896da10e15e74c5aec6beb098dddfDianne Hackborn        /** Window flag: when set as a window is being added or made
56893e462b79d6896da10e15e74c5aec6beb098dddfDianne Hackborn         * visible, once the window has been shown then the system will
56993e462b79d6896da10e15e74c5aec6beb098dddfDianne Hackborn         * poke the power manager's user activity (as if the user had woken
57093e462b79d6896da10e15e74c5aec6beb098dddfDianne Hackborn         * up the device) to turn the screen on. */
57193e462b79d6896da10e15e74c5aec6beb098dddfDianne Hackborn        public static final int FLAG_TURN_SCREEN_ON = 0x00200000;
57293e462b79d6896da10e15e74c5aec6beb098dddfDianne Hackborn
5739bfb707597898f54722460b48588007b682f3e2aDianne Hackborn        /** Window flag: when set the window will cause the keyguard to
5749bfb707597898f54722460b48588007b682f3e2aDianne Hackborn         * be dismissed, only if it is not a secure lock keyguard.  Because such
5759bfb707597898f54722460b48588007b682f3e2aDianne Hackborn         * a keyguard is not needed for security, it will never re-appear if
5769bfb707597898f54722460b48588007b682f3e2aDianne Hackborn         * the user navigates to another window (in contrast to
5779bfb707597898f54722460b48588007b682f3e2aDianne Hackborn         * {@link #FLAG_SHOW_WHEN_LOCKED}, which will only temporarily
5789bfb707597898f54722460b48588007b682f3e2aDianne Hackborn         * hide both secure and non-secure keyguards but ensure they reappear
5799bfb707597898f54722460b48588007b682f3e2aDianne Hackborn         * when the user moves to another UI that doesn't hide them).
5809bfb707597898f54722460b48588007b682f3e2aDianne Hackborn         * If the keyguard is currently active and is secure (requires an
5819bfb707597898f54722460b48588007b682f3e2aDianne Hackborn         * unlock pattern) than the user will still need to confirm it before
5829bfb707597898f54722460b48588007b682f3e2aDianne Hackborn         * seeing this window, unless {@link #FLAG_SHOW_WHEN_LOCKED} has
5839bfb707597898f54722460b48588007b682f3e2aDianne Hackborn         * also been set. */
5849bfb707597898f54722460b48588007b682f3e2aDianne Hackborn        public static final int FLAG_DISMISS_KEYGUARD = 0x00400000;
585611fae4c39edbeb23b53f789a0219c539cf32fa6Daniel Sandler
586611fae4c39edbeb23b53f789a0219c539cf32fa6Daniel Sandler        /** Window flag: This window corresponds to an immersive activity
587611fae4c39edbeb23b53f789a0219c539cf32fa6Daniel Sandler         * that wishes not to be interrupted with notifications.  In general,
588611fae4c39edbeb23b53f789a0219c539cf32fa6Daniel Sandler         * applications may simply hide the status bar with {@link
589611fae4c39edbeb23b53f789a0219c539cf32fa6Daniel Sandler         * FLAG_FULLSCREEN} to suppress most notifications, but will still be
590611fae4c39edbeb23b53f789a0219c539cf32fa6Daniel Sandler         * interrupted by those with
591611fae4c39edbeb23b53f789a0219c539cf32fa6Daniel Sandler         * {@link android.app.Notification.fullScreenIntent} set (example: an
592611fae4c39edbeb23b53f789a0219c539cf32fa6Daniel Sandler         * incoming call).  Setting {@link FLAG_IMMERSIVE} will suppress the
593611fae4c39edbeb23b53f789a0219c539cf32fa6Daniel Sandler         * full-screen intent and show the status bar briefly for those
594611fae4c39edbeb23b53f789a0219c539cf32fa6Daniel Sandler         * important notifications instead.  See also
595611fae4c39edbeb23b53f789a0219c539cf32fa6Daniel Sandler         * {@link android.app.Notification.FLAG_HIGH_PRIORITY}.
596611fae4c39edbeb23b53f789a0219c539cf32fa6Daniel Sandler         */
597611fae4c39edbeb23b53f789a0219c539cf32fa6Daniel Sandler        public static final int FLAG_IMMERSIVE = 0x00800000;
598611fae4c39edbeb23b53f789a0219c539cf32fa6Daniel Sandler
5993b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn        /** Window flag: *sigh* The lock screen wants to continue running its
6003b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn         * animation while it is fading.  A kind-of hack to allow this.  Maybe
6013b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn         * in the future we just make this the default behavior.
6023b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn         *
6033b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn         * {@hide} */
6043b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn        public static final int FLAG_KEEP_SURFACE_WHILE_ANIMATING = 0x10000000;
6053b3e145d3c41fd68974e08f799b1fd1f8f060cf0Dianne Hackborn
6061ecf5d28817f0a051e77488380dcd5bc622ea169Mitsuru Oshima        /** Window flag: special flag to limit the size of the window to be
6071ecf5d28817f0a051e77488380dcd5bc622ea169Mitsuru Oshima         * original size ([320x480] x density). Used to create window for applications
6081ecf5d28817f0a051e77488380dcd5bc622ea169Mitsuru Oshima         * running under compatibility mode.
6091ecf5d28817f0a051e77488380dcd5bc622ea169Mitsuru Oshima         *
6101ecf5d28817f0a051e77488380dcd5bc622ea169Mitsuru Oshima         * {@hide} */
6114c62fc0e1e5ea9c69a12a7d1cf8b3ec8b2d114a3Dianne Hackborn        public static final int FLAG_COMPATIBLE_WINDOW = 0x20000000;
6121ecf5d28817f0a051e77488380dcd5bc622ea169Mitsuru Oshima
6139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /** Window flag: a special option intended for system dialogs.  When
6149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * this flag is set, the window will demand focus unconditionally when
6159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * it is created.
6169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * {@hide} */
6179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int FLAG_SYSTEM_ERROR = 0x40000000;
6189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
6209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Given a particular set of window manager flags, determine whether
6219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * such a window may be a target for an input method when it has
6229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * focus.  In particular, this checks the
6239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * {@link #FLAG_NOT_FOCUSABLE} and {@link #FLAG_ALT_FOCUSABLE_IM}
6249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * flags and returns true if the combination of the two corresponds
6259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * to a window that needs to be behind the input method so that the
6269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * user can type into it.
6279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
6289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @param flags The current window manager flags.
6299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
6309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @return Returns true if such a window should be behind/interact
6319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * with an input method, false if not.
6329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
6339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static boolean mayUseInputMethod(int flags) {
6349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            switch (flags&(FLAG_NOT_FOCUSABLE|FLAG_ALT_FOCUSABLE_IM)) {
6359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                case 0:
6369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                case FLAG_NOT_FOCUSABLE|FLAG_ALT_FOCUSABLE_IM:
6379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    return true;
6389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
6399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return false;
6409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
6419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
6439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Mask for {@link #softInputMode} of the bits that determine the
6449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * desired visibility state of the soft input area for this window.
6459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
6469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int SOFT_INPUT_MASK_STATE = 0x0f;
6479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
6499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Visibility state for {@link #softInputMode}: no state has been specified.
6509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
6519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int SOFT_INPUT_STATE_UNSPECIFIED = 0;
6529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
6549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Visibility state for {@link #softInputMode}: please don't change the state of
6559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * the soft input area.
6569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
6579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int SOFT_INPUT_STATE_UNCHANGED = 1;
6589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
6609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Visibility state for {@link #softInputMode}: please hide any soft input
6619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * area when normally appropriate (when the user is navigating
6629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * forward to your window).
6639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
6649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int SOFT_INPUT_STATE_HIDDEN = 2;
6659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
6679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Visibility state for {@link #softInputMode}: please always hide any
6689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * soft input area when this window receives focus.
6699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
6709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int SOFT_INPUT_STATE_ALWAYS_HIDDEN = 3;
6719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
6739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Visibility state for {@link #softInputMode}: please show the soft
6749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * input area when normally appropriate (when the user is navigating
6759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * forward to your window).
6769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
6779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int SOFT_INPUT_STATE_VISIBLE = 4;
6789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
6809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Visibility state for {@link #softInputMode}: please always make the
6819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * soft input area visible when this window receives input focus.
6829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
6839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int SOFT_INPUT_STATE_ALWAYS_VISIBLE = 5;
6849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
6869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Mask for {@link #softInputMode} of the bits that determine the
6879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * way that the window should be adjusted to accommodate the soft
6889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * input window.
6899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
6909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int SOFT_INPUT_MASK_ADJUST = 0xf0;
6919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /** Adjustment option for {@link #softInputMode}: nothing specified.
6939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * The system will try to pick one or
6949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * the other depending on the contents of the window.
6959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
6969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int SOFT_INPUT_ADJUST_UNSPECIFIED = 0x00;
6979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /** Adjustment option for {@link #softInputMode}: set to allow the
6999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * window to be resized when an input
7009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * method is shown, so that its contents are not covered by the input
701f10e6331e3bf01653235d93aa523056c146a85a3Scott Main         * method.  This can <em>not</em> be combined with
7029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * {@link #SOFT_INPUT_ADJUST_PAN}; if
7039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * neither of these are set, then the system will try to pick one or
7049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * the other depending on the contents of the window.
7059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
7069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int SOFT_INPUT_ADJUST_RESIZE = 0x10;
7079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /** Adjustment option for {@link #softInputMode}: set to have a window
7099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * pan when an input method is
7109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * shown, so it doesn't need to deal with resizing but just panned
7119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * by the framework to ensure the current input focus is visible.  This
712f10e6331e3bf01653235d93aa523056c146a85a3Scott Main         * can <em>not</em> be combined with {@link #SOFT_INPUT_ADJUST_RESIZE}; if
7139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * neither of these are set, then the system will try to pick one or
7149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * the other depending on the contents of the window.
7159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
7169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int SOFT_INPUT_ADJUST_PAN = 0x20;
7179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
7199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Bit for {@link #softInputMode}: set when the user has navigated
7209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * forward to the window.  This is normally set automatically for
7219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * you by the system, though you may want to set it in certain cases
7229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * when you are displaying a window yourself.  This flag will always
7239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * be cleared automatically after the window is displayed.
7249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
7259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int SOFT_INPUT_IS_FORWARD_NAVIGATION = 0x100;
726fb73f79340375013225618a5d87f46b958f698efMike Lockwood
727fb73f79340375013225618a5d87f46b958f698efMike Lockwood        /**
728fb73f79340375013225618a5d87f46b958f698efMike Lockwood         * Default value for {@link #screenBrightness} and {@link #buttonBrightness}
729fb73f79340375013225618a5d87f46b958f698efMike Lockwood         * indicating that the brightness value is not overridden for this window
730fb73f79340375013225618a5d87f46b958f698efMike Lockwood         * and normal brightness policy should be used.
731fb73f79340375013225618a5d87f46b958f698efMike Lockwood         */
732fb73f79340375013225618a5d87f46b958f698efMike Lockwood        public static final float BRIGHTNESS_OVERRIDE_NONE = -1.0f;
733fb73f79340375013225618a5d87f46b958f698efMike Lockwood
734fb73f79340375013225618a5d87f46b958f698efMike Lockwood        /**
735fb73f79340375013225618a5d87f46b958f698efMike Lockwood         * Value for {@link #screenBrightness} and {@link #buttonBrightness}
736fb73f79340375013225618a5d87f46b958f698efMike Lockwood         * indicating that the screen or button backlight brightness should be set
737fb73f79340375013225618a5d87f46b958f698efMike Lockwood         * to the lowest value when this window is in front.
738fb73f79340375013225618a5d87f46b958f698efMike Lockwood         */
739fb73f79340375013225618a5d87f46b958f698efMike Lockwood        public static final float BRIGHTNESS_OVERRIDE_OFF = 0.0f;
740fb73f79340375013225618a5d87f46b958f698efMike Lockwood
741fb73f79340375013225618a5d87f46b958f698efMike Lockwood        /**
742fb73f79340375013225618a5d87f46b958f698efMike Lockwood         * Value for {@link #screenBrightness} and {@link #buttonBrightness}
743fb73f79340375013225618a5d87f46b958f698efMike Lockwood         * indicating that the screen or button backlight brightness should be set
744fb73f79340375013225618a5d87f46b958f698efMike Lockwood         * to the hightest value when this window is in front.
745fb73f79340375013225618a5d87f46b958f698efMike Lockwood         */
746fb73f79340375013225618a5d87f46b958f698efMike Lockwood        public static final float BRIGHTNESS_OVERRIDE_FULL = 1.0f;
747fb73f79340375013225618a5d87f46b958f698efMike Lockwood
7489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
7499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Desired operating mode for any soft input area.  May any combination
7509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * of:
7519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
7529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * <ul>
7539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * <li> One of the visibility states
7549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * {@link #SOFT_INPUT_STATE_UNSPECIFIED}, {@link #SOFT_INPUT_STATE_UNCHANGED},
7559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * {@link #SOFT_INPUT_STATE_HIDDEN}, {@link #SOFT_INPUT_STATE_ALWAYS_VISIBLE}, or
7569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * {@link #SOFT_INPUT_STATE_VISIBLE}.
7579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * <li> One of the adjustment options
7589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * {@link #SOFT_INPUT_ADJUST_UNSPECIFIED},
7599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * {@link #SOFT_INPUT_ADJUST_RESIZE}, or
7609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * {@link #SOFT_INPUT_ADJUST_PAN}.
7619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
7629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public int softInputMode;
7639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
7659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Placement of window within the screen as per {@link Gravity}
7669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         *
7679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * @see Gravity
7689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
7699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public int gravity;
7709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
7729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * The horizontal margin, as a percentage of the container's width,
7739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * between the container and the widget.
7749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
7759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public float horizontalMargin;
7769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
7789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * The vertical margin, as a percentage of the container's height,
7799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * between the container and the widget.
7809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
7819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public float verticalMargin;
7829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
7849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * The desired bitmap format.  May be one of the constants in
7859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * {@link android.graphics.PixelFormat}.  Default is OPAQUE.
7869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
7879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public int format;
7889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
7909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * A style resource defining the animations to use for this window.
7919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * This must be a system resource; it can not be an application resource
7929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * because the window manager does not have access to applications.
7939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
7949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public int windowAnimations;
7959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
7969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
7979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * An alpha value to apply to this entire window.
7989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * An alpha of 1.0 means fully opaque and 0.0 means fully transparent
7999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
8009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public float alpha = 1.0f;
8019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
8039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * When {@link #FLAG_DIM_BEHIND} is set, this is the amount of dimming
8049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * to apply.  Range is from 1.0 for completely opaque to 0.0 for no
8059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * dim.
8069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
8079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public float dimAmount = 1.0f;
8089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
8109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * This can be used to override the user's preferred brightness of
8119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * the screen.  A value of less than 0, the default, means to use the
8129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * preferred screen brightness.  0 to 1 adjusts the brightness from
8139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * dark to full bright.
8149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
815fb73f79340375013225618a5d87f46b958f698efMike Lockwood        public float screenBrightness = BRIGHTNESS_OVERRIDE_NONE;
8169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
818fb73f79340375013225618a5d87f46b958f698efMike Lockwood         * This can be used to override the standard behavior of the button and
819fb73f79340375013225618a5d87f46b958f698efMike Lockwood         * keyboard backlights.  A value of less than 0, the default, means to
820fb73f79340375013225618a5d87f46b958f698efMike Lockwood         * use the standard backlight behavior.  0 to 1 adjusts the brightness
821fb73f79340375013225618a5d87f46b958f698efMike Lockwood         * from dark to full bright.
822fb73f79340375013225618a5d87f46b958f698efMike Lockwood         */
823fb73f79340375013225618a5d87f46b958f698efMike Lockwood        public float buttonBrightness = BRIGHTNESS_OVERRIDE_NONE;
824fb73f79340375013225618a5d87f46b958f698efMike Lockwood
825fb73f79340375013225618a5d87f46b958f698efMike Lockwood        /**
8269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Identifier for this window.  This will usually be filled in for
8279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * you.
8289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
8299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public IBinder token = null;
8309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
8329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Name of the package owning this window.
8339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
8349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public String packageName = null;
8359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        /**
8379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * Specific orientation value for a window.
8389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * May be any of the same values allowed
8399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * for {@link android.content.pm.ActivityInfo#screenOrientation}.
8409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * If not set, a default value of
8419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * {@link android.content.pm.ActivityInfo#SCREEN_ORIENTATION_UNSPECIFIED}
8429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         * will be used.
8439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project         */
8449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public int screenOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED;
8459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public LayoutParams() {
848980a938c1c9a6a5791a8240e5a1e6638ab28dc77Romain Guy            super(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
8499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            type = TYPE_APPLICATION;
8509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            format = PixelFormat.OPAQUE;
8519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
8529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public LayoutParams(int _type) {
854980a938c1c9a6a5791a8240e5a1e6638ab28dc77Romain Guy            super(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
8559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            type = _type;
8569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            format = PixelFormat.OPAQUE;
8579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
8589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public LayoutParams(int _type, int _flags) {
860980a938c1c9a6a5791a8240e5a1e6638ab28dc77Romain Guy            super(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
8619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            type = _type;
8629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            flags = _flags;
8639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            format = PixelFormat.OPAQUE;
8649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
8659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public LayoutParams(int _type, int _flags, int _format) {
867980a938c1c9a6a5791a8240e5a1e6638ab28dc77Romain Guy            super(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
8689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            type = _type;
8699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            flags = _flags;
8709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            format = _format;
8719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
8729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public LayoutParams(int w, int h, int _type, int _flags, int _format) {
8749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            super(w, h);
8759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            type = _type;
8769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            flags = _flags;
8779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            format = _format;
8789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
8799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public LayoutParams(int w, int h, int xpos, int ypos, int _type,
8819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                int _flags, int _format) {
8829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            super(w, h);
8839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            x = xpos;
8849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            y = ypos;
8859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            type = _type;
8869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            flags = _flags;
8879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            format = _format;
8889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
8899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public final void setTitle(CharSequence title) {
8919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (null == title)
8929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                title = "";
8939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            mTitle = TextUtils.stringOrSpannedString(title);
8959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
8969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
8979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public final CharSequence getTitle() {
8989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return mTitle;
8999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
9009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public int describeContents() {
9029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return 0;
9039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
9049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public void writeToParcel(Parcel out, int parcelableFlags) {
9069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            out.writeInt(width);
9079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            out.writeInt(height);
9089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            out.writeInt(x);
9099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            out.writeInt(y);
9109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            out.writeInt(type);
9119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            out.writeInt(memoryType);
9129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            out.writeInt(flags);
9139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            out.writeInt(softInputMode);
9149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            out.writeInt(gravity);
9159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            out.writeFloat(horizontalMargin);
9169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            out.writeFloat(verticalMargin);
9179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            out.writeInt(format);
9189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            out.writeInt(windowAnimations);
9199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            out.writeFloat(alpha);
9209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            out.writeFloat(dimAmount);
9219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            out.writeFloat(screenBrightness);
922fb73f79340375013225618a5d87f46b958f698efMike Lockwood            out.writeFloat(buttonBrightness);
9239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            out.writeStrongBinder(token);
9249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            out.writeString(packageName);
9259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            TextUtils.writeToParcel(mTitle, out, parcelableFlags);
9269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            out.writeInt(screenOrientation);
9279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
9289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final Parcelable.Creator<LayoutParams> CREATOR
9309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                    = new Parcelable.Creator<LayoutParams>() {
9319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public LayoutParams createFromParcel(Parcel in) {
9329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                return new LayoutParams(in);
9339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
9349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            public LayoutParams[] newArray(int size) {
9369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                return new LayoutParams[size];
9379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
9389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        };
9399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public LayoutParams(Parcel in) {
9429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            width = in.readInt();
9439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            height = in.readInt();
9449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            x = in.readInt();
9459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            y = in.readInt();
9469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            type = in.readInt();
9479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            memoryType = in.readInt();
9489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            flags = in.readInt();
9499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            softInputMode = in.readInt();
9509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            gravity = in.readInt();
9519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            horizontalMargin = in.readFloat();
9529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            verticalMargin = in.readFloat();
9539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            format = in.readInt();
9549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            windowAnimations = in.readInt();
9559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            alpha = in.readFloat();
9569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            dimAmount = in.readFloat();
9579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            screenBrightness = in.readFloat();
958fb73f79340375013225618a5d87f46b958f698efMike Lockwood            buttonBrightness = in.readFloat();
9599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            token = in.readStrongBinder();
9609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            packageName = in.readString();
9619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            mTitle = TextUtils.CHAR_SEQUENCE_CREATOR.createFromParcel(in);
9629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            screenOrientation = in.readInt();
9639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
9649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9657299807d1895ea25cbe45d32b6edfd9a5723ee7aRomain Guy        @SuppressWarnings({"PointlessBitwiseExpression"})
9669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int LAYOUT_CHANGED = 1<<0;
9679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int TYPE_CHANGED = 1<<1;
9689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int FLAGS_CHANGED = 1<<2;
9699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int FORMAT_CHANGED = 1<<3;
9709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int ANIMATION_CHANGED = 1<<4;
9719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int DIM_AMOUNT_CHANGED = 1<<5;
9729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int TITLE_CHANGED = 1<<6;
9739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int ALPHA_CHANGED = 1<<7;
9749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int MEMORY_TYPE_CHANGED = 1<<8;
9759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int SOFT_INPUT_MODE_CHANGED = 1<<9;
9769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int SCREEN_ORIENTATION_CHANGED = 1<<10;
9779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public static final int SCREEN_BRIGHTNESS_CHANGED = 1<<11;
978fb73f79340375013225618a5d87f46b958f698efMike Lockwood        /** {@hide} */
979fb73f79340375013225618a5d87f46b958f698efMike Lockwood        public static final int BUTTON_BRIGHTNESS_CHANGED = 1<<12;
9809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
981e5fb328825995aa33b5b7ecf8b5bee2b17f81715Mitsuru Oshima        // internal buffer to backup/restore parameters under compatibility mode.
982e5fb328825995aa33b5b7ecf8b5bee2b17f81715Mitsuru Oshima        private int[] mCompatibilityParamsBackup = null;
983e5fb328825995aa33b5b7ecf8b5bee2b17f81715Mitsuru Oshima
9849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public final int copyFrom(LayoutParams o) {
9859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            int changes = 0;
9869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
9879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (width != o.width) {
9889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                width = o.width;
9899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                changes |= LAYOUT_CHANGED;
9909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
9919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (height != o.height) {
9929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                height = o.height;
9939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                changes |= LAYOUT_CHANGED;
9949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
9959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (x != o.x) {
9969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                x = o.x;
9979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                changes |= LAYOUT_CHANGED;
9989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
9999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (y != o.y) {
10009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                y = o.y;
10019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                changes |= LAYOUT_CHANGED;
10029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
10039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (horizontalWeight != o.horizontalWeight) {
10049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                horizontalWeight = o.horizontalWeight;
10059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                changes |= LAYOUT_CHANGED;
10069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
10079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (verticalWeight != o.verticalWeight) {
10089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                verticalWeight = o.verticalWeight;
10099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                changes |= LAYOUT_CHANGED;
10109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
10119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (horizontalMargin != o.horizontalMargin) {
10129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                horizontalMargin = o.horizontalMargin;
10139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                changes |= LAYOUT_CHANGED;
10149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
10159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (verticalMargin != o.verticalMargin) {
10169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                verticalMargin = o.verticalMargin;
10179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                changes |= LAYOUT_CHANGED;
10189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
10199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (type != o.type) {
10209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                type = o.type;
10219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                changes |= TYPE_CHANGED;
10229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
10239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (memoryType != o.memoryType) {
10249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                memoryType = o.memoryType;
10259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                changes |= MEMORY_TYPE_CHANGED;
10269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
10279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (flags != o.flags) {
10289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                flags = o.flags;
10299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                changes |= FLAGS_CHANGED;
10309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
10319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (softInputMode != o.softInputMode) {
10329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                softInputMode = o.softInputMode;
10339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                changes |= SOFT_INPUT_MODE_CHANGED;
10349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
10359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (gravity != o.gravity) {
10369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                gravity = o.gravity;
10379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                changes |= LAYOUT_CHANGED;
10389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
10399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (horizontalMargin != o.horizontalMargin) {
10409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                horizontalMargin = o.horizontalMargin;
10419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                changes |= LAYOUT_CHANGED;
10429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
10439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (verticalMargin != o.verticalMargin) {
10449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                verticalMargin = o.verticalMargin;
10459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                changes |= LAYOUT_CHANGED;
10469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
10479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (format != o.format) {
10489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                format = o.format;
10499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                changes |= FORMAT_CHANGED;
10509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
10519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (windowAnimations != o.windowAnimations) {
10529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                windowAnimations = o.windowAnimations;
10539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                changes |= ANIMATION_CHANGED;
10549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
10559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (token == null) {
10569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                // NOTE: token only copied if the recipient doesn't
10579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                // already have one.
10589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                token = o.token;
10599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
10609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (packageName == null) {
10619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                // NOTE: packageName only copied if the recipient doesn't
10629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                // already have one.
10639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                packageName = o.packageName;
10649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
10659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (!mTitle.equals(o.mTitle)) {
10669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                mTitle = o.mTitle;
10679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                changes |= TITLE_CHANGED;
10689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
10699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (alpha != o.alpha) {
10709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                alpha = o.alpha;
10719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                changes |= ALPHA_CHANGED;
10729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
10739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (dimAmount != o.dimAmount) {
10749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                dimAmount = o.dimAmount;
10759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                changes |= DIM_AMOUNT_CHANGED;
10769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
10779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (screenBrightness != o.screenBrightness) {
10789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                screenBrightness = o.screenBrightness;
10799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                changes |= SCREEN_BRIGHTNESS_CHANGED;
10809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
1081fb73f79340375013225618a5d87f46b958f698efMike Lockwood            if (buttonBrightness != o.buttonBrightness) {
1082fb73f79340375013225618a5d87f46b958f698efMike Lockwood                buttonBrightness = o.buttonBrightness;
1083fb73f79340375013225618a5d87f46b958f698efMike Lockwood                changes |= BUTTON_BRIGHTNESS_CHANGED;
1084fb73f79340375013225618a5d87f46b958f698efMike Lockwood            }
10859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (screenOrientation != o.screenOrientation) {
10879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                screenOrientation = o.screenOrientation;
10889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                changes |= SCREEN_ORIENTATION_CHANGED;
10899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
10909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return changes;
10919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
10929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
10939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        @Override
10949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public String debug(String output) {
10959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            output += "Contents of " + this + ":";
10969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Log.d("Debug", output);
10979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            output = super.debug("");
10989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Log.d("Debug", output);
10999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Log.d("Debug", "");
11009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            Log.d("Debug", "WindowManager.LayoutParams={title=" + mTitle + "}");
11019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return "";
11029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
11039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
11049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        @Override
11059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public String toString() {
11069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            StringBuilder sb = new StringBuilder(256);
11079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            sb.append("WM.LayoutParams{");
11089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            sb.append("(");
11099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            sb.append(x);
11109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            sb.append(',');
11119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            sb.append(y);
11129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            sb.append(")(");
1113980a938c1c9a6a5791a8240e5a1e6638ab28dc77Romain Guy            sb.append((width== MATCH_PARENT ?"fill":(width==WRAP_CONTENT?"wrap":width)));
11149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            sb.append('x');
1115980a938c1c9a6a5791a8240e5a1e6638ab28dc77Romain Guy            sb.append((height== MATCH_PARENT ?"fill":(height==WRAP_CONTENT?"wrap":height)));
11169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            sb.append(")");
11179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (softInputMode != 0) {
11189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                sb.append(" sim=#");
11199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                sb.append(Integer.toHexString(softInputMode));
11209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
11219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (gravity != 0) {
11229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                sb.append(" gr=#");
11239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                sb.append(Integer.toHexString(gravity));
11249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
11259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            sb.append(" ty=");
11269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            sb.append(type);
11279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            sb.append(" fl=#");
11289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            sb.append(Integer.toHexString(flags));
11299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            sb.append(" fmt=");
11309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            sb.append(format);
11319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (windowAnimations != 0) {
11329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                sb.append(" wanim=0x");
11339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                sb.append(Integer.toHexString(windowAnimations));
11349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
11359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            if (screenOrientation != ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED) {
11369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                sb.append(" or=");
11379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                sb.append(screenOrientation);
11389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
11395a2b91dc14e4c92e91c6abcc795f54ac98ee5866Mitsuru Oshima            if ((flags & FLAG_COMPATIBLE_WINDOW) != 0) {
11405a2b91dc14e4c92e91c6abcc795f54ac98ee5866Mitsuru Oshima                sb.append(" compatible=true");
11415a2b91dc14e4c92e91c6abcc795f54ac98ee5866Mitsuru Oshima            }
11429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            sb.append('}');
11439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return sb.toString();
11449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
11458d112675879a2b83197d3b4ae4fb623abd1a1ec3Mitsuru Oshima
11463d91492d694cf00474fec792134e496be6ee0313Mitsuru Oshima        /**
11473d91492d694cf00474fec792134e496be6ee0313Mitsuru Oshima         * Scale the layout params' coordinates and size.
114864f59342d41849bd365cb43fad7505d5e3daa417Mitsuru Oshima         * @hide
1149e5fb328825995aa33b5b7ecf8b5bee2b17f81715Mitsuru Oshima         */
115064f59342d41849bd365cb43fad7505d5e3daa417Mitsuru Oshima        public void scale(float scale) {
115161324e58c549670c015010d0be14c6af76e3e9f7Mitsuru Oshima            x = (int) (x * scale + 0.5f);
115261324e58c549670c015010d0be14c6af76e3e9f7Mitsuru Oshima            y = (int) (y * scale + 0.5f);
1153e5fb328825995aa33b5b7ecf8b5bee2b17f81715Mitsuru Oshima            if (width > 0) {
115461324e58c549670c015010d0be14c6af76e3e9f7Mitsuru Oshima                width = (int) (width * scale + 0.5f);
1155e5fb328825995aa33b5b7ecf8b5bee2b17f81715Mitsuru Oshima            }
1156e5fb328825995aa33b5b7ecf8b5bee2b17f81715Mitsuru Oshima            if (height > 0) {
115761324e58c549670c015010d0be14c6af76e3e9f7Mitsuru Oshima                height = (int) (height * scale + 0.5f);
11588d112675879a2b83197d3b4ae4fb623abd1a1ec3Mitsuru Oshima            }
11598d112675879a2b83197d3b4ae4fb623abd1a1ec3Mitsuru Oshima        }
11608d112675879a2b83197d3b4ae4fb623abd1a1ec3Mitsuru Oshima
11613d91492d694cf00474fec792134e496be6ee0313Mitsuru Oshima        /**
1162e5fb328825995aa33b5b7ecf8b5bee2b17f81715Mitsuru Oshima         * Backup the layout parameters used in compatibility mode.
1163e5fb328825995aa33b5b7ecf8b5bee2b17f81715Mitsuru Oshima         * @see LayoutParams#restore()
1164e5fb328825995aa33b5b7ecf8b5bee2b17f81715Mitsuru Oshima         */
1165e5fb328825995aa33b5b7ecf8b5bee2b17f81715Mitsuru Oshima        void backup() {
1166e5fb328825995aa33b5b7ecf8b5bee2b17f81715Mitsuru Oshima            int[] backup = mCompatibilityParamsBackup;
1167e5fb328825995aa33b5b7ecf8b5bee2b17f81715Mitsuru Oshima            if (backup == null) {
116864f59342d41849bd365cb43fad7505d5e3daa417Mitsuru Oshima                // we backup 4 elements, x, y, width, height
116964f59342d41849bd365cb43fad7505d5e3daa417Mitsuru Oshima                backup = mCompatibilityParamsBackup = new int[4];
11703d91492d694cf00474fec792134e496be6ee0313Mitsuru Oshima            }
1171e5fb328825995aa33b5b7ecf8b5bee2b17f81715Mitsuru Oshima            backup[0] = x;
1172e5fb328825995aa33b5b7ecf8b5bee2b17f81715Mitsuru Oshima            backup[1] = y;
1173e5fb328825995aa33b5b7ecf8b5bee2b17f81715Mitsuru Oshima            backup[2] = width;
1174e5fb328825995aa33b5b7ecf8b5bee2b17f81715Mitsuru Oshima            backup[3] = height;
1175e5fb328825995aa33b5b7ecf8b5bee2b17f81715Mitsuru Oshima        }
1176e5fb328825995aa33b5b7ecf8b5bee2b17f81715Mitsuru Oshima
1177e5fb328825995aa33b5b7ecf8b5bee2b17f81715Mitsuru Oshima        /**
1178e5fb328825995aa33b5b7ecf8b5bee2b17f81715Mitsuru Oshima         * Restore the layout params' coordinates, size and gravity
1179e5fb328825995aa33b5b7ecf8b5bee2b17f81715Mitsuru Oshima         * @see LayoutParams#backup()
1180e5fb328825995aa33b5b7ecf8b5bee2b17f81715Mitsuru Oshima         */
1181e5fb328825995aa33b5b7ecf8b5bee2b17f81715Mitsuru Oshima        void restore() {
1182e5fb328825995aa33b5b7ecf8b5bee2b17f81715Mitsuru Oshima            int[] backup = mCompatibilityParamsBackup;
1183e5fb328825995aa33b5b7ecf8b5bee2b17f81715Mitsuru Oshima            if (backup != null) {
1184e5fb328825995aa33b5b7ecf8b5bee2b17f81715Mitsuru Oshima                x = backup[0];
1185e5fb328825995aa33b5b7ecf8b5bee2b17f81715Mitsuru Oshima                y = backup[1];
1186e5fb328825995aa33b5b7ecf8b5bee2b17f81715Mitsuru Oshima                width = backup[2];
11873d91492d694cf00474fec792134e496be6ee0313Mitsuru Oshima                height = backup[3];
11883d91492d694cf00474fec792134e496be6ee0313Mitsuru Oshima            }
11893d91492d694cf00474fec792134e496be6ee0313Mitsuru Oshima        }
11903d91492d694cf00474fec792134e496be6ee0313Mitsuru Oshima
11919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        private CharSequence mTitle = "";
11929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
11939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
1194