TP-12345 | Add resizeMode in VideoRenderer (#584)

This commit is contained in:
Shivam Goyal
2024-10-09 20:31:13 +05:30
committed by GitHub
parent 94caaf0faa
commit a419c9a71a
4 changed files with 28 additions and 2 deletions

View File

@@ -373,6 +373,14 @@ enum class ContentScaleType {
None
}
enum class ResizeModeType {
Fit,
FixedWidth,
FixedHeight,
Fill,
Zoom
}
enum class UiTronTextDecoration {
Underline,
LineThrough,

View File

@@ -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?) {

View File

@@ -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
}
}

View File

@@ -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