OSDN Git Service

Add ability to open URLs from search box
authorBraden Farmer <farmerbb@gmail.com>
Tue, 30 May 2017 00:28:25 +0000 (18:28 -0600)
committerBraden Farmer <farmerbb@gmail.com>
Tue, 30 May 2017 00:28:25 +0000 (18:28 -0600)
app/src/main/java/com/farmerbb/taskbar/service/StartMenuService.java
app/src/main/res/values-de/strings.xml
app/src/main/res/values-ja/strings.xml
app/src/main/res/values-ru/strings.xml
app/src/main/res/values/strings.xml

index a525d8c..22beccb 100644 (file)
@@ -43,6 +43,7 @@ import android.os.UserManager;
 import android.provider.Settings;
 import android.support.v4.content.LocalBroadcastManager;
 import android.support.v7.widget.SearchView;
+import android.util.Patterns;
 import android.view.ContextThemeWrapper;
 import android.view.Display;
 import android.view.Gravity;
@@ -53,6 +54,7 @@ import android.view.ViewGroup;
 import android.view.WindowManager;
 import android.view.inputmethod.EditorInfo;
 import android.view.inputmethod.InputMethodManager;
+import android.webkit.URLUtil;
 import android.widget.EditText;
 import android.widget.FrameLayout;
 import android.widget.GridView;
@@ -306,9 +308,18 @@ public class StartMenuService extends Service {
                                 else
                                     LocalBroadcastManager.getInstance(StartMenuService.this).sendBroadcast(new Intent("com.farmerbb.taskbar.HIDE_START_MENU"));
 
-                                Intent intent = new Intent(Intent.ACTION_WEB_SEARCH);
-                                intent.putExtra(SearchManager.QUERY, query);
-                                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+                                Intent intent;
+
+                                if(Patterns.WEB_URL.matcher(query).matches()) {
+                                    intent = new Intent(Intent.ACTION_VIEW);
+                                    intent.setData(Uri.parse(URLUtil.guessUrl(query)));
+                                    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+                                } else {
+                                    intent = new Intent(Intent.ACTION_WEB_SEARCH);
+                                    intent.putExtra(SearchManager.QUERY, query);
+                                    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+                                }
+
                                 if(intent.resolveActivity(getPackageManager()) != null)
                                     startActivity(intent);
                                 else {
@@ -568,7 +579,7 @@ public class StartMenuService extends Service {
                         if(adapter.getCount() > 0)
                             textView.setText(null);
                         else if(query != null)
-                            textView.setText(getString(R.string.press_enter));
+                            textView.setText(getString(Patterns.WEB_URL.matcher(query).matches() ? R.string.press_enter_alt : R.string.press_enter));
                         else
                             textView.setText(getString(R.string.nothing_to_see_here));
                     }
index 6e12f73..8570d0d 100644 (file)
     <string name="auto_hide_navbar">Automatically control the system navigation bar</string>
     <string name="auto_hide_navbar_description">Hide the navigation bar when Taskbar is active, and show it when Taskbar is inactive</string>
 
+    <string name="press_enter_alt">@string/press_enter</string>
+
 </resources>
index c07aaf6..69a13aa 100644 (file)
     <string name="auto_hide_navbar">Automatically control the system navigation bar</string>
     <string name="auto_hide_navbar_description">Hide the navigation bar when Taskbar is active, and show it when Taskbar is inactive</string>
 
+    <string name="press_enter_alt">@string/press_enter</string>
+
 </resources>
index d0869cf..c8e3a1a 100644 (file)
     <string name="auto_hide_navbar">Automatically control the system navigation bar</string>
     <string name="auto_hide_navbar_description">Hide the navigation bar when Taskbar is active, and show it when Taskbar is inactive</string>
 
+    <string name="press_enter_alt">@string/press_enter</string>
+
 </resources>
index c367372..0f08b51 100644 (file)
     <string name="auto_hide_navbar">Automatically control the system navigation bar</string>
     <string name="auto_hide_navbar_description">Hide the navigation bar when Taskbar is active, and show it when Taskbar is inactive</string>
 
+    <string name="press_enter_alt">No apps found\n\nPress Enter to open in browser</string>
+
 </resources>