mirror of
https://github.com/recloudstream/cloudstream.git
synced 2024-08-15 01:53:11 +00:00
Change @UnstableAPI to the more appropriated @OptIn
This commit is contained in:
parent
21615cdd95
commit
d5a0768056
16 changed files with 20 additions and 30 deletions
|
@ -33,7 +33,6 @@ import androidx.core.view.isVisible
|
||||||
import androidx.core.view.marginStart
|
import androidx.core.view.marginStart
|
||||||
import androidx.fragment.app.FragmentActivity
|
import androidx.fragment.app.FragmentActivity
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.media3.common.util.UnstableApi
|
|
||||||
import androidx.navigation.NavController
|
import androidx.navigation.NavController
|
||||||
import androidx.navigation.NavDestination
|
import androidx.navigation.NavDestination
|
||||||
import androidx.navigation.NavDestination.Companion.hierarchy
|
import androidx.navigation.NavDestination.Companion.hierarchy
|
||||||
|
@ -83,13 +82,13 @@ import com.lagradost.cloudstream3.plugins.PluginManager.loadAllOnlinePlugins
|
||||||
import com.lagradost.cloudstream3.plugins.PluginManager.loadSinglePlugin
|
import com.lagradost.cloudstream3.plugins.PluginManager.loadSinglePlugin
|
||||||
import com.lagradost.cloudstream3.receivers.VideoDownloadRestartReceiver
|
import com.lagradost.cloudstream3.receivers.VideoDownloadRestartReceiver
|
||||||
import com.lagradost.cloudstream3.services.SubscriptionWorkManager
|
import com.lagradost.cloudstream3.services.SubscriptionWorkManager
|
||||||
import com.lagradost.cloudstream3.syncproviders.AccountManager.Companion.OAuth2Apis
|
|
||||||
import com.lagradost.cloudstream3.syncproviders.AccountManager.Companion.accountManagers
|
|
||||||
import com.lagradost.cloudstream3.syncproviders.AccountManager.Companion.APP_STRING
|
import com.lagradost.cloudstream3.syncproviders.AccountManager.Companion.APP_STRING
|
||||||
import com.lagradost.cloudstream3.syncproviders.AccountManager.Companion.APP_STRING_PLAYER
|
import com.lagradost.cloudstream3.syncproviders.AccountManager.Companion.APP_STRING_PLAYER
|
||||||
import com.lagradost.cloudstream3.syncproviders.AccountManager.Companion.APP_STRING_REPO
|
import com.lagradost.cloudstream3.syncproviders.AccountManager.Companion.APP_STRING_REPO
|
||||||
import com.lagradost.cloudstream3.syncproviders.AccountManager.Companion.APP_STRING_RESUME_WATCHING
|
import com.lagradost.cloudstream3.syncproviders.AccountManager.Companion.APP_STRING_RESUME_WATCHING
|
||||||
import com.lagradost.cloudstream3.syncproviders.AccountManager.Companion.APP_STRING_SEARCH
|
import com.lagradost.cloudstream3.syncproviders.AccountManager.Companion.APP_STRING_SEARCH
|
||||||
|
import com.lagradost.cloudstream3.syncproviders.AccountManager.Companion.OAuth2Apis
|
||||||
|
import com.lagradost.cloudstream3.syncproviders.AccountManager.Companion.accountManagers
|
||||||
import com.lagradost.cloudstream3.syncproviders.AccountManager.Companion.inAppAuths
|
import com.lagradost.cloudstream3.syncproviders.AccountManager.Companion.inAppAuths
|
||||||
import com.lagradost.cloudstream3.syncproviders.AccountManager.Companion.localListApi
|
import com.lagradost.cloudstream3.syncproviders.AccountManager.Companion.localListApi
|
||||||
import com.lagradost.cloudstream3.syncproviders.SyncAPI
|
import com.lagradost.cloudstream3.syncproviders.SyncAPI
|
||||||
|
@ -331,7 +330,6 @@ class MainActivity : AppCompatActivity(), ColorPickerDialogListener, BiometricCa
|
||||||
* @return true if the str has launched an app task (be it successful or not)
|
* @return true if the str has launched an app task (be it successful or not)
|
||||||
* @param isWebview does not handle providers and opening download page if true. Can still add repos and login.
|
* @param isWebview does not handle providers and opening download page if true. Can still add repos and login.
|
||||||
* */
|
* */
|
||||||
@UnstableApi
|
|
||||||
fun handleAppIntentUrl(
|
fun handleAppIntentUrl(
|
||||||
activity: FragmentActivity?,
|
activity: FragmentActivity?,
|
||||||
str: String?,
|
str: String?,
|
||||||
|
@ -691,13 +689,11 @@ class MainActivity : AppCompatActivity(), ColorPickerDialogListener, BiometricCa
|
||||||
super.onDestroy()
|
super.onDestroy()
|
||||||
}
|
}
|
||||||
|
|
||||||
@UnstableApi
|
|
||||||
override fun onNewIntent(intent: Intent?) {
|
override fun onNewIntent(intent: Intent?) {
|
||||||
handleAppIntent(intent)
|
handleAppIntent(intent)
|
||||||
super.onNewIntent(intent)
|
super.onNewIntent(intent)
|
||||||
}
|
}
|
||||||
|
|
||||||
@UnstableApi
|
|
||||||
private fun handleAppIntent(intent: Intent?) {
|
private fun handleAppIntent(intent: Intent?) {
|
||||||
if (intent == null) return
|
if (intent == null) return
|
||||||
val str = intent.dataString
|
val str = intent.dataString
|
||||||
|
@ -1099,7 +1095,6 @@ class MainActivity : AppCompatActivity(), ColorPickerDialogListener, BiometricCa
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@UnstableApi
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
app.initClient(this)
|
app.initClient(this)
|
||||||
val settingsManager = PreferenceManager.getDefaultSharedPreferences(this)
|
val settingsManager = PreferenceManager.getDefaultSharedPreferences(this)
|
||||||
|
|
|
@ -264,7 +264,7 @@ class SelectSourceController(val view: ImageView, val activity: ControllerActivi
|
||||||
|
|
||||||
var isLoadingMore = false
|
var isLoadingMore = false
|
||||||
|
|
||||||
@UnstableApi
|
|
||||||
override fun onMediaStatusUpdated() {
|
override fun onMediaStatusUpdated() {
|
||||||
super.onMediaStatusUpdated()
|
super.onMediaStatusUpdated()
|
||||||
val meta = getCurrentMetaData()
|
val meta = getCurrentMetaData()
|
||||||
|
|
|
@ -8,6 +8,7 @@ import android.webkit.JavascriptInterface
|
||||||
import android.webkit.WebResourceRequest
|
import android.webkit.WebResourceRequest
|
||||||
import android.webkit.WebView
|
import android.webkit.WebView
|
||||||
import android.webkit.WebViewClient
|
import android.webkit.WebViewClient
|
||||||
|
import androidx.annotation.OptIn
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.fragment.app.FragmentActivity
|
import androidx.fragment.app.FragmentActivity
|
||||||
import androidx.media3.common.util.UnstableApi
|
import androidx.media3.common.util.UnstableApi
|
||||||
|
@ -30,7 +31,7 @@ class WebviewFragment : Fragment() {
|
||||||
}
|
}
|
||||||
|
|
||||||
binding?.webView?.webViewClient = object : WebViewClient() {
|
binding?.webView?.webViewClient = object : WebViewClient() {
|
||||||
@UnstableApi
|
@OptIn(UnstableApi::class)
|
||||||
override fun shouldOverrideUrlLoading(
|
override fun shouldOverrideUrlLoading(
|
||||||
view: WebView?,
|
view: WebView?,
|
||||||
request: WebResourceRequest?
|
request: WebResourceRequest?
|
||||||
|
|
|
@ -71,7 +71,6 @@ const val NEXT_WATCH_EPISODE_PERCENTAGE = 90
|
||||||
// when the player should sync the progress of "watched", TODO MAKE SETTING
|
// when the player should sync the progress of "watched", TODO MAKE SETTING
|
||||||
const val UPDATE_SYNC_PROGRESS_PERCENTAGE = 80
|
const val UPDATE_SYNC_PROGRESS_PERCENTAGE = 80
|
||||||
|
|
||||||
@UnstableApi
|
|
||||||
abstract class AbstractPlayerFragment(
|
abstract class AbstractPlayerFragment(
|
||||||
val player: IPlayer = CS3IPlayer()
|
val player: IPlayer = CS3IPlayer()
|
||||||
) : Fragment() {
|
) : Fragment() {
|
||||||
|
|
|
@ -9,6 +9,7 @@ import android.os.Looper
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import android.util.Rational
|
import android.util.Rational
|
||||||
import android.widget.FrameLayout
|
import android.widget.FrameLayout
|
||||||
|
import androidx.annotation.OptIn
|
||||||
import androidx.media3.common.C.TIME_UNSET
|
import androidx.media3.common.C.TIME_UNSET
|
||||||
import androidx.media3.common.C.TRACK_TYPE_AUDIO
|
import androidx.media3.common.C.TRACK_TYPE_AUDIO
|
||||||
import androidx.media3.common.C.TRACK_TYPE_TEXT
|
import androidx.media3.common.C.TRACK_TYPE_TEXT
|
||||||
|
@ -87,8 +88,7 @@ const val toleranceBeforeUs = 300_000L
|
||||||
* seek position, in microseconds. Must be non-negative.
|
* seek position, in microseconds. Must be non-negative.
|
||||||
*/
|
*/
|
||||||
const val toleranceAfterUs = 300_000L
|
const val toleranceAfterUs = 300_000L
|
||||||
|
@OptIn(UnstableApi::class)
|
||||||
@UnstableApi
|
|
||||||
class CS3IPlayer : IPlayer {
|
class CS3IPlayer : IPlayer {
|
||||||
private var isPlaying = false
|
private var isPlaying = false
|
||||||
private var exoPlayer: ExoPlayer? = null
|
private var exoPlayer: ExoPlayer? = null
|
||||||
|
|
|
@ -2,6 +2,7 @@ package com.lagradost.cloudstream3.ui.player
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
|
import androidx.annotation.OptIn
|
||||||
import androidx.preference.PreferenceManager
|
import androidx.preference.PreferenceManager
|
||||||
import androidx.media3.common.Format
|
import androidx.media3.common.Format
|
||||||
import androidx.media3.common.MimeTypes
|
import androidx.media3.common.MimeTypes
|
||||||
|
@ -31,7 +32,7 @@ import java.nio.charset.Charset
|
||||||
* @param fallbackFormat used to create a decoder based on mimetype if the subtitle string is not
|
* @param fallbackFormat used to create a decoder based on mimetype if the subtitle string is not
|
||||||
* enough to identify the subtitle format.
|
* enough to identify the subtitle format.
|
||||||
**/
|
**/
|
||||||
@UnstableApi
|
@OptIn(UnstableApi::class)
|
||||||
class CustomDecoder(private val fallbackFormat: Format?) : SubtitleDecoder {
|
class CustomDecoder(private val fallbackFormat: Format?) : SubtitleDecoder {
|
||||||
companion object {
|
companion object {
|
||||||
fun updateForcedEncoding(context: Context) {
|
fun updateForcedEncoding(context: Context) {
|
||||||
|
@ -262,7 +263,7 @@ class CustomDecoder(private val fallbackFormat: Format?) : SubtitleDecoder {
|
||||||
}
|
}
|
||||||
|
|
||||||
/** See https://github.com/google/ExoPlayer/blob/release-v2/library/core/src/main/java/com/google/android/exoplayer2/text/SubtitleDecoderFactory.java */
|
/** See https://github.com/google/ExoPlayer/blob/release-v2/library/core/src/main/java/com/google/android/exoplayer2/text/SubtitleDecoderFactory.java */
|
||||||
@UnstableApi
|
@OptIn(UnstableApi::class)
|
||||||
class CustomSubtitleDecoderFactory : SubtitleDecoderFactory {
|
class CustomSubtitleDecoderFactory : SubtitleDecoderFactory {
|
||||||
override fun supportsFormat(format: Format): Boolean {
|
override fun supportsFormat(format: Format): Boolean {
|
||||||
// return SubtitleDecoderFactory.DEFAULT.supportsFormat(format)
|
// return SubtitleDecoderFactory.DEFAULT.supportsFormat(format)
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
package com.lagradost.cloudstream3.ui.player
|
package com.lagradost.cloudstream3.ui.player
|
||||||
|
|
||||||
import android.os.Looper
|
import android.os.Looper
|
||||||
|
import androidx.annotation.OptIn
|
||||||
import androidx.media3.common.util.UnstableApi
|
import androidx.media3.common.util.UnstableApi
|
||||||
import androidx.media3.exoplayer.text.SubtitleDecoderFactory
|
import androidx.media3.exoplayer.text.SubtitleDecoderFactory
|
||||||
import androidx.media3.exoplayer.text.TextOutput
|
import androidx.media3.exoplayer.text.TextOutput
|
||||||
|
|
||||||
@UnstableApi
|
@OptIn(UnstableApi::class)
|
||||||
class CustomTextRenderer(
|
class CustomTextRenderer(
|
||||||
offset: Long,
|
offset: Long,
|
||||||
output: TextOutput?,
|
output: TextOutput?,
|
||||||
|
|
|
@ -25,6 +25,7 @@ import android.view.WindowManager.LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHO
|
||||||
import android.view.animation.AlphaAnimation
|
import android.view.animation.AlphaAnimation
|
||||||
import android.view.animation.Animation
|
import android.view.animation.Animation
|
||||||
import android.view.animation.AnimationUtils
|
import android.view.animation.AnimationUtils
|
||||||
|
import androidx.annotation.OptIn
|
||||||
import androidx.appcompat.app.AlertDialog
|
import androidx.appcompat.app.AlertDialog
|
||||||
import androidx.core.graphics.blue
|
import androidx.core.graphics.blue
|
||||||
import androidx.core.graphics.green
|
import androidx.core.graphics.green
|
||||||
|
@ -81,7 +82,6 @@ const val DOUBLE_TAB_PAUSE_PERCENTAGE = 0.15 // in both directions
|
||||||
private const val SUBTITLE_DELAY_BUNDLE_KEY = "subtitle_delay"
|
private const val SUBTITLE_DELAY_BUNDLE_KEY = "subtitle_delay"
|
||||||
|
|
||||||
// All the UI Logic for the player
|
// All the UI Logic for the player
|
||||||
@UnstableApi
|
|
||||||
open class FullScreenPlayer : AbstractPlayerFragment() {
|
open class FullScreenPlayer : AbstractPlayerFragment() {
|
||||||
private var isVerticalOrientation: Boolean = false
|
private var isVerticalOrientation: Boolean = false
|
||||||
protected open var lockRotation = true
|
protected open var lockRotation = true
|
||||||
|
@ -242,6 +242,7 @@ open class FullScreenPlayer : AbstractPlayerFragment() {
|
||||||
fadeAnimation.duration = 100
|
fadeAnimation.duration = 100
|
||||||
fadeAnimation.fillAfter = true
|
fadeAnimation.fillAfter = true
|
||||||
|
|
||||||
|
@OptIn(UnstableApi::class)
|
||||||
val sView = subView
|
val sView = subView
|
||||||
val sStyle = subStyle
|
val sStyle = subStyle
|
||||||
if (sView != null && sStyle != null) {
|
if (sView != null && sStyle != null) {
|
||||||
|
|
|
@ -14,6 +14,7 @@ import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.widget.*
|
import android.widget.*
|
||||||
import androidx.activity.result.contract.ActivityResultContracts
|
import androidx.activity.result.contract.ActivityResultContracts
|
||||||
|
import androidx.annotation.OptIn
|
||||||
import androidx.core.animation.addListener
|
import androidx.core.animation.addListener
|
||||||
import androidx.core.content.ContextCompat
|
import androidx.core.content.ContextCompat
|
||||||
import androidx.core.view.isGone
|
import androidx.core.view.isGone
|
||||||
|
@ -69,7 +70,6 @@ import java.io.Serializable
|
||||||
import java.util.*
|
import java.util.*
|
||||||
import kotlin.math.abs
|
import kotlin.math.abs
|
||||||
|
|
||||||
@UnstableApi
|
|
||||||
class GeneratorPlayer : FullScreenPlayer() {
|
class GeneratorPlayer : FullScreenPlayer() {
|
||||||
companion object {
|
companion object {
|
||||||
private var lastUsedGenerator: IGenerator? = null
|
private var lastUsedGenerator: IGenerator? = null
|
||||||
|
@ -524,7 +524,7 @@ class GeneratorPlayer : FullScreenPlayer() {
|
||||||
//TODO: Set year text from currently loaded movie on Player
|
//TODO: Set year text from currently loaded movie on Player
|
||||||
//dialog.subtitles_search_year?.setText(currentTempMeta.year)
|
//dialog.subtitles_search_year?.setText(currentTempMeta.year)
|
||||||
}
|
}
|
||||||
|
@OptIn(UnstableApi::class)
|
||||||
private fun openSubPicker() {
|
private fun openSubPicker() {
|
||||||
try {
|
try {
|
||||||
subsPathPicker.launch(
|
subsPathPicker.launch(
|
||||||
|
@ -797,7 +797,6 @@ class GeneratorPlayer : FullScreenPlayer() {
|
||||||
settingsManager.edit().putString(
|
settingsManager.edit().putString(
|
||||||
ctx.getString(R.string.subtitles_encoding_key), prefValues[it]
|
ctx.getString(R.string.subtitles_encoding_key), prefValues[it]
|
||||||
).apply()
|
).apply()
|
||||||
|
|
||||||
updateForcedEncoding(ctx)
|
updateForcedEncoding(ctx)
|
||||||
dismiss()
|
dismiss()
|
||||||
player.seekTime(-1) // to update subtitles, a dirty trick
|
player.seekTime(-1) // to update subtitles, a dirty trick
|
||||||
|
|
|
@ -29,6 +29,7 @@ import android.os.Message;
|
||||||
import androidx.annotation.IntDef;
|
import androidx.annotation.IntDef;
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
import androidx.annotation.OptIn;
|
||||||
import androidx.media3.common.C;
|
import androidx.media3.common.C;
|
||||||
import androidx.media3.common.Format;
|
import androidx.media3.common.Format;
|
||||||
import androidx.media3.common.text.Cue;
|
import androidx.media3.common.text.Cue;
|
||||||
|
@ -66,7 +67,7 @@ import java.util.stream.Collectors;
|
||||||
* obtained from a {@link SubtitleDecoderFactory}. The actual rendering of the subtitle {@link Cue}s
|
* obtained from a {@link SubtitleDecoderFactory}. The actual rendering of the subtitle {@link Cue}s
|
||||||
* is delegated to a {@link TextOutput}.
|
* is delegated to a {@link TextOutput}.
|
||||||
*/
|
*/
|
||||||
@UnstableApi
|
@OptIn(markerClass = UnstableApi.class)
|
||||||
public class NonFinalTextRenderer extends BaseRenderer implements Callback {
|
public class NonFinalTextRenderer extends BaseRenderer implements Callback {
|
||||||
|
|
||||||
private static final String TAG = "TextRenderer";
|
private static final String TAG = "TextRenderer";
|
||||||
|
|
|
@ -10,7 +10,6 @@ import com.lagradost.cloudstream3.utils.UIHelper.navigate
|
||||||
import com.lagradost.safefile.SafeFile
|
import com.lagradost.safefile.SafeFile
|
||||||
|
|
||||||
object OfflinePlaybackHelper {
|
object OfflinePlaybackHelper {
|
||||||
@UnstableApi
|
|
||||||
fun playLink(activity: Activity, url: String) {
|
fun playLink(activity: Activity, url: String) {
|
||||||
activity.navigate(
|
activity.navigate(
|
||||||
R.id.global_to_navigation_player, GeneratorPlayer.newInstance(
|
R.id.global_to_navigation_player, GeneratorPlayer.newInstance(
|
||||||
|
@ -23,7 +22,6 @@ object OfflinePlaybackHelper {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@UnstableApi
|
|
||||||
fun playUri(activity: Activity, uri: Uri) {
|
fun playUri(activity: Activity, uri: Uri) {
|
||||||
val name = SafeFile.fromUri(activity, uri)?.name()
|
val name = SafeFile.fromUri(activity, uri)?.name()
|
||||||
activity.navigate(
|
activity.navigate(
|
||||||
|
|
|
@ -4,6 +4,7 @@ import android.util.Log
|
||||||
import android.util.TypedValue
|
import android.util.TypedValue
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.widget.FrameLayout
|
import android.widget.FrameLayout
|
||||||
|
import androidx.annotation.OptIn
|
||||||
import androidx.media3.common.MimeTypes
|
import androidx.media3.common.MimeTypes
|
||||||
import androidx.media3.common.util.UnstableApi
|
import androidx.media3.common.util.UnstableApi
|
||||||
import androidx.media3.ui.SubtitleView
|
import androidx.media3.ui.SubtitleView
|
||||||
|
@ -48,7 +49,7 @@ data class SubtitleData(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@UnstableApi
|
@OptIn(UnstableApi::class)
|
||||||
class PlayerSubtitleHelper {
|
class PlayerSubtitleHelper {
|
||||||
private var activeSubtitles: Set<SubtitleData> = emptySet()
|
private var activeSubtitles: Set<SubtitleData> = emptySet()
|
||||||
private var allSubtitles: Set<SubtitleData> = emptySet()
|
private var allSubtitles: Set<SubtitleData> = emptySet()
|
||||||
|
|
|
@ -72,7 +72,6 @@ class RepoLinkGenerator(
|
||||||
//var linkCache = Array<Set<ExtractorLink>>(size = episodes.size, init = { setOf() })
|
//var linkCache = Array<Set<ExtractorLink>>(size = episodes.size, init = { setOf() })
|
||||||
//var subsCache = Array<Set<SubtitleData>>(size = episodes.size, init = { setOf() })
|
//var subsCache = Array<Set<SubtitleData>>(size = episodes.size, init = { setOf() })
|
||||||
|
|
||||||
@UnstableApi
|
|
||||||
override suspend fun generateLinks(
|
override suspend fun generateLinks(
|
||||||
clearCache: Boolean,
|
clearCache: Boolean,
|
||||||
type: LoadType,
|
type: LoadType,
|
||||||
|
|
|
@ -22,7 +22,6 @@ import androidx.core.view.isVisible
|
||||||
import androidx.core.widget.NestedScrollView
|
import androidx.core.widget.NestedScrollView
|
||||||
import androidx.core.widget.doOnTextChanged
|
import androidx.core.widget.doOnTextChanged
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.media3.common.util.UnstableApi
|
|
||||||
import com.discord.panels.OverlappingPanelsLayout
|
import com.discord.panels.OverlappingPanelsLayout
|
||||||
import com.discord.panels.PanelsChildGestureRegionObserver
|
import com.discord.panels.PanelsChildGestureRegionObserver
|
||||||
import com.google.android.gms.cast.framework.CastButtonFactory
|
import com.google.android.gms.cast.framework.CastButtonFactory
|
||||||
|
@ -78,7 +77,6 @@ import com.lagradost.cloudstream3.utils.UIHelper.popupMenuNoIconsAndNoStringRes
|
||||||
import com.lagradost.cloudstream3.utils.UIHelper.setImage
|
import com.lagradost.cloudstream3.utils.UIHelper.setImage
|
||||||
import com.lagradost.cloudstream3.utils.VideoDownloadHelper
|
import com.lagradost.cloudstream3.utils.VideoDownloadHelper
|
||||||
|
|
||||||
@UnstableApi
|
|
||||||
open class ResultFragmentPhone : FullScreenPlayer() {
|
open class ResultFragmentPhone : FullScreenPlayer() {
|
||||||
private val gestureRegionsListener =
|
private val gestureRegionsListener =
|
||||||
object : PanelsChildGestureRegionObserver.GestureRegionsListener {
|
object : PanelsChildGestureRegionObserver.GestureRegionsListener {
|
||||||
|
|
|
@ -15,7 +15,6 @@ import androidx.core.view.isVisible
|
||||||
import androidx.core.widget.NestedScrollView
|
import androidx.core.widget.NestedScrollView
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import androidx.media3.common.util.UnstableApi
|
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import com.google.android.material.bottomsheet.BottomSheetDialog
|
import com.google.android.material.bottomsheet.BottomSheetDialog
|
||||||
import com.lagradost.cloudstream3.CommonActivity
|
import com.lagradost.cloudstream3.CommonActivity
|
||||||
|
@ -231,7 +230,6 @@ class ResultFragmentTv : Fragment() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@UnstableApi
|
|
||||||
@SuppressLint("SetTextI18n")
|
@SuppressLint("SetTextI18n")
|
||||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
super.onViewCreated(view, savedInstanceState)
|
super.onViewCreated(view, savedInstanceState)
|
||||||
|
|
|
@ -10,7 +10,6 @@ import android.widget.FrameLayout
|
||||||
import androidx.activity.OnBackPressedCallback
|
import androidx.activity.OnBackPressedCallback
|
||||||
import androidx.core.view.isGone
|
import androidx.core.view.isGone
|
||||||
import androidx.core.view.isVisible
|
import androidx.core.view.isVisible
|
||||||
import androidx.media3.common.util.UnstableApi
|
|
||||||
import com.lagradost.cloudstream3.CommonActivity.screenHeight
|
import com.lagradost.cloudstream3.CommonActivity.screenHeight
|
||||||
import com.lagradost.cloudstream3.CommonActivity.screenWidth
|
import com.lagradost.cloudstream3.CommonActivity.screenWidth
|
||||||
import com.lagradost.cloudstream3.LoadResponse
|
import com.lagradost.cloudstream3.LoadResponse
|
||||||
|
@ -19,7 +18,6 @@ import com.lagradost.cloudstream3.ui.player.CSPlayerEvent
|
||||||
import com.lagradost.cloudstream3.ui.player.PlayerEventSource
|
import com.lagradost.cloudstream3.ui.player.PlayerEventSource
|
||||||
import com.lagradost.cloudstream3.ui.player.SubtitleData
|
import com.lagradost.cloudstream3.ui.player.SubtitleData
|
||||||
|
|
||||||
@UnstableApi
|
|
||||||
open class ResultTrailerPlayer : ResultFragmentPhone() {
|
open class ResultTrailerPlayer : ResultFragmentPhone() {
|
||||||
|
|
||||||
override var lockRotation = false
|
override var lockRotation = false
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue