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 @@ - + + +