@Override public VParceledListSlice<ProviderInfo> queryContentProviders(String processName, int vuid, int flags) { int userId = VUserHandle.getUserId(vuid); checkUserId(userId); flags = updateFlagsNought(flags); ArrayList<ProviderInfo> finalList = new ArrayList<>(3); // reader synchronized (mPackages) { for (VPackage.ProviderComponent p : mProvidersByComponent.values()) { PackageSetting ps = (PackageSetting) p.owner.mExtras; if (processName == null || ps.appId == VUserHandle.getAppId(vuid) && p.info.processName.equals(processName)) { ProviderInfo providerInfo = PackageParserEx.generateProviderInfo(p, flags, ps.readUserState(userId), userId); finalList.add(providerInfo); } } } if (!finalList.isEmpty()) { Collections.sort(finalList, sProviderInitOrderSorter); } return new VParceledListSlice<>(finalList); }
@Override public ProviderInfo resolveContentProvider(String name, int flags, int userId) { checkUserId(userId); flags = updateFlagsNought(flags); synchronized (mPackages) { final VPackage.ProviderComponent provider = mProvidersByAuthority.get(name); if (provider != null) { PackageSetting ps = (PackageSetting) provider.owner.mExtras; ProviderInfo providerInfo = PackageParserEx.generateProviderInfo(provider, flags, ps.readUserState(userId), userId); if (providerInfo != null) { VPackage p = mPackages.get(providerInfo.packageName); PackageSetting settings = (PackageSetting) p.mExtras; ComponentFixer.fixComponentInfo(settings, providerInfo, userId); return providerInfo; } } } return null; }
@TargetApi(Build.VERSION_CODES.KITKAT) @Override protected ResolveInfo newResult(VPackage.ProviderIntentInfo filter, int match, int userId) { final VPackage.ProviderComponent provider = filter.provider; PackageSetting ps = (PackageSetting) provider.owner.mExtras; ProviderInfo pi = PackageParserEx.generateProviderInfo(provider, mFlags, ps.readUserState(userId), userId); if (pi == null) { return null; } final ResolveInfo res = new ResolveInfo(); res.providerInfo = pi; if ((mFlags & PackageManager.GET_RESOLVED_FILTER) != 0) { res.filter = filter.filter; } res.priority = filter.filter.getPriority(); res.preferredOrder = provider.owner.mPreferredOrder; res.match = match; res.isDefault = filter.hasDefault; res.labelRes = filter.labelRes; res.nonLocalizedLabel = filter.nonLocalizedLabel; res.icon = filter.icon; return res; }
@Override public ProviderInfo getProviderInfo(ComponentName component, int flags, int userId) { checkUserId(userId); flags = updateFlagsNought(flags); synchronized (mPackages) { VPackage p = mPackages.get(component.getPackageName()); if (p != null) { PackageSetting ps = (PackageSetting) p.mExtras; VPackage.ProviderComponent provider = mProvidersByComponent.get(component); if (provider != null) { ProviderInfo providerInfo = PackageParserEx.generateProviderInfo(provider, flags, ps.readUserState(userId), userId); ComponentFixer.fixComponentInfo(ps, providerInfo, userId); return providerInfo; } } } return null; }
for (int i = 0; i < N; i++) { final VPackage.ProviderComponent pr = p.providers.get(i); res[num++] = generateProviderInfo(pr, flags, state, userId);
@Override public ProviderInfo resolveContentProvider(String name, int flags, int userId) { checkUserId(userId); flags = updateFlagsNought(flags); synchronized (mPackages) { final VPackage.ProviderComponent provider = mProvidersByAuthority.get(name); if (provider != null) { PackageSetting ps = (PackageSetting) provider.owner.mExtras; ProviderInfo providerInfo = PackageParserEx.generateProviderInfo(provider, flags, ps.readUserState(userId), userId); if (providerInfo != null) { VPackage p = mPackages.get(providerInfo.packageName); PackageSetting settings = (PackageSetting) p.mExtras; ComponentFixer.fixComponentInfo(settings, providerInfo, userId); return providerInfo; } } } return null; }
@Override public VParceledListSlice<ProviderInfo> queryContentProviders(String processName, int vuid, int flags) { int userId = VUserHandle.getUserId(vuid); checkUserId(userId); flags = updateFlagsNought(flags); ArrayList<ProviderInfo> finalList = new ArrayList<>(3); // reader synchronized (mPackages) { for (VPackage.ProviderComponent p : mProvidersByComponent.values()) { PackageSetting ps = (PackageSetting) p.owner.mExtras; if (processName == null || ps.appId == VUserHandle.getAppId(vuid) && p.info.processName.equals(processName)) { ProviderInfo providerInfo = PackageParserEx.generateProviderInfo(p, flags, ps.readUserState(userId), userId); finalList.add(providerInfo); } } } if (!finalList.isEmpty()) { Collections.sort(finalList, sProviderInitOrderSorter); } return new VParceledListSlice<>(finalList); }
@Override public ProviderInfo resolveContentProvider(String name, int flags, int userId) { checkUserId(userId); flags = updateFlagsNought(flags); synchronized (mPackages) { final VPackage.ProviderComponent provider = mProvidersByAuthority.get(name); if (provider != null) { PackageSetting ps = (PackageSetting) provider.owner.mExtras; ProviderInfo providerInfo = PackageParserEx.generateProviderInfo(provider, flags, ps.readUserState(userId), userId); if (providerInfo != null) { VPackage p = mPackages.get(providerInfo.packageName); PackageSetting settings = (PackageSetting) p.mExtras; ComponentFixer.fixComponentInfo(settings, providerInfo, userId); return providerInfo; } } } return null; }
@TargetApi(Build.VERSION_CODES.KITKAT) @Override protected ResolveInfo newResult(VPackage.ProviderIntentInfo filter, int match, int userId) { final VPackage.ProviderComponent provider = filter.provider; PackageSetting ps = (PackageSetting) provider.owner.mExtras; ProviderInfo pi = PackageParserEx.generateProviderInfo(provider, mFlags, ps.readUserState(userId), userId); if (pi == null) { return null; } final ResolveInfo res = new ResolveInfo(); res.providerInfo = pi; if ((mFlags & PackageManager.GET_RESOLVED_FILTER) != 0) { res.filter = filter.filter; } res.priority = filter.filter.getPriority(); res.preferredOrder = provider.owner.mPreferredOrder; res.match = match; res.isDefault = filter.hasDefault; res.labelRes = filter.labelRes; res.nonLocalizedLabel = filter.nonLocalizedLabel; res.icon = filter.icon; return res; }
@Override public VParceledListSlice<ProviderInfo> queryContentProviders(String processName, int vuid, int flags) { int userId = VUserHandle.getUserId(vuid); checkUserId(userId); flags = updateFlagsNought(flags); ArrayList<ProviderInfo> finalList = new ArrayList<>(3); // reader synchronized (mPackages) { for (VPackage.ProviderComponent p : mProvidersByComponent.values()) { PackageSetting ps = (PackageSetting) p.owner.mExtras; if (ps.appId == VUserHandle.getAppId(vuid) && getNameForUid(vuid).equals(p.owner.packageName)) { ProviderInfo providerInfo = PackageParserEx.generateProviderInfo(p, flags, ps.readUserState(userId), userId); finalList.add(providerInfo); } } } if (!finalList.isEmpty()) { Collections.sort(finalList, sProviderInitOrderSorter); } return new VParceledListSlice<>(finalList); }
@TargetApi(Build.VERSION_CODES.KITKAT) @Override protected ResolveInfo newResult(VPackage.ProviderIntentInfo filter, int match, int userId) { final VPackage.ProviderComponent provider = filter.provider; PackageSetting ps = (PackageSetting) provider.owner.mExtras; ProviderInfo pi = PackageParserEx.generateProviderInfo(provider, mFlags, ps.readUserState(userId), userId); if (pi == null) { return null; } final ResolveInfo res = new ResolveInfo(); res.providerInfo = pi; if ((mFlags & PackageManager.GET_RESOLVED_FILTER) != 0) { res.filter = filter.filter; } res.priority = filter.filter.getPriority(); res.preferredOrder = provider.owner.mPreferredOrder; res.match = match; res.isDefault = filter.hasDefault; res.labelRes = filter.labelRes; res.nonLocalizedLabel = filter.nonLocalizedLabel; res.icon = filter.icon; return res; }
@Override public ProviderInfo getProviderInfo(ComponentName component, int flags, int userId) { checkUserId(userId); flags = updateFlagsNought(flags); synchronized (mPackages) { VPackage p = mPackages.get(component.getPackageName()); if (p != null) { PackageSetting ps = (PackageSetting) p.mExtras; VPackage.ProviderComponent provider = mProvidersByComponent.get(component); if (provider != null) { ProviderInfo providerInfo = PackageParserEx.generateProviderInfo(provider, flags, ps.readUserState(userId), userId); ComponentFixer.fixComponentInfo(ps, providerInfo, userId); return providerInfo; } } } return null; }
@Override public ProviderInfo getProviderInfo(ComponentName component, int flags, int userId) { checkUserId(userId); flags = updateFlagsNought(flags); synchronized (mPackages) { VPackage p = mPackages.get(component.getPackageName()); if (p != null) { PackageSetting ps = (PackageSetting) p.mExtras; VPackage.ProviderComponent provider = mProvidersByComponent.get(component); if (provider != null) { ProviderInfo providerInfo = PackageParserEx.generateProviderInfo(provider, flags, ps.readUserState(userId), userId); ComponentFixer.fixComponentInfo(ps, providerInfo, userId); return providerInfo; } } } return null; }
for (int i = 0; i < N; i++) { final VPackage.ProviderComponent pr = p.providers.get(i); res[num++] = generateProviderInfo(pr, flags, state, userId);
for (int i = 0; i < N; i++) { final VPackage.ProviderComponent pr = p.providers.get(i); res[num++] = generateProviderInfo(pr, flags, state, userId);