TP-52584 | modifier refactor fixes (#303)

This commit is contained in:
Maila Rajanikanth
2024-01-16 22:24:58 +05:30
committed by GitHub
parent 23386c5bcb
commit bf4ab0c0b7
9 changed files with 54 additions and 43 deletions

View File

@@ -15,7 +15,7 @@ import setVerticalScroll
@SuppressLint("ModifierFactoryExtensionFunction")
class BoxModifierBuilder(
private var modifier: Modifier,
modifier: Modifier,
private val property: BoxProperty,
uiTronData: UiTronData?,
uiTronViewModel: UiTronViewModel
@@ -24,18 +24,18 @@ class BoxModifierBuilder(
override fun build(): Modifier {
setIdModifiers()
setSizeModifiers()
modifier = modifier
finalModifier = finalModifier
.setVerticalScroll(property.verticalScroll)
.setHorizontalScroll(property.horizontalScroll)
setBorderModifiers()
modifier = modifier.setShimmerEffect(property.isShimmerEnabled)
finalModifier = finalModifier.setShimmerEffect(property.isShimmerEnabled)
setClickableModifiers()
modifier = modifier.shadow(
finalModifier = finalModifier.shadow(
elevation = property.elevation?.toInt()?.dp ?: 0.dp,
spotColor = property.spotColor?.hexToComposeColor ?: Color.Transparent,
ambientColor = property.ambientColor?.hexToComposeColor ?: Color.Transparent
)
return modifier
return finalModifier
}
}

View File

@@ -8,7 +8,7 @@ import com.navi.uitron.viewmodel.UiTronViewModel
@SuppressLint("ModifierFactoryExtensionFunction")
class ButtonModifierBuilder(
private var modifier: Modifier,
modifier: Modifier,
property: ButtonProperty,
uiTronData: UiTronData?,
uiTronViewModel: UiTronViewModel
@@ -20,7 +20,7 @@ class ButtonModifierBuilder(
setMargin()
setPadding()
setEffectModifiers()
return modifier
return finalModifier
}
}

View File

@@ -14,7 +14,7 @@ import hexToComposeColor
@SuppressLint("ModifierFactoryExtensionFunction")
class CardModifierBuilder(
private var modifier: Modifier,
modifier: Modifier,
private val property: CardProperty,
uiTronData: UiTronData?,
uiTronViewModel: UiTronViewModel
@@ -25,7 +25,7 @@ class CardModifierBuilder(
setSizeModifiers()
setPadding()
setClipShape()
modifier = modifier.composed {
finalModifier = finalModifier.composed {
shadow(
elevation = property.elevation?.dp ?: 0.dp,
ambientColor = property.ambientColor?.hexToComposeColor
@@ -36,7 +36,7 @@ class CardModifierBuilder(
}
setClickableModifiers()
setEffectModifiers()
return modifier
return finalModifier
}
}

View File

@@ -2,15 +2,19 @@ package com.navi.uitron.modifer
import android.annotation.SuppressLint
import androidx.compose.ui.Modifier
import clip
import com.navi.uitron.model.data.UiTronData
import com.navi.uitron.model.ui.ColumnProperty
import com.navi.uitron.viewmodel.UiTronViewModel
import setBackground
import setBorderStroke
import setHorizontalScroll
import setPadding
import setVerticalScroll
@SuppressLint("ModifierFactoryExtensionFunction")
class ColumnModifierBuilder(
private var modifier: Modifier,
modifier: Modifier,
private val property: ColumnProperty,
uiTronData: UiTronData?,
uiTronViewModel: UiTronViewModel
@@ -18,14 +22,14 @@ class ColumnModifierBuilder(
override fun build(): Modifier {
setIdModifiers()
modifier = modifier
finalModifier = finalModifier
.setVerticalScroll(property.verticalScroll)
.setHorizontalScroll(property.horizontalScroll)
setSizeModifiers()
setBorderModifiers()
setClickableModifiers()
setEffectModifiers()
return modifier
return finalModifier
}
}

View File

@@ -10,7 +10,7 @@ import setVerticalScroll
@SuppressLint("ModifierFactoryExtensionFunction")
class ConstraintModifierBuilder(
private var modifier: Modifier,
modifier: Modifier,
private val property: ConstraintProperty,
uiTronData: UiTronData?,
uiTronViewModel: UiTronViewModel
@@ -19,13 +19,13 @@ class ConstraintModifierBuilder(
override fun build(): Modifier {
setIdModifiers()
setSizeModifiers()
modifier = modifier
finalModifier = finalModifier
.setVerticalScroll(property.verticalScroll)
.setHorizontalScroll(property.horizontalScroll)
setBorderModifiers()
setClickableModifiers()
setEffectModifiers()
return modifier
return finalModifier
}
}

View File

@@ -23,44 +23,46 @@ import setWidthRange
@Suppress("UNCHECKED_CAST", "MemberVisibilityCanBePrivate")
open class ModifierBuilder<T : ModifierBuilder<T>>(
private var modifier: Modifier,
modifier: Modifier,
private val property: BaseProperty,
private val uiTronData: UiTronData?,
private val uiTronViewModel: UiTronViewModel
open val uiTronData: UiTronData?,
open val uiTronViewModel: UiTronViewModel
) {
open var finalModifier = modifier
fun setCustomOffset(): T {
modifier = modifier.customOffset(property.offset)
finalModifier = finalModifier.customOffset(property.offset)
return this as T
}
fun setWidth(): T {
modifier = modifier.setWidth(property.width)
finalModifier = finalModifier.setWidth(property.width)
return this as T
}
fun setHeight(): T {
modifier = modifier.setHeight(property.height)
finalModifier = finalModifier.setHeight(property.height)
return this as T
}
fun setWidthRange(): T {
modifier = modifier.setWidthRange(property.widthRange)
finalModifier = finalModifier.setWidthRange(property.widthRange)
return this as T
}
fun setHeightRange(): T {
modifier = modifier.setHeightRange(property.heightRange)
finalModifier = finalModifier.setHeightRange(property.heightRange)
return this as T
}
fun setMargin(): T {
modifier = modifier.setPadding(property.margin)
finalModifier = finalModifier.setPadding(property.margin)
return this as T
}
fun setBackground(): T {
modifier = modifier.setBackground(
finalModifier = finalModifier.setBackground(
property.backgroundColor,
property.shape,
property.backGroundBrushData
@@ -69,32 +71,32 @@ open class ModifierBuilder<T : ModifierBuilder<T>>(
}
fun setPadding(): T {
modifier = modifier.setPadding(property.padding)
finalModifier = finalModifier.setPadding(property.padding)
return this as T
}
fun setBorderStroke(): T {
modifier = modifier.setBorderStroke(property.borderStrokeData)
finalModifier = finalModifier.setBorderStroke(property.borderStrokeData)
return this as T
}
fun setClipShape(): T {
modifier = modifier.clip(property.clipShape)
finalModifier = finalModifier.clip(property.clipShape)
return this as T
}
fun setTag(): T {
modifier = modifier.setTag(property)
finalModifier = finalModifier.setTag(property)
return this as T
}
fun setLayoutId(): T {
modifier = modifier.layoutId(property.layoutId.orEmpty())
finalModifier = finalModifier.layoutId(property.layoutId.orEmpty())
return this as T
}
fun setCustomClickable(): T {
modifier = modifier.customClickable(
finalModifier = finalModifier.customClickable(
{
uiTronViewModel.handleActions(uiTronData?.onClick)
},
@@ -105,19 +107,19 @@ open class ModifierBuilder<T : ModifierBuilder<T>>(
}
fun setCustomCombinedClick(): T {
modifier = modifier.customCombinedClick(property, uiTronData) {
finalModifier = finalModifier.customCombinedClick(property, uiTronData) {
uiTronViewModel.handleActions(it)
}
return this as T
}
fun setAlpha(): T {
modifier = modifier.alpha(property.alpha ?: 1.0f)
finalModifier = finalModifier.alpha(property.alpha ?: 1.0f)
return this as T
}
fun setBlur(): T {
modifier = modifier.setBlur(property.blurData)
finalModifier = finalModifier.setBlur(property.blurData)
return this as T
}
@@ -168,7 +170,7 @@ open class ModifierBuilder<T : ModifierBuilder<T>>(
@SuppressLint("ModifierFactoryExtensionFunction")
open fun build(): Modifier {
return modifier
return finalModifier
}
}

View File

@@ -10,7 +10,7 @@ import setVerticalScroll
@SuppressLint("ModifierFactoryExtensionFunction")
class RowModifierBuilder(
private var modifier: Modifier,
modifier: Modifier,
private val property: RowProperty,
uiTronData: UiTronData?,
uiTronViewModel: UiTronViewModel
@@ -18,14 +18,14 @@ class RowModifierBuilder(
override fun build(): Modifier {
setIdModifiers()
modifier = modifier
finalModifier = finalModifier
.setVerticalScroll(property.verticalScroll)
.setHorizontalScroll(property.horizontalScroll)
setSizeModifiers()
setBorderModifiers()
setClickableModifiers()
setEffectModifiers()
return modifier
return finalModifier
}
}

View File

@@ -9,7 +9,7 @@ import com.navi.uitron.viewmodel.UiTronViewModel
@SuppressLint("ModifierFactoryExtensionFunction")
class SliderModifierBuilder(
private var modifier: Modifier,
modifier: Modifier,
private val property: SliderProperty,
uiTronData: UiTronData?,
uiTronViewModel: UiTronViewModel
@@ -20,8 +20,8 @@ class SliderModifierBuilder(
setSizeModifiers()
setPadding()
setEffectModifiers()
modifier = modifier.rotate(property.rotation ?: 0f)
return modifier
finalModifier = finalModifier.rotate(property.rotation ?: 0f)
return finalModifier
}
}

View File

@@ -61,7 +61,12 @@ class SpacerRenderer : Renderer<SpacerProperty> {
Spacer(
modifier = if (UiTronSdkManager.isModifierBuilderEnabled()) {
ModifierBuilder(modifier ?: Modifier, property, uiTronData, uiTronViewModel)
.setDefaultModifiers()
.setIdModifiers()
.setSizeModifiers()
.setClickableModifiers()
.setClipShape()
.setAlpha()
.setBorderModifiers()
.build()
} else {
(modifier ?: Modifier)