I am trying to make a phone call from the dialog fragment which is inside another fragment. However, my onRequestPermissionsResult() is not being called, whenever I choose allow or deny, it doesn't react. Here is my code:
private val PHONE_REQUEST_CODE = 100;
private lateinit var phonePermission: Array<String>
     override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
            super.onViewCreated(view, savedInstanceState)
             btnOk.setOnClickListener(this)
             btnCancel.setOnClickListener(this)
             dialog?.window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
    phonePermission = arrayOf(android.Manifest.permission.CALL_PHONE)
}
    override fun onClick(v: View?) {
    when (v?.id) {
        R.id.btnOk -> {
            dismiss()
            makePhoneCall()
        }
        R.id.btnCancel -> {
            dismiss()
        }
    
    }
}
override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
    if (requestCode == PHONE_REQUEST_CODE) {
      
          if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
            val intent = Intent(Intent.ACTION_CALL, Uri.parse("tel:" + "111 111 111"))
            startActivity(intent)
        
        }
    }
}
private fun makePhoneCall(){
    if (ContextCompat.checkSelfPermission(
            requireContext(),
            android.Manifest.permission.CALL_PHONE
        ) != PackageManager.PERMISSION_GRANTED
    ) {
        requestPermissions(
            phonePermission,
            PHONE_REQUEST_CODE
        )
    } else {
        val intent = Intent(Intent.ACTION_CALL, Uri.parse("tel:" + "111 111 111"))
        startActivity(intent)
    }
}
}
I have tried several solutions offered in stackoverflow for similar problems, such as replacing ActivityCompat.requestPermissions() with just requestPermissions(). But still it didn't work. Thanks in advance
 
     
    