From e784d45b244750f30fccfd77e9cecd9186374fdf Mon Sep 17 00:00:00 2001 From: Cristian Luis Duarte Date: Wed, 18 Apr 2018 21:40:37 -0300 Subject: [PATCH] Android Search - Enter goes to what was typed in the search field (uses it as an address) --- .../hifiinterface/GotoActivity.java | 13 +------------ .../highfidelity/hifiinterface/HifiUtils.java | 19 +++++++++++++++++++ .../hifiinterface/HomeActivity.java | 15 +++++++++++++++ .../app/src/main/res/layout/content_home.xml | 2 ++ 4 files changed, 37 insertions(+), 12 deletions(-) diff --git a/android/app/src/main/java/io/highfidelity/hifiinterface/GotoActivity.java b/android/app/src/main/java/io/highfidelity/hifiinterface/GotoActivity.java index f1ecc21d84..125483da94 100644 --- a/android/app/src/main/java/io/highfidelity/hifiinterface/GotoActivity.java +++ b/android/app/src/main/java/io/highfidelity/hifiinterface/GotoActivity.java @@ -11,9 +11,6 @@ import android.view.MenuItem; import android.view.View; import android.widget.EditText; -import java.net.URI; -import java.net.URISyntaxException; - public class GotoActivity extends AppCompatActivity { public static final String PARAM_DOMAIN_URL = "domain_url"; @@ -60,15 +57,7 @@ public class GotoActivity extends AppCompatActivity { private void actionGo() { String urlString = mUrlEditText.getText().toString(); if (!urlString.trim().isEmpty()) { - URI uri; - try { - uri = new URI(urlString); - } catch (URISyntaxException e) { - return; - } - if (uri.getScheme()==null || uri.getScheme().isEmpty()) { - urlString = "hifi://" + urlString; - } + urlString = HifiUtils.getInstance().sanitizeHifiUrl(urlString); Intent intent = new Intent(); intent.putExtra(GotoActivity.PARAM_DOMAIN_URL, urlString); diff --git a/android/app/src/main/java/io/highfidelity/hifiinterface/HifiUtils.java b/android/app/src/main/java/io/highfidelity/hifiinterface/HifiUtils.java index 901add4afa..c26a935b1f 100644 --- a/android/app/src/main/java/io/highfidelity/hifiinterface/HifiUtils.java +++ b/android/app/src/main/java/io/highfidelity/hifiinterface/HifiUtils.java @@ -1,5 +1,8 @@ package io.highfidelity.hifiinterface; +import java.net.URI; +import java.net.URISyntaxException; + /** * Created by Gabriel Calero & Cristian Duarte on 4/13/18. */ @@ -18,6 +21,22 @@ public class HifiUtils { return instance; } + public String sanitizeHifiUrl(String urlString) { + urlString = urlString.trim(); + if (!urlString.isEmpty()) { + URI uri; + try { + uri = new URI(urlString); + } catch (URISyntaxException e) { + return urlString; + } + if (uri.getScheme() == null || uri.getScheme().isEmpty()) { + urlString = "hifi://" + urlString; + } + } + return urlString; + } + public native String getCurrentAddress(); public native String protocolVersionSignature(); diff --git a/android/app/src/main/java/io/highfidelity/hifiinterface/HomeActivity.java b/android/app/src/main/java/io/highfidelity/hifiinterface/HomeActivity.java index 943c4cfaec..14dec0ea74 100644 --- a/android/app/src/main/java/io/highfidelity/hifiinterface/HomeActivity.java +++ b/android/app/src/main/java/io/highfidelity/hifiinterface/HomeActivity.java @@ -14,6 +14,7 @@ import android.support.v7.widget.RecyclerView; import android.support.v7.widget.Toolbar; import android.text.Editable; import android.text.TextWatcher; +import android.view.KeyEvent; import android.view.Menu; import android.view.MenuItem; import android.view.View; @@ -120,6 +121,20 @@ public class HomeActivity extends AppCompatActivity implements NavigationView.On domainAdapter.loadDomains(editable.toString()); } }); + searchView.setOnKeyListener(new View.OnKeyListener() { + @Override + public boolean onKey(View view, int i, KeyEvent keyEvent) { + if (i == KeyEvent.KEYCODE_ENTER) { + String urlString = searchView.getText().toString(); + if (!urlString.trim().isEmpty()) { + urlString = HifiUtils.getInstance().sanitizeHifiUrl(urlString); + } + gotoDomain(urlString); + return true; + } + return false; + } + }); updateLoginMenu(); } diff --git a/android/app/src/main/res/layout/content_home.xml b/android/app/src/main/res/layout/content_home.xml index 217e922a8d..0a3340c04a 100644 --- a/android/app/src/main/res/layout/content_home.xml +++ b/android/app/src/main/res/layout/content_home.xml @@ -36,6 +36,8 @@ android:gravity="center_vertical|end" android:paddingStart="32dp" android:paddingEnd="32dp" + android:inputType="textUri" + android:imeOptions="actionGo" />