From 81113ea43673a94911bfee24b33772a767b97f83 Mon Sep 17 00:00:00 2001 From: LagradOst <11805592+LagradOst@users.noreply.github.com> Date: Wed, 22 Jun 2022 03:20:10 +0200 Subject: [PATCH] crash fixes --- .../cloudstream3/ui/player/GeneratorPlayer.kt | 34 ++++++++++--------- .../ui/result/ResultTrailerPlayer.kt | 4 +++ .../cloudstream3/ui/result/SyncViewModel.kt | 9 +++-- 3 files changed, 29 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt index 67adad76..24a87cde 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt @@ -518,7 +518,7 @@ class GeneratorPlayer : FullScreenPlayer() { val subsArrayAdapter = ArrayAdapter(ctx, R.layout.sort_bottom_single_choice) - subsArrayAdapter.add(getString(R.string.no_subtitles)) + subsArrayAdapter.add(ctx.getString(R.string.no_subtitles)) subsArrayAdapter.addAll(currentSubtitles.map { it.name }) subtitleList.adapter = subsArrayAdapter @@ -838,20 +838,22 @@ class GeneratorPlayer : FullScreenPlayer() { tvType = meta.tvType } } - - //Generate video title - val playerVideoTitle = if (headerName != null) { - (headerName + - if (tvType.isEpisodeBased() && episode != null) - if (season == null) - " - ${getString(R.string.episode)} $episode" - else - " \"${getString(R.string.season_short)}${season}:${getString(R.string.episode_short)}${episode}\"" - else "") + if (subName.isNullOrBlank() || subName == headerName) "" else " - $subName" - } else { - "" + context?.let { ctx -> + //Generate video title + val playerVideoTitle = if (headerName != null) { + (headerName + + if (tvType.isEpisodeBased() && episode != null) + if (season == null) + " - ${ctx.getString(R.string.episode)} $episode" + else + " \"${ctx.getString(R.string.season_short)}${season}:${ctx.getString(R.string.episode_short)}${episode}\"" + else "") + if (subName.isNullOrBlank() || subName == headerName) "" else " - $subName" + } else { + "" + } + return playerVideoTitle } - return playerVideoTitle + return "" } @@ -933,8 +935,8 @@ class GeneratorPlayer : FullScreenPlayer() { context?.let { ctx -> val settingsManager = PreferenceManager.getDefaultSharedPreferences(ctx) - titleRez = settingsManager.getInt(getString(R.string.prefer_limit_title_rez_key), 3) - limitTitle = settingsManager.getInt(getString(R.string.prefer_limit_title_key), 0) + titleRez = settingsManager.getInt(ctx.getString(R.string.prefer_limit_title_rez_key), 3) + limitTitle = settingsManager.getInt(ctx.getString(R.string.prefer_limit_title_key), 0) updateForcedEncoding(ctx) } diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultTrailerPlayer.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultTrailerPlayer.kt index 0e326767..db0a7e16 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultTrailerPlayer.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/result/ResultTrailerPlayer.kt @@ -1,5 +1,6 @@ package com.lagradost.cloudstream3.ui.result +import android.content.Context import android.content.res.Configuration import android.graphics.Rect import android.os.Bundle @@ -73,6 +74,9 @@ open class ResultTrailerPlayer : com.lagradost.cloudstream3.ui.player.FullScreen fixPlayerSize() } + override fun showMirrorsDialogue() {} + override fun openOnlineSubPicker(context: Context, imdbId: Long?, dismissCallback: () -> Unit) {} + override fun subtitlesChanged() {} override fun embeddedSubtitlesFetched(subtitles: List) {} diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/result/SyncViewModel.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/result/SyncViewModel.kt index cc42cc8d..097da927 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/result/SyncViewModel.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/result/SyncViewModel.kt @@ -7,6 +7,7 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope import com.lagradost.cloudstream3.apmap import com.lagradost.cloudstream3.mvvm.Resource +import com.lagradost.cloudstream3.mvvm.logError import com.lagradost.cloudstream3.syncproviders.AccountManager.Companion.SyncApis import com.lagradost.cloudstream3.syncproviders.AccountManager.Companion.aniListApi import com.lagradost.cloudstream3.syncproviders.AccountManager.Companion.malApi @@ -234,11 +235,15 @@ class SyncViewModel : ViewModel() { _metaResponse.postValue(Resource.Loading()) var lastError: Resource = Resource.Failure(false, null, null, "No data") - val current = syncs.toList() + val current = ArrayList(syncs.toList()) // shitty way to sort anilist first, as it has trailers while mal does not if (syncs.containsKey(aniListApi.idPrefix)) { - Collections.swap(current, current.indexOfFirst { it.first == aniListApi.idPrefix }, 0) + try { // swap can throw error + Collections.swap(current, current.indexOfFirst { it.first == aniListApi.idPrefix }, 0) + } catch (e : Exception) { + logError(e) + } } current.forEach { (prefix, id) ->