summaryrefslogtreecommitdiffstats
path: root/core/java/android/gadget/GadgetManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'core/java/android/gadget/GadgetManager.java')
-rw-r--r--core/java/android/gadget/GadgetManager.java320
1 files changed, 0 insertions, 320 deletions
diff --git a/core/java/android/gadget/GadgetManager.java b/core/java/android/gadget/GadgetManager.java
deleted file mode 100644
index d2c4055..0000000
--- a/core/java/android/gadget/GadgetManager.java
+++ /dev/null
@@ -1,320 +0,0 @@
-/*
- * Copyright (C) 2006 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 android.gadget;
-
-import android.content.ComponentName;
-import android.content.Context;
-import android.os.IBinder;
-import android.os.RemoteException;
-import android.os.ServiceManager;
-import android.util.Log;
-import android.widget.RemoteViews;
-
-import com.android.internal.gadget.IGadgetService;
-
-import java.lang.ref.WeakReference;
-import java.util.List;
-import java.util.WeakHashMap;
-
-/**
- * Updates gadget state; gets information about installed gadget providers and other
- * gadget related state.
- */
-public class GadgetManager {
- static final String TAG = "GadgetManager";
-
- /**
- * Send this from your gadget host activity when you want to pick a gadget to display.
- * The gadget picker activity will be launched.
- * <p>
- * You must supply the following extras:
- * <table>
- * <tr>
- * <td>{@link #EXTRA_GADGET_ID}</td>
- * <td>A newly allocated gadgetId, which will be bound to the gadget provider
- * once the user has selected one.</td>
- * </tr>
- * </table>
- *
- * <p>
- * The system will respond with an onActivityResult call with the following extras in
- * the intent:
- * <table>
- * <tr>
- * <td>{@link #EXTRA_GADGET_ID}</td>
- * <td>The gadgetId that you supplied in the original intent.</td>
- * </tr>
- * </table>
- * <p>
- * When you receive the result from the gadget pick activity, if the resultCode is
- * {@link android.app.Activity#RESULT_OK}, a gadget has been selected. You should then
- * check the GadgetProviderInfo for the returned gadget, and if it has one, launch its configuration
- * activity. If {@link android.app.Activity#RESULT_CANCELED} is returned, you should delete
- * the gadgetId.
- *
- * @see #ACTION_GADGET_CONFIGURE
- */
- public static final String ACTION_GADGET_PICK = "android.gadget.action.GADGET_PICK";
-
- /**
- * Sent when it is time to configure your gadget while it is being added to a host.
- * This action is not sent as a broadcast to the gadget provider, but as a startActivity
- * to the activity specified in the {@link GadgetProviderInfo GadgetProviderInfo meta-data}.
- *
- * <p>
- * The intent will contain the following extras:
- * <table>
- * <tr>
- * <td>{@link #EXTRA_GADGET_ID}</td>
- * <td>The gadgetId to configure.</td>
- * </tr>
- * </table>
- *
- * <p>If you return {@link android.app.Activity#RESULT_OK} using
- * {@link android.app.Activity#setResult Activity.setResult()}, the gadget will be added,
- * and you will receive an {@link #ACTION_GADGET_UPDATE} broadcast for this gadget.
- * If you return {@link android.app.Activity#RESULT_CANCELED}, the host will cancel the add
- * and not display this gadget, and you will receive a {@link #ACTION_GADGET_DELETED} broadcast.
- */
- public static final String ACTION_GADGET_CONFIGURE = "android.gadget.action.GADGET_CONFIGURE";
-
- /**
- * An intent extra that contains one gadgetId.
- * <p>
- * The value will be an int that can be retrieved like this:
- * {@sample frameworks/base/tests/gadgets/GadgetHostTest/src/com/android/tests/gadgethost/GadgetHostActivity.java getExtra_EXTRA_GADGET_ID}
- */
- public static final String EXTRA_GADGET_ID = "gadgetId";
-
- /**
- * An intent extra that contains multiple gadgetIds.
- * <p>
- * The value will be an int array that can be retrieved like this:
- * {@sample frameworks/base/tests/gadgets/GadgetHostTest/src/com/android/tests/gadgethost/TestGadgetProvider.java getExtra_EXTRA_GADGET_IDS}
- */
- public static final String EXTRA_GADGET_IDS = "gadgetIds";
-
- /**
- * A sentiel value that the gadget manager will never return as a gadgetId.
- */
- public static final int INVALID_GADGET_ID = 0;
-
- /**
- * Sent when it is time to update your gadget.
- *
- * <p>This may be sent in response to a new instance for this gadget provider having
- * been instantiated, the requested {@link GadgetProviderInfo#updatePeriodMillis update interval}
- * having lapsed, or the system booting.
- *
- * <p>
- * The intent will contain the following extras:
- * <table>
- * <tr>
- * <td>{@link #EXTRA_GADGET_IDS}</td>
- * <td>The gadgetIds to update. This may be all of the gadgets created for this
- * provider, or just a subset. The system tries to send updates for as few gadget
- * instances as possible.</td>
- * </tr>
- * </table>
- *
- * @see GadgetProvider#onUpdate GadgetProvider.onUpdate(Context context, GadgetManager gadgetManager, int[] gadgetIds)
- */
- public static final String ACTION_GADGET_UPDATE = "android.gadget.action.GADGET_UPDATE";
-
- /**
- * Sent when an instance of a gadget is deleted from its host.
- *
- * @see GadgetProvider#onDeleted GadgetProvider.onDeleted(Context context, int[] gadgetIds)
- */
- public static final String ACTION_GADGET_DELETED = "android.gadget.action.GADGET_DELETED";
-
- /**
- * Sent when an instance of a gadget is removed from the last host.
- *
- * @see GadgetProvider#onEnabled GadgetProvider.onEnabled(Context context)
- */
- public static final String ACTION_GADGET_DISABLED = "android.gadget.action.GADGET_DISABLED";
-
- /**
- * Sent when an instance of a gadget is added to a host for the first time.
- * This broadcast is sent at boot time if there is a gadget host installed with
- * an instance for this provider.
- *
- * @see GadgetProvider#onEnabled GadgetProvider.onEnabled(Context context)
- */
- public static final String ACTION_GADGET_ENABLED = "android.gadget.action.GADGET_ENABLED";
-
- /**
- * Field for the manifest meta-data tag.
- *
- * @see GadgetProviderInfo
- */
- public static final String META_DATA_GADGET_PROVIDER = "android.gadget.provider";
-
- static WeakHashMap<Context, WeakReference<GadgetManager>> sManagerCache = new WeakHashMap();
- static IGadgetService sService;
-
- Context mContext;
-
- /**
- * Get the GadgetManager instance to use for the supplied {@link android.content.Context
- * Context} object.
- */
- public static GadgetManager getInstance(Context context) {
- synchronized (sManagerCache) {
- if (sService == null) {
- IBinder b = ServiceManager.getService(Context.GADGET_SERVICE);
- sService = IGadgetService.Stub.asInterface(b);
- }
-
- WeakReference<GadgetManager> ref = sManagerCache.get(context);
- GadgetManager result = null;
- if (ref != null) {
- result = ref.get();
- }
- if (result == null) {
- result = new GadgetManager(context);
- sManagerCache.put(context, new WeakReference(result));
- }
- return result;
- }
- }
-
- private GadgetManager(Context context) {
- mContext = context;
- }
-
- /**
- * Set the RemoteViews to use for the specified gadgetIds.
- *
- * <p>
- * It is okay to call this method both inside an {@link #ACTION_GADGET_UPDATE} broadcast,
- * and outside of the handler.
- * This method will only work when called from the uid that owns the gadget provider.
- *
- * @param gadgetIds The gadget instances for which to set the RemoteViews.
- * @param views The RemoteViews object to show.
- */
- public void updateGadget(int[] gadgetIds, RemoteViews views) {
- try {
- sService.updateGadgetIds(gadgetIds, views);
- }
- catch (RemoteException e) {
- throw new RuntimeException("system server dead?", e);
- }
- }
-
- /**
- * Set the RemoteViews to use for the specified gadgetId.
- *
- * <p>
- * It is okay to call this method both inside an {@link #ACTION_GADGET_UPDATE} broadcast,
- * and outside of the handler.
- * This method will only work when called from the uid that owns the gadget provider.
- *
- * @param gadgetId The gadget instance for which to set the RemoteViews.
- * @param views The RemoteViews object to show.
- */
- public void updateGadget(int gadgetId, RemoteViews views) {
- updateGadget(new int[] { gadgetId }, views);
- }
-
- /**
- * Set the RemoteViews to use for all gadget instances for the supplied gadget provider.
- *
- * <p>
- * It is okay to call this method both inside an {@link #ACTION_GADGET_UPDATE} broadcast,
- * and outside of the handler.
- * This method will only work when called from the uid that owns the gadget provider.
- *
- * @param provider The {@link ComponentName} for the {@link
- * android.content.BroadcastReceiver BroadcastReceiver} provider
- * for your gadget.
- * @param views The RemoteViews object to show.
- */
- public void updateGadget(ComponentName provider, RemoteViews views) {
- try {
- sService.updateGadgetProvider(provider, views);
- }
- catch (RemoteException e) {
- throw new RuntimeException("system server dead?", e);
- }
- }
-
- /**
- * Return a list of the gadget providers that are currently installed.
- */
- public List<GadgetProviderInfo> getInstalledProviders() {
- try {
- return sService.getInstalledProviders();
- }
- catch (RemoteException e) {
- throw new RuntimeException("system server dead?", e);
- }
- }
-
- /**
- * Get the available info about the gadget.
- *
- * @return A gadgetId. If the gadgetId has not been bound to a provider yet, or
- * you don't have access to that gadgetId, null is returned.
- */
- public GadgetProviderInfo getGadgetInfo(int gadgetId) {
- try {
- return sService.getGadgetInfo(gadgetId);
- }
- catch (RemoteException e) {
- throw new RuntimeException("system server dead?", e);
- }
- }
-
- /**
- * Set the component for a given gadgetId.
- *
- * <p class="note">You need the GADGET_LIST permission. This method is to be used by the
- * gadget picker.
- *
- * @param gadgetId The gadget instance for which to set the RemoteViews.
- * @param provider The {@link android.content.BroadcastReceiver} that will be the gadget
- * provider for this gadget.
- */
- public void bindGadgetId(int gadgetId, ComponentName provider) {
- try {
- sService.bindGadgetId(gadgetId, provider);
- }
- catch (RemoteException e) {
- throw new RuntimeException("system server dead?", e);
- }
- }
-
- /**
- * Get the list of gadgetIds that have been bound to the given gadget
- * provider.
- *
- * @param provider The {@link android.content.BroadcastReceiver} that is the
- * gadget provider to find gadgetIds for.
- */
- public int[] getGadgetIds(ComponentName provider) {
- try {
- return sService.getGadgetIds(provider);
- }
- catch (RemoteException e) {
- throw new RuntimeException("system server dead?", e);
- }
- }
-}
-