diff --git a/app/src/main/java/com/aurora/store/data/model/PermissionGroupInfo.kt b/app/src/main/java/com/aurora/store/data/model/PermissionGroupInfo.kt new file mode 100644 index 000000000..cee70d50a --- /dev/null +++ b/app/src/main/java/com/aurora/store/data/model/PermissionGroupInfo.kt @@ -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" +) diff --git a/app/src/main/java/com/aurora/store/view/custom/layouts/PermissionGroup.kt b/app/src/main/java/com/aurora/store/view/custom/layouts/PermissionGroup.kt index 98b3f000e..349cd76ac 100644 --- a/app/src/main/java/com/aurora/store/view/custom/layouts/PermissionGroup.kt +++ b/app/src/main/java/com/aurora/store/view/custom/layouts/PermissionGroup.kt @@ -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 { diff --git a/app/src/main/java/com/aurora/store/view/ui/sheets/PermissionBottomSheet.kt b/app/src/main/java/com/aurora/store/view/ui/sheets/PermissionBottomSheet.kt index b8ae18746..6faab1e25 100644 --- a/app/src/main/java/com/aurora/store/view/ui/sheets/PermissionBottomSheet.kt +++ b/app/src/main/java/com/aurora/store/view/ui/sheets/PermissionBottomSheet.kt @@ -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 } }