From d763b4a7aae83beed0d0b8d9467551e39470a9d8 Mon Sep 17 00:00:00 2001 From: LagradOst <11805592+LagradOst@users.noreply.github.com> Date: Wed, 3 Aug 2022 03:02:08 +0200 Subject: [PATCH] fixed bottom dialog style + bugfix --- .../cloudstream3/ui/result/ResultFragment.kt | 9 +- .../ui/result/ResultViewModel2.kt | 92 ++++++++++++++----- app/src/main/res/layout/bottom_loading.xml | 2 +- app/src/main/res/layout/dialog_loading.xml | 2 +- app/src/main/res/layout/fragment_result.xml | 1 + .../main/res/layout/fragment_result_swipe.xml | 1 + app/src/main/res/layout/quick_search.xml | 1 + app/src/main/res/values-ar/strings.xml | 2 +- app/src/main/res/values-bp/strings.xml | 2 +- app/src/main/res/values-cs/strings.xml | 2 +- app/src/main/res/values-de/strings-de.xml | 2 +- app/src/main/res/values-el/strings.xml | 2 +- app/src/main/res/values-es/strings-es.xml | 2 +- app/src/main/res/values-fr/strings.xml | 2 +- app/src/main/res/values-in/strings.xml | 2 +- app/src/main/res/values-it/strings.xml | 2 +- app/src/main/res/values-mk/strings.xml | 2 +- app/src/main/res/values-mo/string.xml | 2 +- app/src/main/res/values-nl/strings.xml | 2 +- app/src/main/res/values-no/strings.xml | 2 +- app/src/main/res/values-pl/strings.xml | 2 +- app/src/main/res/values-pt/strings-pt.xml | 2 +- app/src/main/res/values-ro/strings.xml | 2 +- app/src/main/res/values-sv/strings.xml | 2 +- app/src/main/res/values-tl/strings.xml | 2 +- app/src/main/res/values-tr/strings.xml | 2 +- app/src/main/res/values-vi/strings.xml | 2 +- app/src/main/res/values-zh/strings.xml | 2 +- app/src/main/res/values/strings.xml | 2 +- app/src/main/res/values/styles.xml | 6 +- 30 files changed, 103 insertions(+), 55 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultFragment.kt index 170e9da7..0e0cb8cf 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultFragment.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultFragment.kt @@ -680,6 +680,7 @@ class ResultFragment : ResultTrailerPlayer() { val d = meta.value result_sync_episodes?.progress = currentSyncProgress * 1000 setSyncMaxEpisodes(d.totalEpisodes) + viewModel.setMeta(d, syncModel.getSyncs()) } is Resource.Loading -> { @@ -904,7 +905,6 @@ class ResultFragment : ResultTrailerPlayer() { } observe(viewModel.selectPopup) { popup -> - println("POPUPSTATUS:$popup") when (popup) { is Some.Success -> { popupDialog?.dismissSafe(activity) @@ -917,10 +917,10 @@ class ResultFragment : ResultTrailerPlayer() { act.showBottomDialogInstant( options, title, { popupDialog = null - pop.callback(context ?: return@showBottomDialogInstant, null) + pop.callback(null) }, { popupDialog = null - pop.callback(context ?: return@showBottomDialogInstant, it) + pop.callback(it) } ) } @@ -938,7 +938,7 @@ class ResultFragment : ResultTrailerPlayer() { when (load) { is Some.Success -> { - if(loadingDialog?.isShowing != true) { + if (loadingDialog?.isShowing != true) { loadingDialog?.dismissSafe(activity) loadingDialog = null } @@ -999,7 +999,6 @@ class ResultFragment : ResultTrailerPlayer() { } observe(viewModel.rangeSelections) { range -> - println("RANGE:$range") result_episode_select?.setOnClickListener { view -> view?.context?.let { ctx -> val names = range diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultViewModel2.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultViewModel2.kt index d6ee4a31..799a5f38 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultViewModel2.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultViewModel2.kt @@ -17,6 +17,7 @@ import com.lagradost.cloudstream3.* import com.lagradost.cloudstream3.APIHolder.getId import com.lagradost.cloudstream3.APIHolder.unixTime import com.lagradost.cloudstream3.CommonActivity.getCastSession +import com.lagradost.cloudstream3.CommonActivity.showToast import com.lagradost.cloudstream3.LoadResponse.Companion.addTrailer import com.lagradost.cloudstream3.LoadResponse.Companion.getAniListId import com.lagradost.cloudstream3.LoadResponse.Companion.getMalId @@ -37,6 +38,7 @@ import com.lagradost.cloudstream3.ui.player.SubtitleData import com.lagradost.cloudstream3.ui.subtitles.SubtitlesFragment import com.lagradost.cloudstream3.utils.* import com.lagradost.cloudstream3.utils.AppUtils.getNameFull +import com.lagradost.cloudstream3.utils.AppUtils.isAppInstalled import com.lagradost.cloudstream3.utils.AppUtils.isConnectedToChromecast import com.lagradost.cloudstream3.utils.CastHelper.startCast import com.lagradost.cloudstream3.utils.Coroutines.ioSafe @@ -234,26 +236,23 @@ sealed class SelectPopup { data class SelectArray( val text: UiText, - val options: Int, - val map: Int?, + val options: List>, val callback: (Int?) -> Unit ) : SelectPopup() } -fun SelectPopup.callback(context: Context, input: Int?) { - val ret = transformResult(context, input) +fun SelectPopup.callback(index: Int?) { + val ret = transformResult(index) return when (this) { is SelectPopup.SelectArray -> callback(ret) is SelectPopup.SelectText -> callback(ret) } } -fun SelectPopup.transformResult(context: Context, input: Int?): Int? { +fun SelectPopup.transformResult(input: Int?): Int? { if (input == null) return null return when (this) { - is SelectPopup.SelectArray -> context.resources.getIntArray(map ?: return input) - .getOrNull(input) - ?: input + is SelectPopup.SelectArray -> options.getOrNull(input)?.second is SelectPopup.SelectText -> input } } @@ -268,11 +267,7 @@ fun SelectPopup.getTitle(context: Context): String { fun SelectPopup.getOptions(context: Context): List { return when (this) { is SelectPopup.SelectArray -> { - val cmap = this.map?.let { context.resources.getIntArray(it) } - context.resources.getStringArray(options).toList().filterIndexed { index, s -> - - true - } + this.options.map { it.first.asString(context) } } is SelectPopup.SelectText -> options.map { it.asString(context) } } @@ -637,7 +632,7 @@ class ResultViewModel2 : ViewModel() { parentId: Int, url: String, ) { - safeApiCall { + ioSafe { val generator = RepoLinkGenerator(listOf(episode)) val currentLinks = mutableSetOf() val currentSubs = mutableSetOf() @@ -657,7 +652,15 @@ class ResultViewModel2 : ViewModel() { Toast.LENGTH_SHORT ) } - return@safeApiCall + return@ioSafe + } else { + Coroutines.main { + CommonActivity.showToast( + activity, + R.string.download_started, + Toast.LENGTH_SHORT + ) + } } startDownload( @@ -784,17 +787,16 @@ class ResultViewModel2 : ViewModel() { ) } + @JvmName("postPopupArray") private fun postPopup( text: UiText, - options: Int, - values: Int, + options: List>, callback: suspend (Int?) -> Unit ) { _selectPopup.postValue( some(SelectPopup.SelectArray( text, options, - values ) { value -> viewModelScope.launch { _selectPopup.value = Some.None @@ -893,6 +895,10 @@ class ResultViewModel2 : ViewModel() { private fun playWithVlc(act: Activity?, data: LinkLoadingResult, id: Int) = ioSafe { if (act == null) return@ioSafe + if (data.links.isEmpty()) { + showToast(act, R.string.no_links_found_toast, Toast.LENGTH_SHORT) + return@ioSafe + } try { if (!act.checkWrite()) { act.requestRW() @@ -955,6 +961,31 @@ class ResultViewModel2 : ViewModel() { private suspend fun handleEpisodeClickEvent(activity: Activity?, click: EpisodeClickEvent) { when (click.action) { ACTION_SHOW_OPTIONS -> { + val options = mutableListOf>() + if (activity?.isConnectedToChromecast() == true) { + options.addAll( + listOf( + txt(R.string.episode_action_chromecast_episode) to ACTION_CHROME_CAST_EPISODE, + txt(R.string.episode_action_chromecast_mirror) to ACTION_CHROME_CAST_MIRROR, + ) + ) + } + options.add(txt(R.string.episode_action_play_in_app) to ACTION_PLAY_EPISODE_IN_PLAYER) + + if (activity?.isAppInstalled(VLC_PACKAGE) == true) { + options.add(txt(R.string.episode_action_play_in_vlc) to ACTION_PLAY_EPISODE_IN_VLC_PLAYER) + } + options.addAll( + listOf( + txt(R.string.episode_action_play_in_browser) to ACTION_PLAY_EPISODE_IN_BROWSER, + txt(R.string.episode_action_copy_link) to ACTION_COPY_LINK, + txt(R.string.episode_action_auto_download) to ACTION_DOWNLOAD_EPISODE, + txt(R.string.episode_action_download_mirror) to ACTION_DOWNLOAD_MIRROR, + txt(R.string.episode_action_download_subtitle) to ACTION_DOWNLOAD_EPISODE_SUBTITLE_MIRROR, + txt(R.string.episode_action_reload_links) to ACTION_RELOAD_EPISODE, + ) + ) + postPopup( txt( activity?.getNameFull( @@ -963,8 +994,7 @@ class ResultViewModel2 : ViewModel() { click.data.season ) ?: "" ), // TODO FIX - R.array.episode_long_click_options, - R.array.episode_long_click_options_values + options ) { result -> handleEpisodeClickEvent( activity, @@ -987,7 +1017,13 @@ class ResultViewModel2 : ViewModel() { } } } + /* not implemented, not used ACTION_DOWNLOAD_EPISODE_SUBTITLE -> { + loadLinks(click.data, isVisible = false, isCasting = false) { links -> + downloadSubtitle(activity,links.subs,) + } + }*/ + ACTION_DOWNLOAD_EPISODE_SUBTITLE_MIRROR -> { val response = currentResponse ?: return acquireSingleSubtitle( @@ -1071,7 +1107,7 @@ class ResultViewModel2 : ViewModel() { ACTION_CHROME_CAST_MIRROR -> { acquireSingleLink( click.data, - false, + isCasting = true, txt(R.string.episode_action_chromecast_mirror) ) { (result, index) -> startChromecast(activity, click.data, result.links, result.subs, index) @@ -1079,7 +1115,7 @@ class ResultViewModel2 : ViewModel() { } ACTION_PLAY_EPISODE_IN_BROWSER -> acquireSingleLink( click.data, - false, + isCasting = true, txt(R.string.episode_action_play_in_browser) ) { (result, index) -> try { @@ -1093,7 +1129,7 @@ class ResultViewModel2 : ViewModel() { ACTION_COPY_LINK -> { acquireSingleLink( click.data, - false, + isCasting = true, txt(R.string.episode_action_copy_link) ) { (result, index) -> val act = activity ?: return@acquireSingleLink @@ -1216,9 +1252,14 @@ class ResultViewModel2 : ViewModel() { return out to updateEpisodes } - fun setMeta(meta: SyncAPI.SyncResult, syncs: Map?) = + fun setMeta(meta: SyncAPI.SyncResult, syncs: Map?) { + // I dont want to update everything if the metadata is not relevant + if (currentMeta == meta && currentSync == syncs) { + Log.i(TAG, "setMeta same") + return + } + Log.i(TAG, "setMeta") viewModelScope.launch { - Log.i(TAG, "setMeta") currentMeta = meta currentSync = syncs val (value, updateEpisodes) = Coroutines.ioWork { @@ -1235,6 +1276,7 @@ class ResultViewModel2 : ViewModel() { false ) } + } private suspend fun updateFillers(name: String) { diff --git a/app/src/main/res/layout/bottom_loading.xml b/app/src/main/res/layout/bottom_loading.xml index 6f9def0b..ab05889d 100644 --- a/app/src/main/res/layout/bottom_loading.xml +++ b/app/src/main/res/layout/bottom_loading.xml @@ -16,7 +16,7 @@ android:textColor="?attr/textColor" android:layout_width="match_parent" android:layout_rowWeight="1" - android:text="@string/loading_chromecast" + android:text="@string/loading" android:layout_height="wrap_content" /> diff --git a/app/src/main/res/layout/fragment_result_swipe.xml b/app/src/main/res/layout/fragment_result_swipe.xml index 668e413b..53b8fbd9 100644 --- a/app/src/main/res/layout/fragment_result_swipe.xml +++ b/app/src/main/res/layout/fragment_result_swipe.xml @@ -2,6 +2,7 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical" + style="@style/AlertDialogCustom" android:layout_width="match_parent" android:layout_height="match_parent"> diff --git a/app/src/main/res/layout/quick_search.xml b/app/src/main/res/layout/quick_search.xml index 3e19f05a..eeec4a5c 100644 --- a/app/src/main/res/layout/quick_search.xml +++ b/app/src/main/res/layout/quick_search.xml @@ -1,6 +1,7 @@ شارك فتح في الويب تخطي التحميل - …تحميل + …تحميل مشاهدة في الانتظار diff --git a/app/src/main/res/values-bp/strings.xml b/app/src/main/res/values-bp/strings.xml index 39fd2212..b64ea0e4 100644 --- a/app/src/main/res/values-bp/strings.xml +++ b/app/src/main/res/values-bp/strings.xml @@ -108,7 +108,7 @@ Compartilhar Abrir no Navegador Pular Carregamento - Carregando… + Carregando… Assistindo Em espera diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 1cd6460d..2fefb15f 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -101,7 +101,7 @@ Sdílet Otevřít v prohlížeči Přeskočit načítání - Načítání… + Načítání… Sledování Pozastaveno diff --git a/app/src/main/res/values-de/strings-de.xml b/app/src/main/res/values-de/strings-de.xml index 0850cdda..c1a919c6 100644 --- a/app/src/main/res/values-de/strings-de.xml +++ b/app/src/main/res/values-de/strings-de.xml @@ -24,7 +24,7 @@ Teilen Im Browser öffnen Buffern überspringen - Lädt… + Lädt… Am schauen Pausiert Abgeschlossen diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 9982ca16..de9ac4f4 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -17,7 +17,7 @@ Μοίρασε Άνοιγμα στον περιηγητή Προσπέραση φορτώματος - Φόρτωση… + Φόρτωση… Watching On-Hold diff --git a/app/src/main/res/values-es/strings-es.xml b/app/src/main/res/values-es/strings-es.xml index 170b6f00..3eb6e57d 100644 --- a/app/src/main/res/values-es/strings-es.xml +++ b/app/src/main/res/values-es/strings-es.xml @@ -56,7 +56,7 @@ Compartir Abrir en el navegador Omitir carga - Cargando… + Cargando… Viendo En espera diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index bcce9a8a..6ca5d68a 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -16,7 +16,7 @@ Partager Ouvrir dans le naviguateur Passer le chargement - Chargement… + Chargement… En visionnage En pose Terminé diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index b0ef6f5b..adad5323 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -52,7 +52,7 @@ Bagikan Buka Di Browser Skip Loading - Loading… + Loading… Sedang Menonton Tertahan diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 89159a12..d5869c2f 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -52,7 +52,7 @@ Condividi Apri nel browser Salta caricamento - Caricamento… + Caricamento… Guardando In attesa diff --git a/app/src/main/res/values-mk/strings.xml b/app/src/main/res/values-mk/strings.xml index 229a1a82..96044dc7 100644 --- a/app/src/main/res/values-mk/strings.xml +++ b/app/src/main/res/values-mk/strings.xml @@ -20,7 +20,7 @@ Сподели Отвори во прелистувач Прескокни вчитување - Вчитување… + Вчитување… Моментални гледања Ставено на чекање diff --git a/app/src/main/res/values-mo/string.xml b/app/src/main/res/values-mo/string.xml index bf0f0dca..340428b9 100644 --- a/app/src/main/res/values-mo/string.xml +++ b/app/src/main/res/values-mo/string.xml @@ -17,7 +17,7 @@ aauuh oooohh oooohhhaaaoouuh oooohhooooo - ooh aaahhu + ooh aaahhu aaaghh ooo-ahah aaahhu ahhahooo diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 6a3bac29..60eb1ad2 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -17,7 +17,7 @@ Deel Openen in Browser Laden overslaan - Laden… + Laden… Aan het kijken In de wacht diff --git a/app/src/main/res/values-no/strings.xml b/app/src/main/res/values-no/strings.xml index 1f3ebcc2..8a25fe08 100644 --- a/app/src/main/res/values-no/strings.xml +++ b/app/src/main/res/values-no/strings.xml @@ -28,7 +28,7 @@ Dele Åpne i nettleseren Hopp over - Laster inn… + Laster inn… Ser på På vent diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 8fbd69d4..f6879c5b 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -31,7 +31,7 @@ Udostępnij Otwórz w przeglądarce Pomiń ładowanie - Ładowanie… + Ładowanie… W trakcie Zawieszone diff --git a/app/src/main/res/values-pt/strings-pt.xml b/app/src/main/res/values-pt/strings-pt.xml index 038bf25b..e686c988 100644 --- a/app/src/main/res/values-pt/strings-pt.xml +++ b/app/src/main/res/values-pt/strings-pt.xml @@ -31,7 +31,7 @@ Compartir Abrir no Navegador Saltar Carga - Cargando… + Cargando… Assistindo Em espera diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml index c0ecd4a8..36237180 100644 --- a/app/src/main/res/values-ro/strings.xml +++ b/app/src/main/res/values-ro/strings.xml @@ -52,7 +52,7 @@ Distribuie Deschide în browser Săriți încărcarea - Se încarcă... + Se încarcă... În curs de vizualizare În așteptare diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 605a91ce..3f3cead1 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -20,7 +20,7 @@ Dela Öppna i webbläsaren Hoppa över - Laddar… + Laddar… Tittar på Pausad diff --git a/app/src/main/res/values-tl/strings.xml b/app/src/main/res/values-tl/strings.xml index 49b892ec..9d0e0e02 100644 --- a/app/src/main/res/values-tl/strings.xml +++ b/app/src/main/res/values-tl/strings.xml @@ -35,7 +35,7 @@ I-share Buksan sa browser Skip Loading… - Loading… + Loading… Pinapanood Inihinto diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 0fd76192..dd5e233b 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -56,7 +56,7 @@ Paylaş Tarayıcıda aç Yüklemeyi atla - Yükleniyor… + Yükleniyor… İzleniyor Beklemede diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index f7d7aedf..db8164f2 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -108,7 +108,7 @@ Chia sẻ Mở bằng trình duyệt Bỏ qua - Đang tải… + Đang tải… Đang xem Đang chờ diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index 64c0bbe0..ffda185c 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -38,7 +38,7 @@ 分享 在浏览器中打开 跳过加载 - 正在加载… + 正在加载… 正在观看 暂时搁置 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 1544a7ed..d4c19c6c 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -110,7 +110,7 @@ Share Open In Browser Skip Loading - Loading… + Loading… Watching On-Hold diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 9da8d721..bf5e190a 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -266,6 +266,7 @@ @@ -334,6 +335,9 @@ scrollable--> +