diff --git a/app/src/main/java/com/aurora/Constants.kt b/app/src/main/java/com/aurora/Constants.kt
index 0610bce66..d0e04a808 100644
--- a/app/src/main/java/com/aurora/Constants.kt
+++ b/app/src/main/java/com/aurora/Constants.kt
@@ -41,6 +41,8 @@ object Constants {
const val URL_DISPENSER = "https://auroraoss.com/api/auth"
+ const val PLAY_QUERY_URL = "https://play.google.com/store/search?q="
+
//ACCOUNTS
const val ACCOUNT_SIGNED_IN = "ACCOUNT_SIGNED_IN"
const val ACCOUNT_SIGNED_TIMESTAMP = "ACCOUNT_SIGNED_TIMESTAMP"
@@ -51,4 +53,4 @@ object Constants {
const val PAGE_TYPE = "PAGE_TYPE"
const val TOP_CHART_TYPE = "TOP_CHART_TYPE"
const val TOP_CHART_CATEGORY = "TOP_CHART_CATEGORY"
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/com/aurora/extensions/Context.kt b/app/src/main/java/com/aurora/extensions/Context.kt
index 0958ea779..52271b51f 100644
--- a/app/src/main/java/com/aurora/extensions/Context.kt
+++ b/app/src/main/java/com/aurora/extensions/Context.kt
@@ -36,12 +36,14 @@ import androidx.browser.customtabs.CustomTabsIntent
import androidx.core.app.ActivityOptionsCompat
import androidx.core.app.ShareCompat
import androidx.core.content.ContextCompat
+import androidx.core.graphics.drawable.toBitmap
import com.aurora.Constants
import com.aurora.gplayapi.data.models.App
import com.aurora.store.MainActivity
import com.aurora.store.R
import com.aurora.store.util.Log
import com.aurora.store.util.Preferences
+import com.aurora.store.view.ui.details.AppDetailsActivity
import kotlin.system.exitProcess
val Context.inflater: LayoutInflater
@@ -50,11 +52,26 @@ val Context.inflater: LayoutInflater
val Context.displayMetrics: DisplayMetrics
get() = resources.displayMetrics
-fun Context.browse(url: String) {
+fun Context.browse(url: String, showOpenInAuroraAction: Boolean = false) {
try {
- CustomTabsIntent.Builder()
- .build()
- .launchUrl(this, Uri.parse(url))
+ val customTabsIntent = CustomTabsIntent.Builder()
+ if (showOpenInAuroraAction) {
+ val icon =
+ ContextCompat.getDrawable(this, R.drawable.ic_open_in_new)?.toBitmap()
+ val pendingIntent = PendingIntent.getActivity(
+ this,
+ 0,
+ Intent(this, AppDetailsActivity::class.java),
+ PendingIntent.FLAG_MUTABLE
+ )
+ customTabsIntent.setActionButton(
+ icon!!,
+ this.getString(R.string.open_in_aurora),
+ pendingIntent,
+ true
+ )
+ }
+ customTabsIntent.build().launchUrl(this, Uri.parse(url))
} catch (e: Exception) {
Log.e(e.message)
}
diff --git a/app/src/main/java/com/aurora/store/util/Preferences.kt b/app/src/main/java/com/aurora/store/util/Preferences.kt
index 53444df8c..5a0cb7308 100644
--- a/app/src/main/java/com/aurora/store/util/Preferences.kt
+++ b/app/src/main/java/com/aurora/store/util/Preferences.kt
@@ -59,6 +59,8 @@ object Preferences {
const val PREFERENCE_UPDATES_EXTENDED = "PREFERENCE_UPDATES_EXTENDED"
+ const val PREFERENCE_ADVANCED_SEARCH_IN_CTT = "PREFERENCE_ADVANCED_SEARCH_IN_CTT"
+
const val PREFERENCE_UNIQUE_GROUP_IDS = "PREFERENCE_UNIQUE_GROUP_IDS"
private var prefs: SharedPreferences? = null
diff --git a/app/src/main/java/com/aurora/store/view/ui/search/SearchSuggestionActivity.kt b/app/src/main/java/com/aurora/store/view/ui/search/SearchSuggestionActivity.kt
index 2877be1e1..f8ee049eb 100644
--- a/app/src/main/java/com/aurora/store/view/ui/search/SearchSuggestionActivity.kt
+++ b/app/src/main/java/com/aurora/store/view/ui/search/SearchSuggestionActivity.kt
@@ -28,12 +28,14 @@ import android.view.inputmethod.EditorInfo
import android.widget.TextView
import androidx.lifecycle.ViewModelProvider
import com.aurora.Constants
+import com.aurora.extensions.browse
import com.aurora.extensions.close
import com.aurora.extensions.getEmptyActivityBundle
import com.aurora.extensions.open
import com.aurora.extensions.showKeyboard
import com.aurora.gplayapi.SearchSuggestEntry
import com.aurora.store.databinding.ActivitySearchSuggestionBinding
+import com.aurora.store.util.Preferences
import com.aurora.store.view.epoxy.views.SearchSuggestionViewModel_
import com.aurora.store.view.ui.commons.BaseActivity
import com.aurora.store.view.ui.downloads.DownloadActivity
@@ -149,8 +151,12 @@ class SearchSuggestionActivity : BaseActivity() {
}
private fun search(query: String) {
- val intent = Intent(this, SearchResultsActivity::class.java)
- intent.putExtra(Constants.STRING_EXTRA, query)
- startActivity(intent, getEmptyActivityBundle())
+ if (Preferences.getBoolean(this, Preferences.PREFERENCE_ADVANCED_SEARCH_IN_CTT)) {
+ this.browse("${Constants.PLAY_QUERY_URL}$query", true)
+ } else {
+ val intent = Intent(this, SearchResultsActivity::class.java)
+ intent.putExtra(Constants.STRING_EXTRA, query)
+ startActivity(intent, getEmptyActivityBundle())
+ }
}
}
diff --git a/app/src/main/res/drawable/ic_open_in_new.xml b/app/src/main/res/drawable/ic_open_in_new.xml
new file mode 100644
index 000000000..5057df46b
--- /dev/null
+++ b/app/src/main/res/drawable/ic_open_in_new.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index a6a851325..e4d2ec726 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -315,6 +315,8 @@
"Display similar and related clusters on app details page"
Extended updates
Looks for new versions of disabled apps too
+ Search in Custom Tab
+ Opens search results in a browser\'s custom tab
"Download Failed"
"App not purchased"
"App not supported"
@@ -406,4 +408,5 @@
An error occurred!
Menu
Expand
+ Open in Aurora Store
diff --git a/app/src/main/res/xml/preferences_advanced.xml b/app/src/main/res/xml/preferences_advanced.xml
index 7bf2aa65d..1872f34a5 100644
--- a/app/src/main/res/xml/preferences_advanced.xml
+++ b/app/src/main/res/xml/preferences_advanced.xml
@@ -1,4 +1,11 @@
-
+
+
+