115a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root/*
215a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * Copyright (C) 2007 The Android Open Source Project
315a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root *
415a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * Licensed under the Apache License, Version 2.0 (the "License");
515a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * you may not use this file except in compliance with the License.
615a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * You may obtain a copy of the License at
715a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root *
815a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root *      http://www.apache.org/licenses/LICENSE-2.0
915a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root *
1015a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * Unless required by applicable law or agreed to in writing, software
1115a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * distributed under the License is distributed on an "AS IS" BASIS,
1215a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1315a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * See the License for the specific language governing permissions and
1415a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root * limitations under the License.
1515a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root */
1615a4d2ffd04dc6c70f2cd17dae12ac6bc14c69abKenny Root
179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.content.pm;
189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
191d0b177754c81a20e272b91c6f703a634fe5c856Dianne Hackbornimport android.content.res.Configuration;
209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Parcel;
219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Parcelable;
229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.util.Printer;
239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/**
259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Information you can retrieve about a particular application
269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * activity or receiver. This corresponds to information collected
279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * from the AndroidManifest.xml's <activity> and
289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <receiver> tags.
299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class ActivityInfo extends ComponentInfo
319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        implements Parcelable {
329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * A style resource identifier (in the package's resources) of this
349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * activity's theme.  From the "theme" attribute or, if not set, 0.
359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public int theme;
379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Constant corresponding to <code>standard</code> in
409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * the {@link android.R.attr#launchMode} attribute.
419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int LAUNCH_MULTIPLE = 0;
439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Constant corresponding to <code>singleTop</code> in
459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * the {@link android.R.attr#launchMode} attribute.
469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int LAUNCH_SINGLE_TOP = 1;
489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Constant corresponding to <code>singleTask</code> in
509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * the {@link android.R.attr#launchMode} attribute.
519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int LAUNCH_SINGLE_TASK = 2;
539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Constant corresponding to <code>singleInstance</code> in
559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * the {@link android.R.attr#launchMode} attribute.
569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int LAUNCH_SINGLE_INSTANCE = 3;
589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The launch mode style requested by the activity.  From the
609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.R.attr#launchMode} attribute, one of
619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link #LAUNCH_MULTIPLE},
629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link #LAUNCH_SINGLE_TOP}, {@link #LAUNCH_SINGLE_TASK}, or
639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link #LAUNCH_SINGLE_INSTANCE}.
649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public int launchMode;
669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Optional name of a permission required to be able to access this
699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Activity.  From the "permission" attribute.
709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public String permission;
729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The affinity this activity has for another task in the system.  The
759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * string here is the name of the task, often the package name of the
769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * overall package.  If null, the activity has no affinity.  Set from the
779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.R.attr#taskAffinity} attribute.
789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public String taskAffinity;
809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * If this is an activity alias, this is the real activity class to run
839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * for it.  Otherwise, this is null.
849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public String targetActivity;
869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Bit in {@link #flags} indicating whether this activity is able to
899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * run in multiple processes.  If
909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * true, the system may instantiate it in the some process as the
919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * process starting it in order to conserve resources.  If false, the
929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * default, it always runs in {@link #processName}.  Set from the
939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.R.attr#multiprocess} attribute.
949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int FLAG_MULTIPROCESS = 0x0001;
969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Bit in {@link #flags} indicating that, when the activity's task is
989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * relaunched from home, this activity should be finished.
999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Set from the
1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.R.attr#finishOnTaskLaunch} attribute.
1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int FLAG_FINISH_ON_TASK_LAUNCH = 0x0002;
1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Bit in {@link #flags} indicating that, when the activity is the root
1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * of a task, that task's stack should be cleared each time the user
1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * re-launches it from home.  As a result, the user will always
1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * return to the original activity at the top of the task.
1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * This flag only applies to activities that
1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * are used to start the root of a new task.  Set from the
1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.R.attr#clearTaskOnLaunch} attribute.
1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int FLAG_CLEAR_TASK_ON_LAUNCH = 0x0004;
1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Bit in {@link #flags} indicating that, when the activity is the root
1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * of a task, that task's stack should never be cleared when it is
1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * relaunched from home.  Set from the
1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.R.attr#alwaysRetainTaskState} attribute.
1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int FLAG_ALWAYS_RETAIN_TASK_STATE = 0x0008;
1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Bit in {@link #flags} indicating that the activity's state
1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * is not required to be saved, so that if there is a failure the
1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * activity will not be removed from the activity stack.  Set from the
1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.R.attr#stateNotNeeded} attribute.
1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int FLAG_STATE_NOT_NEEDED = 0x0010;
1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Bit in {@link #flags} that indicates that the activity should not
1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * appear in the list of recently launched activities.  Set from the
1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.R.attr#excludeFromRecents} attribute.
1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int FLAG_EXCLUDE_FROM_RECENTS = 0x0020;
1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Bit in {@link #flags} that indicates that the activity can be moved
1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * between tasks based on its task affinity.  Set from the
1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.R.attr#allowTaskReparenting} attribute.
1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int FLAG_ALLOW_TASK_REPARENTING = 0x0040;
1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Bit in {@link #flags} indicating that, when the user navigates away
1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * from an activity, it should be finished.
1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Set from the
1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.R.attr#noHistory} attribute.
1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int FLAG_NO_HISTORY = 0x0080;
1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
147ffa424800d0338b8b894aef2ea1e3e3344cbda7aDianne Hackborn     * Bit in {@link #flags} indicating that, when a request to close system
148ffa424800d0338b8b894aef2ea1e3e3344cbda7aDianne Hackborn     * windows happens, this activity is finished.
149ffa424800d0338b8b894aef2ea1e3e3344cbda7aDianne Hackborn     * Set from the
150ffa424800d0338b8b894aef2ea1e3e3344cbda7aDianne Hackborn     * {@link android.R.attr#finishOnCloseSystemDialogs} attribute.
151ffa424800d0338b8b894aef2ea1e3e3344cbda7aDianne Hackborn     */
152ffa424800d0338b8b894aef2ea1e3e3344cbda7aDianne Hackborn    public static final int FLAG_FINISH_ON_CLOSE_SYSTEM_DIALOGS = 0x0100;
153327fbd2c8fa294b919475feb4c74a74ee1981e02Dianne Hackborn    /**
154327fbd2c8fa294b919475feb4c74a74ee1981e02Dianne Hackborn     * Value for {@link #flags}: true when the application's rendering should
155327fbd2c8fa294b919475feb4c74a74ee1981e02Dianne Hackborn     * be hardware accelerated.
156327fbd2c8fa294b919475feb4c74a74ee1981e02Dianne Hackborn     */
157327fbd2c8fa294b919475feb4c74a74ee1981e02Dianne Hackborn    public static final int FLAG_HARDWARE_ACCELERATED = 0x0200;
158327fbd2c8fa294b919475feb4c74a74ee1981e02Dianne Hackborn    /**
1595962b12bedc4a1d0354816c1cd6b06ba04f6d807Craig Mautner     * Value for {@link #flags}: true when the application can be displayed over the lockscreen
1605962b12bedc4a1d0354816c1cd6b06ba04f6d807Craig Mautner     * and consequently over all users' windows.
1615962b12bedc4a1d0354816c1cd6b06ba04f6d807Craig Mautner     * @hide
1625962b12bedc4a1d0354816c1cd6b06ba04f6d807Craig Mautner     */
1635962b12bedc4a1d0354816c1cd6b06ba04f6d807Craig Mautner    public static final int FLAG_SHOW_ON_LOCK_SCREEN = 0x0400;
1645962b12bedc4a1d0354816c1cd6b06ba04f6d807Craig Mautner    /**
165322d77185d6e8fe79642f27b653bb51677873cbaJohn Spurlock     * Bit in {@link #flags} corresponding to an immersive activity
166613dde4aa651e11dac3db859723cc6faf8fc0a82Daniel Sandler     * that wishes not to be interrupted by notifications.
167613dde4aa651e11dac3db859723cc6faf8fc0a82Daniel Sandler     * Applications that hide the system notification bar with
168613dde4aa651e11dac3db859723cc6faf8fc0a82Daniel Sandler     * {@link android.view.WindowManager.LayoutParams#FLAG_FULLSCREEN}
169613dde4aa651e11dac3db859723cc6faf8fc0a82Daniel Sandler     * may still be interrupted by high-priority notifications; for example, an
170613dde4aa651e11dac3db859723cc6faf8fc0a82Daniel Sandler     * incoming phone call may use
1718091ca5015b2a9f591ad7d3ee5ec832c16cf5548Daniel Sandler     * {@link android.app.Notification#fullScreenIntent fullScreenIntent}
172613dde4aa651e11dac3db859723cc6faf8fc0a82Daniel Sandler     * to present a full-screen in-call activity to the user, pausing the
173613dde4aa651e11dac3db859723cc6faf8fc0a82Daniel Sandler     * current activity as a side-effect. An activity with
174613dde4aa651e11dac3db859723cc6faf8fc0a82Daniel Sandler     * {@link #FLAG_IMMERSIVE} set, however, will not be interrupted; the
175613dde4aa651e11dac3db859723cc6faf8fc0a82Daniel Sandler     * notification may be shown in some other way (such as a small floating
176613dde4aa651e11dac3db859723cc6faf8fc0a82Daniel Sandler     * "toast" window).
17773c2aee40a0e0ab2e8bd2bbbc560aa31c38eaac2Christopher Tate     *
17873c2aee40a0e0ab2e8bd2bbbc560aa31c38eaac2Christopher Tate     * Note that this flag will always reflect the Activity's
17973c2aee40a0e0ab2e8bd2bbbc560aa31c38eaac2Christopher Tate     * <code>android:immersive</code> manifest definition, even if the Activity's
18073c2aee40a0e0ab2e8bd2bbbc560aa31c38eaac2Christopher Tate     * immersive state is changed at runtime via
18173c2aee40a0e0ab2e8bd2bbbc560aa31c38eaac2Christopher Tate     * {@link android.app.Activity#setImmersive(boolean)}.
18273c2aee40a0e0ab2e8bd2bbbc560aa31c38eaac2Christopher Tate     *
18373c2aee40a0e0ab2e8bd2bbbc560aa31c38eaac2Christopher Tate     * @see android.app.Notification#FLAG_HIGH_PRIORITY
18473c2aee40a0e0ab2e8bd2bbbc560aa31c38eaac2Christopher Tate     * @see android.app.Activity#setImmersive(boolean)
185613dde4aa651e11dac3db859723cc6faf8fc0a82Daniel Sandler     */
1865962b12bedc4a1d0354816c1cd6b06ba04f6d807Craig Mautner    public static final int FLAG_IMMERSIVE = 0x0800;
187529b60a3b16ac3dff24f2403d760ab8ebc9670ffRomain Guy    /**
188d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1Dianne Hackborn     * @hide Bit in {@link #flags}: If set, this component will only be seen
189d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1Dianne Hackborn     * by the primary user.  Only works with broadcast receivers.  Set from the
190d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1Dianne Hackborn     * {@link android.R.attr#primaryUserOnly} attribute.
191d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1Dianne Hackborn     */
192d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1Dianne Hackborn    public static final int FLAG_PRIMARY_USER_ONLY = 0x20000000;
193d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1Dianne Hackborn    /**
1947d19e0242faac8017033dabb872cdf1542fa184cDianne Hackborn     * Bit in {@link #flags}: If set, a single instance of the receiver will
1957d19e0242faac8017033dabb872cdf1542fa184cDianne Hackborn     * run for all users on the device.  Set from the
1967d19e0242faac8017033dabb872cdf1542fa184cDianne Hackborn     * {@link android.R.attr#singleUser} attribute.  Note that this flag is
197d4ac8d7b3de27a9f0e4c6af2496ca71d794e42d1Dianne Hackborn     * only relevant for ActivityInfo structures that are describing receiver
1987d19e0242faac8017033dabb872cdf1542fa184cDianne Hackborn     * components; it is not applied to activities.
1997d19e0242faac8017033dabb872cdf1542fa184cDianne Hackborn     */
2007d19e0242faac8017033dabb872cdf1542fa184cDianne Hackborn    public static final int FLAG_SINGLE_USER = 0x40000000;
2017d19e0242faac8017033dabb872cdf1542fa184cDianne Hackborn    /**
2029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Options that have been set in the activity declaration in the
203613dde4aa651e11dac3db859723cc6faf8fc0a82Daniel Sandler     * manifest.
204613dde4aa651e11dac3db859723cc6faf8fc0a82Daniel Sandler     * These include:
205613dde4aa651e11dac3db859723cc6faf8fc0a82Daniel Sandler     * {@link #FLAG_MULTIPROCESS},
2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link #FLAG_FINISH_ON_TASK_LAUNCH}, {@link #FLAG_CLEAR_TASK_ON_LAUNCH},
2079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link #FLAG_ALWAYS_RETAIN_TASK_STATE},
2089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link #FLAG_STATE_NOT_NEEDED}, {@link #FLAG_EXCLUDE_FROM_RECENTS},
209ffa424800d0338b8b894aef2ea1e3e3344cbda7aDianne Hackborn     * {@link #FLAG_ALLOW_TASK_REPARENTING}, {@link #FLAG_NO_HISTORY},
210613dde4aa651e11dac3db859723cc6faf8fc0a82Daniel Sandler     * {@link #FLAG_FINISH_ON_CLOSE_SYSTEM_DIALOGS},
2117d19e0242faac8017033dabb872cdf1542fa184cDianne Hackborn     * {@link #FLAG_HARDWARE_ACCELERATED}, {@link #FLAG_SINGLE_USER}.
2129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public int flags;
2149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Constant corresponding to <code>unspecified</code> in
2179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * the {@link android.R.attr#screenOrientation} attribute.
2189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int SCREEN_ORIENTATION_UNSPECIFIED = -1;
2209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Constant corresponding to <code>landscape</code> in
2229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * the {@link android.R.attr#screenOrientation} attribute.
2239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int SCREEN_ORIENTATION_LANDSCAPE = 0;
2259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Constant corresponding to <code>portrait</code> in
2279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * the {@link android.R.attr#screenOrientation} attribute.
2289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int SCREEN_ORIENTATION_PORTRAIT = 1;
2309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Constant corresponding to <code>user</code> in
2329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * the {@link android.R.attr#screenOrientation} attribute.
2339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int SCREEN_ORIENTATION_USER = 2;
2359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Constant corresponding to <code>behind</code> in
2379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * the {@link android.R.attr#screenOrientation} attribute.
2389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int SCREEN_ORIENTATION_BEHIND = 3;
2409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Constant corresponding to <code>sensor</code> in
2429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * the {@link android.R.attr#screenOrientation} attribute.
2439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int SCREEN_ORIENTATION_SENSOR = 4;
2459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
247e5439f228f603f60febe058f633d91d5af2fff76Dianne Hackborn     * Constant corresponding to <code>nosensor</code> in
2489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * the {@link android.R.attr#screenOrientation} attribute.
2499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int SCREEN_ORIENTATION_NOSENSOR = 5;
251e5439f228f603f60febe058f633d91d5af2fff76Dianne Hackborn
252e5439f228f603f60febe058f633d91d5af2fff76Dianne Hackborn    /**
253e5439f228f603f60febe058f633d91d5af2fff76Dianne Hackborn     * Constant corresponding to <code>sensorLandscape</code> in
254e5439f228f603f60febe058f633d91d5af2fff76Dianne Hackborn     * the {@link android.R.attr#screenOrientation} attribute.
255e5439f228f603f60febe058f633d91d5af2fff76Dianne Hackborn     */
256e5439f228f603f60febe058f633d91d5af2fff76Dianne Hackborn    public static final int SCREEN_ORIENTATION_SENSOR_LANDSCAPE = 6;
257e5439f228f603f60febe058f633d91d5af2fff76Dianne Hackborn
258e5439f228f603f60febe058f633d91d5af2fff76Dianne Hackborn    /**
259e5439f228f603f60febe058f633d91d5af2fff76Dianne Hackborn     * Constant corresponding to <code>sensorPortrait</code> in
260e5439f228f603f60febe058f633d91d5af2fff76Dianne Hackborn     * the {@link android.R.attr#screenOrientation} attribute.
261e5439f228f603f60febe058f633d91d5af2fff76Dianne Hackborn     */
262e5439f228f603f60febe058f633d91d5af2fff76Dianne Hackborn    public static final int SCREEN_ORIENTATION_SENSOR_PORTRAIT = 7;
263e5439f228f603f60febe058f633d91d5af2fff76Dianne Hackborn
264e5439f228f603f60febe058f633d91d5af2fff76Dianne Hackborn    /**
265e5439f228f603f60febe058f633d91d5af2fff76Dianne Hackborn     * Constant corresponding to <code>reverseLandscape</code> in
266e5439f228f603f60febe058f633d91d5af2fff76Dianne Hackborn     * the {@link android.R.attr#screenOrientation} attribute.
267e5439f228f603f60febe058f633d91d5af2fff76Dianne Hackborn     */
268e5439f228f603f60febe058f633d91d5af2fff76Dianne Hackborn    public static final int SCREEN_ORIENTATION_REVERSE_LANDSCAPE = 8;
269e5439f228f603f60febe058f633d91d5af2fff76Dianne Hackborn
270e5439f228f603f60febe058f633d91d5af2fff76Dianne Hackborn    /**
271e5439f228f603f60febe058f633d91d5af2fff76Dianne Hackborn     * Constant corresponding to <code>reversePortrait</code> in
272e5439f228f603f60febe058f633d91d5af2fff76Dianne Hackborn     * the {@link android.R.attr#screenOrientation} attribute.
273e5439f228f603f60febe058f633d91d5af2fff76Dianne Hackborn     */
274e5439f228f603f60febe058f633d91d5af2fff76Dianne Hackborn    public static final int SCREEN_ORIENTATION_REVERSE_PORTRAIT = 9;
275e5439f228f603f60febe058f633d91d5af2fff76Dianne Hackborn
276e5439f228f603f60febe058f633d91d5af2fff76Dianne Hackborn    /**
277e5439f228f603f60febe058f633d91d5af2fff76Dianne Hackborn     * Constant corresponding to <code>fullSensor</code> in
278e5439f228f603f60febe058f633d91d5af2fff76Dianne Hackborn     * the {@link android.R.attr#screenOrientation} attribute.
279e5439f228f603f60febe058f633d91d5af2fff76Dianne Hackborn     */
280e5439f228f603f60febe058f633d91d5af2fff76Dianne Hackborn    public static final int SCREEN_ORIENTATION_FULL_SENSOR = 10;
281e5439f228f603f60febe058f633d91d5af2fff76Dianne Hackborn
2829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
283b9ec1ac51b631c4efc9b7a7e7a2b28882105ffa3Dianne Hackborn     * Constant corresponding to <code>userLandscape</code> in
284b9ec1ac51b631c4efc9b7a7e7a2b28882105ffa3Dianne Hackborn     * the {@link android.R.attr#screenOrientation} attribute.
285b9ec1ac51b631c4efc9b7a7e7a2b28882105ffa3Dianne Hackborn     */
286b9ec1ac51b631c4efc9b7a7e7a2b28882105ffa3Dianne Hackborn    public static final int SCREEN_ORIENTATION_USER_LANDSCAPE = 11;
287b9ec1ac51b631c4efc9b7a7e7a2b28882105ffa3Dianne Hackborn
288b9ec1ac51b631c4efc9b7a7e7a2b28882105ffa3Dianne Hackborn    /**
289b9ec1ac51b631c4efc9b7a7e7a2b28882105ffa3Dianne Hackborn     * Constant corresponding to <code>userPortrait</code> in
290b9ec1ac51b631c4efc9b7a7e7a2b28882105ffa3Dianne Hackborn     * the {@link android.R.attr#screenOrientation} attribute.
291b9ec1ac51b631c4efc9b7a7e7a2b28882105ffa3Dianne Hackborn     */
292b9ec1ac51b631c4efc9b7a7e7a2b28882105ffa3Dianne Hackborn    public static final int SCREEN_ORIENTATION_USER_PORTRAIT = 12;
293b9ec1ac51b631c4efc9b7a7e7a2b28882105ffa3Dianne Hackborn
294b9ec1ac51b631c4efc9b7a7e7a2b28882105ffa3Dianne Hackborn    /**
295b9ec1ac51b631c4efc9b7a7e7a2b28882105ffa3Dianne Hackborn     * Constant corresponding to <code>fullUser</code> in
296b9ec1ac51b631c4efc9b7a7e7a2b28882105ffa3Dianne Hackborn     * the {@link android.R.attr#screenOrientation} attribute.
297b9ec1ac51b631c4efc9b7a7e7a2b28882105ffa3Dianne Hackborn     */
298b9ec1ac51b631c4efc9b7a7e7a2b28882105ffa3Dianne Hackborn    public static final int SCREEN_ORIENTATION_FULL_USER = 13;
299b9ec1ac51b631c4efc9b7a7e7a2b28882105ffa3Dianne Hackborn
300b9ec1ac51b631c4efc9b7a7e7a2b28882105ffa3Dianne Hackborn    /**
301b9ec1ac51b631c4efc9b7a7e7a2b28882105ffa3Dianne Hackborn     * Constant corresponding to <code>locked</code> in
302b9ec1ac51b631c4efc9b7a7e7a2b28882105ffa3Dianne Hackborn     * the {@link android.R.attr#screenOrientation} attribute.
303b9ec1ac51b631c4efc9b7a7e7a2b28882105ffa3Dianne Hackborn     */
304b9ec1ac51b631c4efc9b7a7e7a2b28882105ffa3Dianne Hackborn    public static final int SCREEN_ORIENTATION_LOCKED = 14;
305b9ec1ac51b631c4efc9b7a7e7a2b28882105ffa3Dianne Hackborn
306b9ec1ac51b631c4efc9b7a7e7a2b28882105ffa3Dianne Hackborn    /**
3079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The preferred screen orientation this activity would like to run in.
3089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * From the {@link android.R.attr#screenOrientation} attribute, one of
3099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link #SCREEN_ORIENTATION_UNSPECIFIED},
3109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link #SCREEN_ORIENTATION_LANDSCAPE},
3119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link #SCREEN_ORIENTATION_PORTRAIT},
3129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link #SCREEN_ORIENTATION_USER},
3139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link #SCREEN_ORIENTATION_BEHIND},
3149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link #SCREEN_ORIENTATION_SENSOR},
315e5439f228f603f60febe058f633d91d5af2fff76Dianne Hackborn     * {@link #SCREEN_ORIENTATION_NOSENSOR},
316e5439f228f603f60febe058f633d91d5af2fff76Dianne Hackborn     * {@link #SCREEN_ORIENTATION_SENSOR_LANDSCAPE},
317e5439f228f603f60febe058f633d91d5af2fff76Dianne Hackborn     * {@link #SCREEN_ORIENTATION_SENSOR_PORTRAIT},
318e5439f228f603f60febe058f633d91d5af2fff76Dianne Hackborn     * {@link #SCREEN_ORIENTATION_REVERSE_LANDSCAPE},
319e5439f228f603f60febe058f633d91d5af2fff76Dianne Hackborn     * {@link #SCREEN_ORIENTATION_REVERSE_PORTRAIT},
320b9ec1ac51b631c4efc9b7a7e7a2b28882105ffa3Dianne Hackborn     * {@link #SCREEN_ORIENTATION_FULL_SENSOR},
321b9ec1ac51b631c4efc9b7a7e7a2b28882105ffa3Dianne Hackborn     * {@link #SCREEN_ORIENTATION_USER_LANDSCAPE},
322b9ec1ac51b631c4efc9b7a7e7a2b28882105ffa3Dianne Hackborn     * {@link #SCREEN_ORIENTATION_USER_PORTRAIT},
323b9ec1ac51b631c4efc9b7a7e7a2b28882105ffa3Dianne Hackborn     * {@link #SCREEN_ORIENTATION_FULL_USER},
324b9ec1ac51b631c4efc9b7a7e7a2b28882105ffa3Dianne Hackborn     * {@link #SCREEN_ORIENTATION_LOCKED},
3259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public int screenOrientation = SCREEN_ORIENTATION_UNSPECIFIED;
3279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Bit in {@link #configChanges} that indicates that the activity
3309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * can itself handle changes to the IMSI MCC.  Set from the
3319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.R.attr#configChanges} attribute.
3329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int CONFIG_MCC = 0x0001;
3349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Bit in {@link #configChanges} that indicates that the activity
3369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * can itself handle changes to the IMSI MNC.  Set from the
3379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.R.attr#configChanges} attribute.
3389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int CONFIG_MNC = 0x0002;
3409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Bit in {@link #configChanges} that indicates that the activity
3429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * can itself handle changes to the locale.  Set from the
3439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.R.attr#configChanges} attribute.
3449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int CONFIG_LOCALE = 0x0004;
3469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Bit in {@link #configChanges} that indicates that the activity
3489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * can itself handle changes to the touchscreen type.  Set from the
3499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.R.attr#configChanges} attribute.
3509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int CONFIG_TOUCHSCREEN = 0x0008;
3529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Bit in {@link #configChanges} that indicates that the activity
3549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * can itself handle changes to the keyboard type.  Set from the
3559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.R.attr#configChanges} attribute.
3569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int CONFIG_KEYBOARD = 0x0010;
3589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Bit in {@link #configChanges} that indicates that the activity
36093e462b79d6896da10e15e74c5aec6beb098dddfDianne Hackborn     * can itself handle changes to the keyboard or navigation being hidden/exposed.
36193e462b79d6896da10e15e74c5aec6beb098dddfDianne Hackborn     * Note that inspite of the name, this applies to the changes to any
36293e462b79d6896da10e15e74c5aec6beb098dddfDianne Hackborn     * hidden states: keyboard or navigation.
3639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Set from the {@link android.R.attr#configChanges} attribute.
3649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int CONFIG_KEYBOARD_HIDDEN = 0x0020;
3669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Bit in {@link #configChanges} that indicates that the activity
3689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * can itself handle changes to the navigation type.  Set from the
3699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.R.attr#configChanges} attribute.
3709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int CONFIG_NAVIGATION = 0x0040;
3729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Bit in {@link #configChanges} that indicates that the activity
3749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * can itself handle changes to the screen orientation.  Set from the
3759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.R.attr#configChanges} attribute.
3769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int CONFIG_ORIENTATION = 0x0080;
3789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Bit in {@link #configChanges} that indicates that the activity
380723738cfaec3dd7b0fe152c872c41bebf94074c4Dianne Hackborn     * can itself handle changes to the screen layout.  Set from the
381723738cfaec3dd7b0fe152c872c41bebf94074c4Dianne Hackborn     * {@link android.R.attr#configChanges} attribute.
382723738cfaec3dd7b0fe152c872c41bebf94074c4Dianne Hackborn     */
383723738cfaec3dd7b0fe152c872c41bebf94074c4Dianne Hackborn    public static final int CONFIG_SCREEN_LAYOUT = 0x0100;
384723738cfaec3dd7b0fe152c872c41bebf94074c4Dianne Hackborn    /**
385723738cfaec3dd7b0fe152c872c41bebf94074c4Dianne Hackborn     * Bit in {@link #configChanges} that indicates that the activity
38627b28b3f62bd3b54fa13acd5d035940b9be464f3Tobias Haamel     * can itself handle the ui mode. Set from the
38727b28b3f62bd3b54fa13acd5d035940b9be464f3Tobias Haamel     * {@link android.R.attr#configChanges} attribute.
38827b28b3f62bd3b54fa13acd5d035940b9be464f3Tobias Haamel     */
38927b28b3f62bd3b54fa13acd5d035940b9be464f3Tobias Haamel    public static final int CONFIG_UI_MODE = 0x0200;
39027b28b3f62bd3b54fa13acd5d035940b9be464f3Tobias Haamel    /**
39127b28b3f62bd3b54fa13acd5d035940b9be464f3Tobias Haamel     * Bit in {@link #configChanges} that indicates that the activity
392ebff8f92f13513ce37bd74759eb1db63f2220590Dianne Hackborn     * can itself handle the screen size. Set from the
393e66763516a9c27c192adaba417616371a1c3c9bfDianne Hackborn     * {@link android.R.attr#configChanges} attribute.  This will be
394e66763516a9c27c192adaba417616371a1c3c9bfDianne Hackborn     * set by default for applications that target an earlier version
395e66763516a9c27c192adaba417616371a1c3c9bfDianne Hackborn     * than {@link android.os.Build.VERSION_CODES#HONEYCOMB_MR2}...
396e66763516a9c27c192adaba417616371a1c3c9bfDianne Hackborn     * <b>however</b>, you will not see the bit set here becomes some
397e66763516a9c27c192adaba417616371a1c3c9bfDianne Hackborn     * applications incorrectly compare {@link #configChanges} against
398e66763516a9c27c192adaba417616371a1c3c9bfDianne Hackborn     * an absolute value rather than correctly masking out the bits
399e66763516a9c27c192adaba417616371a1c3c9bfDianne Hackborn     * they are interested in.  Please don't do that, thanks.
400ebff8f92f13513ce37bd74759eb1db63f2220590Dianne Hackborn     */
401ebff8f92f13513ce37bd74759eb1db63f2220590Dianne Hackborn    public static final int CONFIG_SCREEN_SIZE = 0x0400;
402ebff8f92f13513ce37bd74759eb1db63f2220590Dianne Hackborn    /**
403ebff8f92f13513ce37bd74759eb1db63f2220590Dianne Hackborn     * Bit in {@link #configChanges} that indicates that the activity
40469cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackborn     * can itself handle the smallest screen size. Set from the
405e66763516a9c27c192adaba417616371a1c3c9bfDianne Hackborn     * {@link android.R.attr#configChanges} attribute.  This will be
406e66763516a9c27c192adaba417616371a1c3c9bfDianne Hackborn     * set by default for applications that target an earlier version
407e66763516a9c27c192adaba417616371a1c3c9bfDianne Hackborn     * than {@link android.os.Build.VERSION_CODES#HONEYCOMB_MR2}...
408e66763516a9c27c192adaba417616371a1c3c9bfDianne Hackborn     * <b>however</b>, you will not see the bit set here becomes some
409e66763516a9c27c192adaba417616371a1c3c9bfDianne Hackborn     * applications incorrectly compare {@link #configChanges} against
410e66763516a9c27c192adaba417616371a1c3c9bfDianne Hackborn     * an absolute value rather than correctly masking out the bits
411e66763516a9c27c192adaba417616371a1c3c9bfDianne Hackborn     * they are interested in.  Please don't do that, thanks.
41269cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackborn     */
41369cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackborn    public static final int CONFIG_SMALLEST_SCREEN_SIZE = 0x0800;
41469cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackborn    /**
41569cb87576ba163b61bb0e6477a3b7c57a9b11d40Dianne Hackborn     * Bit in {@link #configChanges} that indicates that the activity
416908aecc3a63c5520d5b11da14a9383f885b7d126Dianne Hackborn     * can itself handle density changes. Set from the
417908aecc3a63c5520d5b11da14a9383f885b7d126Dianne Hackborn     * {@link android.R.attr#configChanges} attribute.
418908aecc3a63c5520d5b11da14a9383f885b7d126Dianne Hackborn     */
419908aecc3a63c5520d5b11da14a9383f885b7d126Dianne Hackborn    public static final int CONFIG_DENSITY = 0x1000;
420908aecc3a63c5520d5b11da14a9383f885b7d126Dianne Hackborn    /**
421908aecc3a63c5520d5b11da14a9383f885b7d126Dianne Hackborn     * Bit in {@link #configChanges} that indicates that the activity
4225f7979993979466c79ab4f38d83c6f2aca361662Fabrice Di Meglio     * can itself handle the change to layout direction. Set from the
4235f7979993979466c79ab4f38d83c6f2aca361662Fabrice Di Meglio     * {@link android.R.attr#configChanges} attribute.
4245f7979993979466c79ab4f38d83c6f2aca361662Fabrice Di Meglio     */
4255f7979993979466c79ab4f38d83c6f2aca361662Fabrice Di Meglio    public static final int CONFIG_LAYOUT_DIRECTION = 0x2000;
4265f7979993979466c79ab4f38d83c6f2aca361662Fabrice Di Meglio    /**
4275f7979993979466c79ab4f38d83c6f2aca361662Fabrice Di Meglio     * Bit in {@link #configChanges} that indicates that the activity
4289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * can itself handle changes to the font scaling factor.  Set from the
4299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.R.attr#configChanges} attribute.  This is
430dc25d25333d3fac96dccfb9bd31d2474d6bc2d78Fabrice Di Meglio     * not a core resource configuration, but a higher-level value, so its
4319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * constant starts at the high bits.
4329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
4339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int CONFIG_FONT_SCALE = 0x40000000;
4349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
435ebff8f92f13513ce37bd74759eb1db63f2220590Dianne Hackborn    /** @hide
436ebff8f92f13513ce37bd74759eb1db63f2220590Dianne Hackborn     * Unfortunately the constants for config changes in native code are
437ebff8f92f13513ce37bd74759eb1db63f2220590Dianne Hackborn     * different from ActivityInfo. :(  Here are the values we should use for the
438ebff8f92f13513ce37bd74759eb1db63f2220590Dianne Hackborn     * native side given the bit we have assigned in ActivityInfo.
439ebff8f92f13513ce37bd74759eb1db63f2220590Dianne Hackborn     */
440ebff8f92f13513ce37bd74759eb1db63f2220590Dianne Hackborn    public static int[] CONFIG_NATIVE_BITS = new int[] {
4411d0b177754c81a20e272b91c6f703a634fe5c856Dianne Hackborn        Configuration.NATIVE_CONFIG_MNC,                    // MNC
4421d0b177754c81a20e272b91c6f703a634fe5c856Dianne Hackborn        Configuration.NATIVE_CONFIG_MCC,                    // MCC
4431d0b177754c81a20e272b91c6f703a634fe5c856Dianne Hackborn        Configuration.NATIVE_CONFIG_LOCALE,                 // LOCALE
4441d0b177754c81a20e272b91c6f703a634fe5c856Dianne Hackborn        Configuration.NATIVE_CONFIG_TOUCHSCREEN,            // TOUCH SCREEN
4451d0b177754c81a20e272b91c6f703a634fe5c856Dianne Hackborn        Configuration.NATIVE_CONFIG_KEYBOARD,               // KEYBOARD
4461d0b177754c81a20e272b91c6f703a634fe5c856Dianne Hackborn        Configuration.NATIVE_CONFIG_KEYBOARD_HIDDEN,        // KEYBOARD HIDDEN
4471d0b177754c81a20e272b91c6f703a634fe5c856Dianne Hackborn        Configuration.NATIVE_CONFIG_NAVIGATION,             // NAVIGATION
4481d0b177754c81a20e272b91c6f703a634fe5c856Dianne Hackborn        Configuration.NATIVE_CONFIG_ORIENTATION,            // ORIENTATION
4491d0b177754c81a20e272b91c6f703a634fe5c856Dianne Hackborn        Configuration.NATIVE_CONFIG_SCREEN_LAYOUT,          // SCREEN LAYOUT
4501d0b177754c81a20e272b91c6f703a634fe5c856Dianne Hackborn        Configuration.NATIVE_CONFIG_UI_MODE,                // UI MODE
4511d0b177754c81a20e272b91c6f703a634fe5c856Dianne Hackborn        Configuration.NATIVE_CONFIG_SCREEN_SIZE,            // SCREEN SIZE
4521d0b177754c81a20e272b91c6f703a634fe5c856Dianne Hackborn        Configuration.NATIVE_CONFIG_SMALLEST_SCREEN_SIZE,   // SMALLEST SCREEN SIZE
4531d0b177754c81a20e272b91c6f703a634fe5c856Dianne Hackborn        Configuration.NATIVE_CONFIG_DENSITY,                // DENSITY
4541d0b177754c81a20e272b91c6f703a634fe5c856Dianne Hackborn        Configuration.NATIVE_CONFIG_LAYOUTDIR,              // LAYOUT DIRECTION
455ebff8f92f13513ce37bd74759eb1db63f2220590Dianne Hackborn    };
456ebff8f92f13513ce37bd74759eb1db63f2220590Dianne Hackborn    /** @hide
457ebff8f92f13513ce37bd74759eb1db63f2220590Dianne Hackborn     * Convert Java change bits to native.
458ebff8f92f13513ce37bd74759eb1db63f2220590Dianne Hackborn     */
459ebff8f92f13513ce37bd74759eb1db63f2220590Dianne Hackborn    public static int activityInfoConfigToNative(int input) {
460ebff8f92f13513ce37bd74759eb1db63f2220590Dianne Hackborn        int output = 0;
461ebff8f92f13513ce37bd74759eb1db63f2220590Dianne Hackborn        for (int i=0; i<CONFIG_NATIVE_BITS.length; i++) {
462ebff8f92f13513ce37bd74759eb1db63f2220590Dianne Hackborn            if ((input&(1<<i)) != 0) {
463ebff8f92f13513ce37bd74759eb1db63f2220590Dianne Hackborn                output |= CONFIG_NATIVE_BITS[i];
464ebff8f92f13513ce37bd74759eb1db63f2220590Dianne Hackborn            }
465ebff8f92f13513ce37bd74759eb1db63f2220590Dianne Hackborn        }
466ebff8f92f13513ce37bd74759eb1db63f2220590Dianne Hackborn        return output;
467ebff8f92f13513ce37bd74759eb1db63f2220590Dianne Hackborn    }
468ebff8f92f13513ce37bd74759eb1db63f2220590Dianne Hackborn
4699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
470e66763516a9c27c192adaba417616371a1c3c9bfDianne Hackborn     * @hide
471e66763516a9c27c192adaba417616371a1c3c9bfDianne Hackborn     * Unfortunately some developers (OpenFeint I am looking at you) have
472e66763516a9c27c192adaba417616371a1c3c9bfDianne Hackborn     * compared the configChanges bit field against absolute values, so if we
473e66763516a9c27c192adaba417616371a1c3c9bfDianne Hackborn     * introduce a new bit they break.  To deal with that, we will make sure
474e66763516a9c27c192adaba417616371a1c3c9bfDianne Hackborn     * the public field will not have a value that breaks them, and let the
475e66763516a9c27c192adaba417616371a1c3c9bfDianne Hackborn     * framework call here to get the real value.
476e66763516a9c27c192adaba417616371a1c3c9bfDianne Hackborn     */
477e66763516a9c27c192adaba417616371a1c3c9bfDianne Hackborn    public int getRealConfigChanged() {
478e66763516a9c27c192adaba417616371a1c3c9bfDianne Hackborn        return applicationInfo.targetSdkVersion < android.os.Build.VERSION_CODES.HONEYCOMB_MR2
479e66763516a9c27c192adaba417616371a1c3c9bfDianne Hackborn                ? (configChanges | ActivityInfo.CONFIG_SCREEN_SIZE
480e66763516a9c27c192adaba417616371a1c3c9bfDianne Hackborn                        | ActivityInfo.CONFIG_SMALLEST_SCREEN_SIZE)
481e66763516a9c27c192adaba417616371a1c3c9bfDianne Hackborn                : configChanges;
482e66763516a9c27c192adaba417616371a1c3c9bfDianne Hackborn    }
483e66763516a9c27c192adaba417616371a1c3c9bfDianne Hackborn
484e66763516a9c27c192adaba417616371a1c3c9bfDianne Hackborn    /**
4859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Bit mask of kinds of configuration changes that this activity
4869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * can handle itself (without being restarted by the system).
4879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Contains any combination of {@link #CONFIG_FONT_SCALE},
4889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link #CONFIG_MCC}, {@link #CONFIG_MNC},
4899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link #CONFIG_LOCALE}, {@link #CONFIG_TOUCHSCREEN},
490723738cfaec3dd7b0fe152c872c41bebf94074c4Dianne Hackborn     * {@link #CONFIG_KEYBOARD}, {@link #CONFIG_NAVIGATION},
4915f7979993979466c79ab4f38d83c6f2aca361662Fabrice Di Meglio     * {@link #CONFIG_ORIENTATION}, {@link #CONFIG_SCREEN_LAYOUT} and
4925f7979993979466c79ab4f38d83c6f2aca361662Fabrice Di Meglio     * {@link #CONFIG_LAYOUT_DIRECTION}.  Set from the {@link android.R.attr#configChanges}
4935f7979993979466c79ab4f38d83c6f2aca361662Fabrice Di Meglio     * attribute.
4949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
4959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public int configChanges;
4969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
4979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
4989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The desired soft input mode for this activity's main window.
4999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Set from the {@link android.R.attr#windowSoftInputMode} attribute
5009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * in the activity's manifest.  May be any of the same values allowed
5019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * for {@link android.view.WindowManager.LayoutParams#softInputMode
5029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * WindowManager.LayoutParams.softInputMode}.  If 0 (unspecified),
5039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * the mode from the theme will be used.
5049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
5059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public int softInputMode;
506269248d112e35fe8e9f0d5d11c96dcb2ac1118b0Adam Powell
507269248d112e35fe8e9f0d5d11c96dcb2ac1118b0Adam Powell    /**
508269248d112e35fe8e9f0d5d11c96dcb2ac1118b0Adam Powell     * The desired extra UI options for this activity and its main window.
509269248d112e35fe8e9f0d5d11c96dcb2ac1118b0Adam Powell     * Set from the {@link android.R.attr#uiOptions} attribute in the
510269248d112e35fe8e9f0d5d11c96dcb2ac1118b0Adam Powell     * activity's manifest.
511269248d112e35fe8e9f0d5d11c96dcb2ac1118b0Adam Powell     */
512269248d112e35fe8e9f0d5d11c96dcb2ac1118b0Adam Powell    public int uiOptions = 0;
513269248d112e35fe8e9f0d5d11c96dcb2ac1118b0Adam Powell
514269248d112e35fe8e9f0d5d11c96dcb2ac1118b0Adam Powell    /**
515e797ed6a74593630219faf7f0ba5dc8235586bceScott Main     * Flag for use with {@link #uiOptions}.
516e797ed6a74593630219faf7f0ba5dc8235586bceScott Main     * Indicates that the action bar should put all action items in a separate bar when
517e797ed6a74593630219faf7f0ba5dc8235586bceScott Main     * the screen is narrow.
518e797ed6a74593630219faf7f0ba5dc8235586bceScott Main     * <p>This value corresponds to "splitActionBarWhenNarrow" for the {@link #uiOptions} XML
519e797ed6a74593630219faf7f0ba5dc8235586bceScott Main     * attribute.
520269248d112e35fe8e9f0d5d11c96dcb2ac1118b0Adam Powell     */
521269248d112e35fe8e9f0d5d11c96dcb2ac1118b0Adam Powell    public static final int UIOPTION_SPLIT_ACTION_BAR_WHEN_NARROW = 1;
522269248d112e35fe8e9f0d5d11c96dcb2ac1118b0Adam Powell
523dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell    /**
524dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell     * If defined, the activity named here is the logical parent of this activity.
525dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell     */
526dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell    public String parentActivityName;
527dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell
5289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public ActivityInfo() {
5299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
5309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public ActivityInfo(ActivityInfo orig) {
5329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        super(orig);
5339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        theme = orig.theme;
5349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        launchMode = orig.launchMode;
5359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        permission = orig.permission;
5369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        taskAffinity = orig.taskAffinity;
5379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        targetActivity = orig.targetActivity;
5389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        flags = orig.flags;
5399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        screenOrientation = orig.screenOrientation;
5409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        configChanges = orig.configChanges;
5419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        softInputMode = orig.softInputMode;
542269248d112e35fe8e9f0d5d11c96dcb2ac1118b0Adam Powell        uiOptions = orig.uiOptions;
543dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        parentActivityName = orig.parentActivityName;
5449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
5459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
5479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Return the theme resource identifier to use for this activity.  If
5489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * the activity defines a theme, that is used; else, the application
5499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * theme is used.
5509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
5519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return The theme associated with this activity.
5529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
5539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public final int getThemeResource() {
5549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return theme != 0 ? theme : applicationInfo.theme;
5559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
5569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void dump(Printer pw, String prefix) {
5589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        super.dumpFront(pw, prefix);
55912527f9fb1cb0a1ad3be8149c1c88a0e731cb4d6Dianne Hackborn        if (permission != null) {
56012527f9fb1cb0a1ad3be8149c1c88a0e731cb4d6Dianne Hackborn            pw.println(prefix + "permission=" + permission);
56112527f9fb1cb0a1ad3be8149c1c88a0e731cb4d6Dianne Hackborn        }
5629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        pw.println(prefix + "taskAffinity=" + taskAffinity
5639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                + " targetActivity=" + targetActivity);
56412527f9fb1cb0a1ad3be8149c1c88a0e731cb4d6Dianne Hackborn        if (launchMode != 0 || flags != 0 || theme != 0) {
56512527f9fb1cb0a1ad3be8149c1c88a0e731cb4d6Dianne Hackborn            pw.println(prefix + "launchMode=" + launchMode
56612527f9fb1cb0a1ad3be8149c1c88a0e731cb4d6Dianne Hackborn                    + " flags=0x" + Integer.toHexString(flags)
56712527f9fb1cb0a1ad3be8149c1c88a0e731cb4d6Dianne Hackborn                    + " theme=0x" + Integer.toHexString(theme));
56812527f9fb1cb0a1ad3be8149c1c88a0e731cb4d6Dianne Hackborn        }
56912527f9fb1cb0a1ad3be8149c1c88a0e731cb4d6Dianne Hackborn        if (screenOrientation != SCREEN_ORIENTATION_UNSPECIFIED
57012527f9fb1cb0a1ad3be8149c1c88a0e731cb4d6Dianne Hackborn                || configChanges != 0 || softInputMode != 0) {
57112527f9fb1cb0a1ad3be8149c1c88a0e731cb4d6Dianne Hackborn            pw.println(prefix + "screenOrientation=" + screenOrientation
57212527f9fb1cb0a1ad3be8149c1c88a0e731cb4d6Dianne Hackborn                    + " configChanges=0x" + Integer.toHexString(configChanges)
57312527f9fb1cb0a1ad3be8149c1c88a0e731cb4d6Dianne Hackborn                    + " softInputMode=0x" + Integer.toHexString(softInputMode));
57412527f9fb1cb0a1ad3be8149c1c88a0e731cb4d6Dianne Hackborn        }
575269248d112e35fe8e9f0d5d11c96dcb2ac1118b0Adam Powell        if (uiOptions != 0) {
576269248d112e35fe8e9f0d5d11c96dcb2ac1118b0Adam Powell            pw.println(prefix + " uiOptions=0x" + Integer.toHexString(uiOptions));
577269248d112e35fe8e9f0d5d11c96dcb2ac1118b0Adam Powell        }
5789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        super.dumpBack(pw, prefix);
5799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
5809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public String toString() {
5829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return "ActivityInfo{"
5839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            + Integer.toHexString(System.identityHashCode(this))
5849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            + " " + name + "}";
5859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
5869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public int describeContents() {
5889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return 0;
5899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
5909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
5919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void writeToParcel(Parcel dest, int parcelableFlags) {
5929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        super.writeToParcel(dest, parcelableFlags);
5939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        dest.writeInt(theme);
5949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        dest.writeInt(launchMode);
5959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        dest.writeString(permission);
5969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        dest.writeString(taskAffinity);
5979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        dest.writeString(targetActivity);
5989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        dest.writeInt(flags);
5999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        dest.writeInt(screenOrientation);
6009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        dest.writeInt(configChanges);
6019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        dest.writeInt(softInputMode);
602269248d112e35fe8e9f0d5d11c96dcb2ac1118b0Adam Powell        dest.writeInt(uiOptions);
603dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        dest.writeString(parentActivityName);
6049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
6059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final Parcelable.Creator<ActivityInfo> CREATOR
6079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            = new Parcelable.Creator<ActivityInfo>() {
6089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public ActivityInfo createFromParcel(Parcel source) {
6099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return new ActivityInfo(source);
6109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
6119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public ActivityInfo[] newArray(int size) {
6129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return new ActivityInfo[size];
6139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
6149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    };
6159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
6169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    private ActivityInfo(Parcel source) {
6179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        super(source);
6189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        theme = source.readInt();
6199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        launchMode = source.readInt();
6209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        permission = source.readString();
6219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        taskAffinity = source.readString();
6229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        targetActivity = source.readString();
6239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        flags = source.readInt();
6249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        screenOrientation = source.readInt();
6259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        configChanges = source.readInt();
6269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        softInputMode = source.readInt();
627269248d112e35fe8e9f0d5d11c96dcb2ac1118b0Adam Powell        uiOptions = source.readInt();
628dd8fab2629131b09367df747afd9a61e42dd1992Adam Powell        parentActivityName = source.readString();
6299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
6309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
631