PermissionGroupInfo: Switch to local PermissionGroupInfo class

* Constructor has been limited to system only

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
Aayush Gupta
2023-10-30 19:57:25 +05:30
parent f4654437a7
commit 23310d9818
3 changed files with 27 additions and 30 deletions

View File

@@ -0,0 +1,10 @@
package com.aurora.store.data.model
import androidx.annotation.DrawableRes
import com.aurora.store.R
data class PermissionGroupInfo(
val name: String = "unknown",
@DrawableRes var icon: Int = R.drawable.ic_permission_unknown,
val label: String = "UNDEFINED"
)

View File

@@ -20,11 +20,8 @@ package com.aurora.store.view.custom.layouts
import android.content.Context
import android.content.pm.PackageManager
import android.content.pm.PermissionGroupInfo
import android.content.pm.PermissionInfo
import android.content.res.Resources.NotFoundException
import android.graphics.drawable.Drawable
import android.os.Build
import android.util.AttributeSet
import android.widget.ImageView
import android.widget.LinearLayout
@@ -32,6 +29,7 @@ import android.widget.TextView
import androidx.core.content.ContextCompat
import com.aurora.extensions.showDialog
import com.aurora.store.R
import com.aurora.store.data.model.PermissionGroupInfo
import java.util.Locale
class PermissionGroup : LinearLayout {
@@ -112,7 +110,7 @@ class PermissionGroup : LinearLayout {
val textView = TextView(context)
textView.text = label
textView.setOnClickListener {
var title: String = permissionGroupInfo.loadLabel(packageManager).toString()
var title: String = permissionGroupInfo.label
if (title.contains("UNDEFINED")) {
title = "Android"
@@ -132,15 +130,8 @@ class PermissionGroup : LinearLayout {
permissionLabelsView.addView(textView)
}
private fun getPermissionGroupIcon(permissionGroupInfo: PermissionGroupInfo?): Drawable? {
return try {
ContextCompat.getDrawable(context, permissionGroupInfo!!.icon)
} catch (e: NotFoundException) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1)
permissionGroupInfo!!.loadUnbadgedIcon(packageManager)
else
permissionGroupInfo!!.loadIcon(packageManager)
}
private fun getPermissionGroupIcon(permissionGroupInfo: PermissionGroupInfo): Drawable? {
return ContextCompat.getDrawable(context, permissionGroupInfo.icon)
}
private fun getReadableLabel(label: String, packageName: String): String {

View File

@@ -20,7 +20,6 @@
package com.aurora.store.view.ui.sheets
import android.content.pm.PackageManager
import android.content.pm.PermissionGroupInfo
import android.content.pm.PermissionInfo
import android.os.Bundle
import android.view.LayoutInflater
@@ -31,6 +30,7 @@ import androidx.navigation.fragment.navArgs
import com.aurora.extensions.hide
import com.aurora.extensions.show
import com.aurora.store.R
import com.aurora.store.data.model.PermissionGroupInfo
import com.aurora.store.databinding.SheetPermissionsBinding
import com.aurora.store.view.custom.layouts.PermissionGroup
import java.util.*
@@ -108,7 +108,12 @@ class PermissionBottomSheet : BaseBottomSheet() {
getFakePermissionGroupInfo(permissionInfo.packageName)
} else {
try {
packageManager.getPermissionGroupInfo(permissionInfo.group!!, 0)
val platformGroup = packageManager.getPermissionGroupInfo(permissionInfo.group!!, 0)
PermissionGroupInfo(
platformGroup.name,
platformGroup.icon,
platformGroup.loadLabel(packageManager).toString()
)
} catch (e: PackageManager.NameNotFoundException) {
getFakePermissionGroupInfo(permissionInfo.packageName)
}
@@ -120,21 +125,12 @@ class PermissionBottomSheet : BaseBottomSheet() {
}
private fun getFakePermissionGroupInfo(packageName: String): PermissionGroupInfo {
val permissionGroupInfo = PermissionGroupInfo()
when (packageName) {
"android" -> {
permissionGroupInfo.icon = R.drawable.ic_permission_android
permissionGroupInfo.name = "android"
}
"com.google.android.gsf", "com.android.vending" -> {
permissionGroupInfo.icon = R.drawable.ic_permission_google
permissionGroupInfo.name = "google"
}
else -> {
permissionGroupInfo.icon = R.drawable.ic_permission_unknown
permissionGroupInfo.name = "unknown"
}
return when (packageName) {
"android" -> PermissionGroupInfo("android", R.drawable.ic_permission_android)
"com.google.android.gsf",
"com.android.vending" -> PermissionGroupInfo("google", R.drawable.ic_permission_google)
else -> PermissionGroupInfo()
}
return permissionGroupInfo
}
}