Skip to content

Commit 5729aa2

Browse files
authored
Fix fragment reference and small tidy ups (#226)
Fixes issues: • Where a fragment could be null • Where keyboard might not be dismissed when opening popover menu • Youtube video could keep playing when opening new tab via assist
1 parent 5990b42 commit 5729aa2

File tree

2 files changed

+19
-5
lines changed

2 files changed

+19
-5
lines changed

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,10 +78,9 @@ class BrowserActivity : DuckDuckGoActivity() {
7878
}
7979

8080
private fun openNewTab(tabId: String, userQuery: String? = null) {
81-
val previousFragment = supportFragmentManager.findFragmentById(R.id.fragmentContainer) as? BrowserTabFragment
8281
val fragment = BrowserTabFragment.newInstance(tabId, userQuery)
8382
val transaction = supportFragmentManager.beginTransaction()
84-
if (previousFragment == null) {
83+
if (currentTab == null) {
8584
transaction.replace(R.id.fragmentContainer, fragment, tabId)
8685
} else {
8786
transaction.hide(currentTab)

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

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,11 @@ class BrowserTabFragment : Fragment(), FindListener {
280280
omnibarTextInput.setText(viewState.omnibarText)
281281

282282
// ensures caret sits at the end of the query
283-
omnibarTextInput.post { omnibarTextInput?.setSelection(omnibarTextInput.text.length) }
283+
omnibarTextInput.post {
284+
omnibarTextInput?.let {
285+
it.setSelection(it.text.length)
286+
}
287+
}
284288
appBarLayout.setExpanded(true, true)
285289
}
286290

@@ -406,7 +410,7 @@ class BrowserTabFragment : Fragment(), FindListener {
406410
return@setOnMenuItemClickListener true
407411
}
408412
R.id.browserPopup -> {
409-
hideKeyboard()
413+
hideKeyboardImmediately()
410414
launchPopupMenu()
411415
return@setOnMenuItemClickListener true
412416
}
@@ -564,6 +568,14 @@ class BrowserTabFragment : Fragment(), FindListener {
564568
addTextChangedListener(textWatcher)
565569
}
566570

571+
private fun hideKeyboardImmediately() {
572+
if (!isHidden) {
573+
Timber.v("Keyboard now hiding")
574+
omnibarTextInput.hideKeyboard()
575+
focusDummy.requestFocus()
576+
}
577+
}
578+
567579
private fun hideKeyboard() {
568580
if (!isHidden) {
569581
Timber.v("Keyboard now hiding")
@@ -591,7 +603,10 @@ class BrowserTabFragment : Fragment(), FindListener {
591603

592604
override fun onHiddenChanged(hidden: Boolean) {
593605
super.onHiddenChanged(hidden)
594-
if (!hidden) {
606+
if (hidden) {
607+
webView?.onPause()
608+
} else {
609+
webView?.onResume()
595610
viewModel.onViewVisible()
596611
}
597612
}

0 commit comments

Comments
 (0)