Skip to content

Commit

Permalink
fix(app): Don't ignore the anime side in SEARCH/SEND intents + fix in…
Browse files Browse the repository at this point in the history
…tent labels (#1243)
  • Loading branch information
Claudemirovsky authored Dec 21, 2023
1 parent f2f572b commit 4697f5b
Show file tree
Hide file tree
Showing 5 changed files with 35 additions and 9 deletions.
4 changes: 2 additions & 2 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@
android:name=".ui.deeplink.anime.DeepLinkAnimeActivity"
android:launchMode="singleTask"
android:theme="@android:style/Theme.NoDisplay"
android:label="@string/action_search"
android:label="@string/action_global_anime_search"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
Expand All @@ -95,7 +95,7 @@
android:name=".ui.deeplink.manga.DeepLinkMangaActivity"
android:launchMode="singleTask"
android:theme="@android:style/Theme.NoDisplay"
android:label="@string/action_search"
android:label="@string/action_global_manga_search"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.SEARCH" />
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package eu.kanade.tachiyomi.ui.deeplink

enum class DeepLinkScreenType {
ANIME,
MANGA,
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package eu.kanade.tachiyomi.ui.deeplink.anime
import android.app.Activity
import android.content.Intent
import android.os.Bundle
import eu.kanade.tachiyomi.ui.deeplink.DeepLinkScreenType
import eu.kanade.tachiyomi.ui.main.MainActivity

class DeepLinkAnimeActivity : Activity() {
Expand All @@ -12,6 +13,7 @@ class DeepLinkAnimeActivity : Activity() {

intent.apply {
flags = flags or Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_NEW_TASK
putExtra(MainActivity.INTENT_SEARCH_TYPE, DeepLinkScreenType.ANIME.toString())
setClass(applicationContext, MainActivity::class.java)
}
startActivity(intent)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package eu.kanade.tachiyomi.ui.deeplink.manga
import android.app.Activity
import android.content.Intent
import android.os.Bundle
import eu.kanade.tachiyomi.ui.deeplink.DeepLinkScreenType
import eu.kanade.tachiyomi.ui.main.MainActivity

class DeepLinkMangaActivity : Activity() {
Expand All @@ -12,6 +13,7 @@ class DeepLinkMangaActivity : Activity() {

intent.apply {
flags = flags or Intent.FLAG_ACTIVITY_CLEAR_TOP or Intent.FLAG_ACTIVITY_NEW_TASK
putExtra(MainActivity.INTENT_SEARCH_TYPE, DeepLinkScreenType.MANGA.toString())
setClass(applicationContext, MainActivity::class.java)
}
startActivity(intent)
Expand Down
30 changes: 23 additions & 7 deletions app/src/main/java/eu/kanade/tachiyomi/ui/main/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,8 @@ import eu.kanade.tachiyomi.ui.browse.anime.source.browse.BrowseAnimeSourceScreen
import eu.kanade.tachiyomi.ui.browse.anime.source.globalsearch.GlobalAnimeSearchScreen
import eu.kanade.tachiyomi.ui.browse.manga.source.browse.BrowseMangaSourceScreen
import eu.kanade.tachiyomi.ui.browse.manga.source.globalsearch.GlobalMangaSearchScreen
import eu.kanade.tachiyomi.ui.deeplink.DeepLinkScreenType
import eu.kanade.tachiyomi.ui.deeplink.anime.DeepLinkAnimeScreen
import eu.kanade.tachiyomi.ui.deeplink.manga.DeepLinkMangaScreen
import eu.kanade.tachiyomi.ui.entries.anime.AnimeScreen
import eu.kanade.tachiyomi.ui.entries.manga.MangaScreen
Expand Down Expand Up @@ -482,17 +484,30 @@ class MainActivity : BaseActivity() {
// or the Google-specific search intent (triggered by saying or typing "search *query* on *Tachiyomi*" in Google Search/Google Assistant)

// Get the search query provided in extras, and if not null, perform a global search with it.
val query = intent.getStringExtra(SearchManager.QUERY) ?: intent.getStringExtra(
Intent.EXTRA_TEXT,
)
val query = intent.getStringExtra(SearchManager.QUERY)
?: intent.getStringExtra(Intent.EXTRA_TEXT)

if (!query.isNullOrEmpty()) {
navigator.popUntilRoot()
navigator.push(GlobalMangaSearchScreen(query))
navigator.push(DeepLinkMangaScreen(query))

val screenType = intent.getStringExtra(INTENT_SEARCH_TYPE).orEmpty()
.ifBlank { "ANIME" }
.let(DeepLinkScreenType::valueOf)

when (screenType) {
DeepLinkScreenType.MANGA -> {
navigator.push(GlobalMangaSearchScreen(query))
navigator.push(DeepLinkMangaScreen(query))
}
DeepLinkScreenType.ANIME -> {
navigator.push(GlobalAnimeSearchScreen(query))
navigator.push(DeepLinkAnimeScreen(query))
}
}
}
null
}
INTENT_SEARCH -> {
INTENT_SEARCH -> { // Used by extensions (url intent handlers)
val query = intent.getStringExtra(INTENT_SEARCH_QUERY)
if (!query.isNullOrEmpty()) {
val filter = intent.getStringExtra(INTENT_SEARCH_FILTER)
Expand All @@ -501,7 +516,7 @@ class MainActivity : BaseActivity() {
}
null
}
INTENT_ANIMESEARCH -> {
INTENT_ANIMESEARCH -> { // Same as above
val query = intent.getStringExtra(INTENT_SEARCH_QUERY)
if (!query.isNullOrEmpty()) {
val filter = intent.getStringExtra(INTENT_SEARCH_FILTER)
Expand All @@ -526,6 +541,7 @@ class MainActivity : BaseActivity() {
const val INTENT_ANIMESEARCH = "eu.kanade.tachiyomi.ANIMESEARCH"
const val INTENT_SEARCH_QUERY = "query"
const val INTENT_SEARCH_FILTER = "filter"
const val INTENT_SEARCH_TYPE = "type"

private var externalPlayerResult: ActivityResultLauncher<Intent>? = null

Expand Down

0 comments on commit 4697f5b

Please sign in to comment.