From 5e91b5d4b9ad1d610e057fbf17715957dc0a0da4 Mon Sep 17 00:00:00 2001 From: andrei Date: Thu, 2 Apr 2020 11:09:10 +0300 Subject: [PATCH 1/4] Keyboards hides when address bar loses focus --- .../main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt b/app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt index ae4072f248d6..4161c5bfd360 100644 --- a/app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt +++ b/app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt @@ -735,6 +735,7 @@ class BrowserTabFragment : Fragment(), FindListener, CoroutineScope { omnibarTextInput.onFocusChangeListener = OnFocusChangeListener { _, hasFocus: Boolean -> viewModel.onOmnibarInputStateChanged(omnibarTextInput.text.toString(), hasFocus, false) + if(!hasFocus)omnibarTextInput.hideKeyboard() } omnibarTextInput.onBackKeyListener = object : KeyboardAwareEditText.OnBackKeyListener { From 222adafa48b0dcdb17928815856b284f995cb66b Mon Sep 17 00:00:00 2001 From: andrei Date: Sat, 4 Apr 2020 11:37:19 +0300 Subject: [PATCH 2/4] request focus on a dummy view. --- .../java/com/duckduckgo/app/browser/BrowserTabFragment.kt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt b/app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt index 4161c5bfd360..e89fae520070 100644 --- a/app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt +++ b/app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt @@ -735,7 +735,10 @@ class BrowserTabFragment : Fragment(), FindListener, CoroutineScope { omnibarTextInput.onFocusChangeListener = OnFocusChangeListener { _, hasFocus: Boolean -> viewModel.onOmnibarInputStateChanged(omnibarTextInput.text.toString(), hasFocus, false) - if(!hasFocus)omnibarTextInput.hideKeyboard() + if(!hasFocus){ + omnibarTextInput.hideKeyboard() + focusDummy.requestFocus() + } } omnibarTextInput.onBackKeyListener = object : KeyboardAwareEditText.OnBackKeyListener { From d8b64f605926c059ec98f3a6bcae59e6ac0d55f3 Mon Sep 17 00:00:00 2001 From: andrei Date: Sun, 5 Apr 2020 14:46:34 +0300 Subject: [PATCH 3/4] formatting according to project style guide --- .../main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt b/app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt index e89fae520070..2567c5ccb70c 100644 --- a/app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt +++ b/app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt @@ -735,7 +735,7 @@ class BrowserTabFragment : Fragment(), FindListener, CoroutineScope { omnibarTextInput.onFocusChangeListener = OnFocusChangeListener { _, hasFocus: Boolean -> viewModel.onOmnibarInputStateChanged(omnibarTextInput.text.toString(), hasFocus, false) - if(!hasFocus){ + if (!hasFocus) { omnibarTextInput.hideKeyboard() focusDummy.requestFocus() } From 0d4d3ed276447b61d9198a42720e4ab627e5f3f5 Mon Sep 17 00:00:00 2001 From: andrei Date: Sun, 5 Apr 2020 19:18:23 +0300 Subject: [PATCH 4/4] Handling target=_blank if link points to a file --- .../java/com/duckduckgo/app/browser/BrowserTabFragment.kt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt b/app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt index 2567c5ccb70c..972a40d8f7ea 100644 --- a/app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt +++ b/app/src/main/java/com/duckduckgo/app/browser/BrowserTabFragment.kt @@ -813,6 +813,12 @@ class BrowserTabFragment : Fragment(), FindListener, CoroutineScope { } it.setDownloadListener { url, _, contentDisposition, mimeType, _ -> + if (viewModel.url == null) { //if in an empty tab + launch { + viewModel.closeCurrentTab() + destroyWebView() + } + } requestFileDownload(url, contentDisposition, mimeType) }