From cff67b7db3cd41cbac054c790d02c69110e86ef5 Mon Sep 17 00:00:00 2001 From: Blatzar <46196380+Blatzar@users.noreply.github.com> Date: Mon, 15 Aug 2022 16:44:46 +0200 Subject: [PATCH] Fix index out of bounds --- app/src/main/java/com/lagradost/cloudstream3/MainAPI.kt | 2 +- .../lagradost/cloudstream3/ui/result/ResultFragment.kt | 8 +++----- .../cloudstream3/ui/result/ResultFragmentPhone.kt | 4 ++-- .../lagradost/cloudstream3/ui/search/SearchFragment.kt | 5 +++-- 4 files changed, 9 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/MainAPI.kt b/app/src/main/java/com/lagradost/cloudstream3/MainAPI.kt index f342836c..97611dbf 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/MainAPI.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/MainAPI.kt @@ -92,7 +92,7 @@ object APIHolder { } private fun getLoadResponseIdFromUrl(url: String, apiName: String): Int { - return url.replace(getApiFromName(apiName).mainUrl, "").replace("/", "").hashCode() + return url.replace(getApiFromNameNull(apiName)?.mainUrl ?: "", "").replace("/", "").hashCode() } fun LoadResponse.getId(): Int { 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 5cb8f410..785db28d 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 @@ -101,9 +101,7 @@ import kotlinx.coroutines.runBlocking import android.widget.EditText import android.widget.AbsListView - - - +import com.lagradost.cloudstream3.APIHolder.getApiFromNameNull const val START_ACTION_RESUME_LATEST = 1 @@ -470,11 +468,11 @@ open class ResultFragment : ResultTrailerPlayer() { } syncModel.addFromUrl(url) - val api = getApiFromName(apiName) + val api = getApiFromNameNull(apiName) result_episodes?.adapter = EpisodeAdapter( - api.hasDownloadSupport, + api?.hasDownloadSupport == true, { episodeClick -> viewModel.handleAction(activity, episodeClick) }, 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 7f4e0ee0..fe3021b3 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 @@ -197,10 +197,10 @@ class ResultFragmentPhone : ResultFragment() { } //result_poster_blur_holder?.translationY = -scrollY.toFloat() }) - val api = APIHolder.getApiFromName(apiName) + val api = APIHolder.getApiFromNameNull(apiName) if (media_route_button != null) { - val chromecastSupport = api.hasChromecastSupport + val chromecastSupport = api?.hasChromecastSupport == true media_route_button?.alpha = if (chromecastSupport) 1f else 0.3f if (!chromecastSupport) { media_route_button?.setOnClickListener { diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/search/SearchFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/search/SearchFragment.kt index 041d1a7e..5ab2db1c 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/search/SearchFragment.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/search/SearchFragment.kt @@ -23,6 +23,7 @@ import com.lagradost.cloudstream3.* import com.lagradost.cloudstream3.APIHolder.filterProviderByPreferredMedia import com.lagradost.cloudstream3.APIHolder.filterSearchResultByFilmQuality import com.lagradost.cloudstream3.APIHolder.getApiFromName +import com.lagradost.cloudstream3.APIHolder.getApiFromNameNull import com.lagradost.cloudstream3.APIHolder.getApiProviderLangSettings import com.lagradost.cloudstream3.APIHolder.getApiSettings import com.lagradost.cloudstream3.AcraApplication.Companion.removeKey @@ -105,11 +106,11 @@ class SearchFragment : Fragment() { searchViewModel.searchAndCancel( query = query, providersActive = selectedApis.filter { name -> - settings.contains(name) && getApiFromName(name).supportedTypes.any { + settings.contains(name) && getApiFromNameNull(name)?.supportedTypes?.any { selectedSearchTypes.contains( it ) - } + } == true }.toSet() ) }