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