From 13aed803ae55a964ae598ce5c581428d741e5d71 Mon Sep 17 00:00:00 2001 From: moon <56061215+MgKyawLay@users.noreply.github.com> Date: Wed, 17 Jun 2026 00:25:14 +0630 Subject: [PATCH] image array get from tms --- .../ui/dashboard/DashboardScreen.kt | 21 ++++++++++--------- .../ui/dashboard/DashboardUiState.kt | 3 ++- .../ui/dashboard/DashboardViewModel.kt | 10 +++++++++ 3 files changed, 23 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/com/mob/utsmyanmar/ui/dashboard/DashboardScreen.kt b/app/src/main/java/com/mob/utsmyanmar/ui/dashboard/DashboardScreen.kt index eab58dd..ba393b6 100644 --- a/app/src/main/java/com/mob/utsmyanmar/ui/dashboard/DashboardScreen.kt +++ b/app/src/main/java/com/mob/utsmyanmar/ui/dashboard/DashboardScreen.kt @@ -429,6 +429,7 @@ fun DashboardScreen2( ) { item { AdvertisingArea( + carouselUrls = dashboardUiState.carouselUrls, modifier = Modifier .fillMaxWidth() .height(200.dp) @@ -463,19 +464,19 @@ fun DashboardScreen2( } @Composable -private fun AdvertisingArea(modifier: Modifier = Modifier) { - - val imageArray = listOf( - R.drawable.sunmi1, - R.drawable.sunmi2, - R.drawable.sunmi3 - ) - val pageState = rememberPagerState(pageCount = { imageArray.size }) +private fun AdvertisingArea( + carouselUrls: List = emptyList(), + modifier: Modifier = Modifier +) { + val imageModels: List = carouselUrls.ifEmpty { + listOf(R.drawable.sunmi1, R.drawable.sunmi2, R.drawable.sunmi3) + } + val pageState = rememberPagerState(pageCount = { imageModels.size }) LaunchedEffect(pageState) { while (true) { delay(10000.milliseconds) - val nextPage = (pageState.currentPage + 1) % imageArray.size + val nextPage = (pageState.currentPage + 1) % imageModels.size pageState.animateScrollToPage( page = nextPage, animationSpec = tween(durationMillis = 700) @@ -492,7 +493,7 @@ private fun AdvertisingArea(modifier: Modifier = Modifier) { state = pageState, modifier = Modifier.fillMaxSize() ) { page -> AsyncImage( - model = imageArray[page], + model = imageModels[page], contentDescription = "ads images", modifier = Modifier.fillMaxSize(), contentScale = ContentScale.Crop diff --git a/app/src/main/java/com/mob/utsmyanmar/ui/dashboard/DashboardUiState.kt b/app/src/main/java/com/mob/utsmyanmar/ui/dashboard/DashboardUiState.kt index 6cb9020..33eb4cb 100644 --- a/app/src/main/java/com/mob/utsmyanmar/ui/dashboard/DashboardUiState.kt +++ b/app/src/main/java/com/mob/utsmyanmar/ui/dashboard/DashboardUiState.kt @@ -12,5 +12,6 @@ data class TrnxRecord( data class DashboardUiState( val recentTransactions: List = emptyList(), - val lastSyncTime: Long? = null + val lastSyncTime: Long? = null, + val carouselUrls: List = emptyList() ) diff --git a/app/src/main/java/com/mob/utsmyanmar/ui/dashboard/DashboardViewModel.kt b/app/src/main/java/com/mob/utsmyanmar/ui/dashboard/DashboardViewModel.kt index 145fc9a..a0cff93 100644 --- a/app/src/main/java/com/mob/utsmyanmar/ui/dashboard/DashboardViewModel.kt +++ b/app/src/main/java/com/mob/utsmyanmar/ui/dashboard/DashboardViewModel.kt @@ -6,6 +6,7 @@ import androidx.lifecycle.asFlow import androidx.lifecycle.viewModelScope import com.utsmyanmar.baselib.repo.Repository import com.utsmyanmar.paylibs.model.PayDetail +import com.utsmyanmar.paylibs.utils.core_utils.SystemParamsOperation import dagger.hilt.android.lifecycle.HiltViewModel import dagger.hilt.android.qualifiers.ApplicationContext import kotlinx.coroutines.flow.MutableStateFlow @@ -35,6 +36,15 @@ class DashboardViewModel @Inject constructor( } } refreshLastSyncTime() + loadCarouselUrls() + } + + private fun loadCarouselUrls() { + val raw = runCatching { + SystemParamsOperation.getInstance().carouselUrls + }.getOrDefault("") + val urls = raw.split(",").filter { it.isNotBlank() } + _uiState.update { it.copy(carouselUrls = urls) } } fun refreshLastSyncTime() {