From 97fe2cb846a0718d9745138fca55f888d58563c8 Mon Sep 17 00:00:00 2001 From: andrei Date: Mon, 27 Apr 2020 14:37:08 +0300 Subject: [PATCH 1/2] Fixed backButton behavior when findInPage is active --- .../java/com/duckduckgo/app/browser/BrowserTabViewModel.kt | 5 +++++ 1 file changed, 5 insertions(+) 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 a2d6afe73102..135dfc464581 100644 --- a/app/src/main/java/com/duckduckgo/app/browser/BrowserTabViewModel.kt +++ b/app/src/main/java/com/duckduckgo/app/browser/BrowserTabViewModel.kt @@ -414,6 +414,11 @@ class BrowserTabViewModel( fun onUserPressedBack(): Boolean { val navigation = webNavigationState ?: return false + if (currentFindInPageViewState().visible) { + dismissFindInView() + return true + } + if (!currentBrowserViewState().browserShowing) { return false } From 243fd8145f7658cba9947f1c7e1c38b418de9eac Mon Sep 17 00:00:00 2001 From: andrei Date: Mon, 27 Apr 2020 14:37:32 +0300 Subject: [PATCH 2/2] Added test for backButton behavior when findInPage is active --- .../app/browser/BrowserTabViewModelTest.kt | 13 +++++++++++++ 1 file changed, 13 insertions(+) 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 d7d66dd6c860..18b016467b0a 100644 --- a/app/src/androidTest/java/com/duckduckgo/app/browser/BrowserTabViewModelTest.kt +++ b/app/src/androidTest/java/com/duckduckgo/app/browser/BrowserTabViewModelTest.kt @@ -869,6 +869,19 @@ class BrowserTabViewModelTest { assertTrue(browserViewState().canGoForward) } + @Test + fun whenFindInPageShowingByPressingBackOnBrowserThenViewStateUpdatedInvisibleAndDoesNotGoToPreviousPage() { + setupNavigation(isBrowsing = true, canGoBack = true) + testee.onFindInPageSelected() + testee.onUserPressedBack() + + assertFalse(findInPageViewState().visible) + assertCommandIssued() + + val issuedCommand = commandCaptor.allValues.find { it is Command.NavigateBack } + assertNull(issuedCommand) + } + @Test fun whenHomeShowingByPressingBackOnInvalidatedBrowserThenForwardButtonInactive() { setupNavigation(isBrowsing = true)