Browse Source

Add a permission livedata to be observed outside of the permission dialog

merge-requests/2174/head
Nicolas Pomepuy 1 year ago
parent
commit
4ffe954895
  1. 13
      application/vlc-android/src/org/videolan/vlc/gui/dialogs/PermissionListDialog.kt

13
application/vlc-android/src/org/videolan/vlc/gui/dialogs/PermissionListDialog.kt

@ -35,6 +35,7 @@ import android.view.ViewGroup
import android.widget.RadioButton
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.lifecycleScope
import com.google.android.material.bottomsheet.BottomSheetBehavior.STATE_EXPANDED
import kotlinx.coroutines.launch
@ -69,6 +70,7 @@ class PermissionListDialog : VLCBottomSheetDialogFragment() {
}
companion object {
val hasAnyPermission = MutableLiveData<Boolean>().apply { value = false }
fun newInstance(): PermissionListDialog {
return PermissionListDialog()
@ -85,6 +87,15 @@ class PermissionListDialog : VLCBottomSheetDialogFragment() {
override fun initialFocusedView(): View = binding.permissionTitle
override fun onCreate(savedInstanceState: Bundle?) {
refreshPermissionLiveData()
super.onCreate(savedInstanceState)
}
private fun refreshPermissionLiveData() {
hasAnyPermission.postValue(Permissions.hasAllAccess(requireActivity()) || Permissions.hasAnyFileFineAccess(requireActivity()))
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
@ -105,6 +116,8 @@ class PermissionListDialog : VLCBottomSheetDialogFragment() {
private fun updateStorageState() {
refreshPermissionLiveData()
//Notification
binding.notificationPermissionCheck.setImageDrawable(ContextCompat.getDrawable(requireActivity(), if (Permissions.canSendNotifications(requireActivity())) R.drawable.ic_permission_check_checked else R.drawable.ic_permission_check_unchecked))

Loading…
Cancel
Save