diff options
Diffstat (limited to 'app')
| -rw-r--r-- | app/build.gradle | 21 | ||||
| -rw-r--r-- | app/src/main/AndroidManifest.xml | 36 | ||||
| -rw-r--r-- | app/src/main/java/com/zx2c4/searchshortcut/ReceiveTextActivity.java | 37 | ||||
| -rw-r--r-- | app/src/main/res/values/strings.xml | 5 |
4 files changed, 99 insertions, 0 deletions
diff --git a/app/build.gradle b/app/build.gradle new file mode 100644 index 0000000..60b0978 --- /dev/null +++ b/app/build.gradle @@ -0,0 +1,21 @@ +plugins { + id 'com.android.application' +} + +android { + namespace 'com.zx2c4.searchshortcut' + compileSdk 33 + + defaultConfig { + applicationId "com.zx2c4.searchshortcut" + minSdk 23 + targetSdk 33 + versionCode 2 + versionName "1.0" + } + + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..903199b --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,36 @@ +<?xml version="1.0" encoding="utf-8"?> +<manifest xmlns:android="http://schemas.android.com/apk/res/android"> + + <application + android:icon="@android:drawable/ic_search_category_default" + android:label="@string/app_name"> + <activity + android:name=".ReceiveTextActivity" + android:excludeFromRecents="true" + android:exported="true" + android:label="@string/shortcut_label" + android:relinquishTaskIdentity="true" + android:theme="@android:style/Theme.NoDisplay"> + + <intent-filter> + <action android:name="android.intent.action.PROCESS_TEXT" /> + <category android:name="android.intent.category.DEFAULT" /> + <data android:mimeType="text/*" /> + </intent-filter> + + <intent-filter> + <action android:name="android.intent.action.SEND" /> + <category android:name="android.intent.category.DEFAULT" /> + + <data android:mimeType="text/*" /> + <data android:mimeType="application/txt" /> + <data android:mimeType="image/*" /> + </intent-filter> + <intent-filter> + <action android:name="android.intent.action.WEB_SEARCH" /> + <category android:name="android.intent.category.DEFAULT" /> + </intent-filter> + + </activity> + </application> +</manifest>
\ No newline at end of file diff --git a/app/src/main/java/com/zx2c4/searchshortcut/ReceiveTextActivity.java b/app/src/main/java/com/zx2c4/searchshortcut/ReceiveTextActivity.java new file mode 100644 index 0000000..7afee6b --- /dev/null +++ b/app/src/main/java/com/zx2c4/searchshortcut/ReceiveTextActivity.java @@ -0,0 +1,37 @@ +/* + * Copyright © 2023 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0 + */ + +package com.zx2c4.searchshortcut; + +import android.app.Activity; +import android.app.SearchManager; +import android.content.Intent; +import android.net.Uri; +import android.os.Bundle; +import android.widget.Toast; + +public class ReceiveTextActivity extends Activity { + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + CharSequence text = getIntent().getCharSequenceExtra(Intent.EXTRA_PROCESS_TEXT); + if (text == null || text.length() == 0) + text = getIntent().getStringExtra(SearchManager.QUERY); + if (text == null || text.length() == 0) { + finish(); + return; + } + + Intent searchIntent = new Intent(Intent.ACTION_VIEW); + searchIntent.setData(Uri.parse("https://www.google.com/search?q=" + Uri.encode(text.toString()))); + searchIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); + try { + getApplicationContext().startActivity(searchIntent); + } catch (final Exception e) { + Toast.makeText(getApplicationContext(), e.getLocalizedMessage(), Toast.LENGTH_LONG).show(); + } + finish(); + } +}
\ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..db25ab7 --- /dev/null +++ b/app/src/main/res/values/strings.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + <string name="app_name">Search Shortcut</string> + <string name="shortcut_label">Search Google</string> +</resources>
\ No newline at end of file |
