Skip to content

Commit 1a12591

Browse files
authored
Fix issue where url can sometimes be out-of-date on broken url form (#298)
1 parent e575b99 commit 1a12591

File tree

3 files changed

+24
-1
lines changed

3 files changed

+24
-1
lines changed

app/src/androidTest/java/com/duckduckgo/app/browser/BrowserTabViewModelTest.kt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -663,6 +663,21 @@ class BrowserTabViewModelTest {
663663
assertEquals("foo", command.url)
664664
}
665665

666+
@Test
667+
fun whenOnSiteAndBrokenSiteSelectedThenBrokenSiteFeedbackCommandSentWithUrl() {
668+
testee.urlChanged("foo.com")
669+
testee.onBrokenSiteSelected()
670+
val command = captureCommands().value as Command.BrokenSiteFeedback
671+
assertEquals("foo.com", command.url)
672+
}
673+
674+
@Test
675+
fun whenNoSiteAndBrokenSiteSelectedThenBrokenSiteFeedbackCommandSentWithoutUrl() {
676+
testee.onBrokenSiteSelected()
677+
val command = captureCommands().value as Command.BrokenSiteFeedback
678+
assertNull(command.url)
679+
}
680+
666681
@Test
667682
fun whenUserSelectsToShareLinkWithNullUrlThenShareLinkCommandNotSent() {
668683
testee.userSharingLink(null)

app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ class BrowserTabFragment : Fragment(), FindListener {
202202
onMenuItemClicked(view.bookmarksPopupMenuItem) { browserActivity?.launchBookmarks() }
203203
onMenuItemClicked(view.addBookmarksPopupMenuItem) { addBookmark() }
204204
onMenuItemClicked(view.findInPageMenuItem) { viewModel.userRequestingToFindInPage() }
205-
onMenuItemClicked(view.brokenSitePopupMenuItem) { browserActivity?.launchBrokenSiteFeedback(viewModel.url.value) }
205+
onMenuItemClicked(view.brokenSitePopupMenuItem) { viewModel.onBrokenSiteSelected() }
206206
onMenuItemClicked(view.settingsPopupMenuItem) { browserActivity?.launchSettings() }
207207
onMenuItemClicked(view.requestDesktopSiteCheckMenuItem) {
208208
viewModel.desktopSiteModeToggled(
@@ -296,6 +296,9 @@ class BrowserTabFragment : Fragment(), FindListener {
296296
Command.HideKeyboard -> {
297297
hideKeyboard()
298298
}
299+
is Command.BrokenSiteFeedback -> {
300+
browserActivity?.launchBrokenSiteFeedback(it.url)
301+
}
299302
is Command.ShowFullScreen -> {
300303
webViewFullScreenContainer.addView(
301304
it.view, ViewGroup.LayoutParams(

app/src/main/java/com/duckduckgo/app/browser/BrowserTabViewModel.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,7 @@ class BrowserTabViewModel(
135135
class DownloadImage(val url: String) : Command()
136136
class ShareLink(val url: String) : Command()
137137
class FindInPageCommand(val searchTerm: String) : Command()
138+
class BrokenSiteFeedback(val url: String?) : Command()
138139
class DisplayMessage(@StringRes val messageId: Int) : Command()
139140
object DismissFindInPage : Command()
140141
class ShowFileChooser(val filePathCallback: ValueCallback<Array<Uri>>, val fileChooserParams: WebChromeClient.FileChooserParams) : Command()
@@ -431,6 +432,10 @@ class BrowserTabViewModel(
431432
command.value = DisplayMessage(R.string.bookmarkAddedFeedback)
432433
}
433434

435+
fun onBrokenSiteSelected() {
436+
command.value = BrokenSiteFeedback(site?.url)
437+
}
438+
434439
fun onUserSelectedToEditQuery(query: String) {
435440
omnibarViewState.value = currentOmnibarViewState().copy(isEditing = false, omnibarText = query)
436441
autoCompleteViewState.value = AutoCompleteViewState(showSuggestions = false)

0 commit comments

Comments
 (0)