Skip to content

Commit

Permalink
Remove deprecated symbols (#723)
Browse files Browse the repository at this point in the history
  • Loading branch information
MGaetan89 authored Sep 27, 2024
1 parent 1dc6530 commit e437a5a
Show file tree
Hide file tree
Showing 4 changed files with 1 addition and 385 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ class SRGMediaItemBuilder(mediaItem: MediaItem) {
/**
* Set urn
*
* @param urn The urn that have to be a validated urn.
* @param urn The urn that has to be a validated urn.
* @return this for convenience
*/
fun setUrn(urn: String): SRGMediaItemBuilder {
Expand Down Expand Up @@ -115,33 +115,3 @@ class SRGMediaItemBuilder(mediaItem: MediaItem) {
private const val PARAM_VECTOR = "vector"
}
}

/**
* Create [MediaItem] for Pillarbox from a urn.
*/
@Deprecated("Replaced by SRGMediaItemBuilder", replaceWith = ReplaceWith("SRGMediaItemBuilder"))
object MediaItemUrn {
/**
* Invoke
*
* @param urn The media urn to play.
* @param title The optional title to display..
* @param subtitle The optional subtitle to display.
* @param artworkUri The artworkUri image uri.
* @return MediaItem.
*/
operator fun invoke(
urn: String,
title: String? = null,
subtitle: String? = null,
artworkUri: Uri? = null
): MediaItem = SRGMediaItemBuilder(urn)
.setMediaMetadata(
MediaMetadata.Builder().apply {
setTitle(title)
setSubtitle(subtitle)
setArtworkUri(artworkUri)
}.build()
)
.build()
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,70 +4,9 @@
*/
package ch.srgssr.pillarbox.player.extension

import android.content.Context
import androidx.media3.common.Player
import androidx.media3.common.TrackSelectionOverride

/**
* Disable text track.
*/
@Deprecated(
message = "Use the `disableTextTrack()` extension from the `tracks` package instead",
replaceWith = ReplaceWith(
expression = "disableTextTrack()",
imports = ["ch.srgssr.pillarbox.player.tracks.disableTextTrack"],
),
)
fun Player.disableTextTrack() {
trackSelectionParameters = trackSelectionParameters.disableTextTrack()
}

/**
* Set default text track.
*
* @param context
*/
@Deprecated(
message = "Use the `setAutoTextTrack(Context)` extension instead",
replaceWith = ReplaceWith(
expression = "setAutoTextTrack(context)",
imports = ["ch.srgssr.pillarbox.player.tracks.setAutoTextTrack"],
),
)
fun Player.setDefaultTextTrack(context: Context) {
trackSelectionParameters = trackSelectionParameters.defaultTextTrack(context)
}

/**
* Disable audio track.
*/
@Deprecated(
message = "Use the `disableAudioTrack()` extension from the `tracks` package instead",
replaceWith = ReplaceWith(
expression = "disableAudioTrack()",
imports = ["ch.srgssr.pillarbox.player.tracks.disableAudioTrack"],
),
)
fun Player.disableAudioTrack() {
trackSelectionParameters = trackSelectionParameters.disableAudioTrack()
}

/**
* Set default audio track.
*
* @param context
*/
@Deprecated(
message = "Use the `setAutoAudioTrack(Context)` extension instead",
replaceWith = ReplaceWith(
expression = "setAutoAudioTrack(context)",
imports = ["ch.srgssr.pillarbox.player.tracks.setAutoAudioTrack"],
),
)
fun Player.setDefaultAudioTrack(context: Context) {
trackSelectionParameters = trackSelectionParameters.defaultAudioTrack(context)
}

/**
* Set track override.
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,100 +4,11 @@
*/
package ch.srgssr.pillarbox.player.extension

import android.annotation.SuppressLint
import androidx.media3.common.C
import androidx.media3.common.C.TrackType
import androidx.media3.common.Format
import androidx.media3.common.TrackGroup
import androidx.media3.common.Tracks
import ch.srgssr.pillarbox.player.asset.timeRange.BlockedTimeRange
import ch.srgssr.pillarbox.player.source.PillarboxMediaSource
import ch.srgssr.pillarbox.player.tracker.MediaItemTrackerData

/**
* Text tracks.
*/
@Deprecated(
message = "Use the `textTracks` extension instead",
replaceWith = ReplaceWith(
expression = "textTracks",
imports = ["ch.srgssr.pillarbox.player.tracks.textTracks"],
),
)
val Tracks.text: List<Tracks.Group>
get() = filterByTrackType(C.TRACK_TYPE_TEXT).mapNotNull { it.filterForcedAndUnsupported() }

/**
* Audio tracks.
*/
@Deprecated(
message = "Use the `audioTracks` extension instead",
replaceWith = ReplaceWith(
expression = "audioTracks",
imports = ["ch.srgssr.pillarbox.player.tracks.audioTracks"],
),
)
val Tracks.audio: List<Tracks.Group>
get() = filterByTrackType(C.TRACK_TYPE_AUDIO).mapNotNull { it.filterUnsupported() }

/**
* Video tracks.
*/
@Deprecated(
message = "Use the `videoTracks` extension instead",
replaceWith = ReplaceWith(
expression = "videoTracks",
imports = ["ch.srgssr.pillarbox.player.tracks.videoTracks"],
),
)
val Tracks.video: List<Tracks.Group>
get() = filterByTrackType(C.TRACK_TYPE_VIDEO).mapNotNull { it.filterUnsupported() }

private fun Tracks.filterByTrackType(trackType: @TrackType Int): List<Tracks.Group> {
return groups.filter { it.type == trackType }
}

private fun Tracks.Group.filterForcedAndUnsupported(): Tracks.Group? {
return filterBy { group, i -> group.isTrackSupported(i) && !group.getTrackFormat(i).isForced() }
}

internal fun Tracks.Group.filterUnsupported(): Tracks.Group? {
return filterBy { group, i -> group.isTrackSupported(i) }
}

/**
* Filter [Format] that matching [predicate].
*
* @param predicate function that takes the index of an element and the element itself and returns the result of predicate evaluation on the element.
* @receiver
* @return element matching [predicate] or null if filtered items is empty because [TrackGroup] can not be empty.
*/
@SuppressLint("WrongConstant")
@Suppress("SpreadOperator", "ReturnCount")
internal fun Tracks.Group.filterBy(predicate: (Tracks.Group, Int) -> Boolean): Tracks.Group? {
val listIndexMatchingPredicate = ArrayList<Int>(length)
for (i in 0 until length) {
if (predicate(this, i)) {
listIndexMatchingPredicate.add(i)
}
}
// All format doesn't match predicate.
if (listIndexMatchingPredicate.isEmpty()) return null
// All format matching the predicate, nothing to change.
if (listIndexMatchingPredicate.size == length) return this
val count = listIndexMatchingPredicate.size
val formats = ArrayList<Format>(count)
val trackSupport = IntArray(count)
val trackSelect = BooleanArray(count)
for (i in 0 until count) {
val trackIndex = listIndexMatchingPredicate[i]
formats.add(getTrackFormat(trackIndex))
trackSupport[i] = getTrackSupport(trackIndex)
trackSelect[i] = isTrackSelected(trackIndex)
}
return Tracks.Group(TrackGroup(mediaTrackGroup.id, *formats.toTypedArray()), isAdaptiveSupported, trackSupport, trackSelect)
}

/**
* @return [MediaItemTrackerData] if it exists, `null` otherwise
*/
Expand Down
Loading

0 comments on commit e437a5a

Please sign in to comment.