diff --git a/vector/src/main/java/im/vector/app/features/widgets/webview/WebviewPermissionUtils.kt b/vector/src/main/java/im/vector/app/features/widgets/webview/WebviewPermissionUtils.kt index 1be2b0896a..3bcd2b67bd 100644 --- a/vector/src/main/java/im/vector/app/features/widgets/webview/WebviewPermissionUtils.kt +++ b/vector/src/main/java/im/vector/app/features/widgets/webview/WebviewPermissionUtils.kt @@ -24,11 +24,14 @@ import androidx.annotation.VisibleForTesting import androidx.fragment.app.FragmentActivity import com.google.android.material.dialog.MaterialAlertDialogBuilder import im.vector.app.R +import im.vector.app.core.error.fatalError import im.vector.app.core.utils.checkPermissions -import java.lang.NullPointerException +import im.vector.app.features.settings.VectorPreferences import javax.inject.Inject -class WebviewPermissionUtils @Inject constructor() { +class WebviewPermissionUtils @Inject constructor( + private val vectorPreferences: VectorPreferences, +) { private var permissionRequest: PermissionRequest? = null private var selectedPermissions = listOf() @@ -75,7 +78,11 @@ class WebviewPermissionUtils @Inject constructor() { fun onPermissionResult(result: Map) { if (permissionRequest == null) { - throw NullPointerException("permissionRequest was null! Make sure to call promptForPermissions first.") + fatalError( + message = "permissionRequest was null! Make sure to call promptForPermissions first.", + failFast = vectorPreferences.failFast() + ) + return } val grantedPermissions = filterPermissionsToBeGranted(selectedPermissions, result) if (grantedPermissions.isNotEmpty()) { diff --git a/vector/src/test/java/im/vector/app/features/widgets/WebviewPermissionUtilsTest.kt b/vector/src/test/java/im/vector/app/features/widgets/WebviewPermissionUtilsTest.kt index 359f52fc85..927a26b453 100644 --- a/vector/src/test/java/im/vector/app/features/widgets/WebviewPermissionUtilsTest.kt +++ b/vector/src/test/java/im/vector/app/features/widgets/WebviewPermissionUtilsTest.kt @@ -19,6 +19,7 @@ package im.vector.app.features.widgets import android.Manifest import android.webkit.PermissionRequest import im.vector.app.features.widgets.webview.WebviewPermissionUtils +import im.vector.app.test.fakes.FakeVectorPreferences import org.amshove.kluent.shouldBeEqualTo import org.junit.FixMethodOrder import org.junit.Test @@ -30,7 +31,8 @@ import org.junit.runners.MethodSorters @FixMethodOrder(MethodSorters.JVM) class WebviewPermissionUtilsTest { - private val utils = WebviewPermissionUtils() + private val prefs = FakeVectorPreferences() + private val utils = WebviewPermissionUtils(prefs.instance) @Test fun filterPermissionsToBeGranted_selectedAndGrantedNothing() {