Untitled

 avatar
unknown
java
5 months ago
1.3 kB
3
Indexable

abstract class BasePermissionRecordFragment : Fragment() {
    protected abstract fun startRecording()
    protected fun requestPermission() {
        if (PermissionHelper.checkPermissionRecord(requireContext())){
            startRecording()
        }else{
            requestPermission.launch(PermissionHelper.getPermissionRecord())
        }
    }

    private fun showDialogRecordPermission() {
        RecordPermissionDialog(requireContext()).setListener(object : RecordPermissionDialog.OnDialogRecordPermissionListener{
            override fun onGotoSetting() {
                settingForResult.launch(PermissionHelper.getIntentSettingDetails(requireContext()))
            }
        }).show()
    }

    private val requestPermission: ActivityResultLauncher<String> = registerForActivityResult(
        ActivityResultContracts.RequestPermission()
    ) { _ ->
        if (PermissionHelper.checkPermissionRecord(requireContext())) {
            startRecording()
        }else{
            showDialogRecordPermission()
        }
    }

    private val settingForResult: ActivityResultLauncher<Intent> = registerForActivityResult(
        ActivityResultContracts.StartActivityForResult()
    ) { _ ->
        if (PermissionHelper.checkPermissionRecord(requireContext())) {
            startRecording()
        }
    }
}
Editor is loading...
Leave a Comment