19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/*
281f39eb6e76d0be1dd341af835e8002a0f80524eWinson Chung * Copyright (C) 2011 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
17c39a6e0c51e182338deb8b63d07933b585134929The Android Open Source Projectpackage com.android.internal.appwidget;
189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.content.ComponentName;
2081f39eb6e76d0be1dd341af835e8002a0f80524eWinson Chungimport android.content.Intent;
21976e8bd2017d0263216c62111454438cc0f130e3Svetoslavimport android.content.IntentSender;
22976e8bd2017d0263216c62111454438cc0f130e3Svetoslavimport android.content.pm.ApplicationInfo;
23ccf6c6814736e368949b64aadce676ab6d045fdcHyunyoung Songimport android.content.pm.ParceledListSlice;
24c39a6e0c51e182338deb8b63d07933b585134929The Android Open Source Projectimport android.appwidget.AppWidgetProviderInfo;
25c39a6e0c51e182338deb8b63d07933b585134929The Android Open Source Projectimport com.android.internal.appwidget.IAppWidgetHost;
26e8724c82ab1479f13c85a2c6219841e1fd95f2d2Adam Cohenimport android.os.Bundle;
2781f39eb6e76d0be1dd341af835e8002a0f80524eWinson Chungimport android.os.IBinder;
289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.widget.RemoteViews;
299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project/** {@hide} */
31c39a6e0c51e182338deb8b63d07933b585134929The Android Open Source Projectinterface IAppWidgetService {
32a75a883fe9ea1790803148f0a561473073e3f264Jim Miller
339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    //
34c39a6e0c51e182338deb8b63d07933b585134929The Android Open Source Project    // for AppWidgetHost
359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    //
36976e8bd2017d0263216c62111454438cc0f130e3Svetoslav    int[] startListening(IAppWidgetHost host, String callingPackage, int hostId,
37976e8bd2017d0263216c62111454438cc0f130e3Svetoslav            out List<RemoteViews> updatedViews);
38976e8bd2017d0263216c62111454438cc0f130e3Svetoslav    void stopListening(String callingPackage, int hostId);
39976e8bd2017d0263216c62111454438cc0f130e3Svetoslav    int allocateAppWidgetId(String callingPackage, int hostId);
40976e8bd2017d0263216c62111454438cc0f130e3Svetoslav    void deleteAppWidgetId(String callingPackage, int appWidgetId);
41976e8bd2017d0263216c62111454438cc0f130e3Svetoslav    void deleteHost(String packageName, int hostId);
42976e8bd2017d0263216c62111454438cc0f130e3Svetoslav    void deleteAllHosts();
43976e8bd2017d0263216c62111454438cc0f130e3Svetoslav    RemoteViews getAppWidgetViews(String callingPackage, int appWidgetId);
44976e8bd2017d0263216c62111454438cc0f130e3Svetoslav    int[] getAppWidgetIdsForHost(String callingPackage, int hostId);
458e1d299da27da534b508b1da51ebe351a689cefaSvetoslav    IntentSender createAppWidgetConfigIntentSender(String callingPackage, int appWidgetId,
468e1d299da27da534b508b1da51ebe351a689cefaSvetoslav            int intentFlags);
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    //
49c39a6e0c51e182338deb8b63d07933b585134929The Android Open Source Project    // for AppWidgetManager
509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    //
51976e8bd2017d0263216c62111454438cc0f130e3Svetoslav    void updateAppWidgetIds(String callingPackage, in int[] appWidgetIds, in RemoteViews views);
52976e8bd2017d0263216c62111454438cc0f130e3Svetoslav    void updateAppWidgetOptions(String callingPackage, int appWidgetId, in Bundle extras);
53976e8bd2017d0263216c62111454438cc0f130e3Svetoslav    Bundle getAppWidgetOptions(String callingPackage, int appWidgetId);
54976e8bd2017d0263216c62111454438cc0f130e3Svetoslav    void partiallyUpdateAppWidgetIds(String callingPackage, in int[] appWidgetIds,
55976e8bd2017d0263216c62111454438cc0f130e3Svetoslav            in RemoteViews views);
56976e8bd2017d0263216c62111454438cc0f130e3Svetoslav    void updateAppWidgetProvider(in ComponentName provider, in RemoteViews views);
57976e8bd2017d0263216c62111454438cc0f130e3Svetoslav    void notifyAppWidgetViewDataChanged(String packageName, in int[] appWidgetIds, int viewId);
58ccf6c6814736e368949b64aadce676ab6d045fdcHyunyoung Song    ParceledListSlice getInstalledProvidersForProfile(int categoryFilter,
598e1d299da27da534b508b1da51ebe351a689cefaSvetoslav            int profileId);
60976e8bd2017d0263216c62111454438cc0f130e3Svetoslav    AppWidgetProviderInfo getAppWidgetInfo(String callingPackage, int appWidgetId);
61a75a883fe9ea1790803148f0a561473073e3f264Jim Miller    boolean hasBindAppWidgetPermission(in String packageName, int userId);
62976e8bd2017d0263216c62111454438cc0f130e3Svetoslav    void setBindAppWidgetPermission(in String packageName, int userId, in boolean permission);
63976e8bd2017d0263216c62111454438cc0f130e3Svetoslav    boolean bindAppWidgetId(in String callingPackage, int appWidgetId,
64976e8bd2017d0263216c62111454438cc0f130e3Svetoslav            int providerProfileId, in ComponentName providerComponent, in Bundle options);
65976e8bd2017d0263216c62111454438cc0f130e3Svetoslav    void bindRemoteViewsService(String callingPackage, int appWidgetId, in Intent intent,
66976e8bd2017d0263216c62111454438cc0f130e3Svetoslav            in IBinder connection);
67976e8bd2017d0263216c62111454438cc0f130e3Svetoslav    void unbindRemoteViewsService(String callingPackage, int appWidgetId, in Intent intent);
68976e8bd2017d0263216c62111454438cc0f130e3Svetoslav    int[] getAppWidgetIds(in ComponentName providerComponent);
69e4a8da8ea241858b52d8122480316db79582c44dAmith Yamasani    boolean isBoundWidgetPackage(String packageName, int userId);
709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
72