From 20acfdfb82b6ef88ca6a9a502362052c78c72cf0 Mon Sep 17 00:00:00 2001
From: Cristian Luis Duarte <cristian.duarte.mb@gmail.com>
Date: Thu, 12 Apr 2018 20:31:36 -0300
Subject: [PATCH] First Android Go To implementation (from the Home screen)

---
 .../hifiinterface/GotoActivity.java           | 45 ++++++++++++++++++-
 .../app/src/main/res/layout/activity_goto.xml | 16 +++++++
 android/app/src/main/res/values/strings.xml   |  2 +
 3 files changed, 62 insertions(+), 1 deletion(-)

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 fbb4953ab3..62636b5ceb 100644
--- a/android/app/src/main/java/io/highfidelity/hifiinterface/GotoActivity.java
+++ b/android/app/src/main/java/io/highfidelity/hifiinterface/GotoActivity.java
@@ -1,14 +1,22 @@
 package io.highfidelity.hifiinterface;
 
+import android.content.Intent;
 import android.os.Bundle;
-import android.support.v4.app.NavUtils;
 import android.support.v7.app.ActionBar;
 import android.support.v7.app.AppCompatActivity;
+import android.support.v7.widget.AppCompatButton;
 import android.support.v7.widget.Toolbar;
+import android.view.KeyEvent;
 import android.view.MenuItem;
+import android.view.View;
+import android.view.inputmethod.EditorInfo;
+import android.widget.EditText;
 
 public class GotoActivity extends AppCompatActivity {
 
+    private EditText mUrlEditText;
+    private AppCompatButton mGoBtn;
+
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -20,6 +28,41 @@ public class GotoActivity extends AppCompatActivity {
 
         ActionBar actionbar = getSupportActionBar();
         actionbar.setDisplayHomeAsUpEnabled(true);
+
+        mUrlEditText = (EditText) findViewById(R.id.url_text);
+        mUrlEditText.setOnKeyListener(new View.OnKeyListener() {
+            @Override
+            public boolean onKey(View view, int i, KeyEvent keyEvent) {
+                if (i == KeyEvent.KEYCODE_ENTER) {
+                    actionGo();
+                    return true;
+                }
+                return false;
+            }
+        });
+        mGoBtn = (AppCompatButton) findViewById(R.id.go_btn);
+
+        mGoBtn.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                actionGo();
+            }
+        });
+    }
+
+    private void actionGo() {
+        String urlString = mUrlEditText.getText().toString();
+        if (!urlString.trim().isEmpty()) {
+            Intent intent = new Intent(this, InterfaceActivity.class);
+            intent.putExtra(InterfaceActivity.DOMAIN_URL, urlString);
+            finish();
+            if (getIntent() != null &&
+                    getIntent().hasExtra(HomeActivity.PARAM_NOT_START_INTERFACE_ACTIVITY) &&
+                    getIntent().getBooleanExtra(HomeActivity.PARAM_NOT_START_INTERFACE_ACTIVITY, false)) {
+                intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
+            }
+            startActivity(intent);
+        }
     }
 
     @Override
diff --git a/android/app/src/main/res/layout/activity_goto.xml b/android/app/src/main/res/layout/activity_goto.xml
index a10426468e..e4ecda6157 100644
--- a/android/app/src/main/res/layout/activity_goto.xml
+++ b/android/app/src/main/res/layout/activity_goto.xml
@@ -15,4 +15,20 @@
         app:layout_constraintTop_toTopOf="@id/root_activity_goto"
         android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" />
 
+    <EditText
+        android:id="@+id/url_text"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:hint="@string/goto_url_hint"
+        android:inputType="text"
+        android:imeOptions="actionGo"
+        app:layout_constraintTop_toBottomOf="@id/toolbar"
+        />
+    <android.support.v7.widget.AppCompatButton
+        android:id="@+id/go_btn"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:text="@string/go"
+        app:layout_constraintTop_toBottomOf="@id/url_text"/>
+
 </android.support.constraint.ConstraintLayout>
diff --git a/android/app/src/main/res/values/strings.xml b/android/app/src/main/res/values/strings.xml
index f380f3cf6e..6ce0670dd8 100644
--- a/android/app/src/main/res/values/strings.xml
+++ b/android/app/src/main/res/values/strings.xml
@@ -11,5 +11,7 @@
     <string name="bookmarks">BOOKMARKS</string>
     <string name="action_settings">Settings</string>
     <string name="action_goto">Go To</string>
+    <string name="goto_url_hint">Type a domain url</string>
+    <string name="go">Go</string>
 
 </resources>