From 8d1bc9e0f31d2af03d6ef6d70cec2a3095cb4774 Mon Sep 17 00:00:00 2001 From: Aitor Viana Date: Fri, 12 Feb 2021 13:13:26 +0000 Subject: [PATCH 1/2] Fixed search bar selection behavior --- .../app/browser/omnibar/KeyboardAwareEditText.kt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/duckduckgo/app/browser/omnibar/KeyboardAwareEditText.kt b/app/src/main/java/com/duckduckgo/app/browser/omnibar/KeyboardAwareEditText.kt index 64312e207a69..d6230b3209f4 100644 --- a/app/src/main/java/com/duckduckgo/app/browser/omnibar/KeyboardAwareEditText.kt +++ b/app/src/main/java/com/duckduckgo/app/browser/omnibar/KeyboardAwareEditText.kt @@ -19,6 +19,7 @@ package com.duckduckgo.app.browser.omnibar import android.content.Context import android.graphics.Rect import android.text.Editable +import android.text.Selection import android.util.AttributeSet import android.util.Patterns import android.view.KeyEvent @@ -50,9 +51,13 @@ class KeyboardAwareEditText : AppCompatEditText { text = text // cursor at the end of the word setSelection(text!!.length) + } else if (text?.isWebUrl() == true) { + // We always want URLs to be selected + // we need to post for the selectAll to take effect. The wonders of Android layout ! + post { Selection.selectAll(text) } } showKeyboard() - didFocusAlready = true + didFocusAlready = text?.isWebUrl() == false } } From 85afa4efce41b40b68162719d9169089cadf5887 Mon Sep 17 00:00:00 2001 From: Aitor Viana Date: Mon, 15 Feb 2021 10:19:55 +0000 Subject: [PATCH 2/2] Removed didFocusAlready --- .../duckduckgo/app/browser/omnibar/KeyboardAwareEditText.kt | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/app/src/main/java/com/duckduckgo/app/browser/omnibar/KeyboardAwareEditText.kt b/app/src/main/java/com/duckduckgo/app/browser/omnibar/KeyboardAwareEditText.kt index d6230b3209f4..edfb2601ba02 100644 --- a/app/src/main/java/com/duckduckgo/app/browser/omnibar/KeyboardAwareEditText.kt +++ b/app/src/main/java/com/duckduckgo/app/browser/omnibar/KeyboardAwareEditText.kt @@ -36,17 +36,14 @@ class KeyboardAwareEditText : AppCompatEditText { constructor(context: Context, attrs: AttributeSet?) : this(context, attrs, 0) constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int) : super(context, attrs, defStyleAttr) - private var didFocusAlready = false - private fun Editable.isWebUrl(): Boolean { return Patterns.WEB_URL.matcher(this.toString()).matches() } override fun onFocusChanged(focused: Boolean, direction: Int, previouslyFocusedRect: Rect?) { super.onFocusChanged(focused, direction, previouslyFocusedRect) - setSelectAllOnFocus(!didFocusAlready) if (focused) { - if (didFocusAlready && text != null && text?.isWebUrl() == false) { + if (text != null && text?.isWebUrl() == false) { // trigger the text change listener so that we can show autocomplete text = text // cursor at the end of the word @@ -57,7 +54,6 @@ class KeyboardAwareEditText : AppCompatEditText { post { Selection.selectAll(text) } } showKeyboard() - didFocusAlready = text?.isWebUrl() == false } }