Skip to content

Commit

Permalink
[#529] Modify odsbutton
Browse files Browse the repository at this point in the history
  • Loading branch information
dolinetouko committed Jun 22, 2023
1 parent 3a2fb24 commit 79da95f
Show file tree
Hide file tree
Showing 15 changed files with 337 additions and 145 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ import com.orange.ods.app.databinding.OdsBannerBinding
import com.orange.ods.app.domain.recipes.LocalRecipes
import com.orange.ods.app.ui.LocalUiFramework
import com.orange.ods.app.ui.UiFramework
import com.orange.ods.app.ui.UiFrameworkBox
import com.orange.ods.app.ui.components.utilities.ComponentCountRow
import com.orange.ods.app.ui.components.utilities.ComponentCustomizationBottomSheetScaffold
import com.orange.ods.app.ui.components.utilities.ComponentCustomizationUiFramework
Expand Down Expand Up @@ -95,7 +94,7 @@ fun ComponentBanners() {
val onButton2Click = { clickOnElement(context, onButton2ClickText) }
val placeholderResId = DrawableManager.getPlaceholderResId()
val errorPlaceholderResId = DrawableManager.getPlaceholderResId(error = true)
UiFrameworkBox<OdsBannerBinding>(
UiFramework<OdsBannerBinding>(
compose = {
OdsBanner(
message = message,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@

package com.orange.ods.app.ui.components.buttons

import android.app.ActionBar
import android.view.ViewGroup
import android.widget.RelativeLayout
import androidx.appcompat.content.res.AppCompatResources
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxWidth
Expand All @@ -29,7 +29,6 @@ import com.orange.ods.app.R
import com.orange.ods.app.databinding.OdsTextButtonBinding
import com.orange.ods.app.ui.LocalUiFramework
import com.orange.ods.app.ui.UiFramework
import com.orange.ods.app.ui.UiFrameworkBox
import com.orange.ods.app.ui.utilities.composable.CodeImplementationColumn
import com.orange.ods.app.ui.utilities.composable.FunctionCallCode
import com.orange.ods.app.ui.utilities.composable.Title
Expand All @@ -47,18 +46,13 @@ fun ButtonsText(customizationState: ButtonCustomizationState) {
.verticalScroll(rememberScrollState())
.padding(vertical = dimensionResource(id = R.dimen.screen_vertical_margin))
) {
val modifier = Modifier
.padding(horizontal = dimensionResource(R.dimen.screen_horizontal_margin))
.padding(top = dimensionResource(R.dimen.spacing_m))
.let { if (hasFullScreenWidth) it.fillMaxWidth() else it }
Title(
textRes = if (textButtonStyle.value == OdsTextButtonStyle.Default) R.string.component_button_style_default else R.string.component_button_style_primary,
horizontalPadding = true
)

TextButton(
style = textButtonStyle.value,
modifier = modifier,
leadingIcon = hasLeadingIcon,
enabled = isEnabled,
fullScreenWidth = hasFullScreenWidth
Expand All @@ -69,7 +63,6 @@ fun ButtonsText(customizationState: ButtonCustomizationState) {
InvertedBackgroundColumn {
TextButton(
style = textButtonStyle.value,
modifier = modifier,
leadingIcon = hasLeadingIcon,
enabled = isEnabled,
fullScreenWidth = hasFullScreenWidth,
Expand Down Expand Up @@ -101,7 +94,6 @@ fun ButtonsText(customizationState: ButtonCustomizationState) {
@Composable
private fun TextButton(
style: OdsTextButtonStyle,
modifier: Modifier,
leadingIcon: Boolean,
enabled: Boolean,
fullScreenWidth: Boolean,
Expand All @@ -111,26 +103,28 @@ private fun TextButton(
val text = stringResource(if (enabled) R.string.component_state_enabled else R.string.component_state_disabled)
val iconId = R.drawable.ic_coffee

UiFrameworkBox<OdsTextButtonBinding>(
modifier = modifier,
compose = {
OdsTextButton(
modifier = if (fullScreenWidth) Modifier.fillMaxWidth() else Modifier,
icon = if (leadingIcon) painterResource(id = iconId) else null,
text = text,
onClick = {},
enabled = enabled,
style = style,
displaySurface = displaySurface
)
}, xml = {
this.text = text
textbutton.style = style
textbutton.icon = if (leadingIcon) AppCompatResources.getDrawable(context, iconId) else null
textbutton.isEnabled = enabled
val width = if (fullScreenWidth) ActionBar.LayoutParams.MATCH_PARENT else ActionBar.LayoutParams.WRAP_CONTENT
textbutton.layoutParams = ViewGroup.LayoutParams(width, ActionBar.LayoutParams.WRAP_CONTENT)
textbutton.displaySurface = displaySurface
}
)
Box(modifier = Modifier.padding(horizontal = dimensionResource(R.dimen.screen_horizontal_margin), vertical = dimensionResource(R.dimen.spacing_m))) {
UiFramework<OdsTextButtonBinding>(
compose = {
OdsTextButton(
modifier = if (fullScreenWidth) Modifier.fillMaxWidth() else Modifier,
icon = if (leadingIcon) painterResource(id = iconId) else null,
text = text,
onClick = {},
enabled = enabled,
style = style,
displaySurface = displaySurface
)
}, xml = {
this.text = text
this.icon = if (leadingIcon) AppCompatResources.getDrawable(context, iconId) else null
this.enabled = enabled
this.style = style
this.displaySurface = displaySurface

val width = if (fullScreenWidth) RelativeLayout.LayoutParams.MATCH_PARENT else RelativeLayout.LayoutParams.WRAP_CONTENT
odsTextbutton.layoutParams = RelativeLayout.LayoutParams(width, RelativeLayout.LayoutParams.WRAP_CONTENT)
}
)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ package com.orange.ods.app.ui.components.buttons.icons

import androidx.appcompat.content.res.AppCompatResources
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
Expand All @@ -30,7 +31,6 @@ import com.orange.ods.app.R
import com.orange.ods.app.databinding.OdsIconButtonBinding
import com.orange.ods.app.ui.LocalUiFramework
import com.orange.ods.app.ui.UiFramework
import com.orange.ods.app.ui.UiFrameworkBox
import com.orange.ods.app.ui.components.buttons.InvertedBackgroundColumn
import com.orange.ods.app.ui.components.utilities.clickOnElement
import com.orange.ods.app.ui.utilities.composable.CodeImplementationColumn
Expand All @@ -47,16 +47,11 @@ fun ButtonsIcon(customizationState: ButtonIconCustomizationState) {
.verticalScroll(rememberScrollState())
.padding(vertical = dimensionResource(id = R.dimen.screen_vertical_margin))
) {
val modifier = Modifier
.padding(horizontal = dimensionResource(R.dimen.screen_horizontal_margin))
.padding(top = dimensionResource(R.dimen.spacing_m))

Row(
modifier = Modifier.fillMaxWidth(),
horizontalArrangement = Arrangement.Center
) {
IconButton(
modifier = modifier,
enabled = isEnabled
)
}
Expand All @@ -65,7 +60,6 @@ fun ButtonsIcon(customizationState: ButtonIconCustomizationState) {

InvertedBackgroundColumn(horizontalAlignment = Alignment.CenterHorizontally) {
IconButton(
modifier = modifier,
enabled = isEnabled,
displaySurface = displaySurface
)
Expand All @@ -92,27 +86,29 @@ fun ButtonsIcon(customizationState: ButtonIconCustomizationState) {

@Composable
private fun IconButton(
modifier: Modifier,
enabled: Boolean,
displaySurface: OdsDisplaySurface = OdsDisplaySurface.Default
) {
val context = LocalContext.current
val iconId = R.drawable.ic_search
val contentDescription = stringResource(id = R.string.component_button_icon_search_desc)

UiFrameworkBox<OdsIconButtonBinding>(
modifier = modifier,
compose = {
OdsIconButton(
onClick = { clickOnElement(context, context.getString(R.string.component_button_icon)) },
painter = painterResource(id = R.drawable.ic_search),
contentDescription = stringResource(id = R.string.component_button_icon_search_desc),
enabled = enabled,
displaySurface = displaySurface
)
}, xml = {
iconbutton.icon = AppCompatResources.getDrawable(context, iconId)
iconbutton.isEnabled = enabled
iconbutton.displaySurface = displaySurface
}
)
Box(modifier = Modifier.padding(horizontal = dimensionResource(R.dimen.screen_horizontal_margin), vertical = dimensionResource(R.dimen.spacing_m))) {
UiFramework<OdsIconButtonBinding>(
compose = {
OdsIconButton(
onClick = { clickOnElement(context, context.getString(R.string.component_button_icon)) },
painter = painterResource(id = R.drawable.ic_search),
contentDescription = contentDescription,
enabled = enabled,
displaySurface = displaySurface
)
}, xml = {
this.icon = AppCompatResources.getDrawable(context, iconId)
this.enabled = enabled
this.displaySurface = displaySurface
this.iconContentDescription = contentDescription
}
)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ package com.orange.ods.app.ui.components.buttons.icons

import androidx.appcompat.content.res.AppCompatResources
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
Expand All @@ -32,7 +33,6 @@ import com.orange.ods.app.R
import com.orange.ods.app.databinding.OdsIconToogleButtonBinding
import com.orange.ods.app.ui.LocalUiFramework
import com.orange.ods.app.ui.UiFramework
import com.orange.ods.app.ui.UiFrameworkBox
import com.orange.ods.app.ui.components.buttons.InvertedBackgroundColumn
import com.orange.ods.app.ui.utilities.composable.CodeImplementationColumn
import com.orange.ods.app.ui.utilities.composable.FunctionCallCode
Expand All @@ -51,16 +51,12 @@ fun ButtonsIconToggle(customizationState: ButtonIconCustomizationState) {
.verticalScroll(rememberScrollState())
.padding(vertical = dimensionResource(id = R.dimen.screen_vertical_margin))
) {
val modifier = Modifier
.padding(horizontal = dimensionResource(R.dimen.screen_horizontal_margin))
.padding(top = dimensionResource(R.dimen.spacing_m))
Row(
modifier = Modifier.fillMaxWidth(),
horizontalArrangement = Arrangement.Center
) {
IconToggleButton(
checked = buttonCheckedState.value,
modifier = modifier,
onCheckedChange = { checked -> buttonCheckedState.value = checked },
enabled = isEnabled
)
Expand All @@ -72,7 +68,6 @@ fun ButtonsIconToggle(customizationState: ButtonIconCustomizationState) {
IconToggleButton(
checked = buttonCheckedState.value,
onCheckedChange = { checked -> buttonCheckedState.value = checked },
modifier = modifier,
enabled = isEnabled,
displaySurface = displaySurface
)
Expand Down Expand Up @@ -103,33 +98,35 @@ fun ButtonsIconToggle(customizationState: ButtonIconCustomizationState) {
private fun IconToggleButton(
checked: Boolean,
onCheckedChange: (Boolean) -> Unit,
modifier: Modifier,
enabled: Boolean,
displaySurface: OdsDisplaySurface = OdsDisplaySurface.Default
) {
val context = LocalContext.current
val uncheckedPainterId = R.drawable.ic_heart_outlined
val checkedPainterId = R.drawable.ic_heart
val iconContentDescription = stringResource(id = R.string.component_button_icon_toggle_favorite_icon_desc)

UiFrameworkBox<OdsIconToogleButtonBinding>(
modifier = modifier,
compose = {
OdsIconToggleButton(
checked = checked,
uncheckedPainter = painterResource(id = uncheckedPainterId),
checkedPainter = painterResource(id = checkedPainterId),
iconContentDescription = stringResource(id = R.string.component_button_icon_toggle_favorite_icon_desc),
onCheckedChange = onCheckedChange,
enabled = enabled,
displaySurface = displaySurface
)
}, xml = {
icontogglebutton.checked = checked
icontogglebutton.checkedPainter = AppCompatResources.getDrawable(context, checkedPainterId)
icontogglebutton.uncheckedPainter = AppCompatResources.getDrawable(context, uncheckedPainterId)
icontogglebutton.isEnabled = enabled
icontogglebutton.displaySurface = displaySurface
icontogglebutton.onCheckedChange = onCheckedChange
}
)
Box(modifier = Modifier.padding(horizontal = dimensionResource(R.dimen.screen_horizontal_margin), vertical = dimensionResource(R.dimen.spacing_m))) {
UiFramework<OdsIconToogleButtonBinding>(
compose = {
OdsIconToggleButton(
checked = checked,
uncheckedPainter = painterResource(id = uncheckedPainterId),
checkedPainter = painterResource(id = checkedPainterId),
iconContentDescription = iconContentDescription,
onCheckedChange = onCheckedChange,
enabled = enabled,
displaySurface = displaySurface
)
}, xml = {
this.checked = checked
this.checkedPainter = AppCompatResources.getDrawable(context, checkedPainterId)
this.uncheckedPainter = AppCompatResources.getDrawable(context, uncheckedPainterId)
this.iconDescription = iconContentDescription
this.enabled = enabled
this.displaySurface = displaySurface
this.odsIconToggleButton.onCheckedChange = onCheckedChange
}
)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ import com.orange.ods.app.databinding.OdsIconToggleButtonsGroupBinding
import com.orange.ods.app.domain.recipes.LocalRecipes
import com.orange.ods.app.ui.LocalUiFramework
import com.orange.ods.app.ui.UiFramework
import com.orange.ods.app.ui.UiFrameworkBox
import com.orange.ods.app.ui.components.buttons.InvertedBackgroundColumn
import com.orange.ods.app.ui.utilities.composable.CodeImplementationColumn
import com.orange.ods.app.ui.utilities.composable.FunctionCallCode
Expand All @@ -55,13 +54,10 @@ fun ButtonsIconToggleGroup(customizationState: ButtonIconCustomizationState) {
.verticalScroll(rememberScrollState())
.padding(vertical = dimensionResource(id = R.dimen.screen_vertical_margin))
) {
val modifier = Modifier
.padding(horizontal = dimensionResource(R.dimen.screen_horizontal_margin))

ToggleButtonsRow(
iconToggleButtons = iconToggleButtons,
selectedIndex = selectedIndex,
modifier = modifier,
onSelectedIndexChange = { index -> selectedIndex = index },
toggleCount = toggleCount.value
)
Expand All @@ -73,7 +69,6 @@ fun ButtonsIconToggleGroup(customizationState: ButtonIconCustomizationState) {
iconToggleButtons = iconToggleButtons,
selectedIndex = selectedIndex,
onSelectedIndexChange = { index -> selectedIndex = index },
modifier = modifier,
toggleCount = toggleCount.value,
displaySurface = displaySurface
)
Expand Down Expand Up @@ -111,7 +106,6 @@ private fun ToggleButtonsRow(
selectedIndex: Int,
onSelectedIndexChange: (Int) -> Unit,
toggleCount: Int,
modifier: Modifier,
displaySurface: OdsDisplaySurface = OdsDisplaySurface.Default
) {
Row(
Expand All @@ -121,8 +115,7 @@ private fun ToggleButtonsRow(
.padding(horizontal = dimensionResource(R.dimen.screen_horizontal_margin)),
horizontalArrangement = Arrangement.Center
) {
UiFrameworkBox<OdsIconToggleButtonsGroupBinding>(
modifier = modifier,
UiFramework<OdsIconToggleButtonsGroupBinding>(
compose = {
OdsIconToggleButtonsRow(
iconToggleButtons = iconToggleButtons.take(toggleCount),
Expand All @@ -131,10 +124,10 @@ private fun ToggleButtonsRow(
displaySurface = displaySurface
)
}, xml = {
icontogglebuttonsrow.iconToggleButtons = iconToggleButtons.take(toggleCount)
icontogglebuttonsrow.selectedIndex = selectedIndex
icontogglebuttonsrow.onSelectedIndexChange = onSelectedIndexChange
icontogglebuttonsrow.displaySurface = displaySurface
this.odsIconToggleButtonsRow.iconToggleButtons = iconToggleButtons.take(toggleCount)
this.selectedIndex = selectedIndex
this.displaySurface = displaySurface
this.odsIconToggleButtonsRow.onSelectedIndexChange = onSelectedIndexChange
}
)
}
Expand Down
Loading

0 comments on commit 79da95f

Please sign in to comment.