diff --git a/app/.gitignore b/app/.gitignore index 42afabf..9e24c11 100644 --- a/app/.gitignore +++ b/app/.gitignore @@ -1 +1,2 @@ -/build \ No newline at end of file +/build +/.idea/* \ No newline at end of file diff --git a/app/src/main/java/com/mob/ustmm/MainActivity.kt b/app/src/main/java/com/mob/ustmm/MainActivity.kt index 62f0f65..0db1ee4 100644 --- a/app/src/main/java/com/mob/ustmm/MainActivity.kt +++ b/app/src/main/java/com/mob/ustmm/MainActivity.kt @@ -18,7 +18,7 @@ import com.mob.ustmm.ui.theme.MOBPOSTheme class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) -// enableEdgeToEdge() + enableEdgeToEdge() setContent { MOBPOSTheme { val navController = rememberNavController() diff --git a/app/src/main/java/com/mob/ustmm/ui/dashboard/DashboardScreen.kt b/app/src/main/java/com/mob/ustmm/ui/dashboard/DashboardScreen.kt index 8547280..f55942e 100644 --- a/app/src/main/java/com/mob/ustmm/ui/dashboard/DashboardScreen.kt +++ b/app/src/main/java/com/mob/ustmm/ui/dashboard/DashboardScreen.kt @@ -3,42 +3,29 @@ package com.mob.ustmm.ui.dashboard import androidx.compose.foundation.Image import androidx.compose.foundation.background import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.* import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.fillMaxHeight -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.width +import androidx.compose.foundation.pager.HorizontalPager +import androidx.compose.foundation.pager.rememberPagerState import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material3.DividerDefaults -import androidx.compose.material3.HorizontalDivider -import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.ModalDrawerSheet -import androidx.compose.material3.ModalNavigationDrawer -import androidx.compose.material3.Text +import androidx.compose.material3.* import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.rememberCoroutineScope -import androidx.compose.ui.Alignment +import androidx.compose.ui.* import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import androidx.compose.material3.DrawerValue -import androidx.compose.material3.Icon -import androidx.compose.material3.IconButton -import androidx.compose.material3.rememberDrawerState import com.mob.ustmm.R -import com.mob.ustmm.ui.theme.Colors +import com.mob.ustmm.ui.theme.* +import kotlinx.coroutines.delay import kotlinx.coroutines.launch +@OptIn(ExperimentalMaterial3Api::class) @Composable fun DashboardScreen( settlementEnabled: Boolean, @@ -51,13 +38,35 @@ fun DashboardScreen( ) { val drawerState = rememberDrawerState(initialValue = DrawerValue.Closed) val scope = rememberCoroutineScope() + + + val images = listOf( + R.drawable.box_christmas_delivery_gift_package_present_svgrepo_com, + R.drawable.buy_ecommerce_finance_payment_pos_shop_svgrepo_com, + R.drawable.appointment_calendar_date_event_month_plan_svgrepo_com + ) + val startPage = Int.MAX_VALUE / 2; + + val pagerState = rememberPagerState( + initialPage = startPage, + pageCount = { Int.MAX_VALUE } + ) + + LaunchedEffect(Unit) { + while(true){ + delay(3000) + pagerState.animateScrollToPage( + pagerState.currentPage + 1 + ) + } + } ModalNavigationDrawer( drawerState = drawerState, drawerContent = { ModalDrawerSheet( modifier = Modifier.fillMaxWidth(0.8f), - drawerContainerColor = Color.White, + drawerContainerColor = White, drawerShape = RoundedCornerShape(topEnd = 20.dp, bottomEnd = 20.dp) ) { Text( @@ -108,7 +117,7 @@ fun DashboardScreen( onSettlementClick() } .padding(horizontal = 24.dp, vertical = 14.dp), - color = if (settlementEnabled) Color.Black else Color.Gray, + color = if (settlementEnabled) Black else White, fontSize = 16.sp ) Text( @@ -120,52 +129,47 @@ fun DashboardScreen( onWavePayClick() } .padding(horizontal = 24.dp, vertical = 14.dp), - color = if (wavePayEnabled) Color.Black else Color.Gray, + color = if (wavePayEnabled) Black else White, fontSize = 16.sp ) } } ) { - Box( - modifier = Modifier - .fillMaxSize() - .background(Color.White) - ) { - Column( - modifier = Modifier - .fillMaxWidth() - ) { - Row( - modifier = Modifier - .fillMaxWidth() - .height(80.dp) - .background(Colors.primary), - verticalAlignment = Alignment.CenterVertically, - horizontalArrangement = Arrangement.Center - ) { - IconButton( - onClick = {} - ) { - Icon( - painter = painterResource(R.drawable.ic_menu), - contentDescription = "Menu Icon" - ) - } - Spacer(modifier = Modifier.width(16.dp)) - Text( - text = "Dashboard", - style = MaterialTheme.typography.titleLarge, - fontWeight = FontWeight.SemiBold + Scaffold( + topBar = { + CenterAlignedTopAppBar( + title = { + + Text(text = "Dashboard", color = White, fontWeight = FontWeight.SemiBold) + }, + navigationIcon = { + IconButton( + onClick = { + scope.launch { + drawerState.open() + } + } + ) { + Icon(painter = painterResource(R.drawable.ic_menu), contentDescription = "Menu Icon", tint = White) + } + }, + colors = TopAppBarDefaults.topAppBarColors( + containerColor = Primary + ) + ) + } + ) { paddingValues -> + Column( + modifier = Modifier.fillMaxSize().padding(paddingValues).background(White) + ) { + HorizontalPager(state = pagerState) { page -> + val index = page % images.size; + Image( + painter = painterResource(images[index]), + contentDescription = "Banner images", + modifier = Modifier.fillMaxSize(), + contentScale = ContentScale.Crop ) - } - - Box( - modifier = Modifier - .fillMaxWidth() - .fillMaxHeight(0.58f) - ) { - - } } } diff --git a/app/src/main/java/com/mob/ustmm/ui/theme/Color.kt b/app/src/main/java/com/mob/ustmm/ui/theme/Color.kt index 0443ed7..eac361a 100644 --- a/app/src/main/java/com/mob/ustmm/ui/theme/Color.kt +++ b/app/src/main/java/com/mob/ustmm/ui/theme/Color.kt @@ -11,6 +11,8 @@ val Purple40 = Color(0xFF6650a4) val PurpleGrey40 = Color(0xFF625b71) val Pink40 = Color(0xFF7D5260) -val Colors = lightColorScheme( - primary = Color(0xFFCA2027) -) \ No newline at end of file +val Primary = Color(0xFFCA2027) + +val White = Color(0xFFFFFFFF) + +val Black = Color(0xFF000000) \ No newline at end of file diff --git a/app/src/main/res/drawable/appointment_calendar_date_event_month_plan_svgrepo_com.xml b/app/src/main/res/drawable/appointment_calendar_date_event_month_plan_svgrepo_com.xml new file mode 100644 index 0000000..f196151 --- /dev/null +++ b/app/src/main/res/drawable/appointment_calendar_date_event_month_plan_svgrepo_com.xml @@ -0,0 +1,141 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/box_christmas_delivery_gift_package_present_svgrepo_com.xml b/app/src/main/res/drawable/box_christmas_delivery_gift_package_present_svgrepo_com.xml new file mode 100644 index 0000000..33cea49 --- /dev/null +++ b/app/src/main/res/drawable/box_christmas_delivery_gift_package_present_svgrepo_com.xml @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/buy_ecommerce_finance_payment_pos_shop_svgrepo_com.xml b/app/src/main/res/drawable/buy_ecommerce_finance_payment_pos_shop_svgrepo_com.xml new file mode 100644 index 0000000..e9bbf15 --- /dev/null +++ b/app/src/main/res/drawable/buy_ecommerce_finance_payment_pos_shop_svgrepo_com.xml @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +