Fixed image loading

Signed-off-by: Balazs Toldi <balazs@toldi.eu>
This commit is contained in:
Balazs Toldi 2022-01-03 11:23:02 +01:00
parent 55ca983cf7
commit 5933cd2b8a
Signed by: Bazsalanszky
GPG key ID: 933820884952BE27

View file

@ -36,6 +36,7 @@ import su.litvak.chromecast.api.v2.MediaStatus
class ChromecastManagerActivity : ComponentActivity() {
companion object {
var chromeCast_: ChromeCast? = null
const val METADATA_THUMB = "thumb"
}
private lateinit var chromeCast: ChromeCast
@ -102,56 +103,7 @@ class ChromecastManagerActivity : ComponentActivity() {
CircularProgressIndicator()
}
PlayBackControl()
val mediaStatus = viewModel.mediaStatus.value
if (mediaStatus != null) {
val nowPlaying =
if (mediaStatus.media.metadata != null) mediaStatus.media.metadata[Media.METADATA_TITLE] else ""
Text(text = stringResource(id = R.string.now_playing) + ": $nowPlaying")
var sliderPosition by remember { mutableStateOf(0.0f) }
var sliderMoving by remember { mutableStateOf(false) }
if (!sliderMoving)
sliderPosition =
(mediaStatus.currentTime / mediaStatus.media.duration).toFloat()
val images =
mediaStatus.media.metadata[Media.METADATA_IMAGES] as ArrayList<LinkedHashMap<String, String>>
if (images.size >= 1 && images[0].containsKey("url")) {
Log.e("Caster", images[0]["url"].toString())
Image(
painter = rememberImagePainter(images[0]["url"]),
contentDescription = null,
modifier = Modifier.fillMaxWidth()
)
}
Row(
Modifier.fillMaxWidth(),
horizontalArrangement = Arrangement.SpaceBetween
) {
Text(
text = String.format(
"%02d:%02d",
((mediaStatus.currentTime % 3600) / 60).toInt(),
(mediaStatus.currentTime % 60).toInt()
)
)
Text(
text = String.format(
"%02d:%02d",
((mediaStatus.media.duration % 3600) / 60).toInt(),
(mediaStatus.media.duration % 60).toInt()
)
)
}
Slider(value = sliderPosition, onValueChange = {
sliderPosition = it
sliderMoving = true
}, onValueChangeFinished = {
viewModel.seek(sliderPosition.toDouble())
sliderMoving = false
})
}
mediaStatus()
}
}
}
@ -160,6 +112,75 @@ class ChromecastManagerActivity : ComponentActivity() {
}
@Composable
fun mediaStatus() {
val mediaStatus = viewModel.mediaStatus.value
if (mediaStatus != null) {
val nowPlaying =
if (mediaStatus.media.metadata != null) mediaStatus.media.metadata[Media.METADATA_TITLE] else ""
Text(text = stringResource(id = R.string.now_playing) + ": $nowPlaying")
var sliderPosition by remember { mutableStateOf(0.0f) }
var sliderMoving by remember { mutableStateOf(false) }
if (mediaStatus.media.duration != null) {
if (!sliderMoving)
sliderPosition =
(mediaStatus.currentTime / mediaStatus.media.duration).toFloat()
}
if (mediaStatus.media.metadata[Media.METADATA_IMAGES] != null) {
val images =
mediaStatus.media.metadata[Media.METADATA_IMAGES] as ArrayList<LinkedHashMap<String, String>>
if (images.size >= 1 && images[0].containsKey("url")) {
Log.e("Caster", images[0]["url"].toString())
Image(
painter = rememberImagePainter(images[0]["url"]),
contentDescription = null,
modifier = Modifier.fillMaxWidth()
)
}
} else if (mediaStatus.media.metadata[METADATA_THUMB] != null) {
val image =
mediaStatus.media.metadata[METADATA_THUMB] as String
Log.e("Caster", image)
Image(
painter = rememberImagePainter(image),
contentDescription = null,
modifier = Modifier.fillMaxWidth()
)
}
Row(
Modifier.fillMaxWidth(),
horizontalArrangement = Arrangement.SpaceBetween
) {
Text(
text = String.format(
"%02d:%02d",
((mediaStatus.currentTime % 3600) / 60).toInt(),
(mediaStatus.currentTime % 60).toInt()
)
)
Text(
text = String.format(
"%02d:%02d",
((mediaStatus.media.duration % 3600) / 60).toInt(),
(mediaStatus.media.duration % 60).toInt()
)
)
}
Slider(value = sliderPosition, onValueChange = {
sliderPosition = it
sliderMoving = true
}, onValueChangeFinished = {
viewModel.seek(sliderPosition.toDouble())
sliderMoving = false
})
}
}
@Composable
fun MenuBar() {
TopAppBar(