From 4790ae1d832ea25e86a799f6cfe67b6a506f4d9f Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Sat, 30 Mar 2024 13:29:59 +0530 Subject: [PATCH] PermissionBottomSheet: Highlight new permissions using accent color Signed-off-by: Aayush Gupta --- .../store/view/custom/layouts/PermissionGroup.kt | 10 +++++++--- .../store/view/ui/sheets/PermissionBottomSheet.kt | 11 ++++++++++- 2 files changed, 17 insertions(+), 4 deletions(-) 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 349cd76ac..dafec6527 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 @@ -27,6 +27,7 @@ import android.widget.ImageView import android.widget.LinearLayout import android.widget.TextView import androidx.core.content.ContextCompat +import com.aurora.extensions.accentColor import com.aurora.extensions.showDialog import com.aurora.store.R import com.aurora.store.data.model.PermissionGroupInfo @@ -76,7 +77,7 @@ class PermissionGroup : LinearLayout { //imageView.setColorFilter(getContext().getStyledAttributeColor(imageView.getContext(), android.R.attr.colorAccent)); } - fun addPermission(permissionInfo: PermissionInfo) { + fun addPermission(permissionInfo: PermissionInfo, currentPerms: List = emptyList()) { val title = permissionInfo.loadLabel(packageManager) val description = permissionInfo.loadDescription(packageManager) @@ -97,7 +98,8 @@ class PermissionGroup : LinearLayout { addPermissionLabel( permissionLabelsView, it, - permissionMap[it] + permissionMap[it], + if (currentPerms.isNotEmpty()) permissionInfo.name !in currentPerms else false ) } } @@ -105,10 +107,12 @@ class PermissionGroup : LinearLayout { private fun addPermissionLabel( permissionLabelsView: LinearLayout, label: String, - description: String? + description: String?, + isNewPerm: Boolean = false ) { val textView = TextView(context) textView.text = label + if (isNewPerm) textView.setTextColor(context.accentColor()) textView.setOnClickListener { var title: String = permissionGroupInfo.label 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 b7f3d8ea4..f2b2f0469 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 @@ -42,13 +42,22 @@ class PermissionBottomSheet : BottomSheetDialogFragment(R.layout.sheet_permissio private val binding get() = _binding!! private lateinit var packageManager: PackageManager + private lateinit var currentPerms: List private val args: PermissionBottomSheetArgs by navArgs() override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) _binding = SheetPermissionsBinding.bind(view) + packageManager = requireContext().packageManager + currentPerms = try { + packageManager.getPackageInfo( + args.app.packageName, PackageManager.GET_PERMISSIONS + ).requestedPermissions.toList() + } catch (_: Exception) { + emptyList() + } val permissionGroupWidgets: MutableMap = HashMap() @@ -70,7 +79,7 @@ class PermissionBottomSheet : BottomSheetDialogFragment(R.layout.sheet_permissio permissionGroupWidgets[permissionGroupInfo.name] = permissionGroup } - permissionGroup?.addPermission(permissionInfo) + permissionGroup?.addPermission(permissionInfo, currentPerms) } binding.permissionsContainer.removeAllViews()