LiveFolders
classLiveFolders: BaseColumns
kotlin.Any | |
↳ | android.provider.LiveFolders |
A LiveFolder is a special folder whose content is provided by a android.content.ContentProvider
. To create a live folder, two components are required:
- An activity that can respond to the intent action
ACTION_CREATE_LIVE_FOLDER
. The activity is responsible for creating the live folder. - A
android.content.ContentProvider
to provide the live folder items.
Lifecycle
When a user wants to create a live folder, the system looks for all activities with the intent filter action ACTION_CREATE_LIVE_FOLDER
and presents the list to the user. When the user chooses one of the activities, the activity is invoked with the ACTION_CREATE_LIVE_FOLDER
action. The activity then creates the live folder and passes it back to the system by setting it as an activity result
. The live folder is described by a content provider URI, a name, an icon and a display mode. Finally, when the user opens the live folder, the system queries the content provider to retrieve the folder's content.
Setting up the live folder activity
The following code sample shows how to write an activity that creates a live folder:
public static class MyLiveFolder extends Activity { public static final Uri CONTENT_URI = Uri.parse("content://my.app/live"); protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); final Intent intent = getIntent(); final String action = intent.getAction(); if (LiveFolders.ACTION_CREATE_LIVE_FOLDER.equals(action)) { setResult(RESULT_OK, createLiveFolder(this, CONTENT_URI, "My LiveFolder", R.drawable.ic_launcher_contacts_phones)); } else { setResult(RESULT_CANCELED); } finish(); } private static Intent createLiveFolder(Context context, Uri uri, String name, int icon) { final Intent intent = new Intent(); intent.setData(uri); intent.putExtra(LiveFolders.EXTRA_LIVE_FOLDER_NAME, name); intent.putExtra(LiveFolders.EXTRA_LIVE_FOLDER_ICON, Intent.ShortcutIconResource.fromContext(context, icon)); intent.putExtra(LiveFolders.EXTRA_LIVE_FOLDER_DISPLAY_MODE, LiveFolders.DISPLAY_MODE_LIST); return intent; } }
The live folder is described by an android.content.Intent
as follows:
Component | Type | Description | Required |
---|---|---|---|
URI | URI | The ContentProvider URI | Yes |
EXTRA_LIVE_FOLDER_NAME |
Extra String | The name of the live folder | Yes |
EXTRA_LIVE_FOLDER_ICON |
Extra android.content.Intent.ShortcutIconResource |
The icon of the live folder | Yes |
EXTRA_LIVE_FOLDER_DISPLAY_MODE |
Extra int | The display mode of the live folder. The value must be either DISPLAY_MODE_GRID or DISPLAY_MODE_LIST . |
Yes |
EXTRA_LIVE_FOLDER_BASE_INTENT |
Extra Intent | When the user clicks an item inside a live folder, the system will either fire the intent associated with that item or, if present, the live folder's base intent with the id of the item appended to the base intent's URI. | No |
Setting up the content provider
The live folder's content provider must, upon query, return a android.database.Cursor
whose columns match the following names:
Column | Type | Description | Required |
---|---|---|---|
NAME |
String | The name of the item | Yes |
DESCRIPTION |
String | The description of the item. The description is ignored when the live folder's display mode is DISPLAY_MODE_GRID . |
No |
INTENT |
android.content.Intent |
The intent to fire when the item is clicked. Ignored when the live folder defines a base intent. | No |
ICON_BITMAP |
Bitmap | The icon for the item. When this column value is not null, the values for the columns ICON_PACKAGE and ICON_RESOURCE must be null. |
No |
ICON_PACKAGE |
String | The package of the item's icon. When this value is not null, the value for the column ICON_RESOURCE must be specified and the value for the column ICON_BITMAP must be null. |
No |
ICON_RESOURCE |
String | The resource name of the item's icon. When this value is not null, the value for the column ICON_PACKAGE must be specified and the value for the column ICON_BITMAP must be null. |
No |
Summary
Constants | |
---|---|
static String |
Activity Action: Creates a live folder. |
static String |
Content provider column. |
static Int |
Displays a live folder's content in a grid. |
static Int |
Displays a live folder's content in a list. |
static String |
The name of the extra used to define the base Intent of a live folder. |
static String |
The name of the extra used to define the display mode of a live folder. |
static String |
The name of the extra used to define the icon of a live folder. |
static String |
The name of the extra used to define the name of a live folder. |
static String |
Content provider column. |
static String |
Content provider column. |
static String |
Content provider column. |
static String |
Content provider column. |
static String |
Content provider column. |
Inherited constants | |
---|---|
Constants
ACTION_CREATE_LIVE_FOLDER
static valACTION_CREATE_LIVE_FOLDER: String
Deprecated: Deprecated in Java.
Activity Action: Creates a live folder.
Input: Nothing.
Output: An Intent representing the live folder. The intent must contain four extras: EXTRA_LIVE_FOLDER_NAME (value: String), EXTRA_LIVE_FOLDER_ICON (value: ShortcutIconResource), EXTRA_LIVE_FOLDER_URI (value: String) and EXTRA_LIVE_FOLDER_DISPLAY_MODE (value: int). The Intent can optionnally contain EXTRA_LIVE_FOLDER_BASE_INTENT (value: Intent).
Value: "android.intent.action.CREATE_LIVE_FOLDER"
DESCRIPTION
static valDESCRIPTION: String
Deprecated: Deprecated in Java.
Content provider column.
Description of the live folder item. This value is ignored if the live folder's display mode is LiveFolders#DISPLAY_MODE_GRID
.
Optional.
Type: String.
Value: "description"
DISPLAY_MODE_GRID
static valDISPLAY_MODE_GRID: Int
Deprecated: Deprecated in Java.
Displays a live folder's content in a grid.
Value: 1
DISPLAY_MODE_LIST
static valDISPLAY_MODE_LIST: Int
Deprecated: Deprecated in Java.
Displays a live folder's content in a list.
Value: 2
EXTRA_LIVE_FOLDER_BASE_INTENT
static valEXTRA_LIVE_FOLDER_BASE_INTENT: String
Deprecated: Deprecated in Java.
The name of the extra used to define the base Intent of a live folder.
Value: "android.intent.extra.livefolder.BASE_INTENT"
See Also
EXTRA_LIVE_FOLDER_DISPLAY_MODE
static valEXTRA_LIVE_FOLDER_DISPLAY_MODE: String
Deprecated: Deprecated in Java.
The name of the extra used to define the display mode of a live folder.
Value: "android.intent.extra.livefolder.DISPLAY_MODE"
EXTRA_LIVE_FOLDER_ICON
static valEXTRA_LIVE_FOLDER_ICON: String
Deprecated: Deprecated in Java.
The name of the extra used to define the icon of a live folder.
Value: "android.intent.extra.livefolder.ICON"
See Also
EXTRA_LIVE_FOLDER_NAME
static valEXTRA_LIVE_FOLDER_NAME: String
Deprecated: Deprecated in Java.
The name of the extra used to define the name of a live folder.
Value: "android.intent.extra.livefolder.NAME"
See Also
ICON_BITMAP
static valICON_BITMAP: String
Deprecated: Deprecated in Java.
Content provider column.
Icon of the live folder item, as a custom bitmap.
Optional.
Type: android.graphics.Bitmap
.
Value: "icon_bitmap"
ICON_PACKAGE
static valICON_PACKAGE: String
Deprecated: Deprecated in Java.
Content provider column.
Package where to find the icon of the live folder item. This value can be obtained easily using android.content.Intent.ShortcutIconResource#fromContext(android.content.Context, int)
.
Optional.
Type: String.
Value: "icon_package"
ICON_RESOURCE
static valICON_RESOURCE: String
Deprecated: Deprecated in Java.
Content provider column.
Resource name of the live folder item. This value can be obtained easily using android.content.Intent.ShortcutIconResource#fromContext(android.content.Context, int)
.
Optional.
Type: String.
Value: "icon_resource"
INTENT
static valINTENT: String
Deprecated: Deprecated in Java.
Content provider column.
Intent of the live folder item.
Optional if the live folder has a base intent.
Type: android.content.Intent
.
Value: "intent"
NAME
static valNAME: String
Deprecated: Deprecated in Java.
Content provider column.
Name of the live folder item.
Required.
Type: String.
Value: "name"