public boolean isLaunched(int userId) { return readUserState(userId).launched; }
public boolean isHidden(int userId) { return readUserState(userId).hidden; }
public boolean isInstalled(int userId) { return readUserState(userId).installed; }
private PackageInfo generatePackageInfo(VPackage p, PackageSetting ps, int flags, int userId) { flags = updateFlagsNought(flags); PackageInfo packageInfo = PackageParserEx.generatePackageInfo(p, flags, ps.firstInstallTime, ps.lastUpdateTime, ps.readUserState(userId), userId); if (packageInfo != null) { return packageInfo; } return null; }
@Override public VParceledListSlice<ApplicationInfo> getInstalledApplications(int flags, int userId) { checkUserId(userId); flags = updateFlagsNought(flags); ArrayList<ApplicationInfo> list = new ArrayList<>(mPackages.size()); synchronized (mPackages) { for (VPackage p : mPackages.values()) { PackageSetting ps = (PackageSetting) p.mExtras; ApplicationInfo info = PackageParserEx.generateApplicationInfo(p, flags, ps.readUserState(userId), userId); list.add(info); } } return new VParceledListSlice<>(list); }
@Override public ApplicationInfo getApplicationInfo(String packageName, int flags, int userId) { checkUserId(userId); flags = updateFlagsNought(flags); synchronized (mPackages) { VPackage p = mPackages.get(packageName); if (p != null) { PackageSetting ps = (PackageSetting) p.mExtras; return PackageParserEx.generateApplicationInfo(p, flags, ps.readUserState(userId), userId); } } 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 ActivityInfo getReceiverInfo(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.ActivityComponent a = mReceivers.mActivities.get(component); if (a != null) { ActivityInfo receiverInfo = PackageParserEx.generateActivityInfo(a, flags, ps.readUserState(userId), userId); ComponentFixer.fixComponentInfo(ps, receiverInfo, userId); return receiverInfo; } } } 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; }
@Override public ActivityInfo getActivityInfo(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.ActivityComponent a = mActivities.mActivities.get(component); if (a != null) { ActivityInfo activityInfo = PackageParserEx.generateActivityInfo(a, flags, ps.readUserState(userId), userId); ComponentFixer.fixComponentInfo(ps, activityInfo, userId); return activityInfo; } } } return null; }
@Override public ServiceInfo getServiceInfo(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.ServiceComponent s = mServices.mServices.get(component); if (s != null) { ServiceInfo serviceInfo = PackageParserEx.generateServiceInfo(s, flags, ps.readUserState(userId), userId); ComponentFixer.fixComponentInfo(ps, serviceInfo, userId); return serviceInfo; } } } return null; }
@Override protected ResolveInfo newResult(VPackage.ActivityIntentInfo info, int match, int userId) { final VPackage.ActivityComponent activity = info.activity; PackageSetting ps = (PackageSetting) activity.owner.mExtras; ActivityInfo ai = PackageParserEx.generateActivityInfo(activity, mFlags, ps.readUserState(userId), userId); if (ai == null) { return null; } final ResolveInfo res = new ResolveInfo(); res.activityInfo = ai; if ((mFlags & PackageManager.GET_RESOLVED_FILTER) != 0) { res.filter = info.filter; } res.priority = info.filter.getPriority(); res.preferredOrder = activity.owner.mPreferredOrder; res.match = match; res.isDefault = info.hasDefault; res.labelRes = info.labelRes; res.nonLocalizedLabel = info.nonLocalizedLabel; res.icon = info.icon; return res; }
@Override protected ResolveInfo newResult(VPackage.ServiceIntentInfo filter, int match, int userId) { final VPackage.ServiceComponent service = filter.service; PackageSetting ps = (PackageSetting) service.owner.mExtras; ServiceInfo si = PackageParserEx.generateServiceInfo(service, mFlags, ps.readUserState(userId), userId); if (si == null) { return null; } final ResolveInfo res = new ResolveInfo(); res.serviceInfo = si; if ((mFlags & PackageManager.GET_RESOLVED_FILTER) != 0) { res.filter = filter.filter; } res.priority = filter.filter.getPriority(); res.preferredOrder = service.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 int[] getPackageInstalledUsers(String packageName) { PackageSetting ps = PackageCacheManager.getSetting(packageName); if (ps != null) { IntArray installedUsers = new IntArray(5); int[] userIds = VUserManagerService.get().getUserIds(); for (int userId : userIds) { if (ps.readUserState(userId).installed) { installedUsers.add(userId); } } return installedUsers.getAll(); } return new int[0]; }
private PackageInfo generatePackageInfo(VPackage p, PackageSetting ps, int flags, int userId) { flags = updateFlagsNought(flags); PackageInfo packageInfo = PackageParserEx.generatePackageInfo(p, flags, ps.firstInstallTime, ps.lastUpdateTime, ps.readUserState(userId), userId); if (packageInfo != null) { return packageInfo; } return null; }
private PackageInfo generatePackageInfo(VPackage p, PackageSetting ps, int flags, int userId) { flags = updateFlagsNought(flags); PackageInfo packageInfo = PackageParserEx.generatePackageInfo(p, flags, ps.firstInstallTime, ps.lastUpdateTime, ps.readUserState(userId), userId); if (packageInfo != null) { return packageInfo; } return null; }
@Override public ApplicationInfo getApplicationInfo(String packageName, int flags, int userId) { checkUserId(userId); flags = updateFlagsNought(flags); synchronized (mPackages) { VPackage p = mPackages.get(packageName); if (p != null) { PackageSetting ps = (PackageSetting) p.mExtras; return PackageParserEx.generateApplicationInfo(p, flags, ps.readUserState(userId), userId); } } return null; }
@Override public ApplicationInfo getApplicationInfo(String packageName, int flags, int userId) { checkUserId(userId); flags = updateFlagsNought(flags); synchronized (mPackages) { VPackage p = mPackages.get(packageName); if (p != null) { PackageSetting ps = (PackageSetting) p.mExtras; return PackageParserEx.generateApplicationInfo(p, flags, ps.readUserState(userId), userId); } } return null; }