public static PermissionGroupInfo generatePermissionGroupInfo( VPackage.PermissionGroupComponent pg, int flags) { if (pg == null) return null; if ((flags & PackageManager.GET_META_DATA) == 0) { return pg.info; } PermissionGroupInfo pgi = new PermissionGroupInfo(pg.info); pgi.metaData = pg.metaData; return pgi; }
@Override public PermissionGroupInfo getPermissionGroupInfo(String name, int flags) { synchronized (mPackages) { VPackage.PermissionGroupComponent p = mPermissionGroups.get(name); if (p != null) { return new PermissionGroupInfo(p.info); } } return null; }
@Override public List<PermissionGroupInfo> getAllPermissionGroups(int flags) { synchronized (mPackages) { final int N = mPermissionGroups.size(); ArrayList<PermissionGroupInfo> out = new ArrayList<>(N); for (VPackage.PermissionGroupComponent pg : mPermissionGroups.values()) { out.add(new PermissionGroupInfo(pg.info)); } return out; } }
/** @see ShadowPackageManager#addPermissionGroupInfo(android.content.pm.PermissionGroupInfo) */ @Implementation protected List<PermissionGroupInfo> getAllPermissionGroups(int flags) { ArrayList<PermissionGroupInfo> allPermissionGroups = new ArrayList<PermissionGroupInfo>(); for (PermissionGroupInfo permissionGroupInfo : permissionGroups.values()) { allPermissionGroups.add(new PermissionGroupInfo(permissionGroupInfo)); } return allPermissionGroups; }
/** @see ShadowPackageManager#addPermissionGroupInfo(android.content.pm.PermissionGroupInfo) */ @Implementation protected PermissionGroupInfo getPermissionGroupInfo(String name, int flags) throws NameNotFoundException { if (permissionGroups.containsKey(name)) { return new PermissionGroupInfo(permissionGroups.get(name)); } throw new NameNotFoundException(name); }
@Test public void getAllPermissionGroups_duplicateInExtraPermissions() throws Exception { assertThat(packageManager.getAllPermissionGroups(0)).hasSize(1); PermissionGroupInfo overriddenPermission = new PermissionGroupInfo(); overriddenPermission.name = "org.robolectric.package_permission_group"; shadowPackageManager.addPermissionGroupInfo(overriddenPermission); PermissionGroupInfo newCameraPermission = new PermissionGroupInfo(); newCameraPermission.name = permission_group.CAMERA; shadowPackageManager.addPermissionGroupInfo(newCameraPermission); List<PermissionGroupInfo> allPermissionGroups = packageManager.getAllPermissionGroups(0); assertThat(allPermissionGroups).hasSize(2); }
@Test public void getPermissionGroupInfo_extraPermissionGroup() throws Exception { PermissionGroupInfo newCameraPermission = new PermissionGroupInfo(); newCameraPermission.name = permission_group.CAMERA; shadowPackageManager.addPermissionGroupInfo(newCameraPermission); assertThat(packageManager.getPermissionGroupInfo(permission_group.CAMERA, 0).name) .isEqualTo(newCameraPermission.name); }
appInfo.sourceDir = TEST_APP_PATH; appInfo.name = TEST_PACKAGE_LABEL; PermissionGroupInfo contactsPermissionGroupInfoApp1 = new PermissionGroupInfo(); contactsPermissionGroupInfoApp1.name = Manifest.permission_group.CONTACTS; PermissionGroup contactsPermissionGroupApp1 = new PermissionGroup(pkg, contactsPermissionGroupInfoApp1); pkg.permissionGroups.add(contactsPermissionGroupApp1); PermissionGroupInfo storagePermissionGroupInfoApp1 = new PermissionGroupInfo(); storagePermissionGroupInfoApp1.name = permission_group.STORAGE; PermissionGroup storagePermissionGroupApp1 = appInfo2.sourceDir = TEST_APP2_PATH; appInfo2.name = TEST_PACKAGE2_LABEL; PermissionGroupInfo contactsPermissionGroupInfoApp2 = new PermissionGroupInfo(); contactsPermissionGroupInfoApp2.name = Manifest.permission_group.CONTACTS; PermissionGroup contactsPermissionGroupApp2 = new PermissionGroup(pkg2, contactsPermissionGroupInfoApp2); pkg2.permissionGroups.add(contactsPermissionGroupApp2); PermissionGroupInfo calendarPermissionGroupInfoApp2 = new PermissionGroupInfo(); calendarPermissionGroupInfoApp2.name = permission_group.CALENDAR; PermissionGroup calendarPermissionGroupApp2 =
private static PermissionGroupInfo createPermissionGroupInfo(Package owner, PermissionGroupItemData itemData) { PermissionGroupInfo permissionGroupInfo = new PermissionGroupInfo(); populatePackageItemInfo(permissionGroupInfo, owner, itemData); permissionGroupInfo.metaData = metaDataToBundle(itemData.getMetaData().getValueMap()); String descriptionRef = itemData.getDescription(); if (descriptionRef != null) { ResName descResName = AttributeResource.getResourceReference(descriptionRef, owner.packageName, "string"); permissionGroupInfo.descriptionRes = RuntimeEnvironment.getAppResourceTable().getResourceId(descResName); } String labelRefOrString = itemData.getLabel(); if (labelRefOrString != null) { if (AttributeResource.isResourceReference(labelRefOrString)) { ResName labelResName = AttributeResource.getResourceReference(labelRefOrString, owner.packageName, "string"); permissionGroupInfo.labelRes = RuntimeEnvironment.getAppResourceTable().getResourceId(labelResName); } else { permissionGroupInfo.nonLocalizedLabel = labelRefOrString; } } return permissionGroupInfo; }
public static PermissionGroupInfo generatePermissionGroupInfo( VPackage.PermissionGroupComponent pg, int flags) { if (pg == null) return null; if ((flags & PackageManager.GET_META_DATA) == 0) { return pg.info; } PermissionGroupInfo pgi = new PermissionGroupInfo(pg.info); pgi.metaData = pg.metaData; return pgi; }
public static PermissionGroupInfo generatePermissionGroupInfo( VPackage.PermissionGroupComponent pg, int flags) { if (pg == null) return null; if ((flags & PackageManager.GET_META_DATA) == 0) { return pg.info; } PermissionGroupInfo pgi = new PermissionGroupInfo(pg.info); pgi.metaData = pg.metaData; return pgi; }
public PermissionGroup(DynamicApkInfo _owner) { super(_owner); info = new PermissionGroupInfo(); }
@Override public PermissionGroupInfo getPermissionGroupInfo(String name, int flags) { synchronized (mPackages) { VPackage.PermissionGroupComponent p = mPermissionGroups.get(name); if (p != null) { return new PermissionGroupInfo(p.info); } } return null; }
@Override public PermissionGroupInfo getPermissionGroupInfo(String name, int flags) { synchronized (mPackages) { VPackage.PermissionGroupComponent p = mPermissionGroups.get(name); if (p != null) { return new PermissionGroupInfo(p.info); } } return null; }
@Override public List<PermissionGroupInfo> getAllPermissionGroups(int flags) { synchronized (mPackages) { final int N = mPermissionGroups.size(); ArrayList<PermissionGroupInfo> out = new ArrayList<>(N); for (VPackage.PermissionGroupComponent pg : mPermissionGroups.values()) { out.add(new PermissionGroupInfo(pg.info)); } return out; } }
@Override public List<PermissionGroupInfo> getAllPermissionGroups(int flags) { synchronized (mPackages) { final int N = mPermissionGroups.size(); ArrayList<PermissionGroupInfo> out = new ArrayList<>(N); for (VPackage.PermissionGroupComponent pg : mPermissionGroups.values()) { out.add(new PermissionGroupInfo(pg.info)); } return out; } }
/** @see ShadowPackageManager#addPermissionGroupInfo(android.content.pm.PermissionGroupInfo) */ @Implementation protected List<PermissionGroupInfo> getAllPermissionGroups(int flags) { ArrayList<PermissionGroupInfo> allPermissionGroups = new ArrayList<PermissionGroupInfo>(); // To be consistent with Android's implementation, return at most one PermissionGroupInfo object // per permission group string HashSet<String> handledPermissionGroups = new HashSet<>(); for (PermissionGroupInfo permissionGroupInfo : extraPermissionGroups.values()) { allPermissionGroups.add(new PermissionGroupInfo(permissionGroupInfo)); handledPermissionGroups.add(permissionGroupInfo.name); } for (Package pkg : packages.values()) { for (PermissionGroup permissionGroup : pkg.permissionGroups) { if (!handledPermissionGroups.contains(permissionGroup.info.name)) { PermissionGroupInfo permissionGroupInfo = PackageParser.generatePermissionGroupInfo(permissionGroup, flags); allPermissionGroups.add(new PermissionGroupInfo(permissionGroupInfo)); handledPermissionGroups.add(permissionGroup.info.name); } } } return allPermissionGroups; }
/** @see ShadowPackageManager#addPermissionGroupInfo(android.content.pm.PermissionGroupInfo) */ @Implementation protected PermissionGroupInfo getPermissionGroupInfo(String name, int flags) throws NameNotFoundException { if (extraPermissionGroups.containsKey(name)) { return new PermissionGroupInfo(extraPermissionGroups.get(name)); } for (Package pkg : packages.values()) { for (PermissionGroup permissionGroup : pkg.permissionGroups) { if (name.equals(permissionGroup.info.name)) { return PackageParser.generatePermissionGroupInfo(permissionGroup, flags); } } } throw new NameNotFoundException(name); }
private static PermissionGroupInfo createPermissionGroupInfo(Package owner, PermissionGroupItemData itemData) { PermissionGroupInfo permissionGroupInfo = new PermissionGroupInfo(); populatePackageItemInfo(permissionGroupInfo, owner, itemData); permissionGroupInfo.metaData = metaDataToBundle(itemData.getMetaData().getValueMap()); String descriptionRef = itemData.getDescription(); if (descriptionRef != null) { ResName descResName = AttributeResource.getResourceReference(descriptionRef, owner.packageName, "string"); permissionGroupInfo.descriptionRes = RuntimeEnvironment.getAppResourceTable().getResourceId(descResName); } String labelRefOrString = itemData.getLabel(); if (labelRefOrString != null) { if (AttributeResource.isResourceReference(labelRefOrString)) { ResName labelResName = AttributeResource.getResourceReference(labelRefOrString, owner.packageName, "string"); permissionGroupInfo.labelRes = RuntimeEnvironment.getAppResourceTable().getResourceId(labelResName); } else { permissionGroupInfo.nonLocalizedLabel = labelRefOrString; } } return permissionGroupInfo; }