@@ -389,26 +389,25 @@ class ChatActivity : AppCompatActivity(), IChatView {
389389 ActivityCompat .requestPermissions(this , permissions, PERM_REQ_CODE )
390390 }
391391
392- override fun onRequestPermissionsResult (requestCode : Int , permissions : Array <String >, grantResults : IntArray ) {
392+ override fun onRequestPermissionsResult (requestCode : Int , permissions : Array <String ? >, grantResults : IntArray ) {
393393 when (requestCode) {
394394 PERM_REQ_CODE -> run {
395395 var audioPermissionGiven = false
396- for (i in permissions.indices) {
397- when (permissions[i]) {
398- Manifest .permission.ACCESS_FINE_LOCATION -> if (grantResults.isNotEmpty() && grantResults[i] == PackageManager .PERMISSION_GRANTED ) {
396+ for ((index, permission) in permissions.withIndex()) {
397+ if (permission == null )
398+ continue
399+ val granted = grantResults.isNotEmpty() && grantResults[index] == PackageManager .PERMISSION_GRANTED
400+ when (permission) {
401+ Manifest .permission.ACCESS_FINE_LOCATION -> if (granted) {
399402 chatPresenter.getLocationFromLocationService()
400403 }
401404
402405 Manifest .permission.RECORD_AUDIO -> {
403- if (grantResults.isNotEmpty() && grantResults[i] == PackageManager .PERMISSION_GRANTED ) {
404- chatPresenter.disableMicInput(false )
405- } else {
406- chatPresenter.disableMicInput(true )
407- }
408- audioPermissionGiven = true
406+ chatPresenter.disableMicInput(! granted)
407+ audioPermissionGiven = granted
409408 }
410409
411- Manifest .permission.WRITE_EXTERNAL_STORAGE -> if (grantResults.size >= 0 && grantResults[i] == PackageManager . PERMISSION_GRANTED && audioPermissionGiven) {
410+ Manifest .permission.WRITE_EXTERNAL_STORAGE -> if (granted && audioPermissionGiven) {
412411 chatPresenter.initiateHotwordDetection()
413412 }
414413 }
0 commit comments