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 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<String>()
@ -75,7 +78,11 @@ class WebviewPermissionUtils @Inject constructor() {
fun onPermissionResult(result: Map<String, Boolean>) {
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()) {

View File

@ -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() {