package com.base.datarecovery.view

import android.content.Context
import android.view.LayoutInflater
import android.view.View
import com.base.datarecovery.databinding.DialogPermissionBottomsheetBinding
import com.base.datarecovery.help.ActivityLauncher
import com.base.datarecovery.help.PermissionHelp.requestStorePermission
import com.google.android.material.bottomsheet.BottomSheetBehavior
import com.google.android.material.bottomsheet.BottomSheetDialog

object PermissionDialog {

    fun Context.showPermissionBottomSheet(launcher: ActivityLauncher): BottomSheetDialog {
        val dialog = BottomSheetDialog(this)
        val binding = DialogPermissionBottomsheetBinding.inflate(LayoutInflater.from(this))
        dialog.setContentView(binding.root)
        dialog.setCanceledOnTouchOutside(false)
        dialog.setCancelable(false)
        dialog.show()

        val parentView = binding.root.parent as View
        BottomSheetBehavior.from(parentView).state = BottomSheetBehavior.STATE_EXPANDED

        binding.tvOpen.setOnClickListener {
            requestStorePermission(launcher, result = {
                if (it) {
                    dialog.dismiss()
                }
            })
        }
        return dialog

    }

}