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:
@@ -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"
|
||||
)
|
||||
@@ -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 {
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user