TP-0000 | Release 1.0.14 -> Master (#150)

This commit is contained in:
Maila Rajanikanth
2023-08-10 13:34:10 +05:30
committed by GitHub
parent 60b766a490
commit c76438cae8
3 changed files with 43 additions and 7 deletions

View File

@@ -5,7 +5,7 @@ plugins {
id 'maven-publish'
}
def VERSION_NAME = "1.0.12_hotfix_2"
def VERSION_NAME = "1.0.14"
android {
namespace 'com.navi.uitron'

View File

@@ -236,6 +236,12 @@ class MultiSectionTextFieldRenderer() : Renderer<MultiSectionTextFieldProperty>
),
selection = TextRange(maxCharList[index])
)
} else {
inputValues[index].value =
inputValues[index].value.copy(
text = inputValues[index].value.text,
selection = TextRange(maxCharList[index])
)
}
}
},

View File

@@ -9,12 +9,15 @@ package com.navi.uitron.render
import android.widget.Toast
import androidx.compose.runtime.Composable
import androidx.compose.runtime.DisposableEffect
import androidx.compose.runtime.collectAsState
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.ComposeView
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalLifecycleOwner
import androidx.compose.ui.platform.LocalSavedStateRegistryOwner
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleEventObserver
import androidx.lifecycle.setViewTreeLifecycleOwner
import androidx.lifecycle.setViewTreeViewModelStoreOwner
import androidx.lifecycle.viewmodel.compose.LocalViewModelStoreOwner
@@ -34,6 +37,9 @@ class ToastRenderer(
private val childrenComposeViews: List<UiTronView>?,
private val uiTronRenderer: UiTronRenderer
) : Renderer<ToastProperty> {
var toast: Toast? = null
@Composable
override fun Render(
property: ToastProperty,
@@ -43,6 +49,7 @@ class ToastRenderer(
) {
super.Render(property, uiTronData, uiTronViewModel, modifier)
var toastData = uiTronData as? ToastData
val lifecycleOwner = LocalLifecycleOwner.current
if (property.isStateFul.orFalse()) {
uiTronViewModel.addKeyToSavedStateHandle(property.layoutId.orEmpty())
@@ -62,13 +69,14 @@ class ToastRenderer(
if (property.visible.orFalse()) {
if (property.message.isNotNullAndNotEmpty()) {
Toast.makeText(
toast = Toast.makeText(
LocalContext.current,
property.message,
getToastDuration(property.duration)
).show()
)
toast?.show()
} else {
Toast(LocalContext.current).apply {
toast = Toast(LocalContext.current).apply {
duration = getToastDuration(property.duration)
val views = ComposeView(LocalContext.current).apply {
childrenComposeViews?.let {
@@ -77,17 +85,39 @@ class ToastRenderer(
}
}
}
views.setViewTreeLifecycleOwner(LocalLifecycleOwner.current)
views.setViewTreeLifecycleOwner(lifecycleOwner)
views.setViewTreeViewModelStoreOwner(LocalViewModelStoreOwner.current)
views.setViewTreeSavedStateRegistryOwner(LocalSavedStateRegistryOwner.current)
setGravity(getGravity(property.gravity), dpToPx(property.xOffset.orZero()).toInt(),
setGravity(
getGravity(property.gravity), dpToPx(property.xOffset.orZero()).toInt(),
dpToPx(property.yOffset.orZero()).toInt()
)
view = views
}.show()
}
toast?.show()
}
uiTronViewModel.handleActions(toastData?.onDismiss)
}
DisposableEffect(lifecycleOwner) {
var observer: LifecycleEventObserver? = null
observer = LifecycleEventObserver { _, event ->
when (event) {
Lifecycle.Event.ON_STOP -> {
toast?.cancel()
toast = null
observer?.let {
lifecycleOwner.lifecycle.removeObserver(it)
}
}
else -> {}
}
}
lifecycleOwner.lifecycle.addObserver(observer)
onDispose {}
}
}
}