Merge pull request #6205 from vector-im/johannes/fatal

Use fatalError instead of NPE
This commit is contained in:
Benoit Marty 2022-05-31 16:37:49 +02:00 committed by GitHub
commit 8e5c96adf5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 4 deletions

View File

@ -24,11 +24,14 @@ import androidx.annotation.VisibleForTesting
import androidx.fragment.app.FragmentActivity import androidx.fragment.app.FragmentActivity
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
import im.vector.app.R import im.vector.app.R
import im.vector.app.core.error.fatalError
import im.vector.app.core.utils.checkPermissions import im.vector.app.core.utils.checkPermissions
import java.lang.NullPointerException import im.vector.app.features.settings.VectorPreferences
import javax.inject.Inject import javax.inject.Inject
class WebviewPermissionUtils @Inject constructor() { class WebviewPermissionUtils @Inject constructor(
private val vectorPreferences: VectorPreferences,
) {
private var permissionRequest: PermissionRequest? = null private var permissionRequest: PermissionRequest? = null
private var selectedPermissions = listOf<String>() private var selectedPermissions = listOf<String>()
@ -75,7 +78,11 @@ class WebviewPermissionUtils @Inject constructor() {
fun onPermissionResult(result: Map<String, Boolean>) { fun onPermissionResult(result: Map<String, Boolean>) {
if (permissionRequest == null) { 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) val grantedPermissions = filterPermissionsToBeGranted(selectedPermissions, result)
if (grantedPermissions.isNotEmpty()) { if (grantedPermissions.isNotEmpty()) {

View File

@ -19,6 +19,7 @@ package im.vector.app.features.widgets
import android.Manifest import android.Manifest
import android.webkit.PermissionRequest import android.webkit.PermissionRequest
import im.vector.app.features.widgets.webview.WebviewPermissionUtils import im.vector.app.features.widgets.webview.WebviewPermissionUtils
import im.vector.app.test.fakes.FakeVectorPreferences
import org.amshove.kluent.shouldBeEqualTo import org.amshove.kluent.shouldBeEqualTo
import org.junit.FixMethodOrder import org.junit.FixMethodOrder
import org.junit.Test import org.junit.Test
@ -30,7 +31,8 @@ import org.junit.runners.MethodSorters
@FixMethodOrder(MethodSorters.JVM) @FixMethodOrder(MethodSorters.JVM)
class WebviewPermissionUtilsTest { class WebviewPermissionUtilsTest {
private val utils = WebviewPermissionUtils() private val prefs = FakeVectorPreferences()
private val utils = WebviewPermissionUtils(prefs.instance)
@Test @Test
fun filterPermissionsToBeGranted_selectedAndGrantedNothing() { fun filterPermissionsToBeGranted_selectedAndGrantedNothing() {