Skip to content

Commit bba2301

Browse files
fix: Check for null permission in onPermissionsResult (#1978)
1 parent a0822e6 commit bba2301

File tree

1 file changed

+10
-11
lines changed

1 file changed

+10
-11
lines changed

app/src/main/java/org/fossasia/susi/ai/chat/ChatActivity.kt

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)