diff --git a/src/.idea/deploymentTargetDropDown.xml b/src/.idea/deploymentTargetDropDown.xml index 2641203..06a90ad 100644 --- a/src/.idea/deploymentTargetDropDown.xml +++ b/src/.idea/deploymentTargetDropDown.xml @@ -7,11 +7,11 @@ - + - + \ No newline at end of file diff --git a/src/app/build.gradle b/src/app/build.gradle index b083b3c..da5a0f4 100644 --- a/src/app/build.gradle +++ b/src/app/build.gradle @@ -63,4 +63,8 @@ dependencies { androidTestImplementation "androidx.compose.ui:ui-test-junit4:$compose_version" debugImplementation "androidx.compose.ui:ui-tooling:$compose_version" debugImplementation "androidx.compose.ui:ui-test-manifest:$compose_version" -} \ No newline at end of file + + implementation 'com.github.racra:smooth-corner-rect-android-compose:v1.0.0' + + implementation "com.google.accompanist:accompanist-systemuicontroller:$accompanist_version" +} diff --git a/src/app/src/main/java/fr/iut/alldev/allin/MainActivity.kt b/src/app/src/main/java/fr/iut/alldev/allin/MainActivity.kt index be0a2a8..ede8137 100644 --- a/src/app/src/main/java/fr/iut/alldev/allin/MainActivity.kt +++ b/src/app/src/main/java/fr/iut/alldev/allin/MainActivity.kt @@ -3,6 +3,7 @@ package fr.iut.alldev.allin import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent +import com.google.accompanist.systemuicontroller.rememberSystemUiController import fr.iut.alldev.allin.ui.navigation.drawer.AllInDrawer import fr.iut.alldev.allin.ui.theme.AllInTheme @@ -10,10 +11,17 @@ class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { - AllInTheme { + val systemUiController = rememberSystemUiController() + + AllInTheme{ + + systemUiController.setStatusBarColor(AllInTheme.colors.allIn_Dark) + systemUiController.setNavigationBarColor(AllInTheme.colors.allIn_White) + systemUiController.isNavigationBarVisible = false + systemUiController.isStatusBarVisible = false + AllInDrawer() } - } } } \ No newline at end of file diff --git a/src/app/src/main/java/fr/iut/alldev/allin/ui/core/AllInCard.kt b/src/app/src/main/java/fr/iut/alldev/allin/ui/core/AllInCard.kt index 4537ce1..6740a52 100644 --- a/src/app/src/main/java/fr/iut/alldev/allin/ui/core/AllInCard.kt +++ b/src/app/src/main/java/fr/iut/alldev/allin/ui/core/AllInCard.kt @@ -2,7 +2,7 @@ package fr.iut.alldev.allin.ui.core import androidx.compose.foundation.BorderStroke import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.foundation.shape.AbsoluteRoundedCornerShape import androidx.compose.material3.Card import androidx.compose.material3.CardDefaults import androidx.compose.material3.ExperimentalMaterial3Api @@ -21,7 +21,7 @@ fun AllInCard( radius: Int = 15, backgroundColor: Color = AllInTheme.colors.white, borderWidth: Dp? = null, - borderColor: Color = AllInTheme.colors.allIn_LightestGrey, + borderColor: Color = AllInTheme.colors.allIn_LightGrey100, borderBrush: Brush? = null, content: @Composable ()->Unit ) { @@ -29,7 +29,7 @@ fun AllInCard( Card( modifier = modifier.fillMaxWidth(), onClick = it, - shape = RoundedCornerShape(radius), + shape = AbsoluteRoundedCornerShape(radius), border = borderWidth?.let{ width -> borderBrush?.let{BorderStroke(width, it)} ?: BorderStroke(width, borderColor)}, colors = CardDefaults.cardColors(containerColor = backgroundColor) ) { @@ -38,7 +38,7 @@ fun AllInCard( } ?: run { Card( modifier = modifier.fillMaxWidth(), - shape = RoundedCornerShape(radius), + shape = AbsoluteRoundedCornerShape(radius), border = borderWidth?.let{ width -> borderBrush?.let{BorderStroke(width, it)} ?: BorderStroke(width, borderColor)}, colors = CardDefaults.cardColors(containerColor = backgroundColor) ) { diff --git a/src/app/src/main/java/fr/iut/alldev/allin/ui/core/AllInChip.kt b/src/app/src/main/java/fr/iut/alldev/allin/ui/core/AllInChip.kt index c196a8b..94726d2 100644 --- a/src/app/src/main/java/fr/iut/alldev/allin/ui/core/AllInChip.kt +++ b/src/app/src/main/java/fr/iut/alldev/allin/ui/core/AllInChip.kt @@ -10,7 +10,6 @@ import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier -import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp @@ -28,7 +27,7 @@ fun AllInChip( modifier = modifier.wrapContentSize(), shape = RoundedCornerShape(50), onClick = onClick, - border = if(!isSelected) BorderStroke(1.dp, AllInTheme.colors.allIn_LightestGrey) else null, + border = if(!isSelected) BorderStroke(1.dp, AllInTheme.colors.allIn_LightGrey100) else null, colors = CardDefaults.cardColors(containerColor = with(AllInTheme.colors){ if(isSelected) allIn_Purple else white }) @@ -37,9 +36,11 @@ fun AllInChip( text = text, modifier = Modifier.padding(vertical = 8.dp, horizontal = 22.dp), textAlign = TextAlign.Center, - fontWeight = if(isSelected) FontWeight.W800 else null, + style = with(AllInTheme.typography) { + if (isSelected) h1 else r + }, color = with(AllInTheme.colors){ - if(isSelected) white else allIn_LightGrey + if(isSelected) white else allIn_LightGrey300 } ) @@ -49,11 +50,15 @@ fun AllInChip( @Preview @Composable private fun AllInChipPreviewUnselected() { - AllInChip("Public", false) + AllInTheme { + AllInChip("Public", false) + } } @Preview @Composable private fun AllInChipPreviewSelected() { - AllInChip("Public", true) + AllInTheme { + AllInChip("Public", true) + } } \ No newline at end of file diff --git a/src/app/src/main/java/fr/iut/alldev/allin/ui/core/profilePicture.kt b/src/app/src/main/java/fr/iut/alldev/allin/ui/core/profilePicture.kt index 5b7ffbe..496ef93 100644 --- a/src/app/src/main/java/fr/iut/alldev/allin/ui/core/profilePicture.kt +++ b/src/app/src/main/java/fr/iut/alldev/allin/ui/core/profilePicture.kt @@ -1,26 +1,28 @@ package fr.iut.alldev.allin.ui.core import androidx.compose.foundation.BorderStroke +import androidx.compose.foundation.Image import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.size import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.Camera +import androidx.compose.material.icons.filled.PhotoCamera import androidx.compose.material3.Card import androidx.compose.material3.CardDefaults import androidx.compose.material3.Icon import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.painter.Painter import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import fr.iut.alldev.allin.ui.theme.AllInTheme @Composable -@Preview fun ProfilePicture( + image: Painter? = null, borderWidth: Dp? = null, size: Dp = 80.dp, modifier: Modifier = Modifier @@ -28,13 +30,33 @@ fun ProfilePicture( Card( modifier = modifier.size(size), shape = RoundedCornerShape(100), - colors = CardDefaults.cardColors(containerColor = AllInTheme.colors.allIn_DarkerGrey), - border = borderWidth?.let{BorderStroke(it, AllInTheme.colors.allIn_DarkGrey)} + colors = CardDefaults.cardColors(containerColor = AllInTheme.colors.allIn_DarkGrey100), + border = borderWidth?.let{BorderStroke(it, AllInTheme.colors.allIn_DarkGrey50)} ) { Box(Modifier.fillMaxSize()) { - Icon(imageVector = Icons.Filled.Camera, - contentDescription = null, - modifier = Modifier.align(Alignment.Center)) + image?.let { + Image( + painter = it, + contentDescription = null, + modifier = Modifier.align(Alignment.Center).fillMaxSize() + ) + } ?: run{ + Icon( + imageVector = Icons.Default.PhotoCamera, + tint = AllInTheme.colors.white, + contentDescription = null, + modifier = Modifier.align(Alignment.Center).fillMaxSize(0.5f) + ) + } } } } + + +@Preview +@Composable +private fun ProfilePictureDefaultPreview() { + AllInTheme { + ProfilePicture() + } +} \ No newline at end of file diff --git a/src/app/src/main/java/fr/iut/alldev/allin/ui/core/rainbowButton.kt b/src/app/src/main/java/fr/iut/alldev/allin/ui/core/rainbowButton.kt index a91cb44..aa22e57 100644 --- a/src/app/src/main/java/fr/iut/alldev/allin/ui/core/rainbowButton.kt +++ b/src/app/src/main/java/fr/iut/alldev/allin/ui/core/rainbowButton.kt @@ -5,8 +5,6 @@ import androidx.compose.foundation.layout.padding import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier -import androidx.compose.ui.text.TextStyle -import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp @@ -23,10 +21,13 @@ fun RainbowButton( Text( text = text, textAlign = TextAlign.Center, - fontWeight = FontWeight.W700, + style = AllInTheme.typography.h2.copy( + brush = AllInTheme.colors.allIn_TextGradient + ), fontSize = 30.sp, - style = TextStyle(brush = AllInTheme.colors.allIn_TextGradient), - modifier = Modifier.padding(vertical = 20.dp).fillMaxWidth(), + modifier = Modifier + .padding(vertical = 20.dp) + .fillMaxWidth(), ) } } @@ -34,5 +35,7 @@ fun RainbowButton( @Preview @Composable private fun RainbowButtonPreview() { - RainbowButton(text = "Participer", onClick = { }) + AllInTheme { + RainbowButton(text = "Participer", onClick = { }) + } } \ No newline at end of file diff --git a/src/app/src/main/java/fr/iut/alldev/allin/ui/core/topbar/coinCounter.kt b/src/app/src/main/java/fr/iut/alldev/allin/ui/core/topbar/coinCounter.kt index e3f73ae..95bbeb0 100644 --- a/src/app/src/main/java/fr/iut/alldev/allin/ui/core/topbar/coinCounter.kt +++ b/src/app/src/main/java/fr/iut/alldev/allin/ui/core/topbar/coinCounter.kt @@ -5,33 +5,34 @@ import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.wrapContentSize import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.ShoppingCart import androidx.compose.material3.Card import androidx.compose.material3.Icon import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.res.painterResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp +import fr.iut.alldev.allin.R import fr.iut.alldev.allin.ui.theme.AllInTheme @Composable fun CoinCounter(amount:Int, modifier: Modifier = Modifier) { Card(modifier = modifier.wrapContentSize(), shape = RoundedCornerShape(topStartPercent = 50, bottomStartPercent = 50)) { - Row(modifier = Modifier.background(AllInTheme.colors.white) + Row(modifier = Modifier + .background(AllInTheme.colors.white) .padding(horizontal = 13.dp, vertical = 5.dp), verticalAlignment = Alignment.CenterVertically) { - Icon(Icons.Default.ShoppingCart, - tint = AllInTheme.colors.allIn_Dark, + Icon( + painter = painterResource(R.drawable.allcoin), + tint = AllInTheme.colors.allIn_Blue, contentDescription = null, modifier = Modifier.padding(end = 8.dp)) Text(text = amount.toString(), color = AllInTheme.colors.allIn_Dark, - fontWeight = FontWeight.W800, + style = AllInTheme.typography.h1, fontSize = 20.sp) } } @@ -40,5 +41,7 @@ fun CoinCounter(amount:Int, modifier: Modifier = Modifier) { @Preview @Composable private fun CoinCounterPreview() { - CoinCounter(547) + AllInTheme { + CoinCounter(547) + } } \ No newline at end of file diff --git a/src/app/src/main/java/fr/iut/alldev/allin/ui/core/topbar/topbar.kt b/src/app/src/main/java/fr/iut/alldev/allin/ui/core/topbar/topbar.kt index 50986b2..147f235 100644 --- a/src/app/src/main/java/fr/iut/alldev/allin/ui/core/topbar/topbar.kt +++ b/src/app/src/main/java/fr/iut/alldev/allin/ui/core/topbar/topbar.kt @@ -2,17 +2,16 @@ package fr.iut.alldev.allin.ui.core.topbar import androidx.compose.foundation.background import androidx.compose.foundation.layout.* -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.Menu -import androidx.compose.material.icons.filled.Star import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color +import androidx.compose.ui.res.painterResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp +import fr.iut.alldev.allin.R import fr.iut.alldev.allin.ui.theme.AllInTheme @Composable @@ -20,25 +19,44 @@ fun AllInTopBar( onMenuClicked: ()->Unit, coinAmount: Int ) { - Box(modifier = Modifier.height(86.dp).fillMaxWidth() - .background(brush = AllInTheme.colors.allIn_MainGradient)) { - IconButton(onClick = onMenuClicked, - modifier = Modifier.align(Alignment.CenterStart)) { - Icon(Icons.Default.Menu, + Box( + modifier = Modifier + .height(86.dp) + .fillMaxWidth() + .background(brush = AllInTheme.colors.allIn_MainGradient) + ) { + IconButton( + onClick = onMenuClicked, + modifier = Modifier + .padding(start = 19.dp) + .align(Alignment.CenterStart) + ) { + Icon( + painterResource(id = R.drawable.allin_menu), + modifier = Modifier.size(32.dp), contentDescription = null, tint = Color.White) } - Icon(Icons.Default.Star, + Icon( + painter = painterResource(R.drawable.allin), contentDescription = null, tint = AllInTheme.colors.white, - modifier = Modifier.size(50.dp) - .align(Alignment.Center)) - CoinCounter(amount = coinAmount, modifier = Modifier.align(Alignment.CenterEnd)) + modifier = Modifier + .size(40.dp) + .align(Alignment.Center) + ) + CoinCounter( + amount = coinAmount, + modifier = Modifier + .align(Alignment.CenterEnd) + ) } } @Preview @Composable private fun AllInTopBarPreview(){ - AllInTopBar(onMenuClicked = { }, coinAmount = 541) + AllInTheme { + AllInTopBar(onMenuClicked = { }, coinAmount = 541) + } } diff --git a/src/app/src/main/java/fr/iut/alldev/allin/ui/home/components/homeBetCard.kt b/src/app/src/main/java/fr/iut/alldev/allin/ui/home/components/homeBetCard.kt index 1dbae46..e623baa 100644 --- a/src/app/src/main/java/fr/iut/alldev/allin/ui/home/components/homeBetCard.kt +++ b/src/app/src/main/java/fr/iut/alldev/allin/ui/home/components/homeBetCard.kt @@ -2,9 +2,11 @@ package fr.iut.alldev.allin.ui.home.components import androidx.compose.foundation.background import androidx.compose.foundation.layout.* +import androidx.compose.material.ripple.LocalRippleTheme import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment.Companion.CenterEnd import androidx.compose.ui.Alignment.Companion.CenterHorizontally @@ -17,6 +19,7 @@ import androidx.compose.ui.zIndex import fr.iut.alldev.allin.ui.core.AllInCard import fr.iut.alldev.allin.ui.core.ProfilePicture import fr.iut.alldev.allin.ui.core.RainbowButton +import fr.iut.alldev.allin.ui.theme.AllInRippleTheme import fr.iut.alldev.allin.ui.theme.AllInTheme @Composable @@ -31,6 +34,7 @@ fun HomeBetCard( onClickParticipate: ()->Unit ) { AllInCard( + modifier = modifier, radius = 7 ){ Column(Modifier.fillMaxWidth()) { @@ -39,27 +43,29 @@ fun HomeBetCard( .align(Alignment.End) .padding(top = 12.dp, end = 10.dp)) { Text( - fontSize = 10.sp, + fontSize = 12.sp, text = "proposé par ", - color = AllInTheme.colors.allIn_LightGrey + style = AllInTheme.typography.s, + color = AllInTheme.colors.allIn_LightGrey300 ) Text( - fontSize = 10.sp, + fontSize = 12.sp, text = creator, - fontWeight = FontWeight.W600 - + fontWeight = FontWeight.W600, + style = AllInTheme.typography.m ) } Column(Modifier.padding(horizontal = 19.dp, vertical = 11.dp)) { Text( text = category, fontSize = 15.sp, - color = AllInTheme.colors.allIn_LightGrey, + color = AllInTheme.colors.allIn_LightGrey300, + style = AllInTheme.typography.m ) Text( text = title, fontSize = 20.sp, - fontWeight = FontWeight.W800 + style = AllInTheme.typography.h1 ) Spacer(modifier = Modifier.height(11.dp)) Row( @@ -68,7 +74,8 @@ fun HomeBetCard( Text( text = "Commence le", fontSize = 15.sp, - color = AllInTheme.colors.allIn_LightGrey, + style = AllInTheme.typography.m, + color = AllInTheme.colors.allIn_LightGrey300, ) HomeBetCardDateTimeChip( text = date, @@ -79,11 +86,11 @@ fun HomeBetCard( } HorizontalDivider( thickness = 1.dp, - color = AllInTheme.colors.allIn_LightestGrey + color = AllInTheme.colors.allIn_LightGrey100 ) Column( Modifier - .background(AllInTheme.colors.allIn_LightestestGrey) + .background(AllInTheme.colors.allIn_LightGrey50) ) { Row( modifier = Modifier @@ -108,31 +115,36 @@ fun HomeBetCard( Spacer(modifier = Modifier.width(12.dp)) Text( text = "$nbPlayer joueurs en attente", - color = AllInTheme.colors.allIn_LightGrey + style = AllInTheme.typography.m, + color = AllInTheme.colors.allIn_LightGrey300 + ) + } + CompositionLocalProvider( + LocalRippleTheme provides AllInRippleTheme, + ){ + RainbowButton( + modifier = Modifier.padding(6.dp), + text = "Participer", + onClick = onClickParticipate ) } - RainbowButton( - modifier = Modifier.padding(6.dp), - text = "Participer", - onClick = onClickParticipate - ) } - } - } } @Preview @Composable private fun HomeBetCardPreview() { - HomeBetCard( - creator = "Lucas", - category = "Études", - title = "Emre va réussir son TP de CI/CD mercredi?", - date = "12 Sept.", - time = "13:00", - nbPlayer = 4, - onClickParticipate = {} - ) + AllInTheme { + HomeBetCard( + creator = "Lucas", + category = "Études", + title = "Emre va réussir son TP de CI/CD mercredi?", + date = "12 Sept.", + time = "13:00", + nbPlayer = 4, + onClickParticipate = {} + ) + } } \ No newline at end of file diff --git a/src/app/src/main/java/fr/iut/alldev/allin/ui/home/components/homeBetCardDateTimeChip.kt b/src/app/src/main/java/fr/iut/alldev/allin/ui/home/components/homeBetCardDateTimeChip.kt index 4b2b30b..d4e41e5 100644 --- a/src/app/src/main/java/fr/iut/alldev/allin/ui/home/components/homeBetCardDateTimeChip.kt +++ b/src/app/src/main/java/fr/iut/alldev/allin/ui/home/components/homeBetCardDateTimeChip.kt @@ -22,12 +22,13 @@ fun HomeBetCardDateTimeChip( Card( modifier = modifier.wrapContentSize(), shape = RoundedCornerShape(50), - border = BorderStroke(1.dp, AllInTheme.colors.allIn_LightestGrey), + border = BorderStroke(1.dp, AllInTheme.colors.allIn_LightGrey100), colors = CardDefaults.cardColors(containerColor = AllInTheme.colors.white) ) { Text( text = text, modifier = Modifier.padding(vertical = 8.dp, horizontal = 16.dp), + style = AllInTheme.typography.h3, textAlign = TextAlign.Center, color = AllInTheme.colors.allIn_Purple ) @@ -37,5 +38,7 @@ fun HomeBetCardDateTimeChip( @Preview @Composable private fun HomeBetCardDateTimeChipPreview() { - HomeBetCardDateTimeChip("11 Sept.") + AllInTheme { + HomeBetCardDateTimeChip("11 Sept.") + } } \ No newline at end of file diff --git a/src/app/src/main/java/fr/iut/alldev/allin/ui/home/components/homePopularCard.kt b/src/app/src/main/java/fr/iut/alldev/allin/ui/home/components/homePopularCard.kt index 7481d74..8b3e852 100644 --- a/src/app/src/main/java/fr/iut/alldev/allin/ui/home/components/homePopularCard.kt +++ b/src/app/src/main/java/fr/iut/alldev/allin/ui/home/components/homePopularCard.kt @@ -1,22 +1,18 @@ package fr.iut.alldev.allin.ui.home.components -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.LocalFireDepartment +import androidx.compose.foundation.layout.* +import androidx.compose.foundation.shape.AbsoluteRoundedCornerShape import androidx.compose.material3.Icon import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.shadow -import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.res.painterResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp +import fr.iut.alldev.allin.R import fr.iut.alldev.allin.ui.core.AllInCard import fr.iut.alldev.allin.ui.theme.AllInTheme @@ -27,47 +23,71 @@ fun HomePopularCards( title: String, modifier: Modifier = Modifier ) { - AllInCard( - modifier = modifier.fillMaxWidth() - .padding(6.dp) - .shadow(elevation = 6.dp, shape = RoundedCornerShape(15)), - backgroundColor = AllInTheme.colors.allIn_Dark, - borderWidth = 2.dp, - borderBrush = AllInTheme.colors.allIn_MainGradient - ) { - Column(modifier = Modifier.padding(13.dp)) { - Row(verticalAlignment = Alignment.CenterVertically) { - Icon(imageVector = Icons.Filled.LocalFireDepartment, - contentDescription = null, - tint = AllInTheme.colors.allIn_Pink) - Text(text = "Populaire", - color = AllInTheme.colors.allIn_Pink, - fontSize = 15.sp, - fontWeight = FontWeight.W700 + Box(modifier.padding(3.dp)) { + AllInCard( + modifier = Modifier + .fillMaxWidth() + .shadow( + elevation = 2.dp, + shape = AbsoluteRoundedCornerShape(15) + ) + .padding(2.dp), + backgroundColor = AllInTheme.colors.allIn_Dark, + borderWidth = 2.dp, + borderBrush = AllInTheme.colors.allIn_MainGradient + ) { + Column(modifier = Modifier.padding(13.dp)) { + Row(verticalAlignment = Alignment.CenterVertically) { + Icon( + painter = painterResource(id = R.drawable.allin_fire), + modifier = Modifier.size(20.dp), + contentDescription = null, + tint = AllInTheme.colors.allIn_Pink ) - } - Text(text = title, - color = AllInTheme.colors.white, - fontSize = 20.sp, - fontWeight = FontWeight.W800, - modifier = Modifier.padding(vertical = 22.dp)) - Row(modifier = Modifier.align(alignment = Alignment.CenterHorizontally)) { - Text(text = nbPlayers.toString(), - color = AllInTheme.colors.allIn_Pink, - fontSize = 15.sp, - fontWeight = FontWeight.W700) - Text(text = " joueurs - ", + Spacer(modifier = Modifier.width(3.dp)) + Text( + text = "Populaire", + color = AllInTheme.colors.allIn_Pink, + fontSize = 17.sp, + style = AllInTheme.typography.h2 + ) + } + Text( + text = title, color = AllInTheme.colors.white, - fontSize = 15.sp) + fontSize = 20.sp, + style = AllInTheme.typography.h1, + modifier = Modifier.padding(vertical = 22.dp) + ) + Row(modifier = Modifier.align(alignment = Alignment.CenterHorizontally)) { + Text( + text = nbPlayers.toString(), + color = AllInTheme.colors.allIn_Pink, + fontSize = 15.sp, + style = AllInTheme.typography.h2 + ) + Text( + text = " joueurs - ", + color = AllInTheme.colors.white, + style = AllInTheme.typography.r, + fontSize = 15.sp + ) - Text(text = points, - color = AllInTheme.colors.allIn_Pink, - fontSize = 15.sp, - fontWeight = FontWeight.W700) - Text(text = " points en jeu", - color = AllInTheme.colors.white, - fontSize = 15.sp) + Text( + text = points, + color = AllInTheme.colors.allIn_Pink, + fontSize = 15.sp, + style = AllInTheme.typography.h2 + ) + Text( + text = " points en jeu", + color = AllInTheme.colors.white, + style = AllInTheme.typography.r, + fontSize = 15.sp + ) + } } + } } } @@ -75,5 +95,7 @@ fun HomePopularCards( @Preview @Composable private fun HomePopularCardsPreview() { - HomePopularCards(nbPlayers = 12, points = "2.35k", title = "Emre va réussir son TP de CI/CD mercredi?") + AllInTheme { + HomePopularCards(nbPlayers = 12, points = "2.35k", title = "Emre va réussir son TP de CI/CD mercredi?") + } } \ No newline at end of file diff --git a/src/app/src/main/java/fr/iut/alldev/allin/ui/home/home.kt b/src/app/src/main/java/fr/iut/alldev/allin/ui/home/home.kt index 530f285..03f9f36 100644 --- a/src/app/src/main/java/fr/iut/alldev/allin/ui/home/home.kt +++ b/src/app/src/main/java/fr/iut/alldev/allin/ui/home/home.kt @@ -1,62 +1,78 @@ package fr.iut.alldev.allin.ui.home +import androidx.compose.foundation.ExperimentalFoundationApi +import androidx.compose.foundation.background import androidx.compose.foundation.layout.* import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.LazyRow import androidx.compose.foundation.lazy.items import androidx.compose.runtime.* import androidx.compose.ui.Modifier -import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.graphics.Brush +import androidx.compose.ui.graphics.Color import androidx.compose.ui.unit.dp import fr.iut.alldev.allin.ui.core.AllInChip import fr.iut.alldev.allin.ui.home.components.HomeBetCard import fr.iut.alldev.allin.ui.home.components.HomePopularCards +import fr.iut.alldev.allin.ui.theme.AllInTheme +@OptIn(ExperimentalFoundationApi::class) @Composable -@Preview fun Home(){ val horizontalPadding = 23.dp - Column { - HomePopularCards( - modifier = Modifier - .padding(horizontal = horizontalPadding) - .padding(top = 23.dp), - nbPlayers = 12, - points = "2.35k", - title = "Emre va réussir son TP de CI/CD mercredi?") - LazyRow( - modifier = Modifier.padding(vertical = 19.dp), - horizontalArrangement = Arrangement.spacedBy(9.dp) - ){ - item{ - Spacer(modifier = Modifier.width(horizontalPadding)) - } - items(items){ - var isSelected by remember { mutableStateOf(false) } - AllInChip(text = it, isSelected = isSelected, onClick = {isSelected = !isSelected}) - } - item{ - Spacer(modifier = Modifier.width(horizontalPadding)) - } + LazyColumn{ + item { + HomePopularCards( + modifier = Modifier + .padding(horizontal = horizontalPadding) + .padding(top = 23.dp), + nbPlayers = 12, + points = "2.35k", + title = "Emre va réussir son TP de CI/CD mercredi?" + ) } - LazyColumn( - modifier = Modifier.padding(horizontal = horizontalPadding), - verticalArrangement = Arrangement.spacedBy(24.dp) - ){ - items(5){ - HomeBetCard( - creator = "Lucas", - category = "Études", - title = "Emre va réussir son TP de CI/CD mercredi?", - date = "11 Sept.", - time = "13:00", - nbPlayer = 4, - onClickParticipate = { /* TODO */ } - ) + stickyHeader { + LazyRow( + modifier = Modifier + .background( + Brush.verticalGradient( + 0.5f to AllInTheme.colors.allIn_White, + 1f to Color.Transparent + ) + ) + .padding(vertical = 19.dp), + horizontalArrangement = Arrangement.spacedBy(9.dp) + ) { + item { + Spacer(modifier = Modifier.width(horizontalPadding)) + } + items(items) { + var isSelected by remember { mutableStateOf(false) } + AllInChip( + text = it, + isSelected = isSelected, + onClick = { isSelected = !isSelected }) + } + item { + Spacer(modifier = Modifier.width(horizontalPadding)) + } } } + items(5){ + HomeBetCard( + creator = "Lucas", + category = "Études", + title = "Emre va réussir son TP de CI/CD mercredi?", + date = "11 Sept.", + time = "13:00", + nbPlayer = 4, + onClickParticipate = { /* TODO */ }, + modifier = Modifier.padding(horizontal = horizontalPadding) + ) + Spacer(modifier = Modifier.height(24.dp)) + } } } diff --git a/src/app/src/main/java/fr/iut/alldev/allin/ui/navigation/drawer/drawer.kt b/src/app/src/main/java/fr/iut/alldev/allin/ui/navigation/drawer/drawer.kt index 2d6b0e7..ddd7cc0 100644 --- a/src/app/src/main/java/fr/iut/alldev/allin/ui/navigation/drawer/drawer.kt +++ b/src/app/src/main/java/fr/iut/alldev/allin/ui/navigation/drawer/drawer.kt @@ -10,14 +10,12 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.RectangleShape import androidx.compose.ui.platform.LocalDensity -import androidx.compose.ui.text.font.FontWeight -import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.res.painterResource import androidx.compose.ui.unit.dp -import androidx.compose.ui.unit.sp import androidx.navigation.NavHostController import androidx.navigation.compose.rememberNavController +import fr.iut.alldev.allin.R import fr.iut.alldev.allin.ui.core.topbar.AllInTopBar -import fr.iut.alldev.allin.ui.core.ProfilePicture import fr.iut.alldev.allin.ui.navigation.AllInNavHost import fr.iut.alldev.allin.ui.navigation.Routes import fr.iut.alldev.allin.ui.theme.AllInTheme @@ -29,11 +27,32 @@ sealed class TopLevelDestination( val route: String, val title: String, val subtitle: String, + val emoji: Int ) { - object BET : TopLevelDestination(route = Routes.BET, title = "CREER UN BET", subtitle = "Créez un nouveau BET et faites participer vos amis.") - object BET_HISTORY : TopLevelDestination(route = Routes.BET_HISTORY, title = "HISTORIQUE DES BETS", subtitle = "Consultez vos paris en cours et terminés.") - object FRIENDS : TopLevelDestination(route = Routes.FRIENDS, title = "AMIS", subtitle = "Défiez vos porches en les ajoutant en amis.") - object CURRENT_BETS : TopLevelDestination(route = Routes.CURRENT_BETS, title = "BETS EN COURS", subtitle = "Gérez vos bets et récompensez les gagnants.") + object BET : TopLevelDestination( + route = Routes.BET, + title = "CREER UN BET", + subtitle = "Créez un nouveau BET et faites participer vos amis.", + emoji = R.drawable.video_game + ) + object BET_HISTORY : TopLevelDestination( + route = Routes.BET_HISTORY, + title = "HISTORIQUE DES BETS", + subtitle = "Consultez vos paris en cours et terminés.", + emoji = R.drawable.eyes + ) + object FRIENDS : TopLevelDestination( + route = Routes.FRIENDS, + title = "AMIS", + subtitle = "Défiez vos porches en les ajoutant en amis.", + emoji = R.drawable.holding_hands + ) + object CURRENT_BETS : TopLevelDestination( + route = Routes.CURRENT_BETS, + title = "BETS EN COURS", + subtitle = "Gérez vos bets et récompensez les gagnants.", + emoji = R.drawable.money_with_wings + ) } val topLevelDestinations = listOf( @@ -59,6 +78,14 @@ fun AllInDrawer( drawerWidth = drawerState.offset.value } + val localDensity = LocalDensity.current + val contentOffset by derivedStateOf { + if (drawerWidth == 0f) 0.dp + else with(localDensity) { + (abs(drawerWidth) + drawerOffset.value).toDp() + } + } + ModalNavigationDrawer( drawerState = drawerState, drawerContent = { @@ -66,26 +93,19 @@ fun AllInDrawer( drawerShape = RectangleShape, drawerContainerColor = AllInTheme.colors.allIn_Dark ) { - Column( - Modifier - .padding(top = 39.dp, bottom = 26.dp) - .fillMaxWidth(), - horizontalAlignment = Alignment.CenterHorizontally){ - ProfilePicture( - borderWidth = 1.dp - ) - Spacer(modifier = Modifier.height(12.dp)) - Text(text = "Pseudo", - fontSize = 20.sp, - color = AllInTheme.colors.allIn_LighterGrey, - textAlign = TextAlign.Center, - fontWeight = FontWeight.W700) - } + DrawerHeader( + nbBets = 135, + bestWin = 365, + nbFriends = 5, + username = "Pseudo", + modifier = Modifier.padding(top = 39.dp, bottom = 26.dp) + + ) topLevelDestinations.forEach { item -> DrawerCell( title = item.title, subtitle = item.subtitle, - emoji = null, + emoji = painterResource(id = item.emoji), onClick = { scope.launch { drawerState.close() } navController.navigate(item.route){ launchSingleTop = true @@ -109,7 +129,7 @@ fun AllInDrawer( modifier = Modifier.align(Alignment.BottomStart)){ Icon(imageVector = Icons.Filled.Settings, modifier = Modifier.size(40.dp), - tint = AllInTheme.colors.allIn_DarkGrey, + tint = AllInTheme.colors.allIn_DarkGrey50, contentDescription = null) } } @@ -117,9 +137,7 @@ fun AllInDrawer( } ) { Scaffold( - modifier = Modifier.offset( x = with(LocalDensity.current) { - (abs(drawerWidth) + drawerOffset.value).toDp() - }), + modifier = Modifier.offset( x = contentOffset), topBar = { AllInTopBar(onMenuClicked = { scope.launch { drawerState.open() } }, coinAmount = 541) }// TODO: CoinAmount ) { Column( diff --git a/src/app/src/main/java/fr/iut/alldev/allin/ui/navigation/drawer/drawerCell.kt b/src/app/src/main/java/fr/iut/alldev/allin/ui/navigation/drawer/drawerCell.kt index 1e910f3..a402051 100644 --- a/src/app/src/main/java/fr/iut/alldev/allin/ui/navigation/drawer/drawerCell.kt +++ b/src/app/src/main/java/fr/iut/alldev/allin/ui/navigation/drawer/drawerCell.kt @@ -1,21 +1,22 @@ package fr.iut.alldev.allin.ui.navigation.drawer -import android.media.Image import androidx.compose.foundation.BorderStroke -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.Image +import androidx.compose.foundation.layout.* import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.ChevronRight -import androidx.compose.material.icons.filled.Face import androidx.compose.material3.* import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.painter.Painter +import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp +import fr.iut.alldev.allin.R import fr.iut.alldev.allin.ui.theme.AllInTheme @OptIn(ExperimentalMaterial3Api::class) @@ -23,33 +24,46 @@ import fr.iut.alldev.allin.ui.theme.AllInTheme fun DrawerCell( title: String, subtitle: String, - emoji: Image?, + emoji: Painter, onClick: ()->Unit, modifier: Modifier = Modifier ) { Card(onClick = onClick, modifier = modifier, - border = BorderStroke(width = 1.dp, color = AllInTheme.colors.allIn_DarkGrey), + border = BorderStroke(width = 1.dp, color = AllInTheme.colors.allIn_DarkGrey50), shape = RoundedCornerShape(20), - colors = CardDefaults.cardColors(containerColor = AllInTheme.colors.allIn_DarkerGrey)) { - Row(modifier = Modifier.padding(horizontal = 10.dp, vertical = 17.dp)) { - Icon(imageVector = Icons.Default.Face, + colors = CardDefaults.cardColors(containerColor = AllInTheme.colors.allIn_DarkGrey100)) { + Row( + modifier = Modifier.padding(horizontal = 10.dp, vertical = 17.dp), + verticalAlignment = Alignment.CenterVertically + ) { + Image( + painter = emoji, contentDescription = null, - modifier = Modifier.padding(end = 11.dp)) + modifier = Modifier + .height(28.dp) + .padding(end = 11.dp) + ) Column(modifier = Modifier.weight(1f)) { Text( text = title, + style = AllInTheme.typography.h2, fontSize = 13.sp, color = AllInTheme.colors.white, fontWeight = FontWeight.W700 ) - Text(text = subtitle, + Text( + text = subtitle, + style = AllInTheme.typography.r, fontSize = 9.sp, - color = AllInTheme.colors.allIn_LightGrey) + color = AllInTheme.colors.allIn_LightGrey300, + ) } - Icon(imageVector = Icons.Default.ChevronRight, - tint = AllInTheme.colors.allIn_DarkGrey, - contentDescription = null) + Icon( + imageVector = Icons.Default.ChevronRight, + tint = AllInTheme.colors.allIn_DarkGrey50, + contentDescription = null + ) } } @@ -58,10 +72,12 @@ fun DrawerCell( @Preview @Composable private fun DrawerCellPreview() { - DrawerCell( - title = "CREER UN BET", - subtitle = "Créez un nouveau BET", - emoji = null, - onClick = {} - ) + AllInTheme { + DrawerCell( + title = "CREER UN BET", + subtitle = "Créez un nouveau BET", + emoji = painterResource(id = R.drawable.video_game), + onClick = {} + ) + } } \ No newline at end of file diff --git a/src/app/src/main/java/fr/iut/alldev/allin/ui/navigation/drawer/drawerHeader.kt b/src/app/src/main/java/fr/iut/alldev/allin/ui/navigation/drawer/drawerHeader.kt new file mode 100644 index 0000000..9959007 --- /dev/null +++ b/src/app/src/main/java/fr/iut/alldev/allin/ui/navigation/drawer/drawerHeader.kt @@ -0,0 +1,62 @@ +package fr.iut.alldev.allin.ui.navigation.drawer + +import androidx.compose.foundation.layout.* +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import fr.iut.alldev.allin.ui.core.ProfilePicture +import fr.iut.alldev.allin.ui.theme.AllInTheme + +@Composable +fun DrawerHeader( + nbBets: Int, + bestWin: Int, + nbFriends: Int, + username: String, + modifier: Modifier = Modifier +) { + Column( + modifier = modifier.fillMaxWidth(), + horizontalAlignment = Alignment.CenterHorizontally + ) { + ProfilePicture( + borderWidth = 1.dp + ) + Spacer(modifier = Modifier.height(12.dp)) + Text( + text = username, + fontSize = 20.sp, + color = AllInTheme.colors.allIn_LightGrey200, + textAlign = TextAlign.Center, + style = AllInTheme.typography.h2, + ) + Spacer(modifier = Modifier.height(28.dp)) + Row( + modifier = Modifier.fillMaxWidth().padding(horizontal = 69.dp), + horizontalArrangement = Arrangement.SpaceBetween + ) { + DrawerHeaderStat(label = "Bets", value = nbBets) + DrawerHeaderStat(label = "Meilleur gain", value = bestWin) + DrawerHeaderStat(label = "Amis", value = nbFriends) + } + } +} + + +@Preview +@Composable +private fun DrawerHeaderPreview() { + AllInTheme{ + DrawerHeader( + nbBets = 114, + bestWin = 360, + nbFriends = 5, + username = "Pseudo" + ) + } +} \ No newline at end of file diff --git a/src/app/src/main/java/fr/iut/alldev/allin/ui/navigation/drawer/drawerHeaderStat.kt b/src/app/src/main/java/fr/iut/alldev/allin/ui/navigation/drawer/drawerHeaderStat.kt new file mode 100644 index 0000000..f1317f4 --- /dev/null +++ b/src/app/src/main/java/fr/iut/alldev/allin/ui/navigation/drawer/drawerHeaderStat.kt @@ -0,0 +1,37 @@ +package fr.iut.alldev.allin.ui.navigation.drawer + +import androidx.compose.foundation.layout.Column +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.tooling.preview.Preview +import fr.iut.alldev.allin.ui.theme.AllInTheme + +@Composable +fun DrawerHeaderStat( + label: String, + value: Int +) { + Column( + horizontalAlignment = Alignment.CenterHorizontally + ) { + Text( + text = value.toString(), + color = AllInTheme.colors.white, + style = AllInTheme.typography.h1 + ) + Text( + text = label, + color = AllInTheme.colors.allIn_LightGrey300, + style = AllInTheme.typography.r + ) + } +} + +@Preview +@Composable +private fun DrawerHeaderStatPreview() { + AllInTheme { + DrawerHeaderStat(label = "Amis", value = 5) + } +} \ No newline at end of file diff --git a/src/app/src/main/java/fr/iut/alldev/allin/ui/theme/Color.kt b/src/app/src/main/java/fr/iut/alldev/allin/ui/theme/Color.kt index b0817f9..a26fd75 100644 --- a/src/app/src/main/java/fr/iut/alldev/allin/ui/theme/Color.kt +++ b/src/app/src/main/java/fr/iut/alldev/allin/ui/theme/Color.kt @@ -9,46 +9,48 @@ import androidx.compose.ui.graphics.Color @Immutable data class AllInColors( val allIn_Dark: Color, - val allIn_DarkerGrey: Color, - val allIn_DarkGrey: Color, + val allIn_DarkGrey100: Color, + val allIn_DarkGrey50: Color, val allIn_Grey: Color, - val allIn_LightGrey: Color, - val allIn_LighterGrey: Color, - val allIn_LightestGrey: Color, - val allIn_LightestestGrey: Color, + val allIn_LightGrey300: Color, + val allIn_LightGrey200: Color, + val allIn_LightGrey100: Color, + val allIn_LightGrey50: Color, val allIn_White: Color, val white: Color, val allIn_Pink: Color, val allIn_Purple: Color, + val allIn_Blue: Color, val allIn_MainGradient: Brush, val allIn_TextGradient: Brush ) internal val LocalColors = staticCompositionLocalOf { AllInColors( - allIn_Dark = Color(0xFF2A2A2A), - allIn_DarkerGrey = Color(0xFF393939), - allIn_DarkGrey = Color(0xFF454545), - allIn_Grey = Color(0xFF525252), - allIn_LightGrey = Color(0XFFAAAAAA), - allIn_LighterGrey = Color(0XFFC5C5C5), - allIn_LightestGrey = Color(0XFFEBEBEB), - allIn_LightestestGrey = Color(0XFFF7F7F7), - allIn_White = Color(0xFFEBEBF6), - white = Color(0xFFFFFFFF), - allIn_Pink = Color(0xFFFF2A89), - allIn_Purple = Color(0xFF7D79FF), + allIn_Dark = Color.Unspecified, + allIn_DarkGrey100 = Color.Unspecified, + allIn_DarkGrey50 = Color.Unspecified, + allIn_Grey = Color.Unspecified, + allIn_LightGrey300 = Color.Unspecified, + allIn_LightGrey200 = Color.Unspecified, + allIn_LightGrey100 = Color.Unspecified, + allIn_LightGrey50 = Color.Unspecified, + allIn_White = Color.Unspecified, + white = Color.Unspecified, + allIn_Pink = Color.Unspecified, + allIn_Purple = Color.Unspecified, + allIn_Blue = Color.Unspecified, allIn_MainGradient = Brush.linearGradient( 0.0f to Color(0xFFf951a8), 0.5f to Color(0xFFaa7ef3), - 1.1f to Color(0xFF199fee), + 1.0f to Color(0xFF199fee), start = Offset(0f, Float.POSITIVE_INFINITY), end = Offset(Float.POSITIVE_INFINITY, 0f) ), allIn_TextGradient = Brush.horizontalGradient( 0.0f to Color(0xFFF876C1), - 1.1f to Color(0xFF2399F8) + 1.0f to Color(0xFF2399F8) ) ) } \ No newline at end of file diff --git a/src/app/src/main/java/fr/iut/alldev/allin/ui/theme/Theme.kt b/src/app/src/main/java/fr/iut/alldev/allin/ui/theme/Theme.kt index a85eef5..fe453be 100644 --- a/src/app/src/main/java/fr/iut/alldev/allin/ui/theme/Theme.kt +++ b/src/app/src/main/java/fr/iut/alldev/allin/ui/theme/Theme.kt @@ -1,15 +1,85 @@ package fr.iut.alldev.allin.ui.theme +import androidx.compose.foundation.isSystemInDarkTheme +import androidx.compose.material.ripple.RippleAlpha +import androidx.compose.material.ripple.RippleTheme import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.ReadOnlyComposable +import androidx.compose.ui.geometry.Offset +import androidx.compose.ui.graphics.Brush +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.font.FontWeight + @Composable -fun AllInTheme(content: @Composable () -> Unit) { - CompositionLocalProvider( - LocalColors provides LocalColors.current, - content = content +fun AllInTheme( + content: @Composable () -> Unit +) { + val customColors = AllInColors( + allIn_Dark = Color(0xFF2A2A2A), + allIn_DarkGrey100 = Color(0xFF393939), + allIn_DarkGrey50 = Color(0xFF454545), + allIn_Grey = Color(0xFF525252), + allIn_LightGrey300 = Color(0XFFAAAAAA), + allIn_LightGrey200 = Color(0XFFC5C5C5), + allIn_LightGrey100 = Color(0XFFEBEBEB), + allIn_LightGrey50 = Color(0XFFF7F7F7), + allIn_White = Color(0xFFEBEBF6), + white = Color(0xFFFFFFFF), + allIn_Pink = Color(0xFFFF2A89), + allIn_Purple = Color(0xFF7D79FF), + allIn_Blue = Color(0xFF6a89fa), + + allIn_MainGradient = Brush.linearGradient( + 0.0f to Color(0xFFf951a8), + 0.5f to Color(0xFFaa7ef3), + 1.0f to Color(0xFF199fee), + start = Offset(0f, Float.POSITIVE_INFINITY), + end = Offset(Float.POSITIVE_INFINITY, 0f) + ), + allIn_TextGradient = Brush.horizontalGradient( + 0.0f to Color(0xFFF876C1), + 1.0f to Color(0xFF2399F8) + ) + ) + val customTypography = AllInTypography( + h1 = TextStyle( + fontFamily = PlusJakartaSans, + fontWeight = FontWeight.ExtraBold, + ), + h2 = TextStyle( + fontFamily = PlusJakartaSans, + fontWeight = FontWeight.Bold, + ), + h3 = TextStyle( + fontFamily = PlusJakartaSans, + fontWeight = FontWeight.SemiBold, + ), + m = TextStyle( + fontFamily = PlusJakartaSans, + fontWeight = FontWeight.Medium, + ), + r = TextStyle( + fontFamily = PlusJakartaSans, + fontWeight = FontWeight.Normal, + ), + s = TextStyle( + fontFamily = PlusJakartaSans, + fontWeight = FontWeight.Light, + ), + xs = TextStyle( + fontFamily = PlusJakartaSans, + fontWeight = FontWeight.ExtraLight, + ) ) + CompositionLocalProvider( + LocalColors provides customColors, + LocalTypography provides customTypography + ){ + content() + } } object AllInTheme { @@ -17,4 +87,21 @@ object AllInTheme { @Composable @ReadOnlyComposable get() = LocalColors.current + + val typography: AllInTypography + @Composable + @ReadOnlyComposable + get() = LocalTypography.current +} + + +object AllInRippleTheme : RippleTheme { + @Composable + override fun defaultColor(): Color = AllInTheme.colors.allIn_Blue + + @Composable + override fun rippleAlpha(): RippleAlpha = RippleTheme.defaultRippleAlpha( + Color.Black, + lightTheme = !isSystemInDarkTheme() + ) } \ No newline at end of file diff --git a/src/app/src/main/java/fr/iut/alldev/allin/ui/theme/Type.kt b/src/app/src/main/java/fr/iut/alldev/allin/ui/theme/Type.kt index 83e148a..5c73744 100644 --- a/src/app/src/main/java/fr/iut/alldev/allin/ui/theme/Type.kt +++ b/src/app/src/main/java/fr/iut/alldev/allin/ui/theme/Type.kt @@ -1,34 +1,42 @@ package fr.iut.alldev.allin.ui.theme -import androidx.compose.material3.Typography +import androidx.compose.runtime.Immutable +import androidx.compose.runtime.staticCompositionLocalOf import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.font.Font import androidx.compose.ui.text.font.FontFamily import androidx.compose.ui.text.font.FontWeight -import androidx.compose.ui.unit.sp +import fr.iut.alldev.allin.R -// Set of Material typography styles to start with -val Typography = Typography( - bodyLarge = TextStyle( - fontFamily = FontFamily.Default, - fontWeight = FontWeight.Normal, - fontSize = 16.sp, - lineHeight = 24.sp, - letterSpacing = 0.5.sp +val PlusJakartaSans = FontFamily( + Font(R.font.plusjakartasans_extralight, weight = FontWeight.ExtraLight), + Font(R.font.plusjakartasans_light, weight = FontWeight.Light), + Font(R.font.plusjakartasans_regular, weight = FontWeight.Normal), + Font(R.font.plusjakartasans_medium, weight = FontWeight.Medium), + Font(R.font.plusjakartasans_semibold, weight = FontWeight.SemiBold), + Font(R.font.plusjakartasans_bold, weight = FontWeight.Bold), + Font(R.font.plusjakartasans_extrabold, weight = FontWeight.ExtraBold) ) - /* Other default text styles to override - titleLarge = TextStyle( - fontFamily = FontFamily.Default, - fontWeight = FontWeight.Normal, - fontSize = 22.sp, - lineHeight = 28.sp, - letterSpacing = 0.sp - ), - labelSmall = TextStyle( - fontFamily = FontFamily.Default, - fontWeight = FontWeight.Medium, - fontSize = 11.sp, - lineHeight = 16.sp, - letterSpacing = 0.5.sp - ) - */ -) \ No newline at end of file + +@Immutable +data class AllInTypography( + val h1: TextStyle, + val h2: TextStyle, + val h3: TextStyle, + val m: TextStyle, + val r: TextStyle, + val s: TextStyle, + val xs: TextStyle +) + +val LocalTypography = staticCompositionLocalOf { + AllInTypography( + h1 = TextStyle.Default, + h2 = TextStyle.Default, + h3 = TextStyle.Default, + m = TextStyle.Default, + r = TextStyle.Default, + s = TextStyle.Default, + xs = TextStyle.Default + ) +} \ No newline at end of file diff --git a/src/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/src/app/src/main/res/drawable-v24/ic_launcher_foreground.xml deleted file mode 100644 index 2b068d1..0000000 --- a/src/app/src/main/res/drawable-v24/ic_launcher_foreground.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/src/app/src/main/res/drawable/allcoin.xml b/src/app/src/main/res/drawable/allcoin.xml new file mode 100644 index 0000000..2fc0ff9 --- /dev/null +++ b/src/app/src/main/res/drawable/allcoin.xml @@ -0,0 +1,12 @@ + + + + diff --git a/src/app/src/main/res/drawable/allin.xml b/src/app/src/main/res/drawable/allin.xml new file mode 100644 index 0000000..2fc9f21 --- /dev/null +++ b/src/app/src/main/res/drawable/allin.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/app/src/main/res/drawable/allin_fire.xml b/src/app/src/main/res/drawable/allin_fire.xml new file mode 100644 index 0000000..2ac88c2 --- /dev/null +++ b/src/app/src/main/res/drawable/allin_fire.xml @@ -0,0 +1,9 @@ + + + diff --git a/src/app/src/main/res/drawable/allin_menu.xml b/src/app/src/main/res/drawable/allin_menu.xml new file mode 100644 index 0000000..fc7c368 --- /dev/null +++ b/src/app/src/main/res/drawable/allin_menu.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/src/app/src/main/res/drawable/eyes.png b/src/app/src/main/res/drawable/eyes.png new file mode 100644 index 0000000..a9760ac Binary files /dev/null and b/src/app/src/main/res/drawable/eyes.png differ diff --git a/src/app/src/main/res/drawable/holding_hands.png b/src/app/src/main/res/drawable/holding_hands.png new file mode 100644 index 0000000..5a42238 Binary files /dev/null and b/src/app/src/main/res/drawable/holding_hands.png differ diff --git a/src/app/src/main/res/drawable/ic_launcher_background.xml b/src/app/src/main/res/drawable/ic_launcher_background.xml deleted file mode 100644 index 07d5da9..0000000 --- a/src/app/src/main/res/drawable/ic_launcher_background.xml +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/app/src/main/res/drawable/money_with_wings.png b/src/app/src/main/res/drawable/money_with_wings.png new file mode 100644 index 0000000..58e18b3 Binary files /dev/null and b/src/app/src/main/res/drawable/money_with_wings.png differ diff --git a/src/app/src/main/res/drawable/video_game.png b/src/app/src/main/res/drawable/video_game.png new file mode 100644 index 0000000..79cd2f9 Binary files /dev/null and b/src/app/src/main/res/drawable/video_game.png differ diff --git a/src/app/src/main/res/font/plusjakartasans_bold.ttf b/src/app/src/main/res/font/plusjakartasans_bold.ttf new file mode 100644 index 0000000..386d3a6 Binary files /dev/null and b/src/app/src/main/res/font/plusjakartasans_bold.ttf differ diff --git a/src/app/src/main/res/font/plusjakartasans_extrabold.ttf b/src/app/src/main/res/font/plusjakartasans_extrabold.ttf new file mode 100644 index 0000000..a67cafd Binary files /dev/null and b/src/app/src/main/res/font/plusjakartasans_extrabold.ttf differ diff --git a/src/app/src/main/res/font/plusjakartasans_extralight.ttf b/src/app/src/main/res/font/plusjakartasans_extralight.ttf new file mode 100644 index 0000000..bb43929 Binary files /dev/null and b/src/app/src/main/res/font/plusjakartasans_extralight.ttf differ diff --git a/src/app/src/main/res/font/plusjakartasans_light.ttf b/src/app/src/main/res/font/plusjakartasans_light.ttf new file mode 100644 index 0000000..215db16 Binary files /dev/null and b/src/app/src/main/res/font/plusjakartasans_light.ttf differ diff --git a/src/app/src/main/res/font/plusjakartasans_medium.ttf b/src/app/src/main/res/font/plusjakartasans_medium.ttf new file mode 100644 index 0000000..1e58066 Binary files /dev/null and b/src/app/src/main/res/font/plusjakartasans_medium.ttf differ diff --git a/src/app/src/main/res/font/plusjakartasans_regular.ttf b/src/app/src/main/res/font/plusjakartasans_regular.ttf new file mode 100644 index 0000000..1e77059 Binary files /dev/null and b/src/app/src/main/res/font/plusjakartasans_regular.ttf differ diff --git a/src/app/src/main/res/font/plusjakartasans_semibold.ttf b/src/app/src/main/res/font/plusjakartasans_semibold.ttf new file mode 100644 index 0000000..49817ef Binary files /dev/null and b/src/app/src/main/res/font/plusjakartasans_semibold.ttf differ diff --git a/src/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/src/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml index eca70cf..345888d 100644 --- a/src/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +++ b/src/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -1,5 +1,6 @@ - - + + + \ No newline at end of file diff --git a/src/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/src/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml deleted file mode 100644 index eca70cf..0000000 --- a/src/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/app/src/main/res/mipmap-anydpi-v33/ic_launcher.xml b/src/app/src/main/res/mipmap-anydpi-v33/ic_launcher.xml deleted file mode 100644 index 6f3b755..0000000 --- a/src/app/src/main/res/mipmap-anydpi-v33/ic_launcher.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/src/app/src/main/res/mipmap-hdpi/ic_launcher.png b/src/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000..bf02219 Binary files /dev/null and b/src/app/src/main/res/mipmap-hdpi/ic_launcher.png differ diff --git a/src/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/src/app/src/main/res/mipmap-hdpi/ic_launcher.webp deleted file mode 100644 index c209e78..0000000 Binary files a/src/app/src/main/res/mipmap-hdpi/ic_launcher.webp and /dev/null differ diff --git a/src/app/src/main/res/mipmap-hdpi/ic_launcher_background.png b/src/app/src/main/res/mipmap-hdpi/ic_launcher_background.png new file mode 100644 index 0000000..5d0f1c3 Binary files /dev/null and b/src/app/src/main/res/mipmap-hdpi/ic_launcher_background.png differ diff --git a/src/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/src/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..7915aa5 Binary files /dev/null and b/src/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png differ diff --git a/src/app/src/main/res/mipmap-hdpi/ic_launcher_monochrome.png b/src/app/src/main/res/mipmap-hdpi/ic_launcher_monochrome.png new file mode 100644 index 0000000..7915aa5 Binary files /dev/null and b/src/app/src/main/res/mipmap-hdpi/ic_launcher_monochrome.png differ diff --git a/src/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/src/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp deleted file mode 100644 index b2dfe3d..0000000 Binary files a/src/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp and /dev/null differ diff --git a/src/app/src/main/res/mipmap-mdpi/ic_launcher.png b/src/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000..c6bddba Binary files /dev/null and b/src/app/src/main/res/mipmap-mdpi/ic_launcher.png differ diff --git a/src/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/src/app/src/main/res/mipmap-mdpi/ic_launcher.webp deleted file mode 100644 index 4f0f1d6..0000000 Binary files a/src/app/src/main/res/mipmap-mdpi/ic_launcher.webp and /dev/null differ diff --git a/src/app/src/main/res/mipmap-mdpi/ic_launcher_background.png b/src/app/src/main/res/mipmap-mdpi/ic_launcher_background.png new file mode 100644 index 0000000..7dd3ff6 Binary files /dev/null and b/src/app/src/main/res/mipmap-mdpi/ic_launcher_background.png differ diff --git a/src/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/src/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..a66b91c Binary files /dev/null and b/src/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png differ diff --git a/src/app/src/main/res/mipmap-mdpi/ic_launcher_monochrome.png b/src/app/src/main/res/mipmap-mdpi/ic_launcher_monochrome.png new file mode 100644 index 0000000..a66b91c Binary files /dev/null and b/src/app/src/main/res/mipmap-mdpi/ic_launcher_monochrome.png differ diff --git a/src/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/src/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp deleted file mode 100644 index 62b611d..0000000 Binary files a/src/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp and /dev/null differ diff --git a/src/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/src/app/src/main/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000..7e0294a Binary files /dev/null and b/src/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/src/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/src/app/src/main/res/mipmap-xhdpi/ic_launcher.webp deleted file mode 100644 index 948a307..0000000 Binary files a/src/app/src/main/res/mipmap-xhdpi/ic_launcher.webp and /dev/null differ diff --git a/src/app/src/main/res/mipmap-xhdpi/ic_launcher_background.png b/src/app/src/main/res/mipmap-xhdpi/ic_launcher_background.png new file mode 100644 index 0000000..5594f41 Binary files /dev/null and b/src/app/src/main/res/mipmap-xhdpi/ic_launcher_background.png differ diff --git a/src/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/src/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..1737485 Binary files /dev/null and b/src/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png differ diff --git a/src/app/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.png b/src/app/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.png new file mode 100644 index 0000000..1737485 Binary files /dev/null and b/src/app/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.png differ diff --git a/src/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/src/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp deleted file mode 100644 index 1b9a695..0000000 Binary files a/src/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp and /dev/null differ diff --git a/src/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/src/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000..216f617 Binary files /dev/null and b/src/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/src/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/src/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp deleted file mode 100644 index 28d4b77..0000000 Binary files a/src/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp and /dev/null differ diff --git a/src/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png b/src/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png new file mode 100644 index 0000000..5e39e29 Binary files /dev/null and b/src/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png differ diff --git a/src/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/src/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..e904f04 Binary files /dev/null and b/src/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png differ diff --git a/src/app/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.png b/src/app/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.png new file mode 100644 index 0000000..e904f04 Binary files /dev/null and b/src/app/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.png differ diff --git a/src/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/src/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp deleted file mode 100644 index 9287f50..0000000 Binary files a/src/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp and /dev/null differ diff --git a/src/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/src/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000..63eb4cd Binary files /dev/null and b/src/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/src/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/src/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp deleted file mode 100644 index aa7d642..0000000 Binary files a/src/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp and /dev/null differ diff --git a/src/app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png b/src/app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png new file mode 100644 index 0000000..d609f57 Binary files /dev/null and b/src/app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png differ diff --git a/src/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/src/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000..99f54a3 Binary files /dev/null and b/src/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png differ diff --git a/src/app/src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.png b/src/app/src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.png new file mode 100644 index 0000000..99f54a3 Binary files /dev/null and b/src/app/src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.png differ diff --git a/src/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/src/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp deleted file mode 100644 index 9126ae3..0000000 Binary files a/src/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp and /dev/null differ diff --git a/src/app/src/main/res/values/colors.xml b/src/app/src/main/res/values/colors.xml index f8c6127..55344e5 100644 --- a/src/app/src/main/res/values/colors.xml +++ b/src/app/src/main/res/values/colors.xml @@ -1,10 +1,3 @@ - #FFBB86FC - #FF6200EE - #FF3700B3 - #FF03DAC5 - #FF018786 - #FF000000 - #FFFFFFFF \ No newline at end of file diff --git a/src/app/src/main/res/values/themes.xml b/src/app/src/main/res/values/themes.xml index 5b17f67..93f209f 100644 --- a/src/app/src/main/res/values/themes.xml +++ b/src/app/src/main/res/values/themes.xml @@ -1,5 +1,4 @@ -