19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/*
29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Copyright (C) 2008 The Android Open Source Project
39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * you may not use this file except in compliance with the License.
69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * You may obtain a copy of the License at
79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Unless required by applicable law or agreed to in writing, software
119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * See the License for the specific language governing permissions and
149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * limitations under the License.
159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpackage android.provider;
189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.annotation.SdkConstant;
209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/**
229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>A LiveFolder is a special folder whose content is provided by a
239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link android.content.ContentProvider}. To create a live folder, two components
249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * are required:</p>
259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <ul>
269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *  <li>An activity that can respond to the intent action {@link #ACTION_CREATE_LIVE_FOLDER}. The
279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *  activity is responsible for creating the live folder.</li>
289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *  <li>A {@link android.content.ContentProvider} to provide the live folder items.</li>
299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * </ul>
309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <h3>Lifecycle</h3>
329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>When a user wants to create a live folder, the system looks for all activities with the
339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * intent filter action {@link #ACTION_CREATE_LIVE_FOLDER} and presents the list to the user.
349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * When the user chooses one of the activities, the activity is invoked with the
359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link #ACTION_CREATE_LIVE_FOLDER} action. The activity then creates the live folder and
369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * passes it back to the system by setting it as an
379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * {@link android.app.Activity#setResult(int, android.content.Intent) activity result}. The
389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * live folder is described by a content provider URI, a name, an icon and a display mode.
399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * Finally, when the user opens the live folder, the system queries the content provider
409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * to retrieve the folder's content.</p>
419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <h3>Setting up the live folder activity</h3>
43aa1c6311d6d900261bcd9f3b0986b6c0394af07aRomain Guy * <p>The following code sample shows how to write an activity that creates a live folder:</p>
449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <pre>
459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * public static class MyLiveFolder extends Activity {
469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *     public static final Uri CONTENT_URI = Uri.parse("content://my.app/live");
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *     protected void onCreate(Bundle savedInstanceState) {
499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         super.onCreate(savedInstanceState);
509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         final Intent intent = getIntent();
529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         final String action = intent.getAction();
539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         if (LiveFolders.ACTION_CREATE_LIVE_FOLDER.equals(action)) {
559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *             setResult(RESULT_OK, createLiveFolder(this, CONTENT_URI, "My LiveFolder",
569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *                     R.drawable.ic_launcher_contacts_phones));
579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         } else {
589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *             setResult(RESULT_CANCELED);
599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         }
609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         finish();
629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *     }
639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *     private static Intent createLiveFolder(Context context, Uri uri, String name,
659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *             int icon) {
669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         final Intent intent = new Intent();
689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         intent.setData(uri);
709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         intent.putExtra(LiveFolders.EXTRA_LIVE_FOLDER_NAME, name);
719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         intent.putExtra(LiveFolders.EXTRA_LIVE_FOLDER_ICON,
729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *                 Intent.ShortcutIconResource.fromContext(context, icon));
739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         intent.putExtra(LiveFolders.EXTRA_LIVE_FOLDER_DISPLAY_MODE, LiveFolders.DISPLAY_MODE_LIST);
749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         return intent;
769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *     }
779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * }
789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * </pre>
799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>The live folder is described by an {@link android.content.Intent} as follows:</p>
809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <table border="2" width="85%" align="center" frame="hsides" rules="rows">
819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *     <thead>
829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *     <tr><th>Component</th> <th>Type</th> <th>Description</th> <th>Required</th></tr>
839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *     </thead>
849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *     <tbody>
869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *     <tr><th>URI</th>
879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         <td>URI</td>
889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         <td>The ContentProvider URI</td>
899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         <td align="center">Yes</td>
909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *     </tr>
919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *     <tr><th>{@link #EXTRA_LIVE_FOLDER_NAME}</th>
929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         <td>Extra String</td>
939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         <td>The name of the live folder</td>
949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         <td align="center">Yes</td>
959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *     </tr>
969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *     <tr><th>{@link #EXTRA_LIVE_FOLDER_ICON}</th>
979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         <td>Extra {@link android.content.Intent.ShortcutIconResource}</td>
989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         <td>The icon of the live folder</td>
999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         <td align="center">Yes</td>
1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *     </tr>
1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *     <tr><th>{@link #EXTRA_LIVE_FOLDER_DISPLAY_MODE}</th>
1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         <td>Extra int</td>
1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         <td>The display mode of the live folder. The value must be either
1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         {@link #DISPLAY_MODE_GRID} or {@link #DISPLAY_MODE_LIST}.</td>
1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         <td align="center">Yes</td>
1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *     </tr>
1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *     <tr><th>{@link #EXTRA_LIVE_FOLDER_BASE_INTENT}</th>
1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         <td>Extra Intent</td>
1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         <td>When the user clicks an item inside a live folder, the system will either fire
1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         the intent associated with that item or, if present, the live folder's base intent
1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         with the id of the item appended to the base intent's URI.</td>
1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         <td align="center">No</td>
1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *     </tr>
1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *     </tbody>
1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * </table>
1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <h3>Setting up the content provider</h3>
1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <p>The live folder's content provider must, upon query, return a {@link android.database.Cursor}
1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * whose columns match the following names:</p>
1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * <table border="2" width="85%" align="center" frame="hsides" rules="rows">
1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *     <thead>
1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *     <tr><th>Column</th> <th>Type</th> <th>Description</th> <th>Required</th></tr>
1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *     </thead>
1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *
1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *     <tbody>
1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *     <tr><th>{@link #NAME}</th>
1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         <td>String</td>
1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         <td>The name of the item</td>
1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         <td align="center">Yes</td>
1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *     </tr>
1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *     <tr><th>{@link #DESCRIPTION}</th>
1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         <td>String</td>
1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         <td>The description of the item. The description is ignored when the live folder's
1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         display mode is {@link #DISPLAY_MODE_GRID}.</td>
1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         <td align="center">No</td>
1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *     </tr>
1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *     <tr><th>{@link #INTENT}</th>
1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         <td>{@link android.content.Intent}</td>
1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         <td>The intent to fire when the item is clicked. Ignored when the live folder defines
1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         a base intent.</td>
1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         <td align="center">No</td>
1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *     </tr>
1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *     <tr><th>{@link #ICON_BITMAP}</th>
1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         <td>Bitmap</td>
1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         <td>The icon for the item. When this column value is not null, the values for the
1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         columns {@link #ICON_PACKAGE} and {@link #ICON_RESOURCE} must be null.</td>
1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         <td align="center">No</td>
1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *     </tr>
1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *     <tr><th>{@link #ICON_PACKAGE}</th>
1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         <td>String</td>
1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         <td>The package of the item's icon. When this value is not null, the value for the
1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         column {@link #ICON_RESOURCE} must be specified and the value for the column
1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         {@link #ICON_BITMAP} must be null.</td>
1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         <td align="center">No</td>
1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *     </tr>
1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *     <tr><th>{@link #ICON_RESOURCE}</th>
1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         <td>String</td>
1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         <td>The resource name of the item's icon. When this value is not null, the value for the
1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         column {@link #ICON_PACKAGE} must be specified and the value for the column
1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         {@link #ICON_BITMAP} must be null.</td>
1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *         <td align="center">No</td>
1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *     </tr>
1639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project *     </tbody>
1649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project * </table>
165c6acd688c0cbd00f9407d676a51ee4994db51694Dianne Hackborn *
166c6acd688c0cbd00f9407d676a51ee4994db51694Dianne Hackborn * @deprecated Live folders are no longer supported by Android.  These have been
167c6acd688c0cbd00f9407d676a51ee4994db51694Dianne Hackborn * replaced by the new
168c6acd688c0cbd00f9407d676a51ee4994db51694Dianne Hackborn * <a href="{@docRoot}guide/topics/appwidgets/index.html#collections">AppWidget Collection</a>
169c6acd688c0cbd00f9407d676a51ee4994db51694Dianne Hackborn * APIs introduced in {@link android.os.Build.VERSION_CODES#HONEYCOMB}.  These provide
170c6acd688c0cbd00f9407d676a51ee4994db51694Dianne Hackborn * all of the features of live folders plus many more.  The use of live folders is greatly
171c6acd688c0cbd00f9407d676a51ee4994db51694Dianne Hackborn * discouraged because of security issues they introduce -- publishing a live folder requires
172c6acd688c0cbd00f9407d676a51ee4994db51694Dianne Hackborn * making all data show for the live folder available to all applications with no
173c6acd688c0cbd00f9407d676a51ee4994db51694Dianne Hackborn * permissions protecting it.
1749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */
175c6acd688c0cbd00f9407d676a51ee4994db51694Dianne Hackborn@Deprecated
1769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic final class LiveFolders implements BaseColumns {
1779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>Content provider column.</p>
1799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>Name of the live folder item.</p>
1809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>Required.</p>
1819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>Type: String.</p>
1829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final String NAME = "name";
1849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>Content provider column.</p>
1879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>Description of the live folder item. This value is ignored if the
1889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * live folder's display mode is {@link LiveFolders#DISPLAY_MODE_GRID}.</p>
1899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>Optional.</p>
1909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>Type: String.</p>
1919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
1929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @see LiveFolders#EXTRA_LIVE_FOLDER_DISPLAY_MODE
1939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
1949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final String DESCRIPTION = "description";
1959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
1979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>Content provider column.</p>
1989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>Intent of the live folder item.</p>
1999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>Optional if the live folder has a base intent.</p>
2009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>Type: {@link android.content.Intent}.</p>
2019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
2029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @see LiveFolders#EXTRA_LIVE_FOLDER_BASE_INTENT
2039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final String INTENT = "intent";
2059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>Content provider column.</p>
2089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>Icon of the live folder item, as a custom bitmap.</p>
2099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>Optional.</p>
2109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>Type: {@link android.graphics.Bitmap}.</p>
2119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final String ICON_BITMAP = "icon_bitmap";
2139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>Content provider column.</p>
2169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>Package where to find the icon of the live folder item. This value can be
2179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * obtained easily using
2189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.content.Intent.ShortcutIconResource#fromContext(android.content.Context, int)}.</p>
2199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>Optional.</p>
2209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>Type: String.</p>
2219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
2229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @see #ICON_RESOURCE
2239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @see android.content.Intent.ShortcutIconResource
2249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final String ICON_PACKAGE = "icon_package";
2269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>Content provider column.</p>
2299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>Resource name of the live folder item. This value can be obtained easily using
2309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * {@link android.content.Intent.ShortcutIconResource#fromContext(android.content.Context, int)}.</p>
2319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>Optional.</p>
2329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>Type: String.</p>
2339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
2349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @see #ICON_PACKAGE
2359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @see android.content.Intent.ShortcutIconResource
2369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final String ICON_RESOURCE = "icon_resource";
2389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Displays a live folder's content in a grid.
2419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
2429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @see LiveFolders#EXTRA_LIVE_FOLDER_DISPLAY_MODE
2439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int DISPLAY_MODE_GRID = 0x1;
2459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Displays a live folder's content in a list.
2489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
2499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @see LiveFolders#EXTRA_LIVE_FOLDER_DISPLAY_MODE
2509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final int DISPLAY_MODE_LIST = 0x2;
2529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The name of the extra used to define the name of a live folder.
2559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
2569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @see #ACTION_CREATE_LIVE_FOLDER
2579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final String EXTRA_LIVE_FOLDER_NAME = "android.intent.extra.livefolder.NAME";
2599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The name of the extra used to define the icon of a live folder.
2629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
2639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @see #ACTION_CREATE_LIVE_FOLDER
2649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final String EXTRA_LIVE_FOLDER_ICON = "android.intent.extra.livefolder.ICON";
2669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The name of the extra used to define the display mode of a live folder.
2699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
2709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @see #ACTION_CREATE_LIVE_FOLDER
2719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @see #DISPLAY_MODE_GRID
2729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @see #DISPLAY_MODE_LIST
2739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final String EXTRA_LIVE_FOLDER_DISPLAY_MODE =
2759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            "android.intent.extra.livefolder.DISPLAY_MODE";
2769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * The name of the extra used to define the base Intent of a live folder.
2799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
2809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @see #ACTION_CREATE_LIVE_FOLDER
2819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
2829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final String EXTRA_LIVE_FOLDER_BASE_INTENT =
2839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            "android.intent.extra.livefolder.BASE_INTENT";
2849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
2859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /**
2869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * Activity Action: Creates a live folder.
2879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>Input: Nothing.</p>
2889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * <p>Output: An Intent representing the live folder. The intent must contain four
2899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * extras: EXTRA_LIVE_FOLDER_NAME (value: String),
2909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * EXTRA_LIVE_FOLDER_ICON (value: ShortcutIconResource),
2919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * EXTRA_LIVE_FOLDER_URI (value: String) and
2929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * EXTRA_LIVE_FOLDER_DISPLAY_MODE (value: int). The Intent can optionnally contain
2939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * EXTRA_LIVE_FOLDER_BASE_INTENT (value: Intent).</p>
2949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     *
2959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @see #EXTRA_LIVE_FOLDER_NAME
2969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @see #EXTRA_LIVE_FOLDER_ICON
2979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @see #EXTRA_LIVE_FOLDER_DISPLAY_MODE
2989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @see #EXTRA_LIVE_FOLDER_BASE_INTENT
2999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     * @see android.content.Intent.ShortcutIconResource
3009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project     */
3019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    @SdkConstant(SdkConstant.SdkConstantType.ACTIVITY_INTENT_ACTION)
3029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static final String ACTION_CREATE_LIVE_FOLDER =
3039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            "android.intent.action.CREATE_LIVE_FOLDER";
3049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
3059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    private LiveFolders() {
3069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
3079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
308