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