PermissionBottomSheet: Highlight new permissions using accent color
Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
@@ -27,6 +27,7 @@ import android.widget.ImageView
|
|||||||
import android.widget.LinearLayout
|
import android.widget.LinearLayout
|
||||||
import android.widget.TextView
|
import android.widget.TextView
|
||||||
import androidx.core.content.ContextCompat
|
import androidx.core.content.ContextCompat
|
||||||
|
import com.aurora.extensions.accentColor
|
||||||
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 com.aurora.store.data.model.PermissionGroupInfo
|
||||||
@@ -76,7 +77,7 @@ class PermissionGroup : LinearLayout {
|
|||||||
//imageView.setColorFilter(getContext().getStyledAttributeColor(imageView.getContext(), android.R.attr.colorAccent));
|
//imageView.setColorFilter(getContext().getStyledAttributeColor(imageView.getContext(), android.R.attr.colorAccent));
|
||||||
}
|
}
|
||||||
|
|
||||||
fun addPermission(permissionInfo: PermissionInfo) {
|
fun addPermission(permissionInfo: PermissionInfo, currentPerms: List<String> = emptyList()) {
|
||||||
val title = permissionInfo.loadLabel(packageManager)
|
val title = permissionInfo.loadLabel(packageManager)
|
||||||
val description = permissionInfo.loadDescription(packageManager)
|
val description = permissionInfo.loadDescription(packageManager)
|
||||||
|
|
||||||
@@ -97,7 +98,8 @@ class PermissionGroup : LinearLayout {
|
|||||||
addPermissionLabel(
|
addPermissionLabel(
|
||||||
permissionLabelsView,
|
permissionLabelsView,
|
||||||
it,
|
it,
|
||||||
permissionMap[it]
|
permissionMap[it],
|
||||||
|
if (currentPerms.isNotEmpty()) permissionInfo.name !in currentPerms else false
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -105,10 +107,12 @@ class PermissionGroup : LinearLayout {
|
|||||||
private fun addPermissionLabel(
|
private fun addPermissionLabel(
|
||||||
permissionLabelsView: LinearLayout,
|
permissionLabelsView: LinearLayout,
|
||||||
label: String,
|
label: String,
|
||||||
description: String?
|
description: String?,
|
||||||
|
isNewPerm: Boolean = false
|
||||||
) {
|
) {
|
||||||
val textView = TextView(context)
|
val textView = TextView(context)
|
||||||
textView.text = label
|
textView.text = label
|
||||||
|
if (isNewPerm) textView.setTextColor(context.accentColor())
|
||||||
textView.setOnClickListener {
|
textView.setOnClickListener {
|
||||||
var title: String = permissionGroupInfo.label
|
var title: String = permissionGroupInfo.label
|
||||||
|
|
||||||
|
|||||||
@@ -42,13 +42,22 @@ class PermissionBottomSheet : BottomSheetDialogFragment(R.layout.sheet_permissio
|
|||||||
private val binding get() = _binding!!
|
private val binding get() = _binding!!
|
||||||
|
|
||||||
private lateinit var packageManager: PackageManager
|
private lateinit var packageManager: PackageManager
|
||||||
|
private lateinit var currentPerms: List<String>
|
||||||
|
|
||||||
private val args: PermissionBottomSheetArgs by navArgs()
|
private val args: PermissionBottomSheetArgs by navArgs()
|
||||||
|
|
||||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
super.onViewCreated(view, savedInstanceState)
|
super.onViewCreated(view, savedInstanceState)
|
||||||
_binding = SheetPermissionsBinding.bind(view)
|
_binding = SheetPermissionsBinding.bind(view)
|
||||||
|
|
||||||
packageManager = requireContext().packageManager
|
packageManager = requireContext().packageManager
|
||||||
|
currentPerms = try {
|
||||||
|
packageManager.getPackageInfo(
|
||||||
|
args.app.packageName, PackageManager.GET_PERMISSIONS
|
||||||
|
).requestedPermissions.toList()
|
||||||
|
} catch (_: Exception) {
|
||||||
|
emptyList()
|
||||||
|
}
|
||||||
|
|
||||||
val permissionGroupWidgets: MutableMap<String, PermissionGroup?> =
|
val permissionGroupWidgets: MutableMap<String, PermissionGroup?> =
|
||||||
HashMap<String, PermissionGroup?>()
|
HashMap<String, PermissionGroup?>()
|
||||||
@@ -70,7 +79,7 @@ class PermissionBottomSheet : BottomSheetDialogFragment(R.layout.sheet_permissio
|
|||||||
permissionGroupWidgets[permissionGroupInfo.name] = permissionGroup
|
permissionGroupWidgets[permissionGroupInfo.name] = permissionGroup
|
||||||
}
|
}
|
||||||
|
|
||||||
permissionGroup?.addPermission(permissionInfo)
|
permissionGroup?.addPermission(permissionInfo, currentPerms)
|
||||||
}
|
}
|
||||||
|
|
||||||
binding.permissionsContainer.removeAllViews()
|
binding.permissionsContainer.removeAllViews()
|
||||||
|
|||||||
Reference in New Issue
Block a user