Android: fix null checks
This commit is contained in:
parent
bae07bda32
commit
ed0e3e28b4
2 changed files with 35 additions and 37 deletions
|
|
@ -302,9 +302,7 @@ class FlutterCastFrameworkPlugin : FlutterPlugin, MethodCallHandler, ActivityAwa
|
||||||
val remoteMediaClient: RemoteMediaClient = remoteMediaClient
|
val remoteMediaClient: RemoteMediaClient = remoteMediaClient
|
||||||
?: throw IllegalStateException("Missing cast session")
|
?: throw IllegalStateException("Missing cast session")
|
||||||
|
|
||||||
val hostMediaInfo = remoteMediaClient.mediaInfo ?: return PlatformBridgeApis.MediaInfo()
|
return getFlutterMediaInfo(remoteMediaClient.mediaInfo)
|
||||||
|
|
||||||
return getFlutterMediaInfo(hostMediaInfo)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun play() {
|
override fun play() {
|
||||||
|
|
|
||||||
|
|
@ -4,13 +4,13 @@ import com.gianlucaparadise.flutter_cast_framework.PlatformBridgeApis
|
||||||
import com.google.android.gms.cast.*
|
import com.google.android.gms.cast.*
|
||||||
import com.google.android.gms.common.images.WebImage
|
import com.google.android.gms.common.images.WebImage
|
||||||
|
|
||||||
fun getFlutterMediaStatus(mediaStatus: MediaStatus): PlatformBridgeApis.MediaStatus {
|
fun getFlutterMediaStatus(mediaStatus: MediaStatus?): PlatformBridgeApis.MediaStatus {
|
||||||
val flutterMediaInfo = getFlutterMediaInfo(mediaStatus.mediaInfo)
|
val flutterMediaInfo = getFlutterMediaInfo(mediaStatus?.mediaInfo)
|
||||||
val flutterPlayerState = getFlutterPlayerState(mediaStatus.playerState)
|
val flutterPlayerState = getFlutterPlayerState(mediaStatus?.playerState)
|
||||||
val flutterAdBreakStatus = getFlutterAdBreakStatus(mediaStatus.adBreakStatus)
|
val flutterAdBreakStatus = getFlutterAdBreakStatus(mediaStatus?.adBreakStatus)
|
||||||
|
|
||||||
return PlatformBridgeApis.MediaStatus().apply {
|
return PlatformBridgeApis.MediaStatus().apply {
|
||||||
isPlayingAd = mediaStatus.isPlayingAd
|
isPlayingAd = mediaStatus?.isPlayingAd ?: false
|
||||||
mediaInfo = flutterMediaInfo
|
mediaInfo = flutterMediaInfo
|
||||||
playerState = flutterPlayerState
|
playerState = flutterPlayerState
|
||||||
adBreakStatus = flutterAdBreakStatus
|
adBreakStatus = flutterAdBreakStatus
|
||||||
|
|
@ -25,7 +25,7 @@ fun getFlutterAdBreakStatus(adBreakStatus: AdBreakStatus?): PlatformBridgeApis.A
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getFlutterPlayerState(playerStateRaw: Int): PlatformBridgeApis.PlayerState {
|
fun getFlutterPlayerState(playerStateRaw: Int?): PlatformBridgeApis.PlayerState {
|
||||||
return when (playerStateRaw) {
|
return when (playerStateRaw) {
|
||||||
MediaStatus.PLAYER_STATE_UNKNOWN -> PlatformBridgeApis.PlayerState.unknown
|
MediaStatus.PLAYER_STATE_UNKNOWN -> PlatformBridgeApis.PlayerState.unknown
|
||||||
MediaStatus.PLAYER_STATE_BUFFERING -> PlatformBridgeApis.PlayerState.buffering
|
MediaStatus.PLAYER_STATE_BUFFERING -> PlatformBridgeApis.PlayerState.buffering
|
||||||
|
|
@ -37,23 +37,23 @@ fun getFlutterPlayerState(playerStateRaw: Int): PlatformBridgeApis.PlayerState {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getFlutterMediaInfo(mediaInfo: MediaInfo): PlatformBridgeApis.MediaInfo {
|
fun getFlutterMediaInfo(mediaInfo: MediaInfo?): PlatformBridgeApis.MediaInfo {
|
||||||
val flutterMediaMetadata = getFlutterMediaMetadata(mediaInfo.metadata)
|
val flutterMediaMetadata = getFlutterMediaMetadata(mediaInfo?.metadata)
|
||||||
val flutterMediaTracks = getFlutterMediaTracks(mediaInfo.mediaTracks)
|
val flutterMediaTracks = getFlutterMediaTracks(mediaInfo?.mediaTracks)
|
||||||
val flutterStreamType = getFlutterStreamType(mediaInfo.streamType)
|
val flutterStreamType = getFlutterStreamType(mediaInfo?.streamType)
|
||||||
|
|
||||||
return PlatformBridgeApis.MediaInfo().apply {
|
return PlatformBridgeApis.MediaInfo().apply {
|
||||||
contentId = mediaInfo.contentId
|
contentId = mediaInfo?.contentId ?: ""
|
||||||
contentType = mediaInfo.contentType
|
contentType = mediaInfo?.contentType ?: ""
|
||||||
customDataAsJson = mediaInfo.customData?.toString()
|
customDataAsJson = mediaInfo?.customData?.toString()
|
||||||
mediaMetadata = flutterMediaMetadata
|
mediaMetadata = flutterMediaMetadata
|
||||||
mediaTracks = flutterMediaTracks
|
mediaTracks = flutterMediaTracks
|
||||||
streamDuration = mediaInfo.streamDuration
|
streamDuration = mediaInfo?.streamDuration ?: 0
|
||||||
streamType = flutterStreamType
|
streamType = flutterStreamType
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getFlutterStreamType(streamType: Int): PlatformBridgeApis.StreamType {
|
fun getFlutterStreamType(streamType: Int?): PlatformBridgeApis.StreamType {
|
||||||
return when (streamType) {
|
return when (streamType) {
|
||||||
-1 -> PlatformBridgeApis.StreamType.invalid
|
-1 -> PlatformBridgeApis.StreamType.invalid
|
||||||
0 -> PlatformBridgeApis.StreamType.none
|
0 -> PlatformBridgeApis.StreamType.none
|
||||||
|
|
@ -63,27 +63,27 @@ fun getFlutterStreamType(streamType: Int): PlatformBridgeApis.StreamType {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getFlutterMediaTracks(mediaTracks: List<MediaTrack>): List<PlatformBridgeApis.MediaTrack> {
|
fun getFlutterMediaTracks(mediaTracks: List<MediaTrack>?): List<PlatformBridgeApis.MediaTrack> {
|
||||||
return mediaTracks.map {
|
return mediaTracks?.map {
|
||||||
getFlutterMediaTrack(it)
|
getFlutterMediaTrack(it)
|
||||||
}
|
} ?: emptyList()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getFlutterMediaTrack(mediaTrack: MediaTrack): PlatformBridgeApis.MediaTrack {
|
fun getFlutterMediaTrack(mediaTrack: MediaTrack?): PlatformBridgeApis.MediaTrack {
|
||||||
val flutterSubtype = getFlutterSubtype(mediaTrack.subtype)
|
val flutterSubtype = getFlutterSubtype(mediaTrack?.subtype)
|
||||||
val flutterType = getFlutterType(mediaTrack.type)
|
val flutterType = getFlutterType(mediaTrack?.type)
|
||||||
|
|
||||||
return PlatformBridgeApis.MediaTrack().apply {
|
return PlatformBridgeApis.MediaTrack().apply {
|
||||||
contentId = mediaTrack.contentId
|
contentId = mediaTrack?.contentId ?: ""
|
||||||
id = mediaTrack.id
|
id = mediaTrack?.id ?: -1
|
||||||
language = mediaTrack.language
|
language = mediaTrack?.language ?: ""
|
||||||
name = mediaTrack.name
|
name = mediaTrack?.name ?: ""
|
||||||
trackSubtype = flutterSubtype
|
trackSubtype = flutterSubtype
|
||||||
trackType = flutterType
|
trackType = flutterType
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getFlutterType(type: Int): PlatformBridgeApis.TrackType {
|
fun getFlutterType(type: Int?): PlatformBridgeApis.TrackType {
|
||||||
return when (type) {
|
return when (type) {
|
||||||
0 -> PlatformBridgeApis.TrackType.unknown
|
0 -> PlatformBridgeApis.TrackType.unknown
|
||||||
1 -> PlatformBridgeApis.TrackType.text
|
1 -> PlatformBridgeApis.TrackType.text
|
||||||
|
|
@ -93,7 +93,7 @@ fun getFlutterType(type: Int): PlatformBridgeApis.TrackType {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getFlutterSubtype(subtype: Int): PlatformBridgeApis.TrackSubtype {
|
fun getFlutterSubtype(subtype: Int?): PlatformBridgeApis.TrackSubtype {
|
||||||
return when (subtype) {
|
return when (subtype) {
|
||||||
-1 -> PlatformBridgeApis.TrackSubtype.unknown
|
-1 -> PlatformBridgeApis.TrackSubtype.unknown
|
||||||
0 -> PlatformBridgeApis.TrackSubtype.none
|
0 -> PlatformBridgeApis.TrackSubtype.none
|
||||||
|
|
@ -106,9 +106,9 @@ fun getFlutterSubtype(subtype: Int): PlatformBridgeApis.TrackSubtype {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getFlutterMediaMetadata(mediaMetadata: MediaMetadata): PlatformBridgeApis.MediaMetadata {
|
fun getFlutterMediaMetadata(mediaMetadata: MediaMetadata?): PlatformBridgeApis.MediaMetadata {
|
||||||
val flutterMediaType = getFlutterMediaType(mediaMetadata.mediaType)
|
val flutterMediaType = getFlutterMediaType(mediaMetadata?.mediaType)
|
||||||
val flutterWebImages = getFlutterWebImages(mediaMetadata.images)
|
val flutterWebImages = getFlutterWebImages(mediaMetadata?.images)
|
||||||
|
|
||||||
return PlatformBridgeApis.MediaMetadata().apply {
|
return PlatformBridgeApis.MediaMetadata().apply {
|
||||||
mediaType = flutterMediaType
|
mediaType = flutterMediaType
|
||||||
|
|
@ -116,15 +116,15 @@ fun getFlutterMediaMetadata(mediaMetadata: MediaMetadata): PlatformBridgeApis.Me
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getFlutterWebImages(images: List<WebImage>): List<PlatformBridgeApis.WebImage> {
|
fun getFlutterWebImages(images: List<WebImage>?): List<PlatformBridgeApis.WebImage> {
|
||||||
return images.map {
|
return images?.map {
|
||||||
PlatformBridgeApis.WebImage().apply {
|
PlatformBridgeApis.WebImage().apply {
|
||||||
url = it.url.toString()
|
url = it.url.toString()
|
||||||
}
|
}
|
||||||
}
|
} ?: emptyList()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getFlutterMediaType(mediaType: Int): PlatformBridgeApis.MediaType {
|
fun getFlutterMediaType(mediaType: Int?): PlatformBridgeApis.MediaType {
|
||||||
return when (mediaType) {
|
return when (mediaType) {
|
||||||
0 -> PlatformBridgeApis.MediaType.generic
|
0 -> PlatformBridgeApis.MediaType.generic
|
||||||
1 -> PlatformBridgeApis.MediaType.movie
|
1 -> PlatformBridgeApis.MediaType.movie
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue