diff --git a/app/build.gradle b/app/build.gradle index 18e96075..1ffdc812 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -36,7 +36,7 @@ android { targetSdkVersion 30 versionCode 50 - versionName "3.0.2" + versionName "3.1.2" resValue "string", "app_version", "${defaultConfig.versionName}${versionNameSuffix ?: ""}" diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultFragmentPhone.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultFragmentPhone.kt index a951638e..750556ad 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultFragmentPhone.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultFragmentPhone.kt @@ -223,8 +223,6 @@ class ResultFragmentPhone : ResultFragment() { popupDialog = null } } - - //showBottomDialogInstant } observe(viewModel.loadedLinks) { load -> @@ -258,6 +256,7 @@ class ResultFragmentPhone : ResultFragment() { } } } + observe(viewModel.selectedSeason) { text -> result_season_button.setText(text) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultFragmentTv.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultFragmentTv.kt index ee58d5f3..895f0724 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultFragmentTv.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultFragmentTv.kt @@ -1,17 +1,22 @@ package com.lagradost.cloudstream3.ui.result +import android.app.Dialog import android.os.Bundle import android.view.View import androidx.core.view.isGone import androidx.core.view.isVisible import androidx.recyclerview.widget.RecyclerView +import com.google.android.material.bottomsheet.BottomSheetDialog import com.lagradost.cloudstream3.DubStatus import com.lagradost.cloudstream3.R import com.lagradost.cloudstream3.SearchResponse import com.lagradost.cloudstream3.mvvm.ResourceSome +import com.lagradost.cloudstream3.mvvm.Some import com.lagradost.cloudstream3.mvvm.observe import com.lagradost.cloudstream3.ui.search.SearchAdapter import com.lagradost.cloudstream3.ui.search.SearchHelper +import com.lagradost.cloudstream3.utils.SingleSelectionHelper.showBottomDialogInstant +import com.lagradost.cloudstream3.utils.UIHelper.dismissSafe import com.lagradost.cloudstream3.utils.UIHelper.popCurrentPage import kotlinx.android.synthetic.main.fragment_result_tv.* @@ -90,7 +95,8 @@ class ResultFragmentTv : ResultFragment() { result_recommendations_filter_selection?.isVisible = false } } - + var loadingDialog: Dialog? = null + var popupDialog: Dialog? = null override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) (result_episodes?.adapter as EpisodeAdapter?)?.apply { @@ -102,6 +108,66 @@ class ResultFragmentTv : ResultFragment() { result_dub_selection.setAdapter() result_recommendations_filter_selection.setAdapter() + observe(viewModel.selectPopup) { popup -> + when (popup) { + is Some.Success -> { + popupDialog?.dismissSafe(activity) + + popupDialog = activity?.let { act -> + val pop = popup.value + val options = pop.getOptions(act) + val title = pop.getTitle(act) + + act.showBottomDialogInstant( + options, title, { + popupDialog = null + pop.callback(null) + }, { + popupDialog = null + pop.callback(it) + } + ) + } + } + is Some.None -> { + popupDialog?.dismissSafe(activity) + popupDialog = null + } + } + } + + observe(viewModel.loadedLinks) { load -> + when (load) { + is Some.Success -> { + if (loadingDialog?.isShowing != true) { + loadingDialog?.dismissSafe(activity) + loadingDialog = null + } + loadingDialog = loadingDialog ?: context?.let { ctx -> + val builder = + BottomSheetDialog(ctx) + builder.setContentView(R.layout.bottom_loading) + builder.setOnDismissListener { + loadingDialog = null + viewModel.cancelLinks() + } + //builder.setOnCancelListener { + // it?.dismiss() + //} + builder.setCanceledOnTouchOutside(true) + + builder.show() + + builder + } + } + is Some.None -> { + loadingDialog?.dismissSafe(activity) + loadingDialog = null + } + } + } + observe(viewModel.episodesCountText) { count -> result_episodes_text.setText(count) 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 3d9e83c3..90ebb52f 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 @@ -202,7 +202,8 @@ fun LoadResponse.toResultData(repo: APIRepository): ResultData { ), yearText = txt(year?.toString()), apiName = txt(apiName), - ratingText = rating?.div(1000f)?.let { txt(R.string.rating_format, it) }, + ratingText = rating?.div(1000f) + ?.let { if (it <= 0.1f) null else txt(R.string.rating_format, it) }, vpnText = txt( when (repo.vpnStatus) { VPNStatus.None -> null