1 /*
2  * Copyright (C) 2011 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package com.android.internal.appwidget;
18 
19 import android.content.ComponentName;
20 import android.content.Intent;
21 import android.content.IntentSender;
22 import android.content.pm.ApplicationInfo;
23 import android.content.pm.ParceledListSlice;
24 import android.appwidget.AppWidgetProviderInfo;
25 import com.android.internal.appwidget.IAppWidgetHost;
26 import android.os.Bundle;
27 import android.os.IBinder;
28 import android.widget.RemoteViews;
29 import android.app.IApplicationThread;
30 import android.app.IServiceConnection;
31 
32 /** {@hide} */
33 interface IAppWidgetService {
34 
35     //
36     // for AppWidgetHost
37     //
startListening(IAppWidgetHost host, String callingPackage, int hostId, in int[] appWidgetIds)38     ParceledListSlice startListening(IAppWidgetHost host, String callingPackage, int hostId,
39             in int[] appWidgetIds);
stopListening(String callingPackage, int hostId)40     void stopListening(String callingPackage, int hostId);
allocateAppWidgetId(String callingPackage, int hostId)41     int allocateAppWidgetId(String callingPackage, int hostId);
deleteAppWidgetId(String callingPackage, int appWidgetId)42     void deleteAppWidgetId(String callingPackage, int appWidgetId);
deleteHost(String packageName, int hostId)43     void deleteHost(String packageName, int hostId);
deleteAllHosts()44     void deleteAllHosts();
45     @UnsupportedAppUsage
getAppWidgetViews(String callingPackage, int appWidgetId)46     RemoteViews getAppWidgetViews(String callingPackage, int appWidgetId);
getAppWidgetIdsForHost(String callingPackage, int hostId)47     int[] getAppWidgetIdsForHost(String callingPackage, int hostId);
createAppWidgetConfigIntentSender(String callingPackage, int appWidgetId, int intentFlags)48     IntentSender createAppWidgetConfigIntentSender(String callingPackage, int appWidgetId,
49             int intentFlags);
50 
51     //
52     // for AppWidgetManager
53     //
updateAppWidgetIds(String callingPackage, in int[] appWidgetIds, in RemoteViews views)54     void updateAppWidgetIds(String callingPackage, in int[] appWidgetIds, in RemoteViews views);
updateAppWidgetOptions(String callingPackage, int appWidgetId, in Bundle extras)55     void updateAppWidgetOptions(String callingPackage, int appWidgetId, in Bundle extras);
getAppWidgetOptions(String callingPackage, int appWidgetId)56     Bundle getAppWidgetOptions(String callingPackage, int appWidgetId);
partiallyUpdateAppWidgetIds(String callingPackage, in int[] appWidgetIds, in RemoteViews views)57     void partiallyUpdateAppWidgetIds(String callingPackage, in int[] appWidgetIds,
58             in RemoteViews views);
updateAppWidgetProvider(in ComponentName provider, in RemoteViews views)59     void updateAppWidgetProvider(in ComponentName provider, in RemoteViews views);
updateAppWidgetProviderInfo(in ComponentName provider, in String metadataKey)60     void updateAppWidgetProviderInfo(in ComponentName provider, in String metadataKey);
notifyAppWidgetViewDataChanged(String packageName, in int[] appWidgetIds, int viewId)61     void notifyAppWidgetViewDataChanged(String packageName, in int[] appWidgetIds, int viewId);
getInstalledProvidersForProfile(int categoryFilter, int profileId, String packageName)62     ParceledListSlice getInstalledProvidersForProfile(int categoryFilter, int profileId,
63             String packageName);
getAppWidgetInfo(String callingPackage, int appWidgetId)64     AppWidgetProviderInfo getAppWidgetInfo(String callingPackage, int appWidgetId);
hasBindAppWidgetPermission(in String packageName, int userId)65     boolean hasBindAppWidgetPermission(in String packageName, int userId);
setBindAppWidgetPermission(in String packageName, int userId, in boolean permission)66     void setBindAppWidgetPermission(in String packageName, int userId, in boolean permission);
67     @UnsupportedAppUsage
bindAppWidgetId(in String callingPackage, int appWidgetId, int providerProfileId, in ComponentName providerComponent, in Bundle options)68     boolean bindAppWidgetId(in String callingPackage, int appWidgetId,
69             int providerProfileId, in ComponentName providerComponent, in Bundle options);
70     @UnsupportedAppUsage
bindRemoteViewsService(String callingPackage, int appWidgetId, in Intent intent, IApplicationThread caller, IBinder token, IServiceConnection connection, int flags)71     boolean bindRemoteViewsService(String callingPackage, int appWidgetId, in Intent intent,
72             IApplicationThread caller, IBinder token, IServiceConnection connection, int flags);
73 
74     @UnsupportedAppUsage
getAppWidgetIds(in ComponentName providerComponent)75     int[] getAppWidgetIds(in ComponentName providerComponent);
isBoundWidgetPackage(String packageName, int userId)76     boolean isBoundWidgetPackage(String packageName, int userId);
requestPinAppWidget(String packageName, in ComponentName providerComponent, in Bundle extras, in IntentSender resultIntent)77     boolean requestPinAppWidget(String packageName, in ComponentName providerComponent,
78             in Bundle extras, in IntentSender resultIntent);
isRequestPinAppWidgetSupported()79     boolean isRequestPinAppWidgetSupported();
80 }
81 
82