blob: a2e0ba0a4c26989efb4b25d3b76cb73bfb11997e [file] [log] [blame]
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001/*
2 * Copyright (C) 2006 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
The Android Open Source Projectc39a6e02009-03-11 12:11:56 -070017package android.appwidget;
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080018
19import android.os.Parcel;
20import android.os.Parcelable;
21import android.content.ComponentName;
22
23/**
The Android Open Source Projectc39a6e02009-03-11 12:11:56 -070024 * Describes the meta data for an installed AppWidget provider. The fields in this class
25 * correspond to the fields in the <code>&lt;appwidget-provider&gt;</code> xml tag.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080026 */
The Android Open Source Projectc39a6e02009-03-11 12:11:56 -070027public class AppWidgetProviderInfo implements Parcelable {
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080028 /**
The Android Open Source Projectc39a6e02009-03-11 12:11:56 -070029 * Identity of this AppWidget component. This component should be a {@link
30 * android.content.BroadcastReceiver}, and it will be sent the AppWidget intents
31 * {@link android.appwidget as described in the AppWidget package documentation}.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080032 *
33 * <p>This field corresponds to the <code>android:name</code> attribute in
34 * the <code>&lt;receiver&gt;</code> element in the AndroidManifest.xml file.
35 */
36 public ComponentName provider;
37
38 /**
The Android Open Source Projectc39a6e02009-03-11 12:11:56 -070039 * Minimum width of the AppWidget, in dp.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080040 *
41 * <p>This field corresponds to the <code>android:minWidth</code> attribute in
The Android Open Source Projectc39a6e02009-03-11 12:11:56 -070042 * the AppWidget meta-data file.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080043 */
44 public int minWidth;
45
46 /**
The Android Open Source Projectc39a6e02009-03-11 12:11:56 -070047 * Minimum height of the AppWidget, in dp.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080048 *
49 * <p>This field corresponds to the <code>android:minHeight</code> attribute in
The Android Open Source Projectc39a6e02009-03-11 12:11:56 -070050 * the AppWidget meta-data file.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080051 */
52 public int minHeight;
53
54 /**
The Android Open Source Projectc39a6e02009-03-11 12:11:56 -070055 * How often, in milliseconds, that this AppWidget wants to be updated.
56 * The AppWidget manager may place a limit on how often a AppWidget is updated.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080057 *
58 * <p>This field corresponds to the <code>android:updatePeriodMillis</code> attribute in
The Android Open Source Projectc39a6e02009-03-11 12:11:56 -070059 * the AppWidget meta-data file.
Joe Onorato851da842009-07-14 19:49:27 -070060 *
61 * <p class="note"><b>Note:</b> Updates requested with <code>updatePeriodMillis</code>
62 * will not be delivered more than once every 30 minutes.</p>
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080063 */
64 public int updatePeriodMillis;
65
66 /**
The Android Open Source Projectc39a6e02009-03-11 12:11:56 -070067 * The resource id of the initial layout for this AppWidget. This should be
68 * displayed until the RemoteViews for the AppWidget is available.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080069 *
70 * <p>This field corresponds to the <code>android:initialLayout</code> attribute in
The Android Open Source Projectc39a6e02009-03-11 12:11:56 -070071 * the AppWidget meta-data file.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080072 */
73 public int initialLayout;
74
75 /**
The Android Open Source Projectc39a6e02009-03-11 12:11:56 -070076 * The activity to launch that will configure the AppWidget.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080077 *
78 * <p>This class name of field corresponds to the <code>android:configure</code> attribute in
The Android Open Source Projectc39a6e02009-03-11 12:11:56 -070079 * the AppWidget meta-data file. The package name always corresponds to the package containing
80 * the AppWidget provider.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080081 */
82 public ComponentName configure;
83
84 /**
The Android Open Source Projectc39a6e02009-03-11 12:11:56 -070085 * The label to display to the user in the AppWidget picker. If not supplied in the
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080086 * xml, the application label will be used.
87 *
88 * <p>This field corresponds to the <code>android:label</code> attribute in
89 * the <code>&lt;receiver&gt;</code> element in the AndroidManifest.xml file.
90 */
91 public String label;
92
93 /**
The Android Open Source Projectc39a6e02009-03-11 12:11:56 -070094 * The icon to display for this AppWidget in the AppWidget picker. If not supplied in the
The Android Open Source Project9066cfe2009-03-03 19:31:44 -080095 * xml, the application icon will be used.
96 *
97 * <p>This field corresponds to the <code>android:icon</code> attribute in
98 * the <code>&lt;receiver&gt;</code> element in the AndroidManifest.xml file.
99 */
100 public int icon;
101
The Android Open Source Projectc39a6e02009-03-11 12:11:56 -0700102 public AppWidgetProviderInfo() {
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800103 }
104
105 /**
The Android Open Source Projectc39a6e02009-03-11 12:11:56 -0700106 * Unflatten the AppWidgetProviderInfo from a parcel.
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800107 */
The Android Open Source Projectc39a6e02009-03-11 12:11:56 -0700108 public AppWidgetProviderInfo(Parcel in) {
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800109 if (0 != in.readInt()) {
110 this.provider = new ComponentName(in);
111 }
112 this.minWidth = in.readInt();
113 this.minHeight = in.readInt();
114 this.updatePeriodMillis = in.readInt();
115 this.initialLayout = in.readInt();
116 if (0 != in.readInt()) {
117 this.configure = new ComponentName(in);
118 }
119 this.label = in.readString();
120 this.icon = in.readInt();
121 }
122
123
124 public void writeToParcel(android.os.Parcel out, int flags) {
125 if (this.provider != null) {
126 out.writeInt(1);
127 this.provider.writeToParcel(out, flags);
128 } else {
129 out.writeInt(0);
130 }
131 out.writeInt(this.minWidth);
132 out.writeInt(this.minHeight);
133 out.writeInt(this.updatePeriodMillis);
134 out.writeInt(this.initialLayout);
135 if (this.configure != null) {
136 out.writeInt(1);
137 this.configure.writeToParcel(out, flags);
138 } else {
139 out.writeInt(0);
140 }
141 out.writeString(this.label);
142 out.writeInt(this.icon);
143 }
144
145 public int describeContents() {
146 return 0;
147 }
148
149 /**
The Android Open Source Projectc39a6e02009-03-11 12:11:56 -0700150 * Parcelable.Creator that instantiates AppWidgetProviderInfo objects
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800151 */
The Android Open Source Projectc39a6e02009-03-11 12:11:56 -0700152 public static final Parcelable.Creator<AppWidgetProviderInfo> CREATOR
153 = new Parcelable.Creator<AppWidgetProviderInfo>()
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800154 {
The Android Open Source Projectc39a6e02009-03-11 12:11:56 -0700155 public AppWidgetProviderInfo createFromParcel(Parcel parcel)
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800156 {
The Android Open Source Projectc39a6e02009-03-11 12:11:56 -0700157 return new AppWidgetProviderInfo(parcel);
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800158 }
159
The Android Open Source Projectc39a6e02009-03-11 12:11:56 -0700160 public AppWidgetProviderInfo[] newArray(int size)
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800161 {
The Android Open Source Projectc39a6e02009-03-11 12:11:56 -0700162 return new AppWidgetProviderInfo[size];
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800163 }
164 };
165
166 public String toString() {
The Android Open Source Projectc39a6e02009-03-11 12:11:56 -0700167 return "AppWidgetProviderInfo(provider=" + this.provider + ")";
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800168 }
169}
170
171