/* * Copyright (C) 2008 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.apis.app; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.os.Parcelable; import android.widget.TextView; import com.example.android.apis.R; /** * This Activity actually handles two stages of a launcher shortcut's life cycle. * * 1. Your application offers to provide shortcuts to the launcher. When * the user installs a shortcut, an activity within your application * generates the actual shortcut and returns it to the launcher, where it * is shown to the user as an icon. * * 2. Any time the user clicks on an installed shortcut, an intent is sent. * Typically this would then be handled as necessary by an activity within * your application. * * We handle stage 1 (creating a shortcut) by simply sending back the information (in the form * of an {@link android.content.Intent} that the launcher will use to create the shortcut. * * You can also implement this in an interactive way, by having your activity actually present * UI for the user to select the specific nature of the shortcut, such as a contact, picture, URL, * media item, or action. * * We handle stage 2 (responding to a shortcut) in this sample by simply displaying the contents * of the incoming {@link android.content.Intent}. * * In a real application, you would probably use the shortcut intent to display specific content * or start a particular operation. */ public class LauncherShortcuts extends Activity { private static final String EXTRA_KEY = "com.example.android.apis.app.LauncherShortcuts"; @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); // Resolve the intent final Intent intent = getIntent(); final String action = intent.getAction(); // If the intent is a request to create a shortcut, we'll do that and exit if (Intent.ACTION_CREATE_SHORTCUT.equals(action)) { setupShortcut(); finish(); return; } // If we weren't launched with a CREATE_SHORTCUT intent, simply put up an informative // display. // Inflate our UI from its XML layout description. setContentView(R.layout.launcher_shortcuts); // Provide a lightweight view of the Intent that launched us TextView intentInfo = (TextView) findViewById(R.id.txt_shortcut_intent); String info = intent.toString(); String extra = intent.getStringExtra(EXTRA_KEY); if (extra != null) { info = info + " " + extra; } intentInfo.setText(info); } /** * This function creates a shortcut and returns it to the caller. There are actually two * intents that you will send back. * * The first intent serves as a container for the shortcut and is returned to the launcher by * setResult(). This intent must contain three fields: * *