Lines Matching defs:provider

234         // update the provider list.
284 // Also note that remove the provider does not clear the Provider component data.
290 Provider provider = installedProviders.get(i);
292 ensureGroupStateLoadedLocked(provider.getUserId());
294 if (!removedProviders.contains(provider.id)) {
296 provider.id.componentName.getPackageName(),
297 provider.getUserId(), removedProviders);
304 provider.getUserId());
704 Provider provider = widget.provider;
705 if (provider == null) {
714 intent.setComponent(provider.info.configure);
723 null, new UserHandle(provider.getUserId()))
748 // If the provider is not under the calling user, make sure this
749 // provider is white listed for access from the parent.
774 if (widget.provider != null) {
776 + " already bound to: " + widget.provider.id);
789 // sure the provider is in the already vetted user profile.
791 Provider provider = lookupProviderLocked(providerId);
793 if (provider == null) {
794 Slog.e(TAG, "No widget provider " + providerComponent + " for profile "
799 if (provider.zombie) {
800 Slog.e(TAG, "Can't bind to a 3rd party provider in"
801 + " safe mode " + provider);
805 widget.provider = provider;
816 provider.widgets.add(widget);
818 final int widgetCount = provider.widgets.size();
820 // Tell the provider that it's ready.
821 sendEnableIntentLocked(provider);
828 sendUpdateIntentLocked(provider, new int[] {appWidgetId});
831 registerForBroadcastsLocked(provider, getWidgetIds(provider.widgets));
836 Slog.i(TAG, "Bound widget " + appWidgetId + " to provider " + provider.id);
860 Provider provider = lookupProviderLocked(providerId);
862 if (provider != null) {
863 return getWidgetIds(provider.widgets);
921 // Make sure the widget has a provider.
922 if (widget.provider == null) {
923 throw new IllegalArgumentException("No provider for widget "
929 // Ensure that the service belongs to the same package as the provider.
931 String providerPackage = widget.provider.id.componentName.getPackageName();
935 + " as the widget provider");
938 // Make sure this service exists under the same user as the provider and
941 componentName, widget.provider.getUserId());
963 bindService(intent, connection, widget.provider.info.getProfile());
969 Pair<Integer, FilterComparison> serviceId = Pair.create(widget.provider.id.uid, fc);
1101 if (widget != null && widget.provider != null && !widget.provider.zombie) {
1102 return cloneIfLocalBinder(widget.provider.info);
1162 // Send the broacast to notify the provider that options changed.
1268 Provider provider = lookupProviderLocked(providerId);
1270 if (provider == null) {
1275 ArrayList<Widget> instances = provider.widgets;
1305 Provider provider = mProviders.get(i);
1306 AppWidgetProviderInfo info = provider.info;
1308 // Ignore an invalid provider or one not matching the filter.
1309 if (provider.zombie || (info.widgetCategory & categoryFilter) == 0) {
1317 provider.id.componentName.getPackageName(), providerProfileId)) {
1419 Provider provider = widget.provider;
1420 if (provider != null) {
1421 provider.widgets.remove(widget);
1422 if (!provider.zombie) {
1426 if (provider.widgets.isEmpty()) {
1428 cancelBroadcasts(provider);
1430 // send the broacast saying that the provider is not in use any more
1431 sendDisabledIntentLocked(provider);
1437 private void cancelBroadcasts(Provider provider) {
1439 Slog.i(TAG, "cancelBroadcasts() for " + provider);
1441 if (provider.broadcast != null) {
1442 mAlarmManager.cancel(provider.broadcast);
1445 provider.broadcast.cancel();
1449 provider.broadcast = null;
1501 widget.provider.info.getProfile());
1545 if (widget != null && widget.provider != null
1546 && !widget.provider.zombie && !widget.host.zombie) {
1562 || widget.host.callbacks == null || widget.provider == null
1563 || widget.provider.zombie) {
1629 if (widget == null || widget.provider == null || widget.provider.zombie
1658 if (widget == null || widget.provider == null || widget.provider.zombie
1666 args.arg3 = widget.provider.info;
1775 Provider provider = mProviders.get(i);
1776 if (provider.id.equals(id)) {
1777 return provider;
1840 Provider provider = parseProviderInfoXml(providerId, ri);
1841 if (provider != null) {
1842 // we might have an inactive entry for this provider already due to
1847 // If the provider was not found it may be because it was restored and
1859 existing.info = provider.info; // the real one filled out from the ResolveInfo
1865 mProviders.add(provider);
1873 private void deleteProviderLocked(Provider provider) {
1874 int N = provider.widgets.size();
1876 Widget widget = provider.widgets.remove(i);
1882 widget.provider = null;
1886 mProviders.remove(provider);
1889 cancelBroadcasts(provider);
1894 intent.setComponent(p.info.provider);
1898 private void sendUpdateIntentLocked(Provider provider, int[] appWidgetIds) {
1901 intent.setComponent(provider.info.provider);
1902 sendBroadcastAsUser(intent, provider.info.getProfile());
1907 intent.setComponent(widget.provider.info.provider);
1909 sendBroadcastAsUser(intent, widget.provider.info.getProfile());
1912 private void sendDisabledIntentLocked(Provider provider) {
1914 intent.setComponent(provider.info.provider);
1915 sendBroadcastAsUser(intent, provider.info.getProfile());
1920 intent.setComponent(widget.provider.info.provider);
1923 sendBroadcastAsUser(intent, widget.provider.info.getProfile());
1926 private void registerForBroadcastsLocked(Provider provider, int[] appWidgetIds) {
1927 if (provider.info.updatePeriodMillis > 0) {
1931 boolean alreadyRegistered = provider.broadcast != null;
1934 intent.setComponent(provider.info.provider);
1937 provider.broadcast = PendingIntent.getBroadcastAsUser(mContext, 1, intent,
1938 PendingIntent.FLAG_UPDATE_CURRENT, provider.info.getProfile());
1943 long period = provider.info.updatePeriodMillis;
1948 SystemClock.elapsedRealtime() + period, period, provider.broadcast);
1962 private static void dumpProvider(Provider provider, int index, PrintWriter pw) {
1963 AppWidgetProviderInfo info = provider.info;
1964 pw.print(" ["); pw.print(index); pw.print("] provider ");
1965 pw.println(provider.id);
1981 pw.print(" zombie="); pw.println(provider.zombie);
2003 if (widget.provider != null) {
2004 pw.print(" provider="); pw.println(widget.provider.id);
2016 out.attribute(null, "pkg", p.info.provider.getPackageName());
2017 out.attribute(null, "cl", p.info.provider.getClassName());
2035 if (widget.provider != null) {
2036 out.attribute(null, "p", Integer.toHexString(widget.provider.tag));
2080 Provider provider = null;
2089 + " meta-data for " + "AppWidget provider '" + providerId + '\'');
2102 if (!"appwidget-provider".equals(nodeName)) {
2103 Slog.w(TAG, "Meta-data does not start with appwidget-provider tag for"
2104 + " AppWidget provider " + providerId.componentName
2109 provider = new Provider();
2110 provider.id = providerId;
2111 AppWidgetProviderInfo info = provider.info = new AppWidgetProviderInfo();
2112 info.provider = providerId.componentName;
2173 Slog.w(TAG, "XML parsing failed for AppWidget provider "
2181 return provider;
2241 Provider provider = mProviders.get(i);
2244 if (provider.getUserId() != userId) {
2248 if (provider.widgets.size() > 0) {
2249 sendEnableIntentLocked(provider);
2250 int[] appWidgetIds = getWidgetIds(provider.widgets);
2251 sendUpdateIntentLocked(provider, appWidgetIds);
2252 registerForBroadcastsLocked(provider, appWidgetIds);
2262 // can have a host and a provider in different users.
2306 widget.provider = findProviderByTag(loadedWidget.providerTag);
2307 if (widget.provider == null) {
2308 // This provider is gone. We just let the host figure out
2319 widget.provider.widgets.add(widget);
2331 Provider provider = mProviders.get(i);
2332 if (provider.tag == tag) {
2333 return provider;
2363 * Checks if the provider is assigned and updates the mWidgetPackages to track packages
2367 if (widget.provider == null) return;
2369 int userId = widget.provider.getUserId();
2374 packages.add(widget.provider.info.provider.getPackageName());
2378 * Removes a widget from mWidgets and updates the cache of bound widget provider packages.
2389 if (widget.provider == null) return;
2391 final int userId = widget.provider.getUserId();
2392 final String packageName = widget.provider.info.provider.getPackageName();
2402 if (w.provider == null) continue;
2403 if (w.provider.getUserId() == userId
2404 && packageName.equals(w.provider.info.provider.getPackageName())) {
2466 Provider provider = mProviders.get(i);
2467 provider.tag = i;
2480 Provider provider = mProviders.get(i);
2481 provider.tag = TAG_UNDEFINED;
2503 Provider provider = mProviders.get(i);
2505 if (provider.getUserId() != userId) {
2508 if (provider.widgets.size() > 0) {
2509 serializeProvider(out, provider);
2600 Provider provider = lookupProviderLocked(providerId);
2602 if (provider == null && mSafeMode) {
2604 provider = new Provider();
2605 provider.info = new AppWidgetProviderInfo();
2606 provider.info.provider = providerId.componentName;
2607 provider.info.providerInfo = providerInfo;
2608 provider.zombie = true;
2609 provider.id = providerId;
2610 mProviders.add(provider);
2616 provider.tag = providerTag;
2697 // host and provider can be in different user profiles.
2771 // Remove widgets that have both host and provider in the user.
2777 final boolean hasProvider = widget.provider != null;
2778 final boolean providerInUser = hasProvider && widget.provider.getUserId() == userId;
2780 // If both host and provider are in the user, just drop the widgets
2781 // as we do not want to make host callbacks and provider broadcasts
2782 // as the host and the provider will be killed.
2788 widget.provider.widgets.remove(widget);
2789 widget.provider = null;
2807 Provider provider = mProviders.get(i);
2808 if (provider.getUserId() == userId) {
2809 crossProfileWidgetsChanged |= !provider.widgets.isEmpty();
2811 deleteProviderLocked(provider);
2836 // Announce removed provider changes to all hosts in the group.
2878 Provider provider = lookupProviderLocked(providerId);
2879 if (provider == null) {
2889 provider.info = parsed.info;
2891 final int M = provider.widgets.size();
2893 int[] appWidgetIds = getWidgetIds(provider.widgets);
2897 cancelBroadcasts(provider);
2898 registerForBroadcastsLocked(provider, appWidgetIds);
2902 Widget widget = provider.widgets.get(j);
2907 sendUpdateIntentLocked(provider, appWidgetIds);
2918 Provider provider = mProviders.get(i);
2919 if (packageName.equals(provider.info.provider.getPackageName())
2920 && provider.getUserId() == userId
2921 && !keep.contains(provider.id)) {
2923 removedProviders.add(provider.id);
2925 deleteProviderLocked(provider);
2938 Provider provider = mProviders.get(i);
2939 if (pkgName.equals(provider.info.provider.getPackageName())
2940 && provider.getUserId() == userId) {
2941 deleteProviderLocked(provider);
3030 Provider provider = mProviders.get(i);
3031 if (provider.getUserId() == userId) {
3032 previousPackages.add(provider.id.componentName.getPackageName());
3224 if (isProviderInPackageForUid(widget.provider, uid, packageName)) {
3228 if (isHostAccessingProvider(widget.host, widget.provider, uid, packageName)) {
3229 // Apps hosting the AppWidget get to bind to a remote view service in the provider.
3233 if ((widget.host.getUserId() == userId || (widget.provider != null
3234 && widget.provider.getUserId() == userId))
3237 // Apps that run in the same user as either the host or the provider and
3301 public boolean isProviderInPackageForUid(Provider provider, int uid,
3304 return provider != null && provider.id.uid == uid
3305 && provider.id.componentName.getPackageName().equals(packageName);
3308 public boolean isHostAccessingProvider(Host host, Provider provider, int uid,
3310 // The host creates a package context to bind to remote views service in the provider.
3311 return host.id.uid == uid && provider != null
3312 && provider.id.componentName.getPackageName().equals(packageName);
3347 // is there an instance of this provider hosted by the given app?
3434 Provider provider = widgets.get(i).provider;
3435 if (provider != null && provider.getUserId() == userId && provider.info != null
3436 && pkg.equals(provider.info.provider.getPackageName())) {
3508 Provider provider;
3515 return "AppWidgetId{" + appWidgetId + ':' + host + ':' + provider + '}';
3620 Provider provider = widget.provider;
3621 if (provider != null) {
3622 packages.add(provider.id.componentName.getPackageName());
3656 Provider provider = mProviders.get(i);
3658 if (!provider.widgets.isEmpty()
3659 && (provider.isInPackageForUser(backedupPackage, userId)
3660 || provider.hostedByPackageForUser(backedupPackage, userId))) {
3661 provider.tag = index;
3662 serializeProvider(out, provider);
3682 // either as host or as provider
3687 Provider provider = widget.provider;
3689 || (provider != null
3690 && provider.isInPackageForUser(backedupPackage, userId))) {
3765 // If there's no live entry for this provider, add an inactive one
3776 p.info.provider = componentName;
3781 Slog.i(TAG, " provider " + p.id);
3818 // provider sides of this widget ID, so make sure we are
3835 id.provider = p;
3836 if (id.provider != null) {
3837 id.provider.widgets.add(id);
3845 if (id.provider.info != null) {
3846 stashProviderRestoreUpdateLocked(id.provider,
3849 Slog.w(TAG, "Missing provider for restored widget " + id);
3856 + " :: p=" + id.provider);
3890 // For each provider there's a list of affected IDs
3891 Provider provider = e.getKey();
3895 Slog.i(TAG, "Provider " + provider + " pending: " + pending);
3916 provider, null, oldIds, newIds, userHandle);
3960 Provider provider = mProviders.get(i);
3961 if (provider.getUserId() == userId
3962 && provider.id.componentName.equals(componentName)) {
3963 return provider;
3972 + " host=" + host + " provider=" + p);
3984 && widget.provider.id.equals(p.id)) {
4009 Provider provider = widget.provider;
4010 if (provider != null && provider.isInPackageForUser(packageName, userId)) {
4018 private void stashProviderRestoreUpdateLocked(Provider provider, int oldId, int newId) {
4019 ArrayList<RestoreUpdateRecord> r = mUpdatesByProvider.get(provider);
4022 mUpdatesByProvider.put(provider, r);
4028 + " already stashed for " + provider);
4065 private void sendWidgetRestoreBroadcastLocked(String action, Provider provider,
4070 if (provider != null) {
4071 intent.setComponent(provider.info.provider);
4084 // for which 'pkg' is the provider. We assume that we'll be restoring all of
4095 Provider provider = widget.provider;
4098 || (provider != null && provider.isInPackageForUser(pkg, userId))) {
4099 // 'pkg' is either the host or the provider for this instances,
4103 provider.widgets.remove(widget);
4118 return widget.host.getUserId() == userId && (widget.provider == null
4119 || widget.provider.getUserId() == userId);
4164 // Accumulate a list of updates that affect the given provider for a final