Move fun to a Factory file
This commit is contained in:
parent
05f843fda6
commit
5b2b281efb
3 changed files with 36 additions and 23 deletions
|
|
@ -67,10 +67,10 @@ import io.element.android.libraries.mediaviewer.api.helper.formatFileExtensionAn
|
||||||
import io.element.android.libraries.mediaviewer.api.local.LocalMedia
|
import io.element.android.libraries.mediaviewer.api.local.LocalMedia
|
||||||
import io.element.android.libraries.mediaviewer.impl.local.LocalMediaViewState
|
import io.element.android.libraries.mediaviewer.impl.local.LocalMediaViewState
|
||||||
import io.element.android.libraries.mediaviewer.impl.local.PlayableState
|
import io.element.android.libraries.mediaviewer.impl.local.PlayableState
|
||||||
|
import io.element.android.libraries.mediaviewer.impl.local.player.MediaPlayerControllerState
|
||||||
|
import io.element.android.libraries.mediaviewer.impl.local.player.MediaPlayerControllerView
|
||||||
|
import io.element.android.libraries.mediaviewer.impl.local.player.rememberExoPlayer
|
||||||
import io.element.android.libraries.mediaviewer.impl.local.rememberLocalMediaViewState
|
import io.element.android.libraries.mediaviewer.impl.local.rememberLocalMediaViewState
|
||||||
import io.element.android.libraries.mediaviewer.impl.local.video.ExoPlayerForPreview
|
|
||||||
import io.element.android.libraries.mediaviewer.impl.local.video.MediaPlayerControllerState
|
|
||||||
import io.element.android.libraries.mediaviewer.impl.local.video.MediaPlayerControllerView
|
|
||||||
import kotlinx.collections.immutable.toPersistentList
|
import kotlinx.collections.immutable.toPersistentList
|
||||||
import kotlinx.coroutines.delay
|
import kotlinx.coroutines.delay
|
||||||
|
|
||||||
|
|
@ -83,16 +83,7 @@ fun MediaAudioView(
|
||||||
info: MediaInfo?,
|
info: MediaInfo?,
|
||||||
modifier: Modifier = Modifier,
|
modifier: Modifier = Modifier,
|
||||||
) {
|
) {
|
||||||
val exoPlayer = if (LocalInspectionMode.current) {
|
val exoPlayer = rememberExoPlayer()
|
||||||
remember {
|
|
||||||
ExoPlayerForPreview()
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
val context = LocalContext.current
|
|
||||||
remember {
|
|
||||||
ExoPlayer.Builder(context).build()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ExoPlayerMediaAudioView(
|
ExoPlayerMediaAudioView(
|
||||||
localMediaViewState = localMediaViewState,
|
localMediaViewState = localMediaViewState,
|
||||||
bottomPaddingInPixels = bottomPaddingInPixels,
|
bottomPaddingInPixels = bottomPaddingInPixels,
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,28 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2024 New Vector Ltd.
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
* Please see LICENSE in the repository root for full details.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package io.element.android.libraries.mediaviewer.impl.local.player
|
||||||
|
|
||||||
|
import androidx.compose.runtime.Composable
|
||||||
|
import androidx.compose.runtime.remember
|
||||||
|
import androidx.compose.ui.platform.LocalContext
|
||||||
|
import androidx.compose.ui.platform.LocalInspectionMode
|
||||||
|
import androidx.media3.exoplayer.ExoPlayer
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
fun rememberExoPlayer(): ExoPlayer {
|
||||||
|
return if (LocalInspectionMode.current) {
|
||||||
|
remember {
|
||||||
|
ExoPlayerForPreview()
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
val context = LocalContext.current
|
||||||
|
remember {
|
||||||
|
ExoPlayer.Builder(context).build()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -45,6 +45,9 @@ import io.element.android.libraries.designsystem.utils.OnLifecycleEvent
|
||||||
import io.element.android.libraries.mediaviewer.api.local.LocalMedia
|
import io.element.android.libraries.mediaviewer.api.local.LocalMedia
|
||||||
import io.element.android.libraries.mediaviewer.impl.local.LocalMediaViewState
|
import io.element.android.libraries.mediaviewer.impl.local.LocalMediaViewState
|
||||||
import io.element.android.libraries.mediaviewer.impl.local.PlayableState
|
import io.element.android.libraries.mediaviewer.impl.local.PlayableState
|
||||||
|
import io.element.android.libraries.mediaviewer.impl.local.player.MediaPlayerControllerState
|
||||||
|
import io.element.android.libraries.mediaviewer.impl.local.player.MediaPlayerControllerView
|
||||||
|
import io.element.android.libraries.mediaviewer.impl.local.player.rememberExoPlayer
|
||||||
import io.element.android.libraries.mediaviewer.impl.local.rememberLocalMediaViewState
|
import io.element.android.libraries.mediaviewer.impl.local.rememberLocalMediaViewState
|
||||||
import kotlinx.coroutines.delay
|
import kotlinx.coroutines.delay
|
||||||
import kotlin.time.Duration.Companion.seconds
|
import kotlin.time.Duration.Companion.seconds
|
||||||
|
|
@ -57,16 +60,7 @@ fun MediaVideoView(
|
||||||
localMedia: LocalMedia?,
|
localMedia: LocalMedia?,
|
||||||
modifier: Modifier = Modifier,
|
modifier: Modifier = Modifier,
|
||||||
) {
|
) {
|
||||||
val exoPlayer = if (LocalInspectionMode.current) {
|
val exoPlayer = rememberExoPlayer()
|
||||||
remember {
|
|
||||||
ExoPlayerForPreview()
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
val context = LocalContext.current
|
|
||||||
remember {
|
|
||||||
ExoPlayer.Builder(context).build()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ExoPlayerMediaVideoView(
|
ExoPlayerMediaVideoView(
|
||||||
localMediaViewState = localMediaViewState,
|
localMediaViewState = localMediaViewState,
|
||||||
bottomPaddingInPixels = bottomPaddingInPixels,
|
bottomPaddingInPixels = bottomPaddingInPixels,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue