| /* |
| * Copyright (C) 2009 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package com.example.android.notepad; |
| |
| import com.example.android.notepad.NotePad; |
| |
| import android.app.Activity; |
| import android.content.Intent; |
| import android.content.Intent.ShortcutIconResource; |
| import android.os.Bundle; |
| import android.provider.LiveFolders; |
| |
| /** |
| * This Activity creates a live folder Intent and |
| * sends it back to HOME. From the data in the Intent, HOME creates a live folder and displays |
| * its icon in the Home view. |
| * When the user clicks the icon, Home uses the data it got from the Intent to retrieve information |
| * from a content provider and display it in a View. |
| * |
| * The intent filter for this Activity is set to ACTION_CREATE_LIVE_FOLDER, which |
| * HOME sends in response to a long press and selection of Live Folder. |
| */ |
| public class NotesLiveFolder extends Activity { |
| |
| /** |
| * All of the work is done in onCreate(). The Activity doesn't actually display a UI. |
| * Instead, it sets up an Intent and returns it to its caller (the HOME activity). |
| */ |
| @Override |
| protected void onCreate(Bundle savedInstanceState) { |
| super.onCreate(savedInstanceState); |
| |
| /* |
| * Gets the incoming Intent and its action. If the incoming Intent was |
| * ACTION_CREATE_LIVE_FOLDER, then create an outgoing Intent with the |
| * necessary data and send back OK. Otherwise, send back CANCEL. |
| */ |
| final Intent intent = getIntent(); |
| final String action = intent.getAction(); |
| |
| if (LiveFolders.ACTION_CREATE_LIVE_FOLDER.equals(action)) { |
| |
| // Creates a new Intent. |
| final Intent liveFolderIntent = new Intent(); |
| |
| /* |
| * The following statements put data into the outgoing Intent. Please see |
| * {@link android.provider.LiveFolders for a detailed description of these |
| * data values. From this data, HOME sets up a live folder. |
| */ |
| // Sets the URI pattern for the content provider backing the folder. |
| liveFolderIntent.setData(NotePad.Notes.LIVE_FOLDER_URI); |
| |
| // Adds the display name of the live folder as an Extra string. |
| String foldername = getString(R.string.live_folder_name); |
| liveFolderIntent.putExtra(LiveFolders.EXTRA_LIVE_FOLDER_NAME, foldername); |
| |
| // Adds the display icon of the live folder as an Extra resource. |
| ShortcutIconResource foldericon = |
| Intent.ShortcutIconResource.fromContext(this, R.drawable.live_folder_notes); |
| liveFolderIntent.putExtra(LiveFolders.EXTRA_LIVE_FOLDER_ICON, foldericon); |
| |
| // Add the display mode of the live folder as an integer. The specified |
| // mode causes the live folder to display as a list. |
| liveFolderIntent.putExtra( |
| LiveFolders.EXTRA_LIVE_FOLDER_DISPLAY_MODE, |
| LiveFolders.DISPLAY_MODE_LIST); |
| |
| /* |
| * Adds a base action for items in the live folder list, as an Intent. When the |
| * user clicks an individual note in the list, the live folder fires this Intent. |
| * |
| * Its action is ACTION_EDIT, so it triggers the Note Editor activity. Its |
| * data is the URI pattern for a single note identified by its ID. The live folder |
| * automatically adds the ID value of the selected item to the URI pattern. |
| * |
| * As a result, Note Editor is triggered and gets a single note to retrieve by ID. |
| */ |
| Intent returnIntent |
| = new Intent(Intent.ACTION_EDIT, NotePad.Notes.CONTENT_ID_URI_PATTERN); |
| liveFolderIntent.putExtra(LiveFolders.EXTRA_LIVE_FOLDER_BASE_INTENT, returnIntent); |
| |
| /* Creates an ActivityResult object to propagate back to HOME. Set its result indicator |
| * to OK, and sets the returned Intent to the live folder Intent that was just |
| * constructed. |
| */ |
| setResult(RESULT_OK, liveFolderIntent); |
| |
| } else { |
| |
| // If the original action was not ACTION_CREATE_LIVE_FOLDER, creates an |
| // ActivityResult with the indicator set to CANCELED, but do not return an Intent |
| setResult(RESULT_CANCELED); |
| } |
| |
| // Closes the Activity. The ActivityObject is propagated back to the caller. |
| finish(); |
| } |
| } |