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

View File

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