ActivityInfo.java revision 12527f9fb1cb0a1ad3be8149c1c88a0e731cb4d6
19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.content.pm;
29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Parcel;
49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Parcelable;
59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.util.Printer;
69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/**
89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Information you can retrieve about a particular application
99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * activity or receiver. This corresponds to information collected
109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * from the AndroidManifest.xml's <activity> and
119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <receiver> tags.
129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class ActivityInfo extends ComponentInfo
149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        implements Parcelable {
159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * A style resource identifier (in the package's resources) of this
179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * activity's theme.  From the "theme" attribute or, if not set, 0.
189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public int theme;
209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Constant corresponding to <code>standard</code> in
239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * the {@link android.R.attr#launchMode} attribute.
249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int LAUNCH_MULTIPLE = 0;
269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Constant corresponding to <code>singleTop</code> in
289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * the {@link android.R.attr#launchMode} attribute.
299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int LAUNCH_SINGLE_TOP = 1;
319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Constant corresponding to <code>singleTask</code> in
339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * the {@link android.R.attr#launchMode} attribute.
349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int LAUNCH_SINGLE_TASK = 2;
369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Constant corresponding to <code>singleInstance</code> in
389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * the {@link android.R.attr#launchMode} attribute.
399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int LAUNCH_SINGLE_INSTANCE = 3;
419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The launch mode style requested by the activity.  From the
439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.R.attr#launchMode} attribute, one of
449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link #LAUNCH_MULTIPLE},
459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link #LAUNCH_SINGLE_TOP}, {@link #LAUNCH_SINGLE_TASK}, or
469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link #LAUNCH_SINGLE_INSTANCE}.
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public int launchMode;
499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Optional name of a permission required to be able to access this
529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Activity.  From the "permission" attribute.
539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public String permission;
559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The affinity this activity has for another task in the system.  The
589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * string here is the name of the task, often the package name of the
599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * overall package.  If null, the activity has no affinity.  Set from the
609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.R.attr#taskAffinity} attribute.
619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public String taskAffinity;
639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * If this is an activity alias, this is the real activity class to run
669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * for it.  Otherwise, this is null.
679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public String targetActivity;
699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Bit in {@link #flags} indicating whether this activity is able to
729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * run in multiple processes.  If
739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * true, the system may instantiate it in the some process as the
749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * process starting it in order to conserve resources.  If false, the
759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * default, it always runs in {@link #processName}.  Set from the
769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.R.attr#multiprocess} attribute.
779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int FLAG_MULTIPROCESS = 0x0001;
799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Bit in {@link #flags} indicating that, when the activity's task is
819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * relaunched from home, this activity should be finished.
829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Set from the
839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.R.attr#finishOnTaskLaunch} attribute.
849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int FLAG_FINISH_ON_TASK_LAUNCH = 0x0002;
869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Bit in {@link #flags} indicating that, when the activity is the root
889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * of a task, that task's stack should be cleared each time the user
899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * re-launches it from home.  As a result, the user will always
909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * return to the original activity at the top of the task.
919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * This flag only applies to activities that
929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * are used to start the root of a new task.  Set from the
939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.R.attr#clearTaskOnLaunch} attribute.
949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int FLAG_CLEAR_TASK_ON_LAUNCH = 0x0004;
969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Bit in {@link #flags} indicating that, when the activity is the root
989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * of a task, that task's stack should never be cleared when it is
999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * relaunched from home.  Set from the
1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.R.attr#alwaysRetainTaskState} attribute.
1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int FLAG_ALWAYS_RETAIN_TASK_STATE = 0x0008;
1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Bit in {@link #flags} indicating that the activity's state
1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * is not required to be saved, so that if there is a failure the
1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * activity will not be removed from the activity stack.  Set from the
1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.R.attr#stateNotNeeded} attribute.
1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int FLAG_STATE_NOT_NEEDED = 0x0010;
1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Bit in {@link #flags} that indicates that the activity should not
1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * appear in the list of recently launched activities.  Set from the
1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.R.attr#excludeFromRecents} attribute.
1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int FLAG_EXCLUDE_FROM_RECENTS = 0x0020;
1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Bit in {@link #flags} that indicates that the activity can be moved
1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * between tasks based on its task affinity.  Set from the
1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.R.attr#allowTaskReparenting} attribute.
1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int FLAG_ALLOW_TASK_REPARENTING = 0x0040;
1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Bit in {@link #flags} indicating that, when the user navigates away
1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * from an activity, it should be finished.
1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Set from the
1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.R.attr#noHistory} attribute.
1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int FLAG_NO_HISTORY = 0x0080;
1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
130ffa424800d0338b8b894aef2ea1e3e3344cbda7aDianne Hackborn     * Bit in {@link #flags} indicating that, when a request to close system
131ffa424800d0338b8b894aef2ea1e3e3344cbda7aDianne Hackborn     * windows happens, this activity is finished.
132ffa424800d0338b8b894aef2ea1e3e3344cbda7aDianne Hackborn     * Set from the
133ffa424800d0338b8b894aef2ea1e3e3344cbda7aDianne Hackborn     * {@link android.R.attr#finishOnCloseSystemDialogs} attribute.
134ffa424800d0338b8b894aef2ea1e3e3344cbda7aDianne Hackborn     */
135ffa424800d0338b8b894aef2ea1e3e3344cbda7aDianne Hackborn    public static final int FLAG_FINISH_ON_CLOSE_SYSTEM_DIALOGS = 0x0100;
136ffa424800d0338b8b894aef2ea1e3e3344cbda7aDianne Hackborn    /**
1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Options that have been set in the activity declaration in the
1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * manifest: {@link #FLAG_MULTIPROCESS},
1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link #FLAG_FINISH_ON_TASK_LAUNCH}, {@link #FLAG_CLEAR_TASK_ON_LAUNCH},
1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link #FLAG_ALWAYS_RETAIN_TASK_STATE},
1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link #FLAG_STATE_NOT_NEEDED}, {@link #FLAG_EXCLUDE_FROM_RECENTS},
142ffa424800d0338b8b894aef2ea1e3e3344cbda7aDianne Hackborn     * {@link #FLAG_ALLOW_TASK_REPARENTING}, {@link #FLAG_NO_HISTORY},
143ffa424800d0338b8b894aef2ea1e3e3344cbda7aDianne Hackborn     * {@link #FLAG_FINISH_ON_CLOSE_SYSTEM_DIALOGS}.
1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public int flags;
1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Constant corresponding to <code>unspecified</code> in
1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * the {@link android.R.attr#screenOrientation} attribute.
1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int SCREEN_ORIENTATION_UNSPECIFIED = -1;
1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Constant corresponding to <code>landscape</code> in
1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * the {@link android.R.attr#screenOrientation} attribute.
1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int SCREEN_ORIENTATION_LANDSCAPE = 0;
1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Constant corresponding to <code>portrait</code> in
1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * the {@link android.R.attr#screenOrientation} attribute.
1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int SCREEN_ORIENTATION_PORTRAIT = 1;
1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Constant corresponding to <code>user</code> in
1649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * the {@link android.R.attr#screenOrientation} attribute.
1659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int SCREEN_ORIENTATION_USER = 2;
1679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Constant corresponding to <code>behind</code> in
1699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * the {@link android.R.attr#screenOrientation} attribute.
1709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int SCREEN_ORIENTATION_BEHIND = 3;
1729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Constant corresponding to <code>sensor</code> in
1749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * the {@link android.R.attr#screenOrientation} attribute.
1759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int SCREEN_ORIENTATION_SENSOR = 4;
1779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Constant corresponding to <code>sensor</code> in
1809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * the {@link android.R.attr#screenOrientation} attribute.
1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int SCREEN_ORIENTATION_NOSENSOR = 5;
1839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The preferred screen orientation this activity would like to run in.
1859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * From the {@link android.R.attr#screenOrientation} attribute, one of
1869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link #SCREEN_ORIENTATION_UNSPECIFIED},
1879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link #SCREEN_ORIENTATION_LANDSCAPE},
1889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link #SCREEN_ORIENTATION_PORTRAIT},
1899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link #SCREEN_ORIENTATION_USER},
1909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link #SCREEN_ORIENTATION_BEHIND},
1919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link #SCREEN_ORIENTATION_SENSOR},
1929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link #SCREEN_ORIENTATION_NOSENSOR}.
1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public int screenOrientation = SCREEN_ORIENTATION_UNSPECIFIED;
1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Bit in {@link #configChanges} that indicates that the activity
1989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * can itself handle changes to the IMSI MCC.  Set from the
1999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.R.attr#configChanges} attribute.
2009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int CONFIG_MCC = 0x0001;
2029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Bit in {@link #configChanges} that indicates that the activity
2049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * can itself handle changes to the IMSI MNC.  Set from the
2059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.R.attr#configChanges} attribute.
2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int CONFIG_MNC = 0x0002;
2089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Bit in {@link #configChanges} that indicates that the activity
2109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * can itself handle changes to the locale.  Set from the
2119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.R.attr#configChanges} attribute.
2129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int CONFIG_LOCALE = 0x0004;
2149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Bit in {@link #configChanges} that indicates that the activity
2169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * can itself handle changes to the touchscreen type.  Set from the
2179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.R.attr#configChanges} attribute.
2189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int CONFIG_TOUCHSCREEN = 0x0008;
2209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Bit in {@link #configChanges} that indicates that the activity
2229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * can itself handle changes to the keyboard type.  Set from the
2239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.R.attr#configChanges} attribute.
2249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int CONFIG_KEYBOARD = 0x0010;
2269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Bit in {@link #configChanges} that indicates that the activity
22893e462b79d6896da10e15e74c5aec6beb098dddfDianne Hackborn     * can itself handle changes to the keyboard or navigation being hidden/exposed.
22993e462b79d6896da10e15e74c5aec6beb098dddfDianne Hackborn     * Note that inspite of the name, this applies to the changes to any
23093e462b79d6896da10e15e74c5aec6beb098dddfDianne Hackborn     * hidden states: keyboard or navigation.
2319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Set from the {@link android.R.attr#configChanges} attribute.
2329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int CONFIG_KEYBOARD_HIDDEN = 0x0020;
2349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Bit in {@link #configChanges} that indicates that the activity
2369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * can itself handle changes to the navigation type.  Set from the
2379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.R.attr#configChanges} attribute.
2389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int CONFIG_NAVIGATION = 0x0040;
2409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Bit in {@link #configChanges} that indicates that the activity
2429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * can itself handle changes to the screen orientation.  Set from the
2439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.R.attr#configChanges} attribute.
2449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int CONFIG_ORIENTATION = 0x0080;
2469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Bit in {@link #configChanges} that indicates that the activity
248723738cfaec3dd7b0fe152c872c41bebf94074c4Dianne Hackborn     * can itself handle changes to the screen layout.  Set from the
249723738cfaec3dd7b0fe152c872c41bebf94074c4Dianne Hackborn     * {@link android.R.attr#configChanges} attribute.
250723738cfaec3dd7b0fe152c872c41bebf94074c4Dianne Hackborn     */
251723738cfaec3dd7b0fe152c872c41bebf94074c4Dianne Hackborn    public static final int CONFIG_SCREEN_LAYOUT = 0x0100;
252723738cfaec3dd7b0fe152c872c41bebf94074c4Dianne Hackborn    /**
253723738cfaec3dd7b0fe152c872c41bebf94074c4Dianne Hackborn     * Bit in {@link #configChanges} that indicates that the activity
2549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * can itself handle changes to the font scaling factor.  Set from the
2559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.R.attr#configChanges} attribute.  This is
2569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * not a core resource configutation, but a higher-level value, so its
2579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * constant starts at the high bits.
2589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int CONFIG_FONT_SCALE = 0x40000000;
2609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Bit mask of kinds of configuration changes that this activity
2639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * can handle itself (without being restarted by the system).
2649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Contains any combination of {@link #CONFIG_FONT_SCALE},
2659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link #CONFIG_MCC}, {@link #CONFIG_MNC},
2669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link #CONFIG_LOCALE}, {@link #CONFIG_TOUCHSCREEN},
267723738cfaec3dd7b0fe152c872c41bebf94074c4Dianne Hackborn     * {@link #CONFIG_KEYBOARD}, {@link #CONFIG_NAVIGATION},
268723738cfaec3dd7b0fe152c872c41bebf94074c4Dianne Hackborn     * {@link #CONFIG_ORIENTATION}, and {@link #CONFIG_SCREEN_LAYOUT}.  Set from the
2699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.R.attr#configChanges} attribute.
2709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public int configChanges;
2729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The desired soft input mode for this activity's main window.
2759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Set from the {@link android.R.attr#windowSoftInputMode} attribute
2769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * in the activity's manifest.  May be any of the same values allowed
2779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * for {@link android.view.WindowManager.LayoutParams#softInputMode
2789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * WindowManager.LayoutParams.softInputMode}.  If 0 (unspecified),
2799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * the mode from the theme will be used.
2809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public int softInputMode;
2829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public ActivityInfo() {
2849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
2859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public ActivityInfo(ActivityInfo orig) {
2879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        super(orig);
2889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        theme = orig.theme;
2899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        launchMode = orig.launchMode;
2909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        permission = orig.permission;
2919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        taskAffinity = orig.taskAffinity;
2929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        targetActivity = orig.targetActivity;
2939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        flags = orig.flags;
2949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        screenOrientation = orig.screenOrientation;
2959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        configChanges = orig.configChanges;
2969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        softInputMode = orig.softInputMode;
2979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
2989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
3009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Return the theme resource identifier to use for this activity.  If
3019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * the activity defines a theme, that is used; else, the application
3029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * theme is used.
3039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
3049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @return The theme associated with this activity.
3059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public final int getThemeResource() {
3079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return theme != 0 ? theme : applicationInfo.theme;
3089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
3099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void dump(Printer pw, String prefix) {
3119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        super.dumpFront(pw, prefix);
31212527f9fb1cb0a1ad3be8149c1c88a0e731cb4d6Dianne Hackborn        if (permission != null) {
31312527f9fb1cb0a1ad3be8149c1c88a0e731cb4d6Dianne Hackborn            pw.println(prefix + "permission=" + permission);
31412527f9fb1cb0a1ad3be8149c1c88a0e731cb4d6Dianne Hackborn        }
3159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        pw.println(prefix + "taskAffinity=" + taskAffinity
3169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                + " targetActivity=" + targetActivity);
31712527f9fb1cb0a1ad3be8149c1c88a0e731cb4d6Dianne Hackborn        if (launchMode != 0 || flags != 0 || theme != 0) {
31812527f9fb1cb0a1ad3be8149c1c88a0e731cb4d6Dianne Hackborn            pw.println(prefix + "launchMode=" + launchMode
31912527f9fb1cb0a1ad3be8149c1c88a0e731cb4d6Dianne Hackborn                    + " flags=0x" + Integer.toHexString(flags)
32012527f9fb1cb0a1ad3be8149c1c88a0e731cb4d6Dianne Hackborn                    + " theme=0x" + Integer.toHexString(theme));
32112527f9fb1cb0a1ad3be8149c1c88a0e731cb4d6Dianne Hackborn        }
32212527f9fb1cb0a1ad3be8149c1c88a0e731cb4d6Dianne Hackborn        if (screenOrientation != SCREEN_ORIENTATION_UNSPECIFIED
32312527f9fb1cb0a1ad3be8149c1c88a0e731cb4d6Dianne Hackborn                || configChanges != 0 || softInputMode != 0) {
32412527f9fb1cb0a1ad3be8149c1c88a0e731cb4d6Dianne Hackborn            pw.println(prefix + "screenOrientation=" + screenOrientation
32512527f9fb1cb0a1ad3be8149c1c88a0e731cb4d6Dianne Hackborn                    + " configChanges=0x" + Integer.toHexString(configChanges)
32612527f9fb1cb0a1ad3be8149c1c88a0e731cb4d6Dianne Hackborn                    + " softInputMode=0x" + Integer.toHexString(softInputMode));
32712527f9fb1cb0a1ad3be8149c1c88a0e731cb4d6Dianne Hackborn        }
3289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        super.dumpBack(pw, prefix);
3299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
3309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public String toString() {
3329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return "ActivityInfo{"
3339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            + Integer.toHexString(System.identityHashCode(this))
3349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            + " " + name + "}";
3359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
3369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public int describeContents() {
3389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return 0;
3399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
3409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void writeToParcel(Parcel dest, int parcelableFlags) {
3429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        super.writeToParcel(dest, parcelableFlags);
3439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        dest.writeInt(theme);
3449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        dest.writeInt(launchMode);
3459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        dest.writeString(permission);
3469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        dest.writeString(taskAffinity);
3479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        dest.writeString(targetActivity);
3489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        dest.writeInt(flags);
3499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        dest.writeInt(screenOrientation);
3509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        dest.writeInt(configChanges);
3519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        dest.writeInt(softInputMode);
3529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
3539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final Parcelable.Creator<ActivityInfo> CREATOR
3559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            = new Parcelable.Creator<ActivityInfo>() {
3569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public ActivityInfo createFromParcel(Parcel source) {
3579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return new ActivityInfo(source);
3589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
3599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public ActivityInfo[] newArray(int size) {
3609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return new ActivityInfo[size];
3619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
3629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    };
3639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    private ActivityInfo(Parcel source) {
3659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        super(source);
3669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        theme = source.readInt();
3679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        launchMode = source.readInt();
3689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        permission = source.readString();
3699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        taskAffinity = source.readString();
3709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        targetActivity = source.readString();
3719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        flags = source.readInt();
3729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        screenOrientation = source.readInt();
3739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        configChanges = source.readInt();
3749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        softInputMode = source.readInt();
3759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
3769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
377