diff --git a/app/src/androidTest/java/com/duckduckgo/app/browser/BrowserTabViewModelTest.kt b/app/src/androidTest/java/com/duckduckgo/app/browser/BrowserTabViewModelTest.kt index 6da351f04b31..d2ffb1accc24 100644 --- a/app/src/androidTest/java/com/duckduckgo/app/browser/BrowserTabViewModelTest.kt +++ b/app/src/androidTest/java/com/duckduckgo/app/browser/BrowserTabViewModelTest.kt @@ -1990,6 +1990,12 @@ class BrowserTabViewModelTest { assertFalse(browserViewState().showDaxIcon) } + @Test + fun whenQueryIsNotHierarchicalThenUnsupportedOperationExceptionIsHandled() { + whenever(mockOmnibarConverter.convertQueryToUrl("about:blank", null)).thenReturn("about:blank") + testee.onUserSubmittedQuery("about:blank") + } + private inline fun assertCommandIssued(instanceAssertions: T.() -> Unit = {}) { verify(mockCommandObserver, atLeastOnce()).onChanged(commandCaptor.capture()) val issuedCommand = commandCaptor.allValues.find { it is T } diff --git a/app/src/main/java/com/duckduckgo/app/browser/BrowserTabViewModel.kt b/app/src/main/java/com/duckduckgo/app/browser/BrowserTabViewModel.kt index 2b18d68bf7b8..f53adb940aeb 100644 --- a/app/src/main/java/com/duckduckgo/app/browser/BrowserTabViewModel.kt +++ b/app/src/main/java/com/duckduckgo/app/browser/BrowserTabViewModel.kt @@ -103,6 +103,7 @@ import kotlinx.coroutines.Job import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import timber.log.Timber +import java.lang.UnsupportedOperationException import java.util.Locale import java.util.concurrent.TimeUnit @@ -445,8 +446,20 @@ class BrowserTabViewModel( } private fun fireQueryChangedPixel(omnibarText: String) { - val oldParameter = currentOmnibarViewState().omnibarText.toUri()?.getQueryParameter(AppUrl.ParamKey.QUERY) - val newParameter = omnibarText.toUri()?.getQueryParameter(AppUrl.ParamKey.QUERY) + val oldUri = currentOmnibarViewState().omnibarText.toUri() + val newUri = omnibarText.toUri() + + val oldParameter = try { + oldUri.getQueryParameter(AppUrl.ParamKey.QUERY) + } catch (e: UnsupportedOperationException) { + null + } + val newParameter = try { + newUri.getQueryParameter(AppUrl.ParamKey.QUERY) + } catch (e: UnsupportedOperationException) { + null + } + if (oldParameter == newParameter) { pixel.fire(String.format(Locale.US, PixelName.SERP_REQUERY.pixelName, PixelParameter.SERP_QUERY_NOT_CHANGED)) } else { diff --git a/app/version/version.properties b/app/version/version.properties index f23d042c1228..1501f2ef18b0 100644 --- a/app/version/version.properties +++ b/app/version/version.properties @@ -1 +1 @@ -VERSION=5.57.0 \ No newline at end of file +VERSION=5.57.1 \ No newline at end of file