import androidx.annotation.Keep import com.blaze.blazesdk.style.players.BlazePlayerDisplayMode import com.blaze.blazesdk.style.players.moments.BlazeMomentsPlayerBodyTextStyle import com.blaze.blazesdk.style.players.moments.BlazeMomentsPlayerCtaIconStyle import com.blaze.blazesdk.style.players.moments.BlazeMomentsPlayerCtaStyle import com.blaze.blazesdk.style.players.moments.BlazeMomentsPlayerFooterGradientStyle import com.blaze.blazesdk.style.players.moments.BlazeMomentsPlayerHeadingTextStyle import com.blaze.blazesdk.style.players.moments.BlazeMomentsPlayerStyle import com.blaze.blazesdk.style.players.moments.BlazeMomentsPlayerFollowEntityChipStyle import com.blaze.rtnblazesdk.customization.BlazeEnumMapper // Data classes @Keep data class BlazeReactMomentsPlayerStyle( val headingText: BlazeReactMomentsPlayerHeadingTextStyle?, val bodyText: BlazeReactMomentsPlayerBodyTextStyle?, val buttons: BlazeReactMomentsPlayerButtonsStyle?, val chips: BlazeReactMomentsPlayerChipsStyle?, val backgroundColor: String?, // Hex val cta: BlazeReactMomentsPlayerCtaStyle?, val headerGradient: BlazeReactMomentsPlayerHeaderGradientStyle?, val footerGradient: BlazeReactMomentsPlayerFooterGradientStyle?, val firstTimeSlide: BlazeReactMomentsPlayerFirstTimeSlideStyle?, val seekBar: BlazeReactMomentsPlayerSeekBarStyle?, val bottomComponentsAlignment: BlazeReactBottomComponentsAlignment?, val playerDisplayMode: BlazeReactPlayerDisplayMode?, val followEntity: BlazeReactMomentsPlayerFollowEntityStyle? ) @Keep data class BlazeReactMomentsPlayerHeadingTextStyle( val textSize: Float?, val textColor: String?, // Hex val font: BlazeReactTitleFont?, val contentSource: ContentSource?, val isVisible: Boolean? ) { @Keep enum class ContentSource(override val rawValue: String): BlazeEnumMapper { TITLE("Title") { override fun mapToBlazeEnumClass() = BlazeMomentsPlayerHeadingTextStyle.BlazeContentSource.TITLE }, SUBTITLE("Subtitle") { override fun mapToBlazeEnumClass() = BlazeMomentsPlayerHeadingTextStyle.BlazeContentSource.SUBTITLE } } } @Keep data class BlazeReactMomentsPlayerBodyTextStyle( val textSize: Float?, val textColor: String?, // Hex val font: BlazeReactTitleFont?, val contentSource: ContentSource?, val isVisible: Boolean? ) { @Keep enum class ContentSource(override val rawValue: String): BlazeEnumMapper { TITLE("Title") { override fun mapToBlazeEnumClass() = BlazeMomentsPlayerBodyTextStyle.BlazeContentSource.TITLE }, SUBTITLE("Subtitle") { override fun mapToBlazeEnumClass() = BlazeMomentsPlayerBodyTextStyle.BlazeContentSource.SUBTITLE }, DESCRIPTION("Description") { override fun mapToBlazeEnumClass() = BlazeMomentsPlayerBodyTextStyle.BlazeContentSource.DESCRIPTION } } } @Keep data class BlazeReactMomentsPlayerButtonsStyle( val mute: BlazeReactPlayerButtonStyle?, val exit: BlazeReactPlayerButtonStyle?, val share: BlazeReactPlayerButtonStyle?, val like: BlazeReactPlayerButtonStyle?, val play: BlazeReactPlayerButtonStyle?, val seekForward: BlazeReactPlayerButtonStyle?, val seekBackward: BlazeReactPlayerButtonStyle?, val search: BlazeReactPlayerButtonStyle?, val customActionButtons: List? ) @Keep data class BlazeReactMomentsPlayerChipsStyle( val ad: BlazeReactMomentsPlayerChipStyle? ) @Keep data class BlazeReactMomentsPlayerChipStyle( val titlePadding: BlazeReactMargins?, val text: String?, val textColor: String?, val backgroundColor: String?, var isVisible: Boolean? ) @Keep data class BlazeReactMomentsPlayerCtaStyle( val cornerRadius: Int?, val textSize: Float?, val font: BlazeReactTitleFont?, val width: Int?, val height: Int?, val icon: BlazeReactMomentsPlayerCtaIconStyle?, val layoutPositioning: CTAPositioning?, val horizontalAlignment: CTAHorizontalAlignment?, val isVisible: Boolean? ) { @Keep enum class CTAPositioning(override val rawValue: String): BlazeEnumMapper { CTA_BELLOW_BOTTOM_BUTTONS_BOX("CtaBellowBottomButtonsBox") { override fun mapToBlazeEnumClass() = BlazeMomentsPlayerCtaStyle.BlazeCTAPositioning.CTA_BELLOW_BOTTOM_BUTTONS_BOX }, CTA_NEXT_TO_BOTTOM_BUTTONS_BOX("CtaNextToBottomButtonsBox") { override fun mapToBlazeEnumClass() = BlazeMomentsPlayerCtaStyle.BlazeCTAPositioning.CTA_NEXT_TO_BOTTOM_BUTTONS_BOX } } @Keep enum class CTAHorizontalAlignment(override val rawValue: String): BlazeEnumMapper { START("Start") { override fun mapToBlazeEnumClass() = BlazeMomentsPlayerCtaStyle.BlazeCTAHorizontalAlignment.START }, CENTER("Center") { override fun mapToBlazeEnumClass() = BlazeMomentsPlayerCtaStyle.BlazeCTAHorizontalAlignment.CENTER }, END("End") { override fun mapToBlazeEnumClass() = BlazeMomentsPlayerCtaStyle.BlazeCTAHorizontalAlignment.END }, FULL_AVAILABLE_WIDTH("FullAvailableWidth") { override fun mapToBlazeEnumClass() = BlazeMomentsPlayerCtaStyle.BlazeCTAHorizontalAlignment.FULL_AVAILABLE_WIDTH } } } @Keep data class BlazeReactMomentsPlayerHeaderGradientStyle( val isVisible: Boolean?, val startColor: String?, // Hex val endColor: String?, // Hex ) @Keep data class BlazeReactMomentsPlayerFooterGradientStyle( val isVisible: Boolean?, val startColor: String?, // Hex val endColor: String?, // Hex val endPositioning: EndPositioning? ) { @Keep enum class EndPositioning(override val rawValue: String): BlazeEnumMapper { BOTTOM_TO_PLAYER("BottomToPlayer") { override fun mapToBlazeEnumClass() = BlazeMomentsPlayerFooterGradientStyle.BlazeEndPositioning.BOTTOM_TO_PLAYER }, BOTTOM_TO_CONTAINER("BottomToContainer") { override fun mapToBlazeEnumClass() = BlazeMomentsPlayerFooterGradientStyle.BlazeEndPositioning.BOTTOM_TO_CONTAINER } } } @Keep data class BlazeReactMomentsPlayerFirstTimeSlideStyle( val show: Boolean?, val cta: BlazeReactFirstTimeSlideCTAStyle?, val backgroundColor: BlazeReactColor?, val mainTitle: BlazeReactFirstTimeSlideTextStyle?, val subtitle: BlazeReactFirstTimeSlideTextStyle?, val instructions: BlazeReactMomentsPlayerFirstTimeSlideInstructionsStyle? ) @Keep data class BlazeReactMomentsPlayerFirstTimeSlideInstructionsStyle( val next: BlazeReactFirstTimeSlideInstructionStyle?, val pause: BlazeReactFirstTimeSlideInstructionStyle?, val previous: BlazeReactFirstTimeSlideInstructionStyle?, val play: BlazeReactFirstTimeSlideInstructionStyle? ) @Keep data class BlazeReactMomentsPlayerSeekBarStyle( val isVisible: Boolean?, val playingState: BlazeReactSeekBarStyle?, val pausedState: BlazeReactSeekBarStyle?, val horizontalSpacing: Int?, val bottomSpacing: Int? ) @Keep data class BlazeReactMomentsPlayerCtaIconStyle ( val iconImage: BlazeReactImage?, val iconPositioning: BlazeReactMomentsCTAIconPositioning?, val iconTint: String? ) @Keep enum class BlazeReactBottomComponentsAlignment(override val rawValue: String): BlazeEnumMapper { RELATIVE_TO_CONTAINER("RelativeToContainer") { override fun mapToBlazeEnumClass() = BlazeMomentsPlayerStyle.BlazeBottomComponentsAlignment.RELATIVE_TO_CONTAINER }, RELATIVE_TO_PLAYER("RelativeToPlayer") { override fun mapToBlazeEnumClass() = BlazeMomentsPlayerStyle.BlazeBottomComponentsAlignment.RELATIVE_TO_PLAYER }, FIT_CTA_BELOW_PLAYER("FitCtaBelowPlayer") { override fun mapToBlazeEnumClass() = BlazeMomentsPlayerStyle.BlazeBottomComponentsAlignment.FIT_CTA_BELOW_PLAYER } } @Keep enum class BlazeReactPlayerDisplayMode(override val rawValue: String): BlazeEnumMapper { FIXED_RATIO_9_16("FixedRatio_9_16") { override fun mapToBlazeEnumClass() = BlazePlayerDisplayMode.FIXED_RATIO_9_16 }, RESIZE_ASPECT_FILL_CENTER_CROP("ResizeAspectFillCenterCrop") { override fun mapToBlazeEnumClass() = BlazePlayerDisplayMode.RESIZE_ASPECT_FILL_CENTER_CROP } } @Keep enum class BlazeReactMomentsCTAIconPositioning(override val rawValue: String): BlazeEnumMapper { START("Start") { override fun mapToBlazeEnumClass() = BlazeMomentsPlayerCtaIconStyle.BlazeIconPositioning.START } } @Keep data class BlazeReactMomentsPlayerFollowEntityStyle( val isVisible: Boolean?, val followState: BlazeReactMomentsPlayerFollowEntityStateStyle?, val unfollowState: BlazeReactMomentsPlayerFollowEntityStateStyle?, val entityType: BlazeReactFollowEntityType? ) @Keep data class BlazeReactMomentsPlayerFollowEntityStateStyle( val avatar: BlazeReactMomentsPlayerFollowEntityAvatarStyle?, val chip: BlazeReactMomentsPlayerFollowEntityChipStyle? ) @Keep data class BlazeReactMomentsPlayerFollowEntityAvatarStyle( val borderWidth: Float?, val borderColor: String? ) @Keep data class BlazeReactMomentsPlayerFollowEntityChipStyle( val backgroundColor: String?, val iconColor: String?, val contentSource: ChipContentSource? ) { @Keep enum class ChipContentSource( override val rawValue: String ) : BlazeEnumMapper { ICON("Icon") { override fun mapToBlazeEnumClass() = BlazeMomentsPlayerFollowEntityChipStyle.BlazeMomentsPlayerFollowEntityChipContentSource.ICON }, TEXT("Text") { override fun mapToBlazeEnumClass() = BlazeMomentsPlayerFollowEntityChipStyle.BlazeMomentsPlayerFollowEntityChipContentSource.TEXT } } } @Keep data class BlazeReactFollowEntityType( val type: String?, val fallbackType: BlazeReactFollowEntityType? )