Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 24 additions & 8 deletions NOTICE.txt
Original file line number Diff line number Diff line change
Expand Up @@ -13,24 +13,40 @@ app/src/alpha/res/drawable/ic_launcher_foreground.xml
app/src/beta/res/drawable-v24/ic_launcher_background.xml
app/src/beta/res/drawable/ic_launcher_foreground.xml
app/src/main/res/drawable/ic_border.xml
app/src/main/res/drawable/ic_call.xml
app/src/main/res/drawable/ic_chevron_down.xml
app/src/main/res/drawable/ic_component_atom.xml
app/src/main/res/drawable/ic_copy.xml
app/src/main/res/drawable/ic_design_token_figma.xml
app/src/main/res/drawable/ic_dimension.xml
app/src/main/res/drawable/ic_filters.xml
app/src/main/res/drawable/ic_filter_effects.xml
app/src/main/res/drawable/ic_heart.xml
app/src/main/res/drawable/ic_info.xml
app/src/main/res/drawable/ic_layers.xml
app/src/main/res/drawable/ic_menu_grid.xml
app/src/main/res/drawable/ic_palette.xml
app/src/main/res/drawable/ic_sms_message.xml
app/src/main/res/drawable/ic_orange_call.xml
app/src/main/res/drawable/ic_orange_filters.xml
app/src/main/res/drawable/ic_orange_form_chevron_down.xml
app/src/main/res/drawable/ic_orange_heart_empty.xml
app/src/main/res/drawable/ic_orange_info.xml
app/src/main/res/drawable/ic_orange_menu_grid.xml
app/src/main/res/drawable/ic_orange_palette.xml
app/src/main/res/drawable/ic_orange_sms_message.xml
app/src/main/res/drawable/ic_solar_palette.xml
app/src/main/res/drawable/ic_sosh_call.xml
app/src/main/res/drawable/ic_sosh_filters.xml
app/src/main/res/drawable/ic_sosh_form_chevron_down.xml
app/src/main/res/drawable/ic_sosh_heart_empty.xml
app/src/main/res/drawable/ic_sosh_info.xml
app/src/main/res/drawable/ic_sosh_menu_grid.xml
app/src/main/res/drawable/ic_sosh_palette.xml
app/src/main/res/drawable/ic_sosh_sms_message.xml
app/src/main/res/drawable/ic_typography.xml
app/src/main/res/drawable/ic_ui_dark_mode.xml
app/src/main/res/drawable/ic_ui_light_mode.xml
app/src/main/res/drawable/ic_wireframe_call.xml
app/src/main/res/drawable/ic_wireframe_filters.xml
app/src/main/res/drawable/ic_wireframe_form_chevron_down.xml
app/src/main/res/drawable/ic_wireframe_heart_empty.xml
app/src/main/res/drawable/ic_wireframe_info.xml
app/src/main/res/drawable/ic_wireframe_menu_grid.xml
app/src/main/res/drawable/ic_wireframe_palette.xml
app/src/main/res/drawable/ic_wireframe_sms_message.xml
app/src/main/res/drawable/il_opacity_union.xml
app/src/main/res/drawable-hdpi/il_tokens_grid_column_margin.png
app/src/main/res/drawable-hdpi/il_tokens_grid_column_margin_dark.png
Expand Down
12 changes: 6 additions & 6 deletions app/src/main/java/com/orange/ouds/app/ui/BottomBar.kt
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@

package com.orange.ouds.app.ui

import androidx.annotation.DrawableRes
import androidx.annotation.StringRes
import androidx.compose.animation.AnimatedVisibility
import androidx.compose.animation.animateColorAsState
Expand Down Expand Up @@ -44,6 +43,7 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.tooling.preview.PreviewLightDark
import com.orange.ouds.app.R
import com.orange.ouds.app.ui.utilities.LocalThemeDrawableResources
import com.orange.ouds.core.theme.OudsTheme
import com.orange.ouds.core.utilities.OudsPreview

Expand All @@ -65,7 +65,7 @@ fun BottomBar(currentRoute: String, navigateToRoute: (String) -> Unit, visible:
NavigationBarItem(
selected = currentRoute == item.route,
icon = {
Icon(painterResource(item.iconRes), null)
Icon(painterResource(item.iconRes()), null)
},
label = {
Text(
Expand All @@ -92,12 +92,12 @@ fun BottomBar(currentRoute: String, navigateToRoute: (String) -> Unit, visible:

enum class BottomBarItem(
@StringRes val titleRes: Int,
@DrawableRes val iconRes: Int,
val iconRes: @Composable () -> Int,
val route: String
) {
Tokens(R.string.app_bottomBar_tokens_label, R.drawable.ic_design_token_figma, "main/tokens"),
Components(R.string.app_bottomBar_components_label, R.drawable.ic_component_atom, "main/components"),
About(R.string.app_bottomBar_about_label, R.drawable.ic_info, "main/about");
Tokens(R.string.app_bottomBar_tokens_label, { R.drawable.ic_design_token_figma }, "main/tokens"),
Components(R.string.app_bottomBar_components_label, { R.drawable.ic_component_atom }, "main/components"),
About(R.string.app_bottomBar_about_label, { LocalThemeDrawableResources.current.info }, "main/about");
}

@PreviewLightDark
Expand Down
119 changes: 62 additions & 57 deletions app/src/main/java/com/orange/ouds/app/ui/MainScreen.kt
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ import androidx.compose.foundation.layout.union
import androidx.compose.material3.Scaffold
import androidx.compose.material3.ScaffoldDefaults
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.saveable.rememberSaveable
Expand All @@ -41,6 +42,8 @@ import androidx.core.content.getSystemService
import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel
import androidx.navigation.compose.NavHost
import com.orange.ouds.app.ui.navigation.appNavGraph
import com.orange.ouds.app.ui.utilities.LocalThemeDrawableResources
import com.orange.ouds.app.ui.utilities.ThemeDrawableResources
import com.orange.ouds.core.theme.OudsTheme
import com.orange.ouds.core.utilities.OudsPreview
import com.orange.ouds.foundation.extensions.orElse
Expand Down Expand Up @@ -89,66 +92,68 @@ fun MainScreen(
theme = mainState.themeState.currentTheme,
darkThemeEnabled = isSystemInDarkTheme,
) {
Scaffold(
contentWindowInsets = ScaffoldDefaults.contentWindowInsets.union(WindowInsets.displayCutout),
topBar = {
val context = LocalContext.current
TopBar(
topBarState = mainState.topBarState,
upPress = mainState.navigationState::upPress,
onActionClick = { action ->
when (action) {
TopBarAction.ChangeThemeSettings -> changeThemeSettingsDialogVisible = true
TopBarAction.ChangeTheme -> changeThemeDialogVisible = true
TopBarAction.ChangeMode -> setApplicationNightModeEnabled(!isSystemInDarkTheme, context)
CompositionLocalProvider(LocalThemeDrawableResources provides ThemeDrawableResources(mainState.themeState.currentTheme)) {
Scaffold(
contentWindowInsets = ScaffoldDefaults.contentWindowInsets.union(WindowInsets.displayCutout),
topBar = {
val context = LocalContext.current
TopBar(
topBarState = mainState.topBarState,
upPress = mainState.navigationState::upPress,
onActionClick = { action ->
when (action) {
TopBarAction.ChangeThemeSettings -> changeThemeSettingsDialogVisible = true
TopBarAction.ChangeTheme -> changeThemeDialogVisible = true
TopBarAction.ChangeMode -> setApplicationNightModeEnabled(!isSystemInDarkTheme, context)
}
}
}
)
},
bottomBar = {
BottomBar(
currentRoute = mainState.navigationState.currentRoute.orEmpty(),
navigateToRoute = { route ->
mainState.navigationState.navigateToBottomBarRoute(route)
},
visible = mainState.showBottomBar
)
}
) { innerPadding ->
NavHost(
navController = mainState.navigationState.navController,
startDestination = BottomBarItem.Tokens.route,
modifier = Modifier
.consumeWindowInsets(innerPadding)
.padding(innerPadding)
) {
appNavGraph(mainState)
}
)
},
bottomBar = {
BottomBar(
currentRoute = mainState.navigationState.currentRoute.orEmpty(),
navigateToRoute = { route ->
mainState.navigationState.navigateToBottomBarRoute(route)
},
visible = mainState.showBottomBar
)
}
) { innerPadding ->
NavHost(
navController = mainState.navigationState.navController,
startDestination = BottomBarItem.Tokens.route,
modifier = Modifier
.consumeWindowInsets(innerPadding)
.padding(innerPadding)
) {
appNavGraph(mainState)
}

if (changeThemeDialogVisible) {
ChangeThemeDialog(
themeState = mainState.themeState,
onThemeChange = { themeName ->
mainState.themeState.setCurrentTheme(themeName)
onThemeChange(themeName)
},
onDismissRequest = {
changeThemeDialogVisible = false
}
)
}
if (changeThemeDialogVisible) {
ChangeThemeDialog(
themeState = mainState.themeState,
onThemeChange = { themeName ->
mainState.themeState.setCurrentTheme(themeName)
onThemeChange(themeName)
},
onDismissRequest = {
changeThemeDialogVisible = false
}
)
}

if (changeThemeSettingsDialogVisible) {
ChangeThemeSettingsDialog(
themeState = mainState.themeState,
onThemeSettingsChange = { themeSettings ->
mainState.themeState.settings = themeSettings
onThemeSettingsChange(themeSettings)
},
onDismissRequest = {
changeThemeSettingsDialogVisible = false
}
)
if (changeThemeSettingsDialogVisible) {
ChangeThemeSettingsDialog(
themeState = mainState.themeState,
onThemeSettingsChange = { themeSettings ->
mainState.themeState.settings = themeSettings
onThemeSettingsChange(themeSettings)
},
onDismissRequest = {
changeThemeSettingsDialogVisible = false
}
)
}
}
}
}
Expand Down
6 changes: 5 additions & 1 deletion app/src/main/java/com/orange/ouds/app/ui/TopBar.kt
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ import androidx.compose.ui.semantics.semantics
import androidx.compose.ui.semantics.traversalIndex
import androidx.compose.ui.tooling.preview.PreviewLightDark
import com.orange.ouds.app.R
import com.orange.ouds.app.ui.utilities.LocalThemeDrawableResources
import com.orange.ouds.core.theme.OudsTheme
import com.orange.ouds.core.utilities.OudsPreview

Expand Down Expand Up @@ -107,7 +108,10 @@ enum class TopBarAction {
@Composable
private fun ChangeThemeSettingsAction(onClick: (TopBarAction) -> Unit) {
IconButton(onClick = { onClick(TopBarAction.ChangeThemeSettings) }) {
Icon(painter = painterResource(id = R.drawable.ic_filters), contentDescription = stringResource(id = R.string.app_topBar_themeSettings_button_a11y))
Icon(
painter = painterResource(id = LocalThemeDrawableResources.current.filters),
contentDescription = stringResource(id = R.string.app_topBar_themeSettings_button_a11y)
)
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ import com.orange.ouds.app.ui.components.Component
import com.orange.ouds.app.ui.components.enabledArgument
import com.orange.ouds.app.ui.components.painterArgument
import com.orange.ouds.app.ui.utilities.Code
import com.orange.ouds.app.ui.utilities.LocalThemeDrawableResources
import com.orange.ouds.app.ui.utilities.ThemeDrawableResources
import com.orange.ouds.app.ui.utilities.composable.CustomizationDropdownMenu
import com.orange.ouds.app.ui.utilities.composable.CustomizationDropdownMenuItem
import com.orange.ouds.app.ui.utilities.composable.CustomizationFilterChip
Expand All @@ -54,10 +56,11 @@ import com.orange.ouds.theme.OudsVersion
fun BadgeDemoScreen() {
val state = rememberBadgeDemoState()
val badgeWithIconStatus = state.badgeWithIconStatus
val themeDrawableResources = LocalThemeDrawableResources.current
DemoScreen(
description = stringResource(id = Component.Badge.descriptionRes),
bottomSheetContent = { BadgeDemoBottomSheetContent(state = state) },
codeSnippet = { badgeDemoCodeSnippet(state = state, badgeWithIconStatus = badgeWithIconStatus) },
codeSnippet = { badgeDemoCodeSnippet(state = state, badgeWithIconStatus = badgeWithIconStatus, themeDrawableResources = themeDrawableResources) },
demoContent = { BadgeDemoContent(state = state) },
version = OudsVersion.Component.Badge
)
Expand Down Expand Up @@ -166,7 +169,7 @@ private fun BadgeDemoContent(state: BadgeDemoState) {
}
}

private fun Code.Builder.badgeDemoCodeSnippet(state: BadgeDemoState, badgeWithIconStatus: OudsIconBadgeStatus) {
private fun Code.Builder.badgeDemoCodeSnippet(state: BadgeDemoState, badgeWithIconStatus: OudsIconBadgeStatus, themeDrawableResources: ThemeDrawableResources) {
with(state) {
functionCall("OudsBadge") {
if (type == BadgeDemoState.Type.Count) {
Expand All @@ -180,7 +183,7 @@ private fun Code.Builder.badgeDemoCodeSnippet(state: BadgeDemoState, badgeWithIc
is OudsIconBadgeStatus.Accent -> {
functionCallArgument(statusParameterName, badgeWithIconStatus::class.java.nestedName) {
constructorCallArgument<OudsBadgeIcon>("icon") {
painterArgument(R.drawable.ic_heart)
painterArgument(themeDrawableResources.heartEmpty)
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.setValue
import androidx.compose.ui.res.painterResource
import com.orange.ouds.app.R
import com.orange.ouds.app.ui.utilities.LocalThemeDrawableResources
import com.orange.ouds.core.component.OudsBadgeDefaults
import com.orange.ouds.core.component.OudsBadgeIcon
import com.orange.ouds.core.component.OudsBadgeSize
Expand Down Expand Up @@ -99,8 +100,8 @@ class BadgeDemoState(
val badgeWithIconStatus: OudsIconBadgeStatus
@Composable
get() = when (status) {
OudsBadgeStatus.Neutral -> OudsIconBadgeStatus.Neutral(OudsBadgeIcon(painterResource(R.drawable.ic_heart)))
OudsBadgeStatus.Accent -> OudsIconBadgeStatus.Accent(OudsBadgeIcon(painterResource(R.drawable.ic_heart)))
OudsBadgeStatus.Neutral -> OudsIconBadgeStatus.Neutral(OudsBadgeIcon(painterResource(LocalThemeDrawableResources.current.heartEmpty)))
OudsBadgeStatus.Accent -> OudsIconBadgeStatus.Accent(OudsBadgeIcon(painterResource(LocalThemeDrawableResources.current.heartEmpty)))
OudsBadgeStatus.Positive -> OudsIconBadgeStatus.Positive
OudsBadgeStatus.Info -> OudsIconBadgeStatus.Info
OudsBadgeStatus.Warning -> OudsIconBadgeStatus.Warning
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@ import com.orange.ouds.app.ui.components.labelArgument
import com.orange.ouds.app.ui.components.onClickArgument
import com.orange.ouds.app.ui.components.painterArgument
import com.orange.ouds.app.ui.utilities.Code
import com.orange.ouds.app.ui.utilities.LocalThemeDrawableResources
import com.orange.ouds.app.ui.utilities.ThemeDrawableResources
import com.orange.ouds.app.ui.utilities.composable.CustomizationFilterChips
import com.orange.ouds.app.ui.utilities.composable.CustomizationSwitchItem
import com.orange.ouds.app.ui.utilities.composable.CustomizationTextField
Expand All @@ -39,10 +41,11 @@ import com.orange.ouds.theme.OudsVersion
@Composable
fun ButtonDemoScreen() {
val state = rememberButtonDemoState()
val themeDrawableResources = LocalThemeDrawableResources.current
DemoScreen(
description = stringResource(id = Component.Button.descriptionRes),
bottomSheetContent = { ButtonDemoBottomSheetContent(state = state) },
codeSnippet = { buttonDemoCodeSnippet(state = state) },
codeSnippet = { buttonDemoCodeSnippet(state = state, themeDrawableResources = themeDrawableResources) },
demoContent = { ButtonDemoContent(state = state) },
demoContentOnColoredBox = state.onColoredBox,
version = OudsVersion.Component.Button
Expand Down Expand Up @@ -96,7 +99,7 @@ private fun ButtonDemoBottomSheetContent(state: ButtonDemoState) {
@Composable
private fun ButtonDemoContent(state: ButtonDemoState) {
val icon = OudsButtonIcon(
painter = painterResource(id = R.drawable.ic_heart),
painter = painterResource(id = LocalThemeDrawableResources.current.heartEmpty),
contentDescription = stringResource(id = R.string.app_components_common_icon_a11y)
)
with(state) {
Expand Down Expand Up @@ -134,13 +137,13 @@ private fun ButtonDemoContent(state: ButtonDemoState) {
}
}

private fun Code.Builder.buttonDemoCodeSnippet(state: ButtonDemoState) {
private fun Code.Builder.buttonDemoCodeSnippet(state: ButtonDemoState, themeDrawableResources: ThemeDrawableResources) {
with(state) {
coloredBoxCall(onColoredBox) {
functionCall("OudsButton") {
if (layout in listOf(ButtonDemoState.Layout.IconOnly, ButtonDemoState.Layout.TextAndIcon)) {
constructorCallArgument<OudsButtonIcon>("icon") {
painterArgument(R.drawable.ic_heart)
painterArgument(themeDrawableResources.heartEmpty)
contentDescriptionArgument(R.string.app_components_common_icon_a11y)
}
}
Expand Down
Loading