diff --git a/MykSuite/src/main/java/com/infomaniak/core/myksuite/ui/components/MyKSuiteChips.kt b/MykSuite/src/main/java/com/infomaniak/core/myksuite/ui/components/MyKSuiteChips.kt index 0816c92e..4f8cb46a 100644 --- a/MykSuite/src/main/java/com/infomaniak/core/myksuite/ui/components/MyKSuiteChips.kt +++ b/MykSuite/src/main/java/com/infomaniak/core/myksuite/ui/components/MyKSuiteChips.kt @@ -34,6 +34,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.vectorResource import androidx.compose.ui.tooling.preview.Preview import com.infomaniak.core.myksuite.R +import com.infomaniak.core.myksuite.ui.theme.LocalMyKSuiteColors import com.infomaniak.core.myksuite.ui.theme.Margin import com.infomaniak.core.myksuite.ui.theme.MyKSuiteTheme @@ -42,7 +43,7 @@ fun MyKSuiteChip(modifier: Modifier = Modifier, tier: MyKSuiteTier) { Image( modifier = modifier .background( - color = MyKSuiteTheme.colors.chipBackground, + color = LocalMyKSuiteColors.current.chipBackground, shape = CircleShape, ) .padding(horizontal = Margin.Mini, vertical = Margin.Micro), diff --git a/MykSuite/src/main/java/com/infomaniak/core/myksuite/ui/screens/MyKSuiteDashboardScreen.kt b/MykSuite/src/main/java/com/infomaniak/core/myksuite/ui/screens/MyKSuiteDashboardScreen.kt index fe9ba4dc..931fa57b 100644 --- a/MykSuite/src/main/java/com/infomaniak/core/myksuite/ui/screens/MyKSuiteDashboardScreen.kt +++ b/MykSuite/src/main/java/com/infomaniak/core/myksuite/ui/screens/MyKSuiteDashboardScreen.kt @@ -35,13 +35,9 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.infomaniak.core.myksuite.R import com.infomaniak.core.myksuite.ui.components.* -import com.infomaniak.core.myksuite.ui.components.MyKSuitePrimaryButton -import com.infomaniak.core.myksuite.ui.components.myKSuiteGradient import com.infomaniak.core.myksuite.ui.screens.components.* -import com.infomaniak.core.myksuite.ui.theme.Dimens -import com.infomaniak.core.myksuite.ui.theme.LocalMyKSuiteColors -import com.infomaniak.core.myksuite.ui.theme.Margin -import com.infomaniak.core.myksuite.ui.theme.MyKSuiteTheme +import com.infomaniak.core.myksuite.ui.theme.* +import com.infomaniak.core.myksuite.ui.theme.Typography @Composable fun MyKSuiteDashboardScreen( @@ -53,7 +49,7 @@ fun MyKSuiteDashboardScreen( MyKSuiteTheme { Scaffold( topBar = { TopAppBar(onClose) }, - containerColor = MyKSuiteTheme.colors.onPrimaryButton, + containerColor = LocalMyKSuiteColors.current.onPrimaryButton, ) { paddingValues -> Box( Modifier @@ -83,6 +79,7 @@ fun MyKSuiteDashboardScreen( @Composable private fun TopAppBar(onClose: () -> Unit) { val localColors = LocalMyKSuiteColors.current + CenterAlignedTopAppBar( colors = TopAppBarDefaults.topAppBarColors( containerColor = localColors.topAppBarBackground, @@ -100,7 +97,7 @@ private fun TopAppBar(onClose: () -> Unit) { title = { Text( text = stringResource(R.string.myKSuiteDashboardTitle), - style = MyKSuiteTheme.typography.h2, + style = Typography.h2, ) } ) @@ -113,12 +110,14 @@ private fun SubscriptionInfoCard( userName: String, dailySendingLimit: String, ) { + val localColors = LocalMyKSuiteColors.current + Card( modifier = paddedModifier.padding(top = Margin.Medium), shape = RoundedCornerShape(Dimens.largeCornerRadius), - colors = CardDefaults.cardColors(containerColor = MyKSuiteTheme.colors.background), + colors = CardDefaults.cardColors(containerColor = localColors.background), elevation = CardDefaults.elevatedCardElevation(defaultElevation = Dimens.cardElevation), - border = if (isSystemInDarkTheme()) BorderStroke(1.dp, MyKSuiteTheme.colors.cardBorderColor) else null, + border = if (isSystemInDarkTheme()) BorderStroke(1.dp, localColors.cardBorderColor) else null, ) { Row( modifier = paddedModifier.padding(top = Margin.Medium), @@ -128,8 +127,8 @@ private fun SubscriptionInfoCard( UserAvatar(avatarUri) Text( modifier = Modifier.weight(1.0f), - style = MyKSuiteTheme.typography.bodyRegular, - color = MyKSuiteTheme.colors.primaryTextColor, + style = Typography.bodyRegular, + color = localColors.primaryTextColor, text = userName, maxLines = 1, overflow = TextOverflow.Ellipsis, @@ -159,6 +158,8 @@ private fun PaddedDivider(modifier: Modifier) { // TODO: Add this when we'll have in-app payments @Composable private fun MyKSuitePlusPromotionCard(modifier: Modifier = Modifier, onButtonClicked: () -> Unit) { + val localColors = LocalMyKSuiteColors.current + Card( modifier = modifier, shape = RoundedCornerShape(Dimens.largeCornerRadius), @@ -177,11 +178,11 @@ private fun MyKSuitePlusPromotionCard(modifier: Modifier = Modifier, onButtonCli WeightOneSpacer(minWidth = Margin.Large) Text( text = stringResource(R.string.myKSuiteDashboardFreeTrialTitle), - style = MyKSuiteTheme.typography.labelMedium, - color = MyKSuiteTheme.colors.primaryTextColor, + style = Typography.labelMedium, + color = localColors.primaryTextColor, modifier = Modifier .background( - color = MyKSuiteTheme.colors.secondaryBackground, + color = localColors.secondaryBackground, shape = RoundedCornerShape(Dimens.largeCornerRadius), ) .padding(horizontal = Margin.Mini, vertical = Margin.Micro), @@ -189,10 +190,9 @@ private fun MyKSuitePlusPromotionCard(modifier: Modifier = Modifier, onButtonCli } Text( text = stringResource(R.string.myKSuiteDashboardFreeTrialDescription), - style = MyKSuiteTheme.typography.bodySmallRegular, - color = MyKSuiteTheme.colors.primaryTextColor, + style = Typography.bodySmallRegular, + color = localColors.primaryTextColor, ) - val localColors = LocalMyKSuiteColors.current MyKSuitePrimaryButton( modifier = Modifier.fillMaxWidth(), text = stringResource(R.string.myKSuiteDashboardFreeTrialButton), diff --git a/MykSuite/src/main/java/com/infomaniak/core/myksuite/ui/screens/MyKSuiteUpgradeBottomSheet.kt b/MykSuite/src/main/java/com/infomaniak/core/myksuite/ui/screens/MyKSuiteUpgradeBottomSheet.kt index 68fd36c6..a62a3f3a 100644 --- a/MykSuite/src/main/java/com/infomaniak/core/myksuite/ui/screens/MyKSuiteUpgradeBottomSheet.kt +++ b/MykSuite/src/main/java/com/infomaniak/core/myksuite/ui/screens/MyKSuiteUpgradeBottomSheet.kt @@ -36,9 +36,8 @@ import com.infomaniak.core.myksuite.R import com.infomaniak.core.myksuite.ui.components.MyKSuitePrimaryButton import com.infomaniak.core.myksuite.ui.screens.components.ButtonType import com.infomaniak.core.myksuite.ui.screens.components.UpgradeFeature -import com.infomaniak.core.myksuite.ui.theme.Dimens -import com.infomaniak.core.myksuite.ui.theme.Margin -import com.infomaniak.core.myksuite.ui.theme.MyKSuiteTheme +import com.infomaniak.core.myksuite.ui.theme.* +import com.infomaniak.core.myksuite.ui.theme.Typography @OptIn(ExperimentalMaterial3Api::class) @Composable @@ -62,6 +61,8 @@ private fun UpgradeBottomSheetContent( style: ButtonType, onButtonClicked: () -> Unit, ) { + val localColors = LocalMyKSuiteColors.current + Column( modifier = Modifier .fillMaxWidth() @@ -80,23 +81,23 @@ private fun UpgradeBottomSheetContent( modifier = paddedModifier, text = stringResource(R.string.myKSuiteUpgradeTitle), textAlign = TextAlign.Center, - style = MyKSuiteTheme.typography.h2, - color = MyKSuiteTheme.colors.primaryTextColor, + style = Typography.h2, + color = localColors.primaryTextColor, ) Spacer(Modifier.height(Margin.Medium)) Text( modifier = paddedModifier, text = stringResource(R.string.myKSuiteUpgradeDescription), - style = MyKSuiteTheme.typography.bodyRegular, - color = MyKSuiteTheme.colors.secondaryTextColor, + style = Typography.bodyRegular, + color = localColors.secondaryTextColor, ) Spacer(Modifier.height(Margin.Medium)) UpgradeFeatures(customFeatures, paddedModifier) Text( modifier = paddedModifier, text = stringResource(R.string.myKSuiteUpgradeDetails), - style = MyKSuiteTheme.typography.bodyRegular, - color = MyKSuiteTheme.colors.secondaryTextColor, + style = Typography.bodyRegular, + color = localColors.secondaryTextColor, ) Spacer(Modifier.height(Margin.Huge)) MyKSuitePrimaryButton( diff --git a/MykSuite/src/main/java/com/infomaniak/core/myksuite/ui/screens/components/AppStorageQuotas.kt b/MykSuite/src/main/java/com/infomaniak/core/myksuite/ui/screens/components/AppStorageQuotas.kt index 6cf0a81f..3299afdc 100644 --- a/MykSuite/src/main/java/com/infomaniak/core/myksuite/ui/screens/components/AppStorageQuotas.kt +++ b/MykSuite/src/main/java/com/infomaniak/core/myksuite/ui/screens/components/AppStorageQuotas.kt @@ -30,8 +30,10 @@ import androidx.compose.ui.graphics.StrokeCap import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.infomaniak.core.myksuite.ui.components.WeightOneSpacer +import com.infomaniak.core.myksuite.ui.theme.LocalMyKSuiteColors import com.infomaniak.core.myksuite.ui.theme.Margin import com.infomaniak.core.myksuite.ui.theme.MyKSuiteTheme +import com.infomaniak.core.myksuite.ui.theme.Typography @Composable fun AppStorageQuotas(modifier: Modifier) { @@ -42,18 +44,19 @@ fun AppStorageQuotas(modifier: Modifier) { @Composable private fun AppStorageQuota(modifier: Modifier = Modifier, app: KSuiteApp) { + val localColors = LocalMyKSuiteColors.current Column(modifier) { Row(verticalAlignment = Alignment.CenterVertically) { Text( text = app.displayName, - style = MyKSuiteTheme.typography.bodyRegular, - color = MyKSuiteTheme.colors.primaryTextColor, + style = Typography.bodyRegular, + color = localColors.primaryTextColor, ) WeightOneSpacer(minWidth = Margin.Medium) Text( text = "0.2 Go / 20 Go", // TODO: Use real data - style = MyKSuiteTheme.typography.bodySmallRegular, - color = MyKSuiteTheme.colors.secondaryTextColor, + style = Typography.bodySmallRegular, + color = localColors.secondaryTextColor, ) } Spacer(Modifier.height(Margin.Mini)) @@ -63,7 +66,7 @@ private fun AppStorageQuota(modifier: Modifier = Modifier, app: KSuiteApp) { .height(progressIndicatorHeight) .fillMaxWidth(), color = app.color(), - trackColor = MyKSuiteTheme.colors.chipBackground, + trackColor = localColors.chipBackground, strokeCap = StrokeCap.Round, gapSize = -progressIndicatorHeight, progress = { 0.5f }, // TODO: Use real values @@ -73,7 +76,7 @@ private fun AppStorageQuota(modifier: Modifier = Modifier, app: KSuiteApp) { } private enum class KSuiteApp(val displayName: String, val color: @Composable () -> Color) { - Mail("Mail", { MyKSuiteTheme.colors.mail }), Drive("kDrive", { MyKSuiteTheme.colors.drive }) + Mail("Mail", { LocalMyKSuiteColors.current.mail }), Drive("kDrive", { LocalMyKSuiteColors.current.drive }) } @Preview(name = "(1) Light") diff --git a/MykSuite/src/main/java/com/infomaniak/core/myksuite/ui/screens/components/ButtonType.kt b/MykSuite/src/main/java/com/infomaniak/core/myksuite/ui/screens/components/ButtonType.kt index 062637ad..6d0f616f 100644 --- a/MykSuite/src/main/java/com/infomaniak/core/myksuite/ui/screens/components/ButtonType.kt +++ b/MykSuite/src/main/java/com/infomaniak/core/myksuite/ui/screens/components/ButtonType.kt @@ -25,23 +25,25 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Shape import androidx.compose.ui.unit.dp import com.infomaniak.core.myksuite.ui.theme.Dimens -import com.infomaniak.core.myksuite.ui.theme.MyKSuiteTheme +import com.infomaniak.core.myksuite.ui.theme.LocalMyKSuiteColors enum class ButtonType(val colors: @Composable () -> MyKSuiteButtonColors, val shape: Shape) { Mail( colors = { + val localColors = LocalMyKSuiteColors.current MyKSuiteButtonColors( - containerColor = MyKSuiteTheme.colors.mailButton, - contentColor = MyKSuiteTheme.colors.onMailButton, + containerColor = localColors.mailButton, + contentColor = localColors.onMailButton, ) }, shape = RoundedCornerShape(Dimens.largeCornerRadius), ), Drive( colors = { + val localColors = LocalMyKSuiteColors.current MyKSuiteButtonColors( - containerColor = MyKSuiteTheme.colors.primaryButton, - contentColor = MyKSuiteTheme.colors.onPrimaryButton, + containerColor = localColors.primaryButton, + contentColor = localColors.onPrimaryButton, ) }, shape = RoundedCornerShape(10.dp), diff --git a/MykSuite/src/main/java/com/infomaniak/core/myksuite/ui/screens/components/ExpandableItemView.kt b/MykSuite/src/main/java/com/infomaniak/core/myksuite/ui/screens/components/ExpandableItemView.kt index 5f7e8643..958f71a3 100644 --- a/MykSuite/src/main/java/com/infomaniak/core/myksuite/ui/screens/components/ExpandableItemView.kt +++ b/MykSuite/src/main/java/com/infomaniak/core/myksuite/ui/screens/components/ExpandableItemView.kt @@ -35,9 +35,7 @@ import androidx.compose.ui.res.vectorResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.infomaniak.core.myksuite.R -import com.infomaniak.core.myksuite.ui.theme.Dimens -import com.infomaniak.core.myksuite.ui.theme.Margin -import com.infomaniak.core.myksuite.ui.theme.MyKSuiteTheme +import com.infomaniak.core.myksuite.ui.theme.* @Composable fun ExpendableActionItem( @@ -48,6 +46,8 @@ fun ExpendableActionItem( var isExpanded by remember { mutableStateOf(false) } + val localColors = LocalMyKSuiteColors.current + Column { Row( modifier = Modifier @@ -64,20 +64,20 @@ fun ExpendableActionItem( modifier = Modifier.size(Dimens.smallIconSize), imageVector = ImageVector.vectorResource(iconRes), contentDescription = null, - tint = MyKSuiteTheme.colors.iconColor, + tint = localColors.iconColor, ) Text( modifier = Modifier.weight(1.0f), text = stringResource(textRes), - style = MyKSuiteTheme.typography.bodyRegular, - color = MyKSuiteTheme.colors.primaryTextColor, + style = Typography.bodyRegular, + color = localColors.primaryTextColor, ) expendedView?.let { val icon = ImageVector.vectorResource(if (isExpanded) R.drawable.ic_chevron_up else R.drawable.ic_chevron_down) Icon( imageVector = icon, contentDescription = null, // TODO - tint = MyKSuiteTheme.colors.iconColor, + tint = localColors.iconColor, ) } } diff --git a/MykSuite/src/main/java/com/infomaniak/core/myksuite/ui/screens/components/LimitedFunctionnalities.kt b/MykSuite/src/main/java/com/infomaniak/core/myksuite/ui/screens/components/LimitedFunctionnalities.kt index 0d67ec73..0a646913 100644 --- a/MykSuite/src/main/java/com/infomaniak/core/myksuite/ui/screens/components/LimitedFunctionnalities.kt +++ b/MykSuite/src/main/java/com/infomaniak/core/myksuite/ui/screens/components/LimitedFunctionnalities.kt @@ -28,8 +28,10 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import com.infomaniak.core.myksuite.R +import com.infomaniak.core.myksuite.ui.theme.LocalMyKSuiteColors import com.infomaniak.core.myksuite.ui.theme.Margin import com.infomaniak.core.myksuite.ui.theme.MyKSuiteTheme +import com.infomaniak.core.myksuite.ui.theme.Typography @Composable fun LimitedFunctionalities(paddedModifier: Modifier, dailySendingLimit: String) { @@ -43,7 +45,7 @@ fun LimitedFunctionalities(paddedModifier: Modifier, dailySendingLimit: String) Text( modifier = Modifier.padding(start = Margin.Mini), text = dailySendingLimit, - style = MyKSuiteTheme.typography.bodySmallMedium, + style = Typography.bodySmallMedium, ) } LimitedFunctionalityLabel(textRes = R.string.myKSuiteDashboardFunctionalityCustomReminders) @@ -55,8 +57,8 @@ private fun LimitedFunctionalityLabel(modifier: Modifier = Modifier, @StringRes Text( modifier = modifier.fillMaxWidth(0.9f), text = stringResource(textRes), - style = MyKSuiteTheme.typography.bodySmallRegular, - color = MyKSuiteTheme.colors.secondaryTextColor, + style = Typography.bodySmallRegular, + color = LocalMyKSuiteColors.current.secondaryTextColor, ) } diff --git a/MykSuite/src/main/java/com/infomaniak/core/myksuite/ui/screens/components/UpgradeFeature.kt b/MykSuite/src/main/java/com/infomaniak/core/myksuite/ui/screens/components/UpgradeFeature.kt index e67cc4e3..dc34315c 100644 --- a/MykSuite/src/main/java/com/infomaniak/core/myksuite/ui/screens/components/UpgradeFeature.kt +++ b/MykSuite/src/main/java/com/infomaniak/core/myksuite/ui/screens/components/UpgradeFeature.kt @@ -30,13 +30,11 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.vectorResource import androidx.compose.ui.tooling.preview.Preview import com.infomaniak.core.myksuite.ui.screens.MyKSuiteUpgradeFeatures -import com.infomaniak.core.myksuite.ui.theme.Dimens -import com.infomaniak.core.myksuite.ui.theme.LocalMyKSuiteColors -import com.infomaniak.core.myksuite.ui.theme.Margin -import com.infomaniak.core.myksuite.ui.theme.MyKSuiteTheme +import com.infomaniak.core.myksuite.ui.theme.* @Composable fun ColumnScope.UpgradeFeature(customFeature: MyKSuiteUpgradeFeatures, modifier: Modifier = Modifier) { + val localColors = LocalMyKSuiteColors.current Row( modifier = modifier .padding(vertical = Margin.Mini) @@ -47,13 +45,13 @@ fun ColumnScope.UpgradeFeature(customFeature: MyKSuiteUpgradeFeatures, modifier: modifier = Modifier.size(Dimens.iconSize), imageVector = ImageVector.vectorResource(customFeature.icon), contentDescription = null, - tint = LocalMyKSuiteColors.current.secondaryTextColor, + tint = localColors.iconColor, ) Spacer(Modifier.width(Margin.Mini)) Text( text = stringResource(customFeature.title), - style = MyKSuiteTheme.typography.bodyRegular, - color = MyKSuiteTheme.colors.secondaryTextColor, + style = Typography.bodyRegular, + color = localColors.secondaryTextColor, ) } } diff --git a/MykSuite/src/main/java/com/infomaniak/core/myksuite/ui/screens/components/UserAvatar.kt b/MykSuite/src/main/java/com/infomaniak/core/myksuite/ui/screens/components/UserAvatar.kt index 98e85307..2463580c 100644 --- a/MykSuite/src/main/java/com/infomaniak/core/myksuite/ui/screens/components/UserAvatar.kt +++ b/MykSuite/src/main/java/com/infomaniak/core/myksuite/ui/screens/components/UserAvatar.kt @@ -39,6 +39,7 @@ import coil3.request.crossfade import com.infomaniak.core.myksuite.R import com.infomaniak.core.myksuite.ui.components.myKSuiteGradient import com.infomaniak.core.myksuite.ui.theme.Dimens +import com.infomaniak.core.myksuite.ui.theme.LocalMyKSuiteColors import com.infomaniak.core.myksuite.ui.theme.MyKSuiteTheme @Composable @@ -79,7 +80,7 @@ private fun DefaultAvatar() { modifier = Modifier.size(Dimens.iconSize), imageVector = ImageVector.vectorResource(R.drawable.ic_person), contentDescription = null, - tint = MyKSuiteTheme.colors.iconColor, + tint = LocalMyKSuiteColors.current.iconColor, ) } diff --git a/MykSuite/src/main/java/com/infomaniak/core/myksuite/ui/theme/Theme.kt b/MykSuite/src/main/java/com/infomaniak/core/myksuite/ui/theme/Theme.kt index c1396d9a..0aa8d03f 100644 --- a/MykSuite/src/main/java/com/infomaniak/core/myksuite/ui/theme/Theme.kt +++ b/MykSuite/src/main/java/com/infomaniak/core/myksuite/ui/theme/Theme.kt @@ -43,14 +43,6 @@ internal fun MyKSuiteTheme( } } -// TODO Remove this object and use Directly Typography and Color -internal object MyKSuiteTheme { - val typography = Typography - val colors: MyKSuiteColors - @Composable - get() = LocalMyKSuiteColors.current -} - @Immutable internal data class MyKSuiteColors( val primaryTextColor: Color = Color.Unspecified,