Skip to content

Commit bd70173

Browse files
authored
fix(tag): scale functional icons and loader for a11y reasons (#960)
1 parent 60b9c5c commit bd70173

File tree

1 file changed

+9
-8
lines changed
  • core/src/main/java/com/orange/ouds/core/component

1 file changed

+9
-8
lines changed

core/src/main/java/com/orange/ouds/core/component/OudsTag.kt

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ import androidx.compose.foundation.layout.Arrangement
1818
import androidx.compose.foundation.layout.Box
1919
import androidx.compose.foundation.layout.PaddingValues
2020
import androidx.compose.foundation.layout.Row
21-
import androidx.compose.foundation.layout.fillMaxSize
2221
import androidx.compose.foundation.layout.padding
2322
import androidx.compose.foundation.layout.size
2423
import androidx.compose.foundation.layout.sizeIn
@@ -36,6 +35,7 @@ import androidx.compose.ui.graphics.ImageBitmap
3635
import androidx.compose.ui.graphics.StrokeCap
3736
import androidx.compose.ui.graphics.painter.Painter
3837
import androidx.compose.ui.graphics.vector.ImageVector
38+
import androidx.compose.ui.platform.LocalConfiguration
3939
import androidx.compose.ui.res.painterResource
4040
import androidx.compose.ui.res.stringResource
4141
import androidx.compose.ui.semantics.hideFromAccessibility
@@ -154,21 +154,21 @@ fun OudsTag(
154154
verticalAlignment = Alignment.CenterVertically,
155155
horizontalArrangement = Arrangement.spacedBy(betweenAssetAndLabelSpace(size = size), Alignment.CenterHorizontally),
156156
) {
157-
val contentColor = contentColor(status = status, appearance = appearance, hasLoader = hasLoader, enabled = enabled)
158-
159157
if (hasAsset) {
160158
Box(
161159
modifier = Modifier
162-
.size(assetSize(size))
163160
.semantics { hideFromAccessibility() }
164161
) {
165162
if (hasLoader) {
166163
ProgressIndicator(status = status, appearance = appearance, size = size, progress = loader.progress, enabled = enabled)
167164
} else {
168165
val isBulletIcon = status.icon is OudsTagIcon.Bullet
169166
val iconPadding = if (isBulletIcon) bulletPadding(size = size) else iconPadding(size = size)
167+
val scale = LocalConfiguration.current.fontScale
170168
status.icon?.Content(
171-
modifier = Modifier.padding(all = iconPadding),
169+
modifier = Modifier
170+
.size(assetSize(size) * scale)
171+
.padding(all = iconPadding),
172172
extraParameters = OudsTagIcon.ExtraParameters(
173173
tint = iconColor(status = status, appearance = appearance, enabled = enabled, isBulletIcon = isBulletIcon),
174174
status = status,
@@ -180,7 +180,7 @@ fun OudsTag(
180180
}
181181
Text(
182182
text = label,
183-
color = contentColor,
183+
color = contentColor(status = status, appearance = appearance, hasLoader = hasLoader, enabled = enabled),
184184
style = textStyle(size)
185185
)
186186
}
@@ -352,15 +352,16 @@ private fun loaderPadding(size: OudsTagSize): Dp {
352352

353353
@Composable
354354
private fun ProgressIndicator(status: OudsTagStatus, appearance: OudsTagAppearance, size: OudsTagSize, progress: Float?, enabled: Boolean) {
355+
val scale = LocalConfiguration.current.fontScale
355356
val modifier = Modifier
357+
.size(assetSize(size) * scale)
356358
.padding(all = loaderPadding(size = size))
357-
.fillMaxSize()
358359
.semantics { hideFromAccessibility() }
359360
val color = contentColor(status = status, appearance = appearance, hasLoader = true, enabled = enabled)
360361
val strokeWidth = when (size) {
361362
OudsTagSize.Default -> 2.4.dp
362363
OudsTagSize.Small -> 2.dp
363-
}
364+
} * scale
364365
val trackColor = Color.Transparent
365366
val strokeCap = StrokeCap.Butt
366367
if (progress != null) {

0 commit comments

Comments
 (0)