From 47e3876e4a8e169fba562d854b1ae3eae52b1c27 Mon Sep 17 00:00:00 2001 From: LagradOst Date: Thu, 10 Jun 2021 21:43:05 +0200 Subject: [PATCH] more chromecast stuff --- .../com/lagradost/cloudstream3/MainAPI.kt | 3 +++ .../com/lagradost/cloudstream3/UIHelper.kt | 10 ++++++---- .../cloudstream3/ui/player/PlayerFragment.kt | 13 +++++++----- .../cloudstream3/ui/result/EpisodeAdapter.kt | 2 +- .../cloudstream3/ui/result/ResultFragment.kt | 20 ++++++++++--------- .../cloudstream3/utils/ExtractorApi.kt | 2 ++ .../drawable/dialog__window_background.xml | 2 +- app/src/main/res/drawable/rounded_dialog.xml | 2 +- app/src/main/res/layout/dialog_loading.xml | 16 +++++++++++++++ app/src/main/res/layout/fragment_result.xml | 20 ++++++++++++++++--- 10 files changed, 66 insertions(+), 24 deletions(-) create mode 100644 app/src/main/res/layout/dialog_loading.xml diff --git a/app/src/main/java/com/lagradost/cloudstream3/MainAPI.kt b/app/src/main/java/com/lagradost/cloudstream3/MainAPI.kt index 64143754..6a63e5e1 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/MainAPI.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/MainAPI.kt @@ -67,6 +67,9 @@ fun MainAPI.fixUrl(url: String): String { return url } +fun sortUrls(urls: List): List { + return urls.sortedBy { t -> -t.quality } +} data class Link( val name: String, diff --git a/app/src/main/java/com/lagradost/cloudstream3/UIHelper.kt b/app/src/main/java/com/lagradost/cloudstream3/UIHelper.kt index f5efb25c..79e2ff06 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/UIHelper.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/UIHelper.kt @@ -164,7 +164,8 @@ object UIHelper { // Enables regular immersive mode. // For "lean back" mode, remove SYSTEM_UI_FLAG_IMMERSIVE. // Or for "sticky immersive," replace it with SYSTEM_UI_FLAG_IMMERSIVE_STICKY - window.decorView.systemUiVisibility = (View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY + window.decorView.systemUiVisibility = ( + View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY // Set the content to appear under the system bars so that the // content doesn't resize when the system bars hide and show. or View.SYSTEM_UI_FLAG_LAYOUT_STABLE @@ -254,9 +255,10 @@ object UIHelper { // Shows the system bars by removing all the flags // except for the ones that make the content appear under the system bars. fun Activity.showSystemUI() { - window.decorView.systemUiVisibility = (View.SYSTEM_UI_FLAG_LAYOUT_STABLE - or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION - or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN) + window.decorView.systemUiVisibility = ( + View.SYSTEM_UI_FLAG_LAYOUT_STABLE + or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN + ) // or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION // window.clearFlags(View.KEEP_SCREEN_ON) } } \ No newline at end of file diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/PlayerFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/PlayerFragment.kt index 8d9f5770..2d0f2b47 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/PlayerFragment.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/PlayerFragment.kt @@ -855,7 +855,9 @@ class PlayerFragment : Fragment() { val speedsNumbers = arrayOf(0.5f, 0.75f, 1f, 1.25f, 1.5f, 1.75f, 2f) val builder = AlertDialog.Builder(requireContext(), R.style.AlertDialogCustom) builder.setTitle("Pick playback speed") - + builder.setOnDismissListener { + activity?.hideSystemUI() + } builder.setSingleChoiceItems(speedsText, speedsNumbers.indexOf(playbackSpeed)) { _, which -> //val speed = speedsText[which] @@ -868,6 +870,7 @@ class PlayerFragment : Fragment() { player_speed_text.text = "Speed (${playbackSpeed}x)".replace(".0x", "x") dialog.dismiss() + activity?.hideSystemUI() } dialog = builder.create() dialog.show() @@ -880,6 +883,9 @@ class PlayerFragment : Fragment() { val sourcesText = sources.map { it.name } val builder = AlertDialog.Builder(requireContext(), R.style.AlertDialogCustom) builder.setTitle("Pick source") + builder.setOnDismissListener { + activity?.hideSystemUI() + } builder.setSingleChoiceItems(sourcesText.toTypedArray(), sources.indexOf(getCurrentUrl())) { _, which -> //val speed = speedsText[which] @@ -888,6 +894,7 @@ class PlayerFragment : Fragment() { initPlayer(getCurrentUrl()) dialog.dismiss() + activity?.hideSystemUI() } dialog = builder.create() dialog.show() @@ -948,10 +955,6 @@ class PlayerFragment : Fragment() { } } - private fun sortUrls(urls: List): List { - return urls.sortedBy { t -> -t.quality } - } - private fun getEpisode(): ResultEpisode? { return try { episodes[playerData.episodeIndex] diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/result/EpisodeAdapter.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/result/EpisodeAdapter.kt index c067967d..576798ef 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/result/EpisodeAdapter.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/result/EpisodeAdapter.kt @@ -82,7 +82,7 @@ class EpisodeAdapter( episodeHolder.setOnClickListener { if (activity.isCastApiAvailable()) { val castContext = CastContext.getSharedInstance(activity) - println("SSTATE: " + castContext.castState + "<<") + if (castContext.castState == CastState.CONNECTED) { clickCallback.invoke(EpisodeClickEvent(ACTION_CHROME_CAST_EPISODE, card)) } else { 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 33e271c9..fbacb555 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 @@ -33,10 +33,6 @@ import com.google.android.gms.cast.framework.CastContext import com.google.android.gms.cast.framework.CastState import com.google.android.gms.common.images.WebImage import com.google.android.material.button.MaterialButton -import com.lagradost.cloudstream3.AnimeLoadResponse -import com.lagradost.cloudstream3.LoadResponse -import com.lagradost.cloudstream3.R -import com.lagradost.cloudstream3.ShowStatus import com.lagradost.cloudstream3.UIHelper.fixPaddingStatusbar import com.lagradost.cloudstream3.UIHelper.isCastApiAvailable import com.lagradost.cloudstream3.mvvm.Resource @@ -48,6 +44,7 @@ import jp.wasabeef.glide.transformations.BlurTransformation import kotlinx.android.synthetic.main.fragment_result.* import org.json.JSONObject import android.app.ProgressDialog +import com.lagradost.cloudstream3.* const val MAX_SYNO_LENGH = 300 @@ -150,20 +147,25 @@ class ResultFragment : Fragment() { val buildInPlayer = true when (episodeClick.action) { ACTION_CHROME_CAST_EPISODE -> { - val dialog = ProgressDialog.show(requireContext(), "", - "Loading. Please wait...", true) - dialog.show() + + /* + val builder = AlertDialog.Builder(requireContext(), R.style.AlertDialogCustom) + val customLayout = layoutInflater.inflate(R.layout.dialog_loading, null); + builder.setView(customLayout) + + val dialog = builder.create()*/ + //dialog.show() Toast.makeText(activity, "Loading links", Toast.LENGTH_SHORT).show() viewModel.loadEpisode(episodeClick.data, true) { data -> - dialog.dismiss() + // dialog.dismiss() when (data) { is Resource.Failure -> { Toast.makeText(activity, "Failed to load links", Toast.LENGTH_SHORT).show() } is Resource.Success -> { val epData = episodeClick.data - val links = data.value + val links = sortUrls(data.value) val castContext = CastContext.getSharedInstance(requireContext()) diff --git a/app/src/main/java/com/lagradost/cloudstream3/utils/ExtractorApi.kt b/app/src/main/java/com/lagradost/cloudstream3/utils/ExtractorApi.kt index d7b012a4..982184f1 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/utils/ExtractorApi.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/utils/ExtractorApi.kt @@ -19,6 +19,8 @@ fun ExtractorLink.getId() : Int { return url.hashCode() } + + enum class Qualities(var value: Int) { Unknown(0), SD(-1), // 360p - 480p diff --git a/app/src/main/res/drawable/dialog__window_background.xml b/app/src/main/res/drawable/dialog__window_background.xml index 526d7f30..ccb9fb5b 100644 --- a/app/src/main/res/drawable/dialog__window_background.xml +++ b/app/src/main/res/drawable/dialog__window_background.xml @@ -2,6 +2,6 @@ - + \ No newline at end of file diff --git a/app/src/main/res/drawable/rounded_dialog.xml b/app/src/main/res/drawable/rounded_dialog.xml index a112b2cc..46d65f11 100644 --- a/app/src/main/res/drawable/rounded_dialog.xml +++ b/app/src/main/res/drawable/rounded_dialog.xml @@ -1,7 +1,7 @@ - + diff --git a/app/src/main/res/layout/dialog_loading.xml b/app/src/main/res/layout/dialog_loading.xml new file mode 100644 index 00000000..0f5b8580 --- /dev/null +++ b/app/src/main/res/layout/dialog_loading.xml @@ -0,0 +1,16 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_result.xml b/app/src/main/res/layout/fragment_result.xml index d01f9d82..da8d8b6d 100644 --- a/app/src/main/res/layout/fragment_result.xml +++ b/app/src/main/res/layout/fragment_result.xml @@ -1,5 +1,5 @@ - - + + + + + + - \ No newline at end of file + \ No newline at end of file