From 26d97da066767fb4b6cf4e53a5aa818a20586c18 Mon Sep 17 00:00:00 2001 From: TwistedUmbrellaX Date: Tue, 19 Mar 2024 19:59:50 -0400 Subject: [PATCH 1/2] feat: automatically check sources --- .../dantotsu/media/anime/AnimeWatchAdapter.kt | 19 +++++++++++++++++-- .../dantotsu/media/manga/MangaReadAdapter.kt | 16 ++++++++++++++++ .../ani/dantotsu/settings/SettingsActivity.kt | 5 +++++ .../dantotsu/settings/saving/Preferences.kt | 1 + .../drawable/ic_round_search_sources_24.xml | 17 +++++++++++++++++ .../res/layout/activity_settings_common.xml | 18 ++++++++++++++++++ app/src/main/res/values/strings.xml | 1 + 7 files changed, 75 insertions(+), 2 deletions(-) create mode 100644 app/src/main/res/drawable/ic_round_search_sources_24.xml 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..c9995cc5 100644 --- a/app/src/main/res/layout/activity_settings_common.xml +++ b/app/src/main/res/layout/activity_settings_common.xml @@ -263,6 +263,24 @@ app:showText="false" app:thumbTint="@color/button_switch_track" /> + + Planned Manga Open image by Long Clicking Always continue Shows + Search available sources Useful if you are getting Handshake Fails Use Proxy for Timestamps Always check for App Updates From 75b78886ae1e243c3840669515707761a7141b4d Mon Sep 17 00:00:00 2001 From: TwistedUmbrellaX Date: Fri, 22 Mar 2024 09:57:31 -0400 Subject: [PATCH 2/2] fix: clarify deceptive descriptions --- app/src/main/res/layout/activity_settings_common.xml | 2 +- app/src/main/res/values/strings.xml | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/layout/activity_settings_common.xml b/app/src/main/res/layout/activity_settings_common.xml index c9995cc5..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,7 @@ 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" diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8a2062d7..3e2957f8 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -174,7 +174,7 @@ 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,8 +369,8 @@ Planned Anime Planned Manga Open image by Long Clicking - Always continue Shows - Search available sources + Always continue previous items + Search next available source Useful if you are getting Handshake Fails Use Proxy for Timestamps Always check for App Updates