diff --git a/app/src/main/java/ani/dantotsu/media/anime/AnimeWatchAdapter.kt b/app/src/main/java/ani/dantotsu/media/anime/AnimeWatchAdapter.kt index 3b69477f..2f798a22 100644 --- a/app/src/main/java/ani/dantotsu/media/anime/AnimeWatchAdapter.kt +++ b/app/src/main/java/ani/dantotsu/media/anime/AnimeWatchAdapter.kt @@ -159,8 +159,7 @@ class AnimeWatchAdapter( } subscribeButton(false) fragment.loadEpisodes(media.selected!!.sourceIndex, true) - } ?: run { - } + } ?: run { } } //settings @@ -430,6 +429,22 @@ class AnimeWatchAdapter( val sourceFound = media.anime.episodes!!.isNotEmpty() binding.animeSourceNotFound.isGone = sourceFound binding.faqbutton.isGone = sourceFound + if (!sourceFound && PrefManager.getVal(PrefName.SearchSources)) { + if (binding.animeSource.adapter.count > media.selected!!.sourceIndex + 1) { + val nextIndex = media.selected!!.sourceIndex + 1 + binding.animeSource.setText(binding.animeSource.adapter + .getItem(nextIndex).toString(), false) + fragment.onSourceChange(nextIndex).apply { + binding.animeSourceTitle.text = showUserText + showUserTextListener = { MainScope().launch { binding.animeSourceTitle.text = it } } + binding.animeSourceDubbed.isChecked = selectDub + binding.animeSourceDubbedCont.isVisible = isDubAvailableSeparately() + setLanguageList(0, nextIndex) + } + subscribeButton(false) + fragment.loadEpisodes(nextIndex, false) + } + } } else { binding.animeSourceContinue.visibility = View.GONE binding.animeSourceNotFound.visibility = View.GONE diff --git a/app/src/main/java/ani/dantotsu/media/manga/MangaReadAdapter.kt b/app/src/main/java/ani/dantotsu/media/manga/MangaReadAdapter.kt index 16cd3ed0..08a9bfb9 100644 --- a/app/src/main/java/ani/dantotsu/media/manga/MangaReadAdapter.kt +++ b/app/src/main/java/ani/dantotsu/media/manga/MangaReadAdapter.kt @@ -481,6 +481,22 @@ class MangaReadAdapter( val sourceFound = media.manga.chapters!!.isNotEmpty() binding.animeSourceNotFound.isGone = sourceFound binding.faqbutton.isGone = sourceFound + if (!sourceFound && PrefManager.getVal(PrefName.SearchSources)) { + if (binding.animeSource.adapter.count > media.selected!!.sourceIndex + 1) { + val nextIndex = media.selected!!.sourceIndex + 1 + binding.animeSource.setText(binding.animeSource.adapter + .getItem(nextIndex).toString(), false) + fragment.onSourceChange(nextIndex).apply { + binding.animeSourceTitle.text = showUserText + showUserTextListener = { MainScope().launch { binding.animeSourceTitle.text = it } } + setLanguageList(0, nextIndex) + } + subscribeButton(false) + // invalidate if it's the last source + val invalidate = nextIndex == mangaReadSources.names.size - 1 + fragment.loadChapters(nextIndex, invalidate) + } + } } else { binding.animeSourceContinue.visibility = View.GONE binding.animeSourceNotFound.visibility = View.GONE diff --git a/app/src/main/java/ani/dantotsu/settings/SettingsActivity.kt b/app/src/main/java/ani/dantotsu/settings/SettingsActivity.kt index 12b0701d..555c7330 100644 --- a/app/src/main/java/ani/dantotsu/settings/SettingsActivity.kt +++ b/app/src/main/java/ani/dantotsu/settings/SettingsActivity.kt @@ -710,6 +710,11 @@ class SettingsActivity : AppCompatActivity(), SimpleDialog.OnDialogResultListene PrefManager.setVal(PrefName.ContinueMedia, isChecked) } + settingsSearchSources.isChecked = PrefManager.getVal(PrefName.SearchSources) + settingsSearchSources.setOnCheckedChangeListener { _, isChecked -> + PrefManager.setVal(PrefName.SearchSources, isChecked) + } + settingsRecentlyListOnly.isChecked = PrefManager.getVal(PrefName.RecentlyListOnly) settingsRecentlyListOnly.setOnCheckedChangeListener { _, isChecked -> PrefManager.setVal(PrefName.RecentlyListOnly, isChecked) diff --git a/app/src/main/java/ani/dantotsu/settings/saving/Preferences.kt b/app/src/main/java/ani/dantotsu/settings/saving/Preferences.kt index 5149c031..ddbd84f4 100644 --- a/app/src/main/java/ani/dantotsu/settings/saving/Preferences.kt +++ b/app/src/main/java/ani/dantotsu/settings/saving/Preferences.kt @@ -15,6 +15,7 @@ enum class PrefName(val data: Pref) { //TODO: Split this into multiple files NSFWExtension(Pref(Location.General, Boolean::class, true)), SdDl(Pref(Location.General, Boolean::class, false)), ContinueMedia(Pref(Location.General, Boolean::class, true)), + SearchSources(Pref(Location.General, Boolean::class, true)), RecentlyListOnly(Pref(Location.General, Boolean::class, false)), SettingsPreferDub(Pref(Location.General, Boolean::class, false)), SubscriptionCheckingNotifications(Pref(Location.General, Boolean::class, true)), diff --git a/app/src/main/res/drawable/ic_round_search_sources_24.xml b/app/src/main/res/drawable/ic_round_search_sources_24.xml new file mode 100644 index 00000000..48e31b13 --- /dev/null +++ b/app/src/main/res/drawable/ic_round_search_sources_24.xml @@ -0,0 +1,17 @@ + + + + + + + diff --git a/app/src/main/res/layout/activity_settings_common.xml b/app/src/main/res/layout/activity_settings_common.xml index 90cc38e4..acee97cd 100644 --- a/app/src/main/res/layout/activity_settings_common.xml +++ b/app/src/main/res/layout/activity_settings_common.xml @@ -255,7 +255,25 @@ android:elegantTextHeight="true" android:fontFamily="@font/poppins_bold" android:minHeight="64dp" - android:text="@string/always_continue_shows" + android:text="@string/always_continue_content" + android:textAlignment="viewStart" + android:textColor="?attr/colorOnBackground" + app:cornerRadius="0dp" + app:drawableTint="?attr/colorPrimary" + app:showText="false" + app:thumbTint="@color/button_switch_track" /> + + Settings Extensions Player Settings - Only show My Shows in Recently Updated + Only show my content in \"Recently Updated\" Download Manager Download in SD card No SD card was Found. @@ -369,7 +369,8 @@ Planned Anime Planned Manga Open image by Long Clicking - Always continue Shows + Always continue previous items + Search next available source Useful if you are getting Handshake Fails Use Proxy for Timestamps Always check for App Updates