TP-12345 | Add resizeMode in VideoRenderer (#584)
This commit is contained in:
@@ -373,6 +373,14 @@ enum class ContentScaleType {
|
||||
None
|
||||
}
|
||||
|
||||
enum class ResizeModeType {
|
||||
Fit,
|
||||
FixedWidth,
|
||||
FixedHeight,
|
||||
Fill,
|
||||
Zoom
|
||||
}
|
||||
|
||||
enum class UiTronTextDecoration {
|
||||
Underline,
|
||||
LineThrough,
|
||||
|
||||
@@ -11,6 +11,7 @@ import com.navi.uitron.model.UiTronResponse
|
||||
|
||||
data class VideoProperty(
|
||||
var placeHolderView: UiTronResponse? = null,
|
||||
var resizeMode: String? = null,
|
||||
) : BaseProperty() {
|
||||
|
||||
override fun copyNonNullFrom(property: BaseProperty?) {
|
||||
|
||||
@@ -35,7 +35,6 @@ import androidx.media3.datasource.cache.SimpleCache
|
||||
import androidx.media3.exoplayer.ExoPlayer
|
||||
import androidx.media3.exoplayer.source.MediaSource
|
||||
import androidx.media3.exoplayer.source.ProgressiveMediaSource
|
||||
import androidx.media3.ui.AspectRatioFrameLayout.RESIZE_MODE_ZOOM
|
||||
import androidx.media3.ui.PlayerView
|
||||
import com.navi.uitron.UiTronSdkManager
|
||||
import com.navi.uitron.model.data.UiTronData
|
||||
@@ -45,6 +44,7 @@ import com.navi.uitron.utils.clip
|
||||
import com.navi.uitron.utils.customClickable
|
||||
import com.navi.uitron.utils.customCombinedClick
|
||||
import com.navi.uitron.utils.customOffset
|
||||
import com.navi.uitron.utils.getResizeMode
|
||||
import com.navi.uitron.utils.orTrue
|
||||
import com.navi.uitron.utils.setBackground
|
||||
import com.navi.uitron.utils.setBlur
|
||||
@@ -102,6 +102,9 @@ class VideoRenderer(private val uiTronRenderer: UiTronRenderer) : Renderer<Video
|
||||
|
||||
val mediaUrl = remember(videoData?.videoUrl) { videoData?.videoUrl.orEmpty() }
|
||||
|
||||
val playerResizeMode =
|
||||
remember(property.resizeMode) { getResizeMode(property.resizeMode) }
|
||||
|
||||
val placeholderVisibility = remember { mutableStateOf(true) }
|
||||
|
||||
exoPlayer =
|
||||
@@ -138,7 +141,7 @@ class VideoRenderer(private val uiTronRenderer: UiTronRenderer) : Renderer<Video
|
||||
PlayerView(localContext).apply {
|
||||
useController = false
|
||||
player = exoPlayer
|
||||
resizeMode = RESIZE_MODE_ZOOM
|
||||
resizeMode = playerResizeMode
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -83,6 +83,8 @@ import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import androidx.constraintlayout.compose.ConstrainedLayoutReference
|
||||
import androidx.constraintlayout.compose.ConstraintLayoutBaseScope
|
||||
import androidx.media3.ui.AspectRatioFrameLayout
|
||||
import androidx.media3.ui.AspectRatioFrameLayout.ResizeMode
|
||||
import com.google.gson.Gson
|
||||
import com.navi.uitron.UiTronSdkManager
|
||||
import com.navi.uitron.helpers.animationHelper.TransFormOrigin
|
||||
@@ -119,6 +121,7 @@ import com.navi.uitron.model.ui.Offset as UiTronOffset
|
||||
import com.navi.uitron.model.ui.OutlinedTextFieldKeyBoardOptions
|
||||
import com.navi.uitron.model.ui.OutlinedTextFieldTextStyle
|
||||
import com.navi.uitron.model.ui.OutlinedTextFieldValueTransformation
|
||||
import com.navi.uitron.model.ui.ResizeModeType
|
||||
import com.navi.uitron.model.ui.RowConstraints
|
||||
import com.navi.uitron.model.ui.ScrollData
|
||||
import com.navi.uitron.model.ui.SizeRange
|
||||
@@ -373,6 +376,17 @@ fun getContentScale(contentScale: String?): ContentScale {
|
||||
}
|
||||
}
|
||||
|
||||
fun getResizeMode(resizeMode: String?): @ResizeMode Int {
|
||||
return when (resizeMode) {
|
||||
ResizeModeType.Fit.name -> AspectRatioFrameLayout.RESIZE_MODE_FIT
|
||||
ResizeModeType.FixedWidth.name -> AspectRatioFrameLayout.RESIZE_MODE_FIXED_WIDTH
|
||||
ResizeModeType.FixedHeight.name -> AspectRatioFrameLayout.RESIZE_MODE_FIXED_HEIGHT
|
||||
ResizeModeType.Fill.name -> AspectRatioFrameLayout.RESIZE_MODE_FILL
|
||||
ResizeModeType.Zoom.name -> AspectRatioFrameLayout.RESIZE_MODE_ZOOM
|
||||
else -> AspectRatioFrameLayout.RESIZE_MODE_FIT
|
||||
}
|
||||
}
|
||||
|
||||
fun getTextDecoration(textDecoration: String?): TextDecoration {
|
||||
return when (textDecoration) {
|
||||
UiTronTextDecoration.Underline.name -> TextDecoration.Underline
|
||||
|
||||
Reference in New Issue
Block a user