diff options
Diffstat (limited to 'PermissionController/src/com/android/permissioncontroller/permission/data/LightAppPermGroupLiveData.kt')
-rw-r--r-- | PermissionController/src/com/android/permissioncontroller/permission/data/LightAppPermGroupLiveData.kt | 77 |
1 files changed, 47 insertions, 30 deletions
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/data/LightAppPermGroupLiveData.kt b/PermissionController/src/com/android/permissioncontroller/permission/data/LightAppPermGroupLiveData.kt index 3621319a6..db606f68d 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/data/LightAppPermGroupLiveData.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/data/LightAppPermGroupLiveData.kt @@ -39,7 +39,8 @@ import com.android.permissioncontroller.permission.utils.Utils.OS_PKG * @param permGroupName The name of the permission group * @param user The user of the package */ -class LightAppPermGroupLiveData private constructor( +class LightAppPermGroupLiveData +private constructor( private val app: Application, private val packageName: String, private val permGroupName: String, @@ -55,13 +56,15 @@ class LightAppPermGroupLiveData private constructor( private val fgPermNamesLiveData = ForegroundPermNamesLiveData init { - isSpecialLocation = LocationUtils.isLocationGroupAndProvider(app, - permGroupName, packageName) || - LocationUtils.isLocationGroupAndControllerExtraPackage(app, permGroupName, packageName) + isSpecialLocation = + LocationUtils.isLocationGroupAndProvider(app, permGroupName, packageName) || + LocationUtils.isLocationGroupAndControllerExtraPackage( + app, + permGroupName, + packageName + ) - addSource(fgPermNamesLiveData) { - update() - } + addSource(fgPermNamesLiveData) { update() } val key = Triple(packageName, permGroupName, user) @@ -100,8 +103,10 @@ class LightAppPermGroupLiveData private constructor( val allForegroundPerms = fgPermNamesLiveData.value ?: return // Do not allow toggling pre-M custom perm groups - if (packageInfo.targetSdkVersion < Build.VERSION_CODES.M && - permGroup.groupInfo.packageName != OS_PKG) { + if ( + packageInfo.targetSdkVersion < Build.VERSION_CODES.M && + permGroup.groupInfo.packageName != OS_PKG + ) { value = LightAppPermGroup(packageInfo, permGroup.groupInfo, emptyMap()) return } @@ -110,8 +115,8 @@ class LightAppPermGroupLiveData private constructor( for ((permName, permState) in permStates) { val permInfo = permGroup.permissionInfos[permName] ?: continue val foregroundPerms = allForegroundPerms[permName] - permissionMap[permName] = LightPermission(packageInfo, permInfo, permState, - foregroundPerms) + permissionMap[permName] = + LightPermission(packageInfo, permInfo, permState, foregroundPerms) } // Determine if this app permission group is a special location package or provider @@ -119,17 +124,24 @@ class LightAppPermGroupLiveData private constructor( val userContext = Utils.getUserContext(app, user) if (LocationUtils.isLocationGroupAndProvider(userContext, permGroupName, packageName)) { specialLocationGrant = LocationUtils.isLocationEnabled(userContext) - } else if (LocationUtils.isLocationGroupAndControllerExtraPackage(app, permGroupName, - packageName)) { + } else if ( + LocationUtils.isLocationGroupAndControllerExtraPackage(app, permGroupName, packageName) + ) { // The permission of the extra location controller package is determined by the status // of the controller package itself. - specialLocationGrant = LocationUtils.isExtraLocationControllerPackageEnabled( - userContext) + specialLocationGrant = + LocationUtils.isExtraLocationControllerPackageEnabled(userContext) } val hasInstallToRuntimeSplit = hasInstallToRuntimeSplit(packageInfo, permissionMap) - value = LightAppPermGroup(packageInfo, permGroup.groupInfo, permissionMap, - hasInstallToRuntimeSplit, specialLocationGrant) + value = + LightAppPermGroup( + packageInfo, + permGroup.groupInfo, + permissionMap, + hasInstallToRuntimeSplit, + specialLocationGrant + ) } /** @@ -147,12 +159,13 @@ class LightAppPermGroupLiveData private constructor( for (spi in permissionManager.splitPermissions) { val splitPerm = spi.splitPermission - val pi = try { - app.packageManager.getPermissionInfo(splitPerm, 0) - } catch (e: PackageManager.NameNotFoundException) { - Log.w(LOG_TAG, "No such permission: $splitPerm", e) - continue - } + val pi = + try { + app.packageManager.getPermissionInfo(splitPerm, 0) + } catch (e: PackageManager.NameNotFoundException) { + Log.w(LOG_TAG, "No such permission: $splitPerm", e) + continue + } // Skip if split permission is not "install" permission. if (pi.protection != PermissionInfo.PROTECTION_NORMAL) { @@ -199,15 +212,19 @@ class LightAppPermGroupLiveData private constructor( /** * Repository for AppPermGroupLiveDatas. + * * <p> Key value is a triple of string package name, string permission group name, and * UserHandle, value is its corresponding LiveData. */ - companion object : DataRepositoryForPackage<Triple<String, String, UserHandle>, - LightAppPermGroupLiveData>() { - override fun newValue(key: Triple<String, String, UserHandle>): - LightAppPermGroupLiveData { - return LightAppPermGroupLiveData(PermissionControllerApplication.get(), - key.first, key.second, key.third) + companion object : + DataRepositoryForPackage<Triple<String, String, UserHandle>, LightAppPermGroupLiveData>() { + override fun newValue(key: Triple<String, String, UserHandle>): LightAppPermGroupLiveData { + return LightAppPermGroupLiveData( + PermissionControllerApplication.get(), + key.first, + key.second, + key.third + ) } } -}
\ No newline at end of file +} |