From 4fc6cb1de3b37821415543c0a60bc078f2596e90 Mon Sep 17 00:00:00 2001 From: Johannes Marbach Date: Tue, 31 May 2022 13:42:31 +0200 Subject: [PATCH 1/3] Use fatalError instead of NPE Signed-off-by: Johannes Marbach --- .../widgets/webview/WebviewPermissionUtils.kt | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) 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..329f7bb99a 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,15 @@ 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 im.vector.app.features.settings.VectorPreferences import java.lang.NullPointerException 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 +79,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()) { From df23fd10bcc17a7c1331bec81057c01a4c65479b Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Tue, 31 May 2022 14:42:09 +0200 Subject: [PATCH 2/3] Remove unused import --- .../app/features/widgets/webview/WebviewPermissionUtils.kt | 1 - 1 file changed, 1 deletion(-) 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 329f7bb99a..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 @@ -27,7 +27,6 @@ import im.vector.app.R import im.vector.app.core.error.fatalError import im.vector.app.core.utils.checkPermissions import im.vector.app.features.settings.VectorPreferences -import java.lang.NullPointerException import javax.inject.Inject class WebviewPermissionUtils @Inject constructor( From 637b3bb5ba25c450f83a1b304219093e9d2d9fb2 Mon Sep 17 00:00:00 2001 From: Johannes Marbach Date: Tue, 31 May 2022 16:15:40 +0200 Subject: [PATCH 3/3] Fix tests --- .../vector/app/features/widgets/WebviewPermissionUtilsTest.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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() {