19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/*
29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2006 The Android Open Source Project
39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License.
69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at
79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software
119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and
149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License.
159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
17c39a6e0c51e182338deb8b63d07933b585134929The Android Open Source Projectpackage android.appwidget;
189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Parcel;
209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.Parcelable;
219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.ComponentName;
229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/**
24c39a6e0c51e182338deb8b63d07933b585134929The Android Open Source Project * Describes the meta data for an installed AppWidget provider.  The fields in this class
25c39a6e0c51e182338deb8b63d07933b585134929The Android Open Source Project * correspond to the fields in the <code>&lt;appwidget-provider&gt;</code> xml tag.
269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
27c39a6e0c51e182338deb8b63d07933b585134929The Android Open Source Projectpublic class AppWidgetProviderInfo implements Parcelable {
28d2e20de64b6de8b6391c63e2f5b02ce7698bf4bfAdam Cohen
29d2e20de64b6de8b6391c63e2f5b02ce7698bf4bfAdam Cohen    /**
30d2e20de64b6de8b6391c63e2f5b02ce7698bf4bfAdam Cohen     * Widget is not resizable.
31d2e20de64b6de8b6391c63e2f5b02ce7698bf4bfAdam Cohen     */
32d2e20de64b6de8b6391c63e2f5b02ce7698bf4bfAdam Cohen    public static final int RESIZE_NONE             = 0;
33d2e20de64b6de8b6391c63e2f5b02ce7698bf4bfAdam Cohen    /**
34d2e20de64b6de8b6391c63e2f5b02ce7698bf4bfAdam Cohen     * Widget is resizable in the horizontal axis only.
35d2e20de64b6de8b6391c63e2f5b02ce7698bf4bfAdam Cohen     */
36d2e20de64b6de8b6391c63e2f5b02ce7698bf4bfAdam Cohen    public static final int RESIZE_HORIZONTAL       = 1;
37d2e20de64b6de8b6391c63e2f5b02ce7698bf4bfAdam Cohen    /**
38d2e20de64b6de8b6391c63e2f5b02ce7698bf4bfAdam Cohen     * Widget is resizable in the vertical axis only.
39d2e20de64b6de8b6391c63e2f5b02ce7698bf4bfAdam Cohen     */
40d2e20de64b6de8b6391c63e2f5b02ce7698bf4bfAdam Cohen    public static final int RESIZE_VERTICAL         = 2;
41d2e20de64b6de8b6391c63e2f5b02ce7698bf4bfAdam Cohen    /**
42d2e20de64b6de8b6391c63e2f5b02ce7698bf4bfAdam Cohen     * Widget is resizable in both the horizontal and vertical axes.
43d2e20de64b6de8b6391c63e2f5b02ce7698bf4bfAdam Cohen     */
44d2e20de64b6de8b6391c63e2f5b02ce7698bf4bfAdam Cohen    public static final int RESIZE_BOTH = RESIZE_HORIZONTAL | RESIZE_VERTICAL;
45d2e20de64b6de8b6391c63e2f5b02ce7698bf4bfAdam Cohen
469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
470aa2d42e87e4a1ed5b83f356690e465d6a3587ccAdam Cohen     * Indicates that the widget can be displayed on the home screen. This is the default value.
480aa2d42e87e4a1ed5b83f356690e465d6a3587ccAdam Cohen     */
490aa2d42e87e4a1ed5b83f356690e465d6a3587ccAdam Cohen    public static final int WIDGET_CATEGORY_HOME_SCREEN = 1;
500aa2d42e87e4a1ed5b83f356690e465d6a3587ccAdam Cohen
510aa2d42e87e4a1ed5b83f356690e465d6a3587ccAdam Cohen    /**
520aa2d42e87e4a1ed5b83f356690e465d6a3587ccAdam Cohen     * Indicates that the widget can be displayed on the keyguard.
530aa2d42e87e4a1ed5b83f356690e465d6a3587ccAdam Cohen     */
540aa2d42e87e4a1ed5b83f356690e465d6a3587ccAdam Cohen    public static final int WIDGET_CATEGORY_KEYGUARD = 2;
550aa2d42e87e4a1ed5b83f356690e465d6a3587ccAdam Cohen
560aa2d42e87e4a1ed5b83f356690e465d6a3587ccAdam Cohen    /**
57c39a6e0c51e182338deb8b63d07933b585134929The Android Open Source Project     * Identity of this AppWidget component.  This component should be a {@link
58c39a6e0c51e182338deb8b63d07933b585134929The Android Open Source Project     * android.content.BroadcastReceiver}, and it will be sent the AppWidget intents
59c39a6e0c51e182338deb8b63d07933b585134929The Android Open Source Project     * {@link android.appwidget as described in the AppWidget package documentation}.
609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>This field corresponds to the <code>android:name</code> attribute in
629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * the <code>&lt;receiver&gt;</code> element in the AndroidManifest.xml file.
639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public ComponentName provider;
659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
671bfaf561b7c09388311f1834f17e057739cf587aAdam Cohen     * The default height of the widget when added to a host, in dp. The widget will get
681bfaf561b7c09388311f1834f17e057739cf587aAdam Cohen     * at least this width, and will often be given more, depending on the host.
699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>This field corresponds to the <code>android:minWidth</code> attribute in
71c39a6e0c51e182338deb8b63d07933b585134929The Android Open Source Project     * the AppWidget meta-data file.
729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public int minWidth;
749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
761bfaf561b7c09388311f1834f17e057739cf587aAdam Cohen     * The default height of the widget when added to a host, in dp. The widget will get
771bfaf561b7c09388311f1834f17e057739cf587aAdam Cohen     * at least this height, and will often be given more, depending on the host.
789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>This field corresponds to the <code>android:minHeight</code> attribute in
80c39a6e0c51e182338deb8b63d07933b585134929The Android Open Source Project     * the AppWidget meta-data file.
819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public int minHeight;
839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
851bfaf561b7c09388311f1834f17e057739cf587aAdam Cohen     * Minimum width (in dp) which the widget can be resized to. This field has no effect if it
861bfaf561b7c09388311f1834f17e057739cf587aAdam Cohen     * is greater than minWidth or if horizontal resizing isn't enabled (see {@link #resizeMode}).
871bfaf561b7c09388311f1834f17e057739cf587aAdam Cohen     *
881bfaf561b7c09388311f1834f17e057739cf587aAdam Cohen     * <p>This field corresponds to the <code>android:minResizeWidth</code> attribute in
891bfaf561b7c09388311f1834f17e057739cf587aAdam Cohen     * the AppWidget meta-data file.
901bfaf561b7c09388311f1834f17e057739cf587aAdam Cohen     */
911bfaf561b7c09388311f1834f17e057739cf587aAdam Cohen    public int minResizeWidth;
921bfaf561b7c09388311f1834f17e057739cf587aAdam Cohen
931bfaf561b7c09388311f1834f17e057739cf587aAdam Cohen    /**
941bfaf561b7c09388311f1834f17e057739cf587aAdam Cohen     * Minimum height (in dp) which the widget can be resized to. This field has no effect if it
951bfaf561b7c09388311f1834f17e057739cf587aAdam Cohen     * is greater than minHeight or if vertical resizing isn't enabled (see {@link #resizeMode}).
961bfaf561b7c09388311f1834f17e057739cf587aAdam Cohen     *
971bfaf561b7c09388311f1834f17e057739cf587aAdam Cohen     * <p>This field corresponds to the <code>android:minResizeHeight</code> attribute in
981bfaf561b7c09388311f1834f17e057739cf587aAdam Cohen     * the AppWidget meta-data file.
991bfaf561b7c09388311f1834f17e057739cf587aAdam Cohen     */
1001bfaf561b7c09388311f1834f17e057739cf587aAdam Cohen    public int minResizeHeight;
1011bfaf561b7c09388311f1834f17e057739cf587aAdam Cohen
1021bfaf561b7c09388311f1834f17e057739cf587aAdam Cohen    /**
103c39a6e0c51e182338deb8b63d07933b585134929The Android Open Source Project     * How often, in milliseconds, that this AppWidget wants to be updated.
104c39a6e0c51e182338deb8b63d07933b585134929The Android Open Source Project     * The AppWidget manager may place a limit on how often a AppWidget is updated.
1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>This field corresponds to the <code>android:updatePeriodMillis</code> attribute in
107c39a6e0c51e182338deb8b63d07933b585134929The Android Open Source Project     * the AppWidget meta-data file.
108851da848e97d9a1ec23a89ff0e200c301f32d690Joe Onorato     *
109851da848e97d9a1ec23a89ff0e200c301f32d690Joe Onorato     * <p class="note"><b>Note:</b> Updates requested with <code>updatePeriodMillis</code>
110851da848e97d9a1ec23a89ff0e200c301f32d690Joe Onorato     * will not be delivered more than once every 30 minutes.</p>
1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public int updatePeriodMillis;
1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
115c39a6e0c51e182338deb8b63d07933b585134929The Android Open Source Project     * The resource id of the initial layout for this AppWidget.  This should be
116c39a6e0c51e182338deb8b63d07933b585134929The Android Open Source Project     * displayed until the RemoteViews for the AppWidget is available.
1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>This field corresponds to the <code>android:initialLayout</code> attribute in
119c39a6e0c51e182338deb8b63d07933b585134929The Android Open Source Project     * the AppWidget meta-data file.
1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public int initialLayout;
1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1240aa2d42e87e4a1ed5b83f356690e465d6a3587ccAdam Cohen     * The resource id of the initial layout for this AppWidget when it is displayed on keyguard.
1250aa2d42e87e4a1ed5b83f356690e465d6a3587ccAdam Cohen     * This parameter only needs to be provided if the widget can be displayed on the keyguard,
1260aa2d42e87e4a1ed5b83f356690e465d6a3587ccAdam Cohen     * see {@link #widgetCategory}.
1270aa2d42e87e4a1ed5b83f356690e465d6a3587ccAdam Cohen     *
1280aa2d42e87e4a1ed5b83f356690e465d6a3587ccAdam Cohen     * <p>This field corresponds to the <code>android:initialKeyguardLayout</code> attribute in
1290aa2d42e87e4a1ed5b83f356690e465d6a3587ccAdam Cohen     * the AppWidget meta-data file.
1300aa2d42e87e4a1ed5b83f356690e465d6a3587ccAdam Cohen     */
1310aa2d42e87e4a1ed5b83f356690e465d6a3587ccAdam Cohen    public int initialKeyguardLayout;
1320aa2d42e87e4a1ed5b83f356690e465d6a3587ccAdam Cohen
1330aa2d42e87e4a1ed5b83f356690e465d6a3587ccAdam Cohen    /**
134c39a6e0c51e182338deb8b63d07933b585134929The Android Open Source Project     * The activity to launch that will configure the AppWidget.
1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>This class name of field corresponds to the <code>android:configure</code> attribute in
137c39a6e0c51e182338deb8b63d07933b585134929The Android Open Source Project     * the AppWidget meta-data file.  The package name always corresponds to the package containing
138c39a6e0c51e182338deb8b63d07933b585134929The Android Open Source Project     * the AppWidget provider.
1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public ComponentName configure;
1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
143c39a6e0c51e182338deb8b63d07933b585134929The Android Open Source Project     * The label to display to the user in the AppWidget picker.  If not supplied in the
1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * xml, the application label will be used.
1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>This field corresponds to the <code>android:label</code> attribute in
1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * the <code>&lt;receiver&gt;</code> element in the AndroidManifest.xml file.
1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public String label;
1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
152c39a6e0c51e182338deb8b63d07933b585134929The Android Open Source Project     * The icon to display for this AppWidget in the AppWidget picker.  If not supplied in the
1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * xml, the application icon will be used.
1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>This field corresponds to the <code>android:icon</code> attribute in
1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * the <code>&lt;receiver&gt;</code> element in the AndroidManifest.xml file.
1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public int icon;
159a02fdf1ba03fad71cc80a89dfc74b17456d5b4a5Adam Cohen
160d2671e1fcf1d7f1b8e25a2615d514cf3c26b6a9cRomain Guy    /**
161a02fdf1ba03fad71cc80a89dfc74b17456d5b4a5Adam Cohen     * The view id of the AppWidget subview which should be auto-advanced by the widget's host.
1629611f2ea6c962c7eb05a2841d06656745f524097Adam Cohen     *
1639611f2ea6c962c7eb05a2841d06656745f524097Adam Cohen     * <p>This field corresponds to the <code>android:autoAdvanceViewId</code> attribute in
1649611f2ea6c962c7eb05a2841d06656745f524097Adam Cohen     * the AppWidget meta-data file.
165a02fdf1ba03fad71cc80a89dfc74b17456d5b4a5Adam Cohen     */
166a02fdf1ba03fad71cc80a89dfc74b17456d5b4a5Adam Cohen    public int autoAdvanceViewId;
167a02fdf1ba03fad71cc80a89dfc74b17456d5b4a5Adam Cohen
168d2db2a579440608453994b64eb5b425840f5307aPatrick Dubroy    /**
169d2db2a579440608453994b64eb5b425840f5307aPatrick Dubroy     * A preview of what the AppWidget will look like after it's configured.
170d2db2a579440608453994b64eb5b425840f5307aPatrick Dubroy     * If not supplied, the AppWidget's icon will be used.
171d2db2a579440608453994b64eb5b425840f5307aPatrick Dubroy     *
172d2db2a579440608453994b64eb5b425840f5307aPatrick Dubroy     * <p>This field corresponds to the <code>android:previewImage</code> attribute in
173d2db2a579440608453994b64eb5b425840f5307aPatrick Dubroy     * the <code>&lt;receiver&gt;</code> element in the AndroidManifest.xml file.
174d2db2a579440608453994b64eb5b425840f5307aPatrick Dubroy     */
175d2db2a579440608453994b64eb5b425840f5307aPatrick Dubroy	public int previewImage;
1769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
177d2e20de64b6de8b6391c63e2f5b02ce7698bf4bfAdam Cohen    /**
178d2e20de64b6de8b6391c63e2f5b02ce7698bf4bfAdam Cohen     * The rules by which a widget can be resized. See {@link #RESIZE_NONE},
179d2e20de64b6de8b6391c63e2f5b02ce7698bf4bfAdam Cohen     * {@link #RESIZE_NONE}, {@link #RESIZE_HORIZONTAL},
180d2e20de64b6de8b6391c63e2f5b02ce7698bf4bfAdam Cohen     * {@link #RESIZE_VERTICAL}, {@link #RESIZE_BOTH}.
1819611f2ea6c962c7eb05a2841d06656745f524097Adam Cohen     *
1829611f2ea6c962c7eb05a2841d06656745f524097Adam Cohen     * <p>This field corresponds to the <code>android:resizeMode</code> attribute in
1839611f2ea6c962c7eb05a2841d06656745f524097Adam Cohen     * the AppWidget meta-data file.
184d2e20de64b6de8b6391c63e2f5b02ce7698bf4bfAdam Cohen     */
1859611f2ea6c962c7eb05a2841d06656745f524097Adam Cohen    public int resizeMode;
186d2e20de64b6de8b6391c63e2f5b02ce7698bf4bfAdam Cohen
1870aa2d42e87e4a1ed5b83f356690e465d6a3587ccAdam Cohen    /**
1880aa2d42e87e4a1ed5b83f356690e465d6a3587ccAdam Cohen     * Determines whether this widget can be displayed on the home screen, the keyguard, or both.
1890aa2d42e87e4a1ed5b83f356690e465d6a3587ccAdam Cohen     * A widget which is displayed on both needs to ensure that it follows the design guidelines
1900aa2d42e87e4a1ed5b83f356690e465d6a3587ccAdam Cohen     * for both widget classes. This can be achieved by querying the AppWidget options in its
1910aa2d42e87e4a1ed5b83f356690e465d6a3587ccAdam Cohen     * widget provider's update method.
1920aa2d42e87e4a1ed5b83f356690e465d6a3587ccAdam Cohen     *
1930aa2d42e87e4a1ed5b83f356690e465d6a3587ccAdam Cohen     * <p>This field corresponds to the <code>widgetCategory</code> attribute in
1940aa2d42e87e4a1ed5b83f356690e465d6a3587ccAdam Cohen     * the AppWidget meta-data file.
1950aa2d42e87e4a1ed5b83f356690e465d6a3587ccAdam Cohen     */
1960aa2d42e87e4a1ed5b83f356690e465d6a3587ccAdam Cohen    public int widgetCategory;
1970aa2d42e87e4a1ed5b83f356690e465d6a3587ccAdam Cohen
198c39a6e0c51e182338deb8b63d07933b585134929The Android Open Source Project    public AppWidgetProviderInfo() {
1999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
2009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
202c39a6e0c51e182338deb8b63d07933b585134929The Android Open Source Project     * Unflatten the AppWidgetProviderInfo from a parcel.
2039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
204c39a6e0c51e182338deb8b63d07933b585134929The Android Open Source Project    public AppWidgetProviderInfo(Parcel in) {
2059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        if (0 != in.readInt()) {
2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            this.provider = new ComponentName(in);
2079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
2089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        this.minWidth = in.readInt();
2099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        this.minHeight = in.readInt();
210324afba161ae5b802e38f89c9015d8306ea3ddd1Adam Cohen        this.minResizeWidth = in.readInt();
211324afba161ae5b802e38f89c9015d8306ea3ddd1Adam Cohen        this.minResizeHeight = in.readInt();
2129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        this.updatePeriodMillis = in.readInt();
2139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        this.initialLayout = in.readInt();
2140aa2d42e87e4a1ed5b83f356690e465d6a3587ccAdam Cohen        this.initialKeyguardLayout = in.readInt();
2159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        if (0 != in.readInt()) {
2169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            this.configure = new ComponentName(in);
2179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
2189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        this.label = in.readString();
2199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        this.icon = in.readInt();
220d2db2a579440608453994b64eb5b425840f5307aPatrick Dubroy        this.previewImage = in.readInt();
221a02fdf1ba03fad71cc80a89dfc74b17456d5b4a5Adam Cohen        this.autoAdvanceViewId = in.readInt();
2229611f2ea6c962c7eb05a2841d06656745f524097Adam Cohen        this.resizeMode = in.readInt();
2230aa2d42e87e4a1ed5b83f356690e465d6a3587ccAdam Cohen        this.widgetCategory = in.readInt();
2249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
2259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void writeToParcel(android.os.Parcel out, int flags) {
2279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        if (this.provider != null) {
2289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            out.writeInt(1);
2299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            this.provider.writeToParcel(out, flags);
2309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        } else {
2319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            out.writeInt(0);
2329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
2339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        out.writeInt(this.minWidth);
2349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        out.writeInt(this.minHeight);
235324afba161ae5b802e38f89c9015d8306ea3ddd1Adam Cohen        out.writeInt(this.minResizeWidth);
236324afba161ae5b802e38f89c9015d8306ea3ddd1Adam Cohen        out.writeInt(this.minResizeHeight);
2379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        out.writeInt(this.updatePeriodMillis);
2389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        out.writeInt(this.initialLayout);
2390aa2d42e87e4a1ed5b83f356690e465d6a3587ccAdam Cohen        out.writeInt(this.initialKeyguardLayout);
2409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        if (this.configure != null) {
2419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            out.writeInt(1);
2429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            this.configure.writeToParcel(out, flags);
2439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        } else {
2449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            out.writeInt(0);
2459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
2469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        out.writeString(this.label);
2479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        out.writeInt(this.icon);
248d2db2a579440608453994b64eb5b425840f5307aPatrick Dubroy        out.writeInt(this.previewImage);
249a02fdf1ba03fad71cc80a89dfc74b17456d5b4a5Adam Cohen        out.writeInt(this.autoAdvanceViewId);
2509611f2ea6c962c7eb05a2841d06656745f524097Adam Cohen        out.writeInt(this.resizeMode);
2510aa2d42e87e4a1ed5b83f356690e465d6a3587ccAdam Cohen        out.writeInt(this.widgetCategory);
2529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
2539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2543ff2d867d46067132890a5a6ad68be8a4314d7f6Adam Cohen    @Override
2553ff2d867d46067132890a5a6ad68be8a4314d7f6Adam Cohen    public AppWidgetProviderInfo clone() {
2563ff2d867d46067132890a5a6ad68be8a4314d7f6Adam Cohen        AppWidgetProviderInfo that = new AppWidgetProviderInfo();
2573ff2d867d46067132890a5a6ad68be8a4314d7f6Adam Cohen        that.provider = this.provider == null ? null : this.provider.clone();
2583ff2d867d46067132890a5a6ad68be8a4314d7f6Adam Cohen        that.minWidth = this.minWidth;
2593ff2d867d46067132890a5a6ad68be8a4314d7f6Adam Cohen        that.minHeight = this.minHeight;
2603ff2d867d46067132890a5a6ad68be8a4314d7f6Adam Cohen        that.minResizeWidth = this.minResizeHeight;
2613ff2d867d46067132890a5a6ad68be8a4314d7f6Adam Cohen        that.minResizeHeight = this.minResizeHeight;
2623ff2d867d46067132890a5a6ad68be8a4314d7f6Adam Cohen        that.updatePeriodMillis = this.updatePeriodMillis;
263180cfd5feb4fe415d04494bf00f2013896f93b77Adam Cohen        that.initialLayout = this.initialLayout;
2643ff2d867d46067132890a5a6ad68be8a4314d7f6Adam Cohen        that.initialKeyguardLayout = this.initialKeyguardLayout;
2653ff2d867d46067132890a5a6ad68be8a4314d7f6Adam Cohen        that.configure = this.configure == null ? null : this.configure.clone();
2663ff2d867d46067132890a5a6ad68be8a4314d7f6Adam Cohen        that.label = this.label == null ? null : this.label.substring(0);
2673ff2d867d46067132890a5a6ad68be8a4314d7f6Adam Cohen        that.icon = this.icon;
2683ff2d867d46067132890a5a6ad68be8a4314d7f6Adam Cohen        that.previewImage = this.previewImage;
2693ff2d867d46067132890a5a6ad68be8a4314d7f6Adam Cohen        that.autoAdvanceViewId = this.autoAdvanceViewId;
2703ff2d867d46067132890a5a6ad68be8a4314d7f6Adam Cohen        that.resizeMode = this.resizeMode;
2713ff2d867d46067132890a5a6ad68be8a4314d7f6Adam Cohen        that.widgetCategory  = this.widgetCategory;
2723ff2d867d46067132890a5a6ad68be8a4314d7f6Adam Cohen        return that;
2733ff2d867d46067132890a5a6ad68be8a4314d7f6Adam Cohen    }
2743ff2d867d46067132890a5a6ad68be8a4314d7f6Adam Cohen
2759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public int describeContents() {
2769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        return 0;
2779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
2789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
280c39a6e0c51e182338deb8b63d07933b585134929The Android Open Source Project     * Parcelable.Creator that instantiates AppWidgetProviderInfo objects
2819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
282c39a6e0c51e182338deb8b63d07933b585134929The Android Open Source Project    public static final Parcelable.Creator<AppWidgetProviderInfo> CREATOR
283c39a6e0c51e182338deb8b63d07933b585134929The Android Open Source Project            = new Parcelable.Creator<AppWidgetProviderInfo>()
2849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    {
285c39a6e0c51e182338deb8b63d07933b585134929The Android Open Source Project        public AppWidgetProviderInfo createFromParcel(Parcel parcel)
2869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        {
287c39a6e0c51e182338deb8b63d07933b585134929The Android Open Source Project            return new AppWidgetProviderInfo(parcel);
2889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
2899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
290c39a6e0c51e182338deb8b63d07933b585134929The Android Open Source Project        public AppWidgetProviderInfo[] newArray(int size)
2919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        {
292c39a6e0c51e182338deb8b63d07933b585134929The Android Open Source Project            return new AppWidgetProviderInfo[size];
2939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
2949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    };
2959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public String toString() {
297c39a6e0c51e182338deb8b63d07933b585134929The Android Open Source Project        return "AppWidgetProviderInfo(provider=" + this.provider + ")";
2989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
2999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
300