TP-31192 Toast is not showing up on screen (#79)
This commit is contained in:
committed by
GitHub Enterprise
parent
84c6503ed2
commit
57910e48d9
@@ -9,7 +9,10 @@ package com.navi.uitron.model.ui
|
||||
|
||||
class ToastProperty(
|
||||
var message: String? = null,
|
||||
var duration: String? = null
|
||||
var duration: String? = null,
|
||||
var gravity: String? = null,
|
||||
var xOffset: Int? = null,
|
||||
var yOffset: Int? = null
|
||||
) : BaseProperty() {
|
||||
|
||||
override fun copyNonNullFrom(property: BaseProperty?) {
|
||||
@@ -17,5 +20,8 @@ class ToastProperty(
|
||||
val toastProperty = property as? ToastProperty?
|
||||
toastProperty?.message?.let { message = it }
|
||||
toastProperty?.duration?.let { duration = it }
|
||||
toastProperty?.gravity?.let { gravity = it }
|
||||
toastProperty?.xOffset?.let { xOffset = it }
|
||||
toastProperty?.yOffset?.let { yOffset = it }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -256,3 +256,15 @@ enum class InputTransformationType {
|
||||
NUMBER_TO_WORDS,
|
||||
DOB_TO_READABLE_STRING
|
||||
}
|
||||
|
||||
enum class GravityType {
|
||||
BOTTOM,
|
||||
CENTER,
|
||||
CENTER_VERTICAL,
|
||||
CENTER_HORIZONTAL,
|
||||
TOP,
|
||||
START,
|
||||
END,
|
||||
LEFT,
|
||||
RIGHT
|
||||
}
|
||||
|
||||
@@ -12,11 +12,20 @@ import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.collectAsState
|
||||
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.compose.ui.unit.dp
|
||||
import androidx.lifecycle.ViewTreeLifecycleOwner
|
||||
import androidx.lifecycle.ViewTreeViewModelStoreOwner
|
||||
import androidx.lifecycle.viewmodel.compose.LocalViewModelStoreOwner
|
||||
import androidx.savedstate.setViewTreeSavedStateRegistryOwner
|
||||
import com.navi.uitron.model.data.ToastData
|
||||
import com.navi.uitron.model.data.UiTronData
|
||||
import com.navi.uitron.model.ui.ToastProperty
|
||||
import com.navi.uitron.model.ui.UiTronView
|
||||
import com.navi.uitron.viewmodel.UiTronViewModel
|
||||
import dpToPx
|
||||
import getGravity
|
||||
import isNotNullAndNotEmpty
|
||||
import orFalse
|
||||
|
||||
@@ -59,13 +68,20 @@ class ToastRenderer(
|
||||
} else {
|
||||
Toast(LocalContext.current).apply {
|
||||
duration = getToastDuration(property.duration)
|
||||
view = ComposeView(LocalContext.current).apply {
|
||||
val views = ComposeView(LocalContext.current).apply {
|
||||
childrenComposeViews?.let {
|
||||
setContent {
|
||||
uiTronRenderer.Render(composeViews = childrenComposeViews)
|
||||
}
|
||||
}
|
||||
}
|
||||
ViewTreeLifecycleOwner.set(views, LocalLifecycleOwner.current)
|
||||
ViewTreeViewModelStoreOwner.set(views, LocalViewModelStoreOwner.current)
|
||||
views.setViewTreeSavedStateRegistryOwner(LocalSavedStateRegistryOwner.current)
|
||||
setGravity(getGravity(property.gravity), property.xOffset?.dp?.value?.toInt() ?: 0,
|
||||
property.yOffset?.dp?.value?.toInt() ?: 0
|
||||
)
|
||||
view = views
|
||||
}.show()
|
||||
}
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
*/
|
||||
|
||||
import android.content.res.Resources
|
||||
import android.view.Gravity
|
||||
import androidx.compose.foundation.*
|
||||
import androidx.compose.foundation.interaction.MutableInteractionSource
|
||||
import androidx.compose.foundation.layout.*
|
||||
@@ -549,6 +550,21 @@ fun getKeyboardOptions(keyboardOptions: OutlinedTextFieldKeyBoardOptions?): Keyb
|
||||
)
|
||||
}
|
||||
|
||||
fun getGravity(gravity: String?): Int {
|
||||
return when(gravity) {
|
||||
GravityType.BOTTOM.name -> Gravity.BOTTOM
|
||||
GravityType.CENTER.name -> Gravity.CENTER
|
||||
GravityType.CENTER_VERTICAL.name -> Gravity.CENTER_VERTICAL
|
||||
GravityType.CENTER_HORIZONTAL.name -> Gravity.CENTER_HORIZONTAL
|
||||
GravityType.TOP.name -> Gravity.TOP
|
||||
GravityType.START.name -> Gravity.START
|
||||
GravityType.END.name -> Gravity.END
|
||||
GravityType.LEFT.name -> Gravity.LEFT
|
||||
GravityType.RIGHT.name -> Gravity.RIGHT
|
||||
else -> Gravity.NO_GRAVITY
|
||||
}
|
||||
}
|
||||
|
||||
fun String?.getDataId() = this.orEmpty()+DATA_SUFFIX
|
||||
|
||||
fun String?.getInputId() = this.orEmpty()+ INPUT_SUFFIX
|
||||
|
||||
Reference in New Issue
Block a user