From d9d87944c1a6258b39b1efe755bb321f29430775 Mon Sep 17 00:00:00 2001 From: AskNilesh Date: Tue, 2 May 2023 20:21:04 +0530 Subject: [PATCH 001/571] Completed UI design for buttons --- .../tarkalabs/commonui/components/Button.kt | 431 ++++++++++++++++++ .../commonui/components/TestComponents.kt | 19 +- .../tarkalabs/commonui/components/TextRow.kt | 4 +- .../com/tarkalabs/commonui/theme/Theme.kt | 2 +- .../java/com/tarkalabs/ui/SettingActivity.kt | 188 +++++++- 5 files changed, 630 insertions(+), 14 deletions(-) create mode 100644 common-ui/src/main/java/com/tarkalabs/commonui/components/Button.kt diff --git a/common-ui/src/main/java/com/tarkalabs/commonui/components/Button.kt b/common-ui/src/main/java/com/tarkalabs/commonui/components/Button.kt new file mode 100644 index 00000000..621e27f8 --- /dev/null +++ b/common-ui/src/main/java/com/tarkalabs/commonui/components/Button.kt @@ -0,0 +1,431 @@ +package com.tarkalabs.commonui.components + +import androidx.annotation.DrawableRes +import androidx.compose.foundation.BorderStroke +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.wrapContentWidth +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonColors +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.Icon +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text +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.graphics.Color.Companion +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.Dp +import androidx.compose.ui.unit.dp +import com.tarkalabs.common_ui.R +import com.tarkalabs.commonui.components.ButtonHeight.ExtraSmall +import com.tarkalabs.commonui.components.ButtonHeight.Large +import com.tarkalabs.commonui.components.ButtonHeight.Regular +import com.tarkalabs.commonui.components.ButtonHeight.Small +import com.tarkalabs.commonui.theme.Eam360Theme + +enum class ButtonHeight(val size: Dp) { + Large(48.dp), + Regular(40.dp), + Small(32.dp), + ExtraSmall(24.dp), +} + +@Composable fun PrimaryButton( + label: String, + colors: ButtonColors = ButtonDefaults.buttonColors( + containerColor = MaterialTheme.colorScheme.primary, + contentColor = MaterialTheme.colorScheme.onPrimary + ), + height: ButtonHeight = Regular, + @DrawableRes leadingIcon: Int? = null, + @DrawableRes trailingIcon: Int? = null, + onClick: () -> Unit, +) { + val style = when (height) { + Large -> Eam360Theme.typography.button6 + Regular -> Eam360Theme.typography.button6 + Small -> Eam360Theme.typography.button7 + ExtraSmall -> Eam360Theme.typography.button8 + } + + val iconSize = when (height) { + Large -> 17.5.dp + Regular -> 17.5.dp + Small -> 11.dp + ExtraSmall -> 11.dp + } + + val paddingValues = when (height) { + Large, Regular -> PaddingValues( + top = 0.dp, + start = if (leadingIcon == null) 24.dp else 16.dp, + bottom = 0.dp, + end = if (trailingIcon == null) 24.dp else 16.dp + ) + + Small -> PaddingValues( + top = 0.dp, + start = if (leadingIcon == null) 16.dp else 8.dp, + bottom = 0.dp, + end = if (trailingIcon == null) 16.dp else 8.dp + ) + + ExtraSmall -> PaddingValues( + top = 0.dp, + start = if (leadingIcon == null) 8.dp else 4.dp, + bottom = 0.dp, + end = if (trailingIcon == null) 8.dp else 4.dp + ) + } + Button( + onClick = onClick, + colors = colors, + modifier = Modifier + .height(height.size) + .wrapContentWidth(), + contentPadding = paddingValues + ) { + Row( + verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.Center + ) { + leadingIcon?.let { + Icon( + painter = painterResource(id = leadingIcon), + contentDescription = "", + modifier = Modifier.size(iconSize) + ) + } + Text(text = label, style = style) + trailingIcon?.let { + Icon( + painter = painterResource(id = trailingIcon), + contentDescription = "", + modifier = Modifier.size(iconSize) + ) + } + } + } +} + +@Composable fun SecondaryButton( + label: String, + colors: ButtonColors = ButtonDefaults.buttonColors( + containerColor = MaterialTheme.colorScheme.secondary, + contentColor = MaterialTheme.colorScheme.onSecondary + ), + height: ButtonHeight = Regular, + @DrawableRes leadingIcon: Int? = null, + @DrawableRes trailingIcon: Int? = null, + onClick: () -> Unit, +) { + val style = when (height) { + Large -> Eam360Theme.typography.button6 + Regular -> Eam360Theme.typography.button6 + Small -> Eam360Theme.typography.button7 + ExtraSmall -> Eam360Theme.typography.button8 + } + + val iconSize = when (height) { + Large -> 17.5.dp + Regular -> 17.5.dp + Small -> 11.dp + ExtraSmall -> 11.dp + } + + val paddingValues = when (height) { + Large, Regular -> PaddingValues( + top = 0.dp, + start = if (leadingIcon == null) 24.dp else 16.dp, + bottom = 0.dp, + end = if (trailingIcon == null) 24.dp else 16.dp + ) + + Small -> PaddingValues( + top = 0.dp, + start = if (leadingIcon == null) 16.dp else 8.dp, + bottom = 0.dp, + end = if (trailingIcon == null) 16.dp else 8.dp + ) + + ExtraSmall -> PaddingValues( + top = 0.dp, + start = if (leadingIcon == null) 8.dp else 4.dp, + bottom = 0.dp, + end = if (trailingIcon == null) 8.dp else 4.dp + ) + } + Button( + onClick = onClick, + colors = colors, + modifier = Modifier + .height(height.size) + .wrapContentWidth(), + contentPadding = paddingValues + ) { + Row( + verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.Center + ) { + leadingIcon?.let { + Icon( + painter = painterResource(id = leadingIcon), + contentDescription = "", + modifier = Modifier.size(iconSize) + ) + } + Text(text = label, style = style) + trailingIcon?.let { + Icon( + painter = painterResource(id = trailingIcon), + contentDescription = "", + modifier = Modifier.size(iconSize) + ) + } + } + } +} + +@Composable fun OutlinedButton( + label: String, + colors: ButtonColors = ButtonDefaults.buttonColors( + containerColor = MaterialTheme.colorScheme.surface, + contentColor = MaterialTheme.colorScheme.onSurface + ), + height: ButtonHeight = Regular, + @DrawableRes leadingIcon: Int? = null, + @DrawableRes trailingIcon: Int? = null, + onClick: () -> Unit, +) { + val style = when (height) { + Large -> Eam360Theme.typography.button6 + Regular -> Eam360Theme.typography.button6 + Small -> Eam360Theme.typography.button7 + ExtraSmall -> Eam360Theme.typography.button8 + } + + val iconSize = when (height) { + Large -> 17.5.dp + Regular -> 17.5.dp + Small -> 11.dp + ExtraSmall -> 11.dp + } + + val paddingValues = when (height) { + Large, Regular -> PaddingValues( + top = 0.dp, + start = if (leadingIcon == null) 24.dp else 16.dp, + bottom = 0.dp, + end = if (trailingIcon == null) 24.dp else 16.dp + ) + + Small -> PaddingValues( + top = 0.dp, + start = if (leadingIcon == null) 16.dp else 8.dp, + bottom = 0.dp, + end = if (trailingIcon == null) 16.dp else 8.dp + ) + + ExtraSmall -> PaddingValues( + top = 0.dp, + start = if (leadingIcon == null) 8.dp else 4.dp, + bottom = 0.dp, + end = if (trailingIcon == null) 8.dp else 4.dp + ) + } + Button( + onClick = onClick, + colors = colors, + modifier = Modifier + .height(height.size) + .wrapContentWidth(), + contentPadding = paddingValues, + border = BorderStroke(width = 1.dp, color = MaterialTheme.colorScheme.onSurface) + ) { + Row( + verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.Center + ) { + leadingIcon?.let { + Icon( + painter = painterResource(id = leadingIcon), + contentDescription = "", + modifier = Modifier.size(iconSize) + ) + } + Text(text = label, style = style) + trailingIcon?.let { + Icon( + painter = painterResource(id = trailingIcon), + contentDescription = "", + modifier = Modifier.size(iconSize) + ) + } + } + } +} + + +@Composable fun GhostButton( + label: String, + colors: ButtonColors = ButtonDefaults.buttonColors( + containerColor = Color.Transparent, + contentColor = MaterialTheme.colorScheme.secondary + ), + height: ButtonHeight = Regular, + @DrawableRes leadingIcon: Int? = null, + @DrawableRes trailingIcon: Int? = null, + onClick: () -> Unit, +) { + val style = when (height) { + Large -> Eam360Theme.typography.button6 + Regular -> Eam360Theme.typography.button6 + Small -> Eam360Theme.typography.button7 + ExtraSmall -> Eam360Theme.typography.button8 + } + + val iconSize = when (height) { + Large -> 17.5.dp + Regular -> 17.5.dp + Small -> 11.dp + ExtraSmall -> 11.dp + } + + val paddingValues = when (height) { + Large, Regular -> PaddingValues( + top = 0.dp, + start = if (leadingIcon == null) 24.dp else 16.dp, + bottom = 0.dp, + end = if (trailingIcon == null) 24.dp else 16.dp + ) + + Small -> PaddingValues( + top = 0.dp, + start = if (leadingIcon == null) 16.dp else 8.dp, + bottom = 0.dp, + end = if (trailingIcon == null) 16.dp else 8.dp + ) + + ExtraSmall -> PaddingValues( + top = 0.dp, + start = if (leadingIcon == null) 8.dp else 4.dp, + bottom = 0.dp, + end = if (trailingIcon == null) 8.dp else 4.dp + ) + } + Button( + onClick = onClick, + colors = colors, + modifier = Modifier + .height(height.size) + .wrapContentWidth(), + contentPadding = paddingValues, + ) { + Row( + verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.Center + ) { + leadingIcon?.let { + Icon( + painter = painterResource(id = leadingIcon), + contentDescription = "", + modifier = Modifier.size(iconSize) + ) + } + Text(text = label, style = style) + trailingIcon?.let { + Icon( + painter = painterResource(id = trailingIcon), + contentDescription = "", + modifier = Modifier.size(iconSize) + ) + } + } + } +} + + +@Composable fun ErrorButton( + label: String, + colors: ButtonColors = ButtonDefaults.buttonColors( + containerColor = MaterialTheme.colorScheme.error, + contentColor = MaterialTheme.colorScheme.onPrimary, + ), + height: ButtonHeight = Regular, + @DrawableRes leadingIcon: Int? = null, + @DrawableRes trailingIcon: Int? = null, + onClick: () -> Unit, +) { + val style = when (height) { + Large -> Eam360Theme.typography.button6 + Regular -> Eam360Theme.typography.button6 + Small -> Eam360Theme.typography.button7 + ExtraSmall -> Eam360Theme.typography.button8 + } + + val iconSize = when (height) { + Large -> 17.5.dp + Regular -> 17.5.dp + Small -> 11.dp + ExtraSmall -> 11.dp + } + + val paddingValues = when (height) { + Large, Regular -> PaddingValues( + top = 0.dp, + start = if (leadingIcon == null) 24.dp else 16.dp, + bottom = 0.dp, + end = if (trailingIcon == null) 24.dp else 16.dp + ) + + Small -> PaddingValues( + top = 0.dp, + start = if (leadingIcon == null) 16.dp else 8.dp, + bottom = 0.dp, + end = if (trailingIcon == null) 16.dp else 8.dp + ) + + ExtraSmall -> PaddingValues( + top = 0.dp, + start = if (leadingIcon == null) 8.dp else 4.dp, + bottom = 0.dp, + end = if (trailingIcon == null) 8.dp else 4.dp + ) + } + Button( + onClick = onClick, + colors = colors, + modifier = Modifier + .height(height.size) + .wrapContentWidth(), + contentPadding = paddingValues, + ) { + Row( + verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.Center + ) { + leadingIcon?.let { + Icon( + painter = painterResource(id = leadingIcon), + contentDescription = "", + modifier = Modifier.size(iconSize) + ) + } + Text(text = label, style = style) + trailingIcon?.let { + Icon( + painter = painterResource(id = trailingIcon), + contentDescription = "", + modifier = Modifier.size(iconSize) + ) + } + } + } +} + +@Composable @Preview(showBackground = true) fun PreviewPrimaryButton( +) { + +} \ No newline at end of file diff --git a/common-ui/src/main/java/com/tarkalabs/commonui/components/TestComponents.kt b/common-ui/src/main/java/com/tarkalabs/commonui/components/TestComponents.kt index f0e540c5..100fbf58 100644 --- a/common-ui/src/main/java/com/tarkalabs/commonui/components/TestComponents.kt +++ b/common-ui/src/main/java/com/tarkalabs/commonui/components/TestComponents.kt @@ -11,18 +11,25 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp +import com.tarkalabs.common_ui.R +import com.tarkalabs.commonui.components.ButtonHeight.Large +import com.tarkalabs.commonui.components.ButtonHeight.Regular +import com.tarkalabs.commonui.components.ButtonHeight.Small import com.tarkalabs.commonui.theme.Eam360Theme -@Preview(showBackground = true) @Composable fun TestText(text: String = "Hello There") { +@Composable fun TestText(text: String = "Hello There") { Text(text, style = Eam360Theme.typography.button6) } +@Preview(showBackground = true) @Composable fun TestButton() { - EAMButton(modifier = Modifier - .fillMaxWidth() - .padding(10.dp), onClick = {}) { - Text(text = "Hello") - // Text(text = "World", style = Eam360Theme.typography.button6) + PrimaryButton( + label = "Label", + leadingIcon = R.drawable.keyboard_arrow_right, + trailingIcon = R.drawable.keyboard_arrow_right, + height = Large + ) { + } } diff --git a/common-ui/src/main/java/com/tarkalabs/commonui/components/TextRow.kt b/common-ui/src/main/java/com/tarkalabs/commonui/components/TextRow.kt index 63e38cfa..4400375f 100644 --- a/common-ui/src/main/java/com/tarkalabs/commonui/components/TextRow.kt +++ b/common-ui/src/main/java/com/tarkalabs/commonui/components/TextRow.kt @@ -58,8 +58,8 @@ import com.tarkalabs.commonui.theme.Eam360Theme ) } Row(verticalAlignment = Alignment.CenterVertically) { - if (iconOne != null) GhostIconButton(icon = iconOne, onIconClick = onIconOneClick) - if (iconTwo != null) GhostIconButton(icon = iconTwo, onIconClick = onIconTwoClick) + if (iconOne != null) GhostIconButton(icon = iconOne, onIconClick = onIconOneClick, contentDescription = "") + if (iconTwo != null) GhostIconButton(icon = iconTwo, onIconClick = onIconTwoClick, contentDescription = "") if (buttonTitle != null) { OutlinedButton( modifier = Modifier diff --git a/common-ui/src/main/java/com/tarkalabs/commonui/theme/Theme.kt b/common-ui/src/main/java/com/tarkalabs/commonui/theme/Theme.kt index 08aac611..f6c600e5 100644 --- a/common-ui/src/main/java/com/tarkalabs/commonui/theme/Theme.kt +++ b/common-ui/src/main/java/com/tarkalabs/commonui/theme/Theme.kt @@ -51,7 +51,7 @@ private val LightColorPalette = lightColorScheme( ) @Composable fun EamTheme( - darkTheme: Boolean = true, content: @Composable () -> Unit, + darkTheme: Boolean = isSystemInDarkTheme(), content: @Composable () -> Unit, ) { val colors = if (darkTheme) DarkColorPalette else LightColorPalette diff --git a/example/src/main/java/com/tarkalabs/ui/SettingActivity.kt b/example/src/main/java/com/tarkalabs/ui/SettingActivity.kt index 333ecd65..977b39ec 100644 --- a/example/src/main/java/com/tarkalabs/ui/SettingActivity.kt +++ b/example/src/main/java/com/tarkalabs/ui/SettingActivity.kt @@ -8,6 +8,7 @@ import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size @@ -25,6 +26,8 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.tarkalabs.commonui.components.* +import com.tarkalabs.commonui.components.ButtonHeight.Large +import com.tarkalabs.commonui.components.ButtonHeight.Small import com.tarkalabs.commonui.theme.ColorUtilityOutline import com.tarkalabs.commonui.theme.Eam360Theme import com.tarkalabs.commonui.theme.EamTheme @@ -50,6 +53,181 @@ class SettingActivity : ComponentActivity() { Column(modifier = Modifier.padding(paddingValues)) { Divider() VerticalSpacer(space = 24) + Row(horizontalArrangement = Arrangement.SpaceBetween) { + PrimaryButton( + label = "Label", + leadingIcon = R.drawable.keyboard_arrow_right, + trailingIcon = R.drawable.keyboard_arrow_right, + height = ButtonHeight.Large + ) { + + } + PrimaryButton( + label = "Label", + leadingIcon = R.drawable.keyboard_arrow_right, + trailingIcon = R.drawable.keyboard_arrow_right, + height = ButtonHeight.Regular + ) { + + } + PrimaryButton( + label = "Label", + leadingIcon = R.drawable.keyboard_arrow_right, + trailingIcon = R.drawable.keyboard_arrow_right, + height = ButtonHeight.Small + ) { + + } + PrimaryButton( + label = "Label", + leadingIcon = R.drawable.keyboard_arrow_right, + trailingIcon = R.drawable.keyboard_arrow_right, + height = ButtonHeight.ExtraSmall + ) { + + } + } + VerticalSpacer(space = 24) + Row(horizontalArrangement = Arrangement.SpaceBetween) { + SecondaryButton( + label = "Label", + leadingIcon = R.drawable.keyboard_arrow_right, + trailingIcon = R.drawable.keyboard_arrow_right, + height = ButtonHeight.Large + ) { + + } + SecondaryButton( + label = "Label", + leadingIcon = R.drawable.keyboard_arrow_right, + trailingIcon = R.drawable.keyboard_arrow_right, + height = ButtonHeight.Regular + ) { + + } + SecondaryButton( + label = "Label", + leadingIcon = R.drawable.keyboard_arrow_right, + trailingIcon = R.drawable.keyboard_arrow_right, + height = ButtonHeight.Small + ) { + + } + SecondaryButton( + label = "Label", + leadingIcon = R.drawable.keyboard_arrow_right, + trailingIcon = R.drawable.keyboard_arrow_right, + height = ButtonHeight.ExtraSmall + ) { + + } + } + VerticalSpacer(space = 24) + Row(horizontalArrangement = Arrangement.SpaceBetween) { + OutlinedButton( + label = "Label", + leadingIcon = R.drawable.keyboard_arrow_right, + trailingIcon = R.drawable.keyboard_arrow_right, + height = ButtonHeight.Large + ) { + + } + OutlinedButton( + label = "Label", + leadingIcon = R.drawable.keyboard_arrow_right, + trailingIcon = R.drawable.keyboard_arrow_right, + height = ButtonHeight.Regular + ) { + + } + OutlinedButton( + label = "Label", + leadingIcon = R.drawable.keyboard_arrow_right, + trailingIcon = R.drawable.keyboard_arrow_right, + height = ButtonHeight.Small + ) { + + } + OutlinedButton( + label = "Label", + leadingIcon = R.drawable.keyboard_arrow_right, + trailingIcon = R.drawable.keyboard_arrow_right, + height = ButtonHeight.ExtraSmall + ) { + + } + } + VerticalSpacer(space = 24) + Row(horizontalArrangement = Arrangement.SpaceBetween) { + GhostButton( + label = "Label", + leadingIcon = R.drawable.keyboard_arrow_right, + trailingIcon = R.drawable.keyboard_arrow_right, + height = ButtonHeight.Large + ) { + + } + GhostButton( + label = "Label", + leadingIcon = R.drawable.keyboard_arrow_right, + trailingIcon = R.drawable.keyboard_arrow_right, + height = ButtonHeight.Regular + ) { + + } + GhostButton( + label = "Label", + leadingIcon = R.drawable.keyboard_arrow_right, + trailingIcon = R.drawable.keyboard_arrow_right, + height = ButtonHeight.Small + ) { + + } + GhostButton( + label = "Label", + leadingIcon = R.drawable.keyboard_arrow_right, + trailingIcon = R.drawable.keyboard_arrow_right, + height = ButtonHeight.ExtraSmall + ) { + + } + } + VerticalSpacer(space = 24) + Row(horizontalArrangement = Arrangement.SpaceBetween) { + ErrorButton( + label = "Label", + leadingIcon = R.drawable.keyboard_arrow_right, + trailingIcon = R.drawable.keyboard_arrow_right, + height = ButtonHeight.Large + ) { + + } + ErrorButton( + label = "Label", + leadingIcon = R.drawable.keyboard_arrow_right, + trailingIcon = R.drawable.keyboard_arrow_right, + height = ButtonHeight.Regular + ) { + + } + ErrorButton( + label = "Label", + leadingIcon = R.drawable.keyboard_arrow_right, + trailingIcon = R.drawable.keyboard_arrow_right, + height = ButtonHeight.Small + ) { + + } + ErrorButton( + label = "Label", + leadingIcon = R.drawable.keyboard_arrow_right, + trailingIcon = R.drawable.keyboard_arrow_right, + height = ButtonHeight.ExtraSmall + ) { + + } + } + VerticalSpacer(space = 24) SettingHeader() VerticalSpacer(space = 16) TextRowWithDescription( @@ -68,16 +246,16 @@ class SettingActivity : ComponentActivity() { badgeCount = 3, showRightArrow = true, leadingIcon = drawable.ic_transaction - ) + ){} NavigationRow( title = "Sync status", showRightArrow = true, leadingIcon = drawable.checkmark_starburst - ) + ){} NavigationRow( title = "Tabs configuration", showRightArrow = true, leadingIcon = drawable.tabs - ) + ){} NavigationRow( title = "Export log", showRightArrow = true, leadingIcon = drawable.arrow_export - ) + ){} } VerticalSpacer(space = 16) } @@ -112,7 +290,7 @@ class SettingActivity : ComponentActivity() { color = ColorUtilityOutline) } Box(modifier = Modifier.align(Alignment.TopEnd)) { - GhostIconButton(icon = drawable.ic_refresh) + GhostIconButton(icon = drawable.ic_refresh, contentDescription = ""){} } } } From 6fec23f0ff238eff0ca8213e6d394ebc3fc1b3ab Mon Sep 17 00:00:00 2001 From: Charfaoui Younes Date: Wed, 3 May 2023 11:18:56 +0100 Subject: [PATCH 002/571] Removing the duplication for derived values from buttonheight --- .../tarkalabs/commonui/components/Button.kt | 258 ++++-------------- 1 file changed, 59 insertions(+), 199 deletions(-) diff --git a/common-ui/src/main/java/com/tarkalabs/commonui/components/Button.kt b/common-ui/src/main/java/com/tarkalabs/commonui/components/Button.kt index 621e27f8..967e06a6 100644 --- a/common-ui/src/main/java/com/tarkalabs/commonui/components/Button.kt +++ b/common-ui/src/main/java/com/tarkalabs/commonui/components/Button.kt @@ -18,79 +18,79 @@ 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.graphics.Color.Companion import androidx.compose.ui.res.painterResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp -import com.tarkalabs.common_ui.R -import com.tarkalabs.commonui.components.ButtonHeight.ExtraSmall -import com.tarkalabs.commonui.components.ButtonHeight.Large import com.tarkalabs.commonui.components.ButtonHeight.Regular -import com.tarkalabs.commonui.components.ButtonHeight.Small import com.tarkalabs.commonui.theme.Eam360Theme enum class ButtonHeight(val size: Dp) { Large(48.dp), Regular(40.dp), Small(32.dp), - ExtraSmall(24.dp), -} - -@Composable fun PrimaryButton( - label: String, - colors: ButtonColors = ButtonDefaults.buttonColors( - containerColor = MaterialTheme.colorScheme.primary, - contentColor = MaterialTheme.colorScheme.onPrimary - ), - height: ButtonHeight = Regular, - @DrawableRes leadingIcon: Int? = null, - @DrawableRes trailingIcon: Int? = null, - onClick: () -> Unit, -) { - val style = when (height) { - Large -> Eam360Theme.typography.button6 - Regular -> Eam360Theme.typography.button6 - Small -> Eam360Theme.typography.button7 - ExtraSmall -> Eam360Theme.typography.button8 - } + ExtraSmall(24.dp); - val iconSize = when (height) { - Large -> 17.5.dp - Regular -> 17.5.dp - Small -> 11.dp - ExtraSmall -> 11.dp + fun iconSize(): Dp { + return when (this) { + Large -> 17.5.dp + Regular -> 17.5.dp + Small -> 11.dp + ExtraSmall -> 11.dp + } } - val paddingValues = when (height) { + fun paddingValues(isLeadingIconNull : Boolean, isTrailingIconNull:Boolean) = when (this) { Large, Regular -> PaddingValues( top = 0.dp, - start = if (leadingIcon == null) 24.dp else 16.dp, + start = if (isLeadingIconNull) 24.dp else 16.dp, bottom = 0.dp, - end = if (trailingIcon == null) 24.dp else 16.dp + end = if (isTrailingIconNull) 24.dp else 16.dp ) Small -> PaddingValues( top = 0.dp, - start = if (leadingIcon == null) 16.dp else 8.dp, + start = if (isLeadingIconNull) 16.dp else 8.dp, bottom = 0.dp, - end = if (trailingIcon == null) 16.dp else 8.dp + end = if (isTrailingIconNull) 16.dp else 8.dp ) ExtraSmall -> PaddingValues( top = 0.dp, - start = if (leadingIcon == null) 8.dp else 4.dp, + start = if (isLeadingIconNull) 8.dp else 4.dp, bottom = 0.dp, - end = if (trailingIcon == null) 8.dp else 4.dp + end = if (isTrailingIconNull) 8.dp else 4.dp ) } + + @Composable + fun textStyle() = when (this) { + Large -> Eam360Theme.typography.button6 + Regular -> Eam360Theme.typography.button6 + Small -> Eam360Theme.typography.button7 + ExtraSmall -> Eam360Theme.typography.button8 + } +} + +@Composable fun PrimaryButton( + label: String, + colors: ButtonColors = ButtonDefaults.buttonColors( + containerColor = MaterialTheme.colorScheme.primary, + contentColor = MaterialTheme.colorScheme.onPrimary + ), + height: ButtonHeight = Regular, + @DrawableRes leadingIcon: Int? = null, + @DrawableRes trailingIcon: Int? = null, + onClick: () -> Unit, +) { + Button( onClick = onClick, colors = colors, modifier = Modifier .height(height.size) .wrapContentWidth(), - contentPadding = paddingValues + contentPadding = height.paddingValues(leadingIcon == null, trailingIcon == null) ) { Row( verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.Center @@ -99,15 +99,15 @@ enum class ButtonHeight(val size: Dp) { Icon( painter = painterResource(id = leadingIcon), contentDescription = "", - modifier = Modifier.size(iconSize) + modifier = Modifier.size(height.iconSize()) ) } - Text(text = label, style = style) + Text(text = label, style = height.textStyle()) trailingIcon?.let { Icon( painter = painterResource(id = trailingIcon), contentDescription = "", - modifier = Modifier.size(iconSize) + modifier = Modifier.size(height.iconSize()) ) } } @@ -125,49 +125,14 @@ enum class ButtonHeight(val size: Dp) { @DrawableRes trailingIcon: Int? = null, onClick: () -> Unit, ) { - val style = when (height) { - Large -> Eam360Theme.typography.button6 - Regular -> Eam360Theme.typography.button6 - Small -> Eam360Theme.typography.button7 - ExtraSmall -> Eam360Theme.typography.button8 - } - - val iconSize = when (height) { - Large -> 17.5.dp - Regular -> 17.5.dp - Small -> 11.dp - ExtraSmall -> 11.dp - } - - val paddingValues = when (height) { - Large, Regular -> PaddingValues( - top = 0.dp, - start = if (leadingIcon == null) 24.dp else 16.dp, - bottom = 0.dp, - end = if (trailingIcon == null) 24.dp else 16.dp - ) - - Small -> PaddingValues( - top = 0.dp, - start = if (leadingIcon == null) 16.dp else 8.dp, - bottom = 0.dp, - end = if (trailingIcon == null) 16.dp else 8.dp - ) - ExtraSmall -> PaddingValues( - top = 0.dp, - start = if (leadingIcon == null) 8.dp else 4.dp, - bottom = 0.dp, - end = if (trailingIcon == null) 8.dp else 4.dp - ) - } Button( onClick = onClick, colors = colors, modifier = Modifier .height(height.size) .wrapContentWidth(), - contentPadding = paddingValues + contentPadding = height.paddingValues(leadingIcon == null, trailingIcon == null) ) { Row( verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.Center @@ -176,15 +141,15 @@ enum class ButtonHeight(val size: Dp) { Icon( painter = painterResource(id = leadingIcon), contentDescription = "", - modifier = Modifier.size(iconSize) + modifier = Modifier.size(height.iconSize()) ) } - Text(text = label, style = style) + Text(text = label, style = height.textStyle()) trailingIcon?.let { Icon( painter = painterResource(id = trailingIcon), contentDescription = "", - modifier = Modifier.size(iconSize) + modifier = Modifier.size(height.iconSize()) ) } } @@ -202,49 +167,14 @@ enum class ButtonHeight(val size: Dp) { @DrawableRes trailingIcon: Int? = null, onClick: () -> Unit, ) { - val style = when (height) { - Large -> Eam360Theme.typography.button6 - Regular -> Eam360Theme.typography.button6 - Small -> Eam360Theme.typography.button7 - ExtraSmall -> Eam360Theme.typography.button8 - } - - val iconSize = when (height) { - Large -> 17.5.dp - Regular -> 17.5.dp - Small -> 11.dp - ExtraSmall -> 11.dp - } - - val paddingValues = when (height) { - Large, Regular -> PaddingValues( - top = 0.dp, - start = if (leadingIcon == null) 24.dp else 16.dp, - bottom = 0.dp, - end = if (trailingIcon == null) 24.dp else 16.dp - ) - - Small -> PaddingValues( - top = 0.dp, - start = if (leadingIcon == null) 16.dp else 8.dp, - bottom = 0.dp, - end = if (trailingIcon == null) 16.dp else 8.dp - ) - ExtraSmall -> PaddingValues( - top = 0.dp, - start = if (leadingIcon == null) 8.dp else 4.dp, - bottom = 0.dp, - end = if (trailingIcon == null) 8.dp else 4.dp - ) - } Button( onClick = onClick, colors = colors, modifier = Modifier .height(height.size) .wrapContentWidth(), - contentPadding = paddingValues, + contentPadding = height.paddingValues(leadingIcon == null, trailingIcon == null), border = BorderStroke(width = 1.dp, color = MaterialTheme.colorScheme.onSurface) ) { Row( @@ -254,15 +184,15 @@ enum class ButtonHeight(val size: Dp) { Icon( painter = painterResource(id = leadingIcon), contentDescription = "", - modifier = Modifier.size(iconSize) + modifier = Modifier.size(height.iconSize()) ) } - Text(text = label, style = style) + Text(text = label, style = height.textStyle()) trailingIcon?.let { Icon( painter = painterResource(id = trailingIcon), contentDescription = "", - modifier = Modifier.size(iconSize) + modifier = Modifier.size(height.iconSize()) ) } } @@ -281,49 +211,14 @@ enum class ButtonHeight(val size: Dp) { @DrawableRes trailingIcon: Int? = null, onClick: () -> Unit, ) { - val style = when (height) { - Large -> Eam360Theme.typography.button6 - Regular -> Eam360Theme.typography.button6 - Small -> Eam360Theme.typography.button7 - ExtraSmall -> Eam360Theme.typography.button8 - } - - val iconSize = when (height) { - Large -> 17.5.dp - Regular -> 17.5.dp - Small -> 11.dp - ExtraSmall -> 11.dp - } - - val paddingValues = when (height) { - Large, Regular -> PaddingValues( - top = 0.dp, - start = if (leadingIcon == null) 24.dp else 16.dp, - bottom = 0.dp, - end = if (trailingIcon == null) 24.dp else 16.dp - ) - - Small -> PaddingValues( - top = 0.dp, - start = if (leadingIcon == null) 16.dp else 8.dp, - bottom = 0.dp, - end = if (trailingIcon == null) 16.dp else 8.dp - ) - ExtraSmall -> PaddingValues( - top = 0.dp, - start = if (leadingIcon == null) 8.dp else 4.dp, - bottom = 0.dp, - end = if (trailingIcon == null) 8.dp else 4.dp - ) - } Button( onClick = onClick, colors = colors, modifier = Modifier .height(height.size) .wrapContentWidth(), - contentPadding = paddingValues, + contentPadding = height.paddingValues(leadingIcon == null, trailingIcon == null), ) { Row( verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.Center @@ -332,15 +227,15 @@ enum class ButtonHeight(val size: Dp) { Icon( painter = painterResource(id = leadingIcon), contentDescription = "", - modifier = Modifier.size(iconSize) + modifier = Modifier.size(height.iconSize()) ) } - Text(text = label, style = style) + Text(text = label, style = height.textStyle()) trailingIcon?.let { Icon( painter = painterResource(id = trailingIcon), contentDescription = "", - modifier = Modifier.size(iconSize) + modifier = Modifier.size(height.iconSize()) ) } } @@ -359,49 +254,14 @@ enum class ButtonHeight(val size: Dp) { @DrawableRes trailingIcon: Int? = null, onClick: () -> Unit, ) { - val style = when (height) { - Large -> Eam360Theme.typography.button6 - Regular -> Eam360Theme.typography.button6 - Small -> Eam360Theme.typography.button7 - ExtraSmall -> Eam360Theme.typography.button8 - } - - val iconSize = when (height) { - Large -> 17.5.dp - Regular -> 17.5.dp - Small -> 11.dp - ExtraSmall -> 11.dp - } - val paddingValues = when (height) { - Large, Regular -> PaddingValues( - top = 0.dp, - start = if (leadingIcon == null) 24.dp else 16.dp, - bottom = 0.dp, - end = if (trailingIcon == null) 24.dp else 16.dp - ) - - Small -> PaddingValues( - top = 0.dp, - start = if (leadingIcon == null) 16.dp else 8.dp, - bottom = 0.dp, - end = if (trailingIcon == null) 16.dp else 8.dp - ) - - ExtraSmall -> PaddingValues( - top = 0.dp, - start = if (leadingIcon == null) 8.dp else 4.dp, - bottom = 0.dp, - end = if (trailingIcon == null) 8.dp else 4.dp - ) - } Button( onClick = onClick, colors = colors, modifier = Modifier .height(height.size) .wrapContentWidth(), - contentPadding = paddingValues, + contentPadding = height.paddingValues(leadingIcon == null, trailingIcon == null), ) { Row( verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.Center @@ -410,22 +270,22 @@ enum class ButtonHeight(val size: Dp) { Icon( painter = painterResource(id = leadingIcon), contentDescription = "", - modifier = Modifier.size(iconSize) + modifier = Modifier.size(height.iconSize()) ) } - Text(text = label, style = style) + Text(text = label, style = height.textStyle()) trailingIcon?.let { Icon( painter = painterResource(id = trailingIcon), contentDescription = "", - modifier = Modifier.size(iconSize) + modifier = Modifier.size(height.iconSize()) ) } } } } -@Composable @Preview(showBackground = true) fun PreviewPrimaryButton( -) { +@Composable @Preview(showBackground = true) +fun PreviewPrimaryButton() { } \ No newline at end of file From 49fcfd9d77a46cd08667c73019c49e3c69f0fabb Mon Sep 17 00:00:00 2001 From: Charfaoui Younes Date: Wed, 3 May 2023 11:39:00 +0100 Subject: [PATCH 003/571] Removing the duplication --- .../tarkalabs/commonui/components/Button.kt | 241 ++++++------------ 1 file changed, 83 insertions(+), 158 deletions(-) diff --git a/common-ui/src/main/java/com/tarkalabs/commonui/components/Button.kt b/common-ui/src/main/java/com/tarkalabs/commonui/components/Button.kt index 967e06a6..d1f9672a 100644 --- a/common-ui/src/main/java/com/tarkalabs/commonui/components/Button.kt +++ b/common-ui/src/main/java/com/tarkalabs/commonui/components/Button.kt @@ -2,18 +2,8 @@ package com.tarkalabs.commonui.components import androidx.annotation.DrawableRes import androidx.compose.foundation.BorderStroke -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.PaddingValues -import androidx.compose.foundation.layout.Row -import androidx.compose.foundation.layout.height -import androidx.compose.foundation.layout.size -import androidx.compose.foundation.layout.wrapContentWidth -import androidx.compose.material3.Button -import androidx.compose.material3.ButtonColors -import androidx.compose.material3.ButtonDefaults -import androidx.compose.material3.Icon -import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.Text +import androidx.compose.foundation.layout.* +import androidx.compose.material3.* import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -40,7 +30,7 @@ enum class ButtonHeight(val size: Dp) { } } - fun paddingValues(isLeadingIconNull : Boolean, isTrailingIconNull:Boolean) = when (this) { + fun paddingValues(isLeadingIconNull: Boolean, isTrailingIconNull: Boolean) = when (this) { Large, Regular -> PaddingValues( top = 0.dp, start = if (isLeadingIconNull) 24.dp else 16.dp, @@ -72,25 +62,24 @@ enum class ButtonHeight(val size: Dp) { } } -@Composable fun PrimaryButton( +@Composable +internal fun BaseButton( label: String, - colors: ButtonColors = ButtonDefaults.buttonColors( - containerColor = MaterialTheme.colorScheme.primary, - contentColor = MaterialTheme.colorScheme.onPrimary - ), + colors: ButtonColors, height: ButtonHeight = Regular, @DrawableRes leadingIcon: Int? = null, @DrawableRes trailingIcon: Int? = null, onClick: () -> Unit, + borderStroke: BorderStroke? = null, ) { - Button( onClick = onClick, colors = colors, modifier = Modifier .height(height.size) .wrapContentWidth(), - contentPadding = height.paddingValues(leadingIcon == null, trailingIcon == null) + contentPadding = height.paddingValues(leadingIcon == null, trailingIcon == null), + border = borderStroke ) { Row( verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.Center @@ -114,178 +103,114 @@ enum class ButtonHeight(val size: Dp) { } } -@Composable fun SecondaryButton( +@Composable +fun PrimaryButton( label: String, - colors: ButtonColors = ButtonDefaults.buttonColors( - containerColor = MaterialTheme.colorScheme.secondary, - contentColor = MaterialTheme.colorScheme.onSecondary - ), height: ButtonHeight = Regular, @DrawableRes leadingIcon: Int? = null, @DrawableRes trailingIcon: Int? = null, onClick: () -> Unit, ) { - - Button( - onClick = onClick, - colors = colors, - modifier = Modifier - .height(height.size) - .wrapContentWidth(), - contentPadding = height.paddingValues(leadingIcon == null, trailingIcon == null) - ) { - Row( - verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.Center - ) { - leadingIcon?.let { - Icon( - painter = painterResource(id = leadingIcon), - contentDescription = "", - modifier = Modifier.size(height.iconSize()) - ) - } - Text(text = label, style = height.textStyle()) - trailingIcon?.let { - Icon( - painter = painterResource(id = trailingIcon), - contentDescription = "", - modifier = Modifier.size(height.iconSize()) - ) - } - } - } + BaseButton( + label = label, + colors = ButtonDefaults.buttonColors( + containerColor = MaterialTheme.colorScheme.primary, + contentColor = MaterialTheme.colorScheme.onPrimary + ), + height = height, + leadingIcon = leadingIcon, + trailingIcon = trailingIcon, + onClick = onClick + ) } -@Composable fun OutlinedButton( +@Composable +fun SecondaryButton( label: String, - colors: ButtonColors = ButtonDefaults.buttonColors( - containerColor = MaterialTheme.colorScheme.surface, - contentColor = MaterialTheme.colorScheme.onSurface - ), height: ButtonHeight = Regular, @DrawableRes leadingIcon: Int? = null, @DrawableRes trailingIcon: Int? = null, onClick: () -> Unit, ) { - - Button( - onClick = onClick, - colors = colors, - modifier = Modifier - .height(height.size) - .wrapContentWidth(), - contentPadding = height.paddingValues(leadingIcon == null, trailingIcon == null), - border = BorderStroke(width = 1.dp, color = MaterialTheme.colorScheme.onSurface) - ) { - Row( - verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.Center - ) { - leadingIcon?.let { - Icon( - painter = painterResource(id = leadingIcon), - contentDescription = "", - modifier = Modifier.size(height.iconSize()) - ) - } - Text(text = label, style = height.textStyle()) - trailingIcon?.let { - Icon( - painter = painterResource(id = trailingIcon), - contentDescription = "", - modifier = Modifier.size(height.iconSize()) - ) - } - } - } + BaseButton( + label = label, + colors = ButtonDefaults.buttonColors( + containerColor = MaterialTheme.colorScheme.secondary, + contentColor = MaterialTheme.colorScheme.onSecondary + ), + height = height, + leadingIcon = leadingIcon, + trailingIcon = trailingIcon, + onClick = onClick + ) } - -@Composable fun GhostButton( +@Composable +fun GhostButton( label: String, - colors: ButtonColors = ButtonDefaults.buttonColors( - containerColor = Color.Transparent, - contentColor = MaterialTheme.colorScheme.secondary - ), height: ButtonHeight = Regular, @DrawableRes leadingIcon: Int? = null, @DrawableRes trailingIcon: Int? = null, onClick: () -> Unit, ) { - - Button( - onClick = onClick, - colors = colors, - modifier = Modifier - .height(height.size) - .wrapContentWidth(), - contentPadding = height.paddingValues(leadingIcon == null, trailingIcon == null), - ) { - Row( - verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.Center - ) { - leadingIcon?.let { - Icon( - painter = painterResource(id = leadingIcon), - contentDescription = "", - modifier = Modifier.size(height.iconSize()) - ) - } - Text(text = label, style = height.textStyle()) - trailingIcon?.let { - Icon( - painter = painterResource(id = trailingIcon), - contentDescription = "", - modifier = Modifier.size(height.iconSize()) - ) - } - } - } + BaseButton( + label = label, + colors = ButtonDefaults.buttonColors( + containerColor = Color.Transparent, + contentColor = MaterialTheme.colorScheme.secondary + ), + height = height, + leadingIcon = leadingIcon, + trailingIcon = trailingIcon, + onClick = onClick + ) } - -@Composable fun ErrorButton( +@Composable +fun ErrorButton( label: String, - colors: ButtonColors = ButtonDefaults.buttonColors( - containerColor = MaterialTheme.colorScheme.error, - contentColor = MaterialTheme.colorScheme.onPrimary, - ), height: ButtonHeight = Regular, @DrawableRes leadingIcon: Int? = null, @DrawableRes trailingIcon: Int? = null, onClick: () -> Unit, ) { + BaseButton( + label = label, + colors = ButtonDefaults.buttonColors( + containerColor = MaterialTheme.colorScheme.error, + contentColor = MaterialTheme.colorScheme.onPrimary, + ), + height = height, + leadingIcon = leadingIcon, + trailingIcon = trailingIcon, + onClick = onClick + ) +} - Button( +@Composable +fun OutlinedButton( + label: String, + height: ButtonHeight = Regular, + @DrawableRes leadingIcon: Int? = null, + @DrawableRes trailingIcon: Int? = null, + onClick: () -> Unit, +) { + BaseButton( + label = label, + colors = ButtonDefaults.buttonColors( + containerColor = MaterialTheme.colorScheme.surface, + contentColor = MaterialTheme.colorScheme.onSurface + ), + height = height, + leadingIcon = leadingIcon, + trailingIcon = trailingIcon, onClick = onClick, - colors = colors, - modifier = Modifier - .height(height.size) - .wrapContentWidth(), - contentPadding = height.paddingValues(leadingIcon == null, trailingIcon == null), - ) { - Row( - verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.Center - ) { - leadingIcon?.let { - Icon( - painter = painterResource(id = leadingIcon), - contentDescription = "", - modifier = Modifier.size(height.iconSize()) - ) - } - Text(text = label, style = height.textStyle()) - trailingIcon?.let { - Icon( - painter = painterResource(id = trailingIcon), - contentDescription = "", - modifier = Modifier.size(height.iconSize()) - ) - } - } - } + borderStroke = BorderStroke(width = 1.dp, color = MaterialTheme.colorScheme.onSurface) + ) } -@Composable @Preview(showBackground = true) +@Composable +@Preview(showBackground = true) fun PreviewPrimaryButton() { } \ No newline at end of file From 1b5270861d9e9a764f825cf4bb31ab0ed70ad93a Mon Sep 17 00:00:00 2001 From: AskNilesh Date: Wed, 3 May 2023 16:32:56 +0530 Subject: [PATCH 004/571] - Created FAB button --- .../components/FloatingActionButton.kt | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 common-ui/src/main/java/com/tarkalabs/commonui/components/FloatingActionButton.kt diff --git a/common-ui/src/main/java/com/tarkalabs/commonui/components/FloatingActionButton.kt b/common-ui/src/main/java/com/tarkalabs/commonui/components/FloatingActionButton.kt new file mode 100644 index 00000000..f384fb45 --- /dev/null +++ b/common-ui/src/main/java/com/tarkalabs/commonui/components/FloatingActionButton.kt @@ -0,0 +1,46 @@ +package com.tarkalabs.commonui.components + +import androidx.annotation.DrawableRes +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.material3.FloatingActionButton +import androidx.compose.material3.Icon +import androidx.compose.material3.MaterialTheme +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.graphics.Shape +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.Dp +import androidx.compose.ui.unit.dp +import com.tarkalabs.common_ui.R + +enum class FloatingActionButtonSize(val size: Dp) { + REGULAR(40.dp), + SMALL(56.dp), + LARGE(96.dp), +} + +@Preview +@Composable fun FloatingActionButton( + @DrawableRes icon: Int = R.drawable.keyboard_arrow_right, + iconSize: FloatingActionButtonSize = FloatingActionButtonSize.REGULAR, + onClick: () -> Unit = {}, + contentDescription: String? = null, + containerColor: Color = MaterialTheme.colorScheme.primary, + iconTint: Color = MaterialTheme.colorScheme.onPrimary, + shape: Shape = CircleShape, +) { + FloatingActionButton( + onClick = onClick, + containerColor = containerColor, + contentColor = iconTint, + modifier = Modifier.size(iconSize.size), + shape = shape, + ) { + Icon( + painter = painterResource(id = icon), contentDescription = contentDescription + ) + } +} \ No newline at end of file From 76eacb8af029be98c1b713d28567eb8758df4664 Mon Sep 17 00:00:00 2001 From: Charfaoui Younes Date: Thu, 4 May 2023 15:10:48 +0100 Subject: [PATCH 005/571] Publishing the library to github packages --- common-ui/build.gradle.kts | 38 +++++++++++++++++++++++++++++++++++++- github.properties | 2 ++ 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 github.properties diff --git a/common-ui/build.gradle.kts b/common-ui/build.gradle.kts index 9b9c9919..d192b612 100644 --- a/common-ui/build.gradle.kts +++ b/common-ui/build.gradle.kts @@ -1,7 +1,12 @@ @file:Suppress("UnstableApiUsage") + +import java.io.FileInputStream +import java.util.* + plugins { id("com.android.library") id("org.jetbrains.kotlin.android") + id("maven-publish") } android { @@ -42,6 +47,36 @@ android { } } +val githubProperties = Properties().apply { + load(FileInputStream(rootProject.file("github.properties"))) +} + +fun getLibraryArtifactId() = "common-ui" + +publishing { + publications { + create("gpr"){ + run { + groupId = "tarkalabs" + artifactId = getLibraryArtifactId() + version = "0.9-alpha" + artifact("$buildDir/outputs/aar/${getLibraryArtifactId()}-release.aar") + } + } + } + + repositories { + maven { + name = "GitHubPackages" + url = uri("https://maven.pkg.github.com/tarkalabs/eam360-ui-android") + credentials { + username = githubProperties["gpr.usr"] as String + password = githubProperties["gpr.key"] as String + } + } + } +} + dependencies { val composeUiVersion = "1.4.0" implementation("androidx.core:core-ktx:1.10.0") @@ -58,4 +93,5 @@ dependencies { androidTestImplementation( "androidx.compose.ui:ui-test-junit4:$composeUiVersion") debugImplementation( "androidx.compose.ui:ui-tooling:$composeUiVersion") debugImplementation( "androidx.compose.ui:ui-test-manifest:$composeUiVersion") -} \ No newline at end of file +} + diff --git a/github.properties b/github.properties new file mode 100644 index 00000000..045261d8 --- /dev/null +++ b/github.properties @@ -0,0 +1,2 @@ +gpr.usr=Younes-Charfaoui +gpr.key=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 \ No newline at end of file From 2c80b57d00e01308277cc407d54bf87fe6d5438b Mon Sep 17 00:00:00 2001 From: Raja Jawahar Date: Fri, 5 May 2023 11:22:51 +0530 Subject: [PATCH 006/571] github properties file deleted --- common-ui/build.gradle.kts | 13 ++++--------- github.properties | 2 -- 2 files changed, 4 insertions(+), 11 deletions(-) delete mode 100644 github.properties diff --git a/common-ui/build.gradle.kts b/common-ui/build.gradle.kts index d192b612..d6d97709 100644 --- a/common-ui/build.gradle.kts +++ b/common-ui/build.gradle.kts @@ -1,6 +1,5 @@ @file:Suppress("UnstableApiUsage") -import java.io.FileInputStream import java.util.* plugins { @@ -47,17 +46,13 @@ android { } } -val githubProperties = Properties().apply { - load(FileInputStream(rootProject.file("github.properties"))) -} - -fun getLibraryArtifactId() = "common-ui" +fun getLibraryArtifactId() = "uicomponents" publishing { publications { create("gpr"){ run { - groupId = "tarkalabs" + groupId = "com.tarkalabs" artifactId = getLibraryArtifactId() version = "0.9-alpha" artifact("$buildDir/outputs/aar/${getLibraryArtifactId()}-release.aar") @@ -70,8 +65,8 @@ publishing { name = "GitHubPackages" url = uri("https://maven.pkg.github.com/tarkalabs/eam360-ui-android") credentials { - username = githubProperties["gpr.usr"] as String - password = githubProperties["gpr.key"] as String + username = System.getenv("GITHUB_USER") + password = System.getenv("GITHUB_TOKEN") } } } diff --git a/github.properties b/github.properties deleted file mode 100644 index 045261d8..00000000 --- a/github.properties +++ /dev/null @@ -1,2 +0,0 @@ -gpr.usr=Younes-Charfaoui -gpr.key=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 \ No newline at end of file From f93f1e15b86052a7ee8ac4a3d98c213b75df0fec Mon Sep 17 00:00:00 2001 From: Raja Jawahar Date: Thu, 11 May 2023 20:57:45 +0530 Subject: [PATCH 007/571] Buttonsize renaming --- .../uicomponents/components/IconButton.kt | 60 ++++++++----------- 1 file changed, 26 insertions(+), 34 deletions(-) diff --git a/common-ui/src/main/java/com/tarkalabs/uicomponents/components/IconButton.kt b/common-ui/src/main/java/com/tarkalabs/uicomponents/components/IconButton.kt index 8d7590bc..6f14b8ac 100644 --- a/common-ui/src/main/java/com/tarkalabs/uicomponents/components/IconButton.kt +++ b/common-ui/src/main/java/com/tarkalabs/uicomponents/components/IconButton.kt @@ -15,17 +15,17 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.res.painterResource import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp -import com.tarkalabs.uicomponents.components.ButtonType.PRIMARY +import com.tarkalabs.uicomponents.components.IconButtonStyles.PRIMARY enum class IconButtonSize(val size: Dp) { - Size20(20.dp), - Size24(24.dp), - Size32(32.dp), - Size40(40.dp), - Size48(48.dp), + XS(20.dp), + S(24.dp), + M(32.dp), + L(40.dp), + XL(48.dp), } -enum class ButtonType { +enum class IconButtonStyles { GHOST, SECONDARY, PRIMARY, @@ -36,24 +36,23 @@ enum class ButtonType { @DrawableRes icon: Int, contentDescription: String, colors: IconButtonColors = IconButtonDefaults.iconButtonColors(), - buttonSize: IconButtonSize = IconButtonSize.Size40, - buttonType: ButtonType = PRIMARY, + buttonSize: IconButtonSize = IconButtonSize.L, + iconButtonStyles: IconButtonStyles = PRIMARY, badgeCount: String? = null, onIconClick: () -> Unit = {}, - ) { +) { IconButton( - onClick = onIconClick, modifier = Modifier.size(buttonSize.size), - colors = colors + onClick = onIconClick, modifier = Modifier.size(buttonSize.size), colors = colors ) { Icon(painter = painterResource(id = icon), contentDescription = contentDescription) } } @Composable fun GhostIconButton( - @DrawableRes icon: Int , - contentDescription: String , + @DrawableRes icon: Int, + contentDescription: String, colors: IconButtonColors = IconButtonDefaults.iconButtonColors(), - buttonSize: IconButtonSize = IconButtonSize.Size40, + buttonSize: IconButtonSize = IconButtonSize.L, badgeCount: String? = null, onIconClick: () -> Unit, ) { @@ -72,10 +71,10 @@ enum class ButtonType { } @Composable fun SecondaryIconButton( - @DrawableRes icon: Int , - contentDescription: String , + @DrawableRes icon: Int, + contentDescription: String, colors: IconButtonColors = IconButtonDefaults.iconButtonColors(), - buttonSize: IconButtonSize = IconButtonSize.Size40, + buttonSize: IconButtonSize = IconButtonSize.L, badgeCount: String? = null, onIconClick: () -> Unit, ) { @@ -93,12 +92,11 @@ enum class ButtonType { } } - @Composable fun PrimaryIconButton( - @DrawableRes icon: Int , - contentDescription: String , + @DrawableRes icon: Int, + contentDescription: String, colors: IconButtonColors = IconButtonDefaults.iconButtonColors(), - buttonSize: IconButtonSize = IconButtonSize.Size40, + buttonSize: IconButtonSize = IconButtonSize.L, badgeCount: String? = null, onIconClick: () -> Unit, ) { @@ -117,25 +115,19 @@ enum class ButtonType { } @Composable fun OutlineIconButton( - @DrawableRes icon: Int , + @DrawableRes icon: Int, contentDescription: String, - colors: IconButtonColors = IconButtonDefaults.iconButtonColors( - containerColor = Color.Transparent, - ), - buttonSize: IconButtonSize = IconButtonSize.Size40, + colors: IconButtonColors = IconButtonDefaults.iconButtonColors(containerColor = Color.Transparent), + buttonSize: IconButtonSize = IconButtonSize.L, badgeCount: String? = null, onIconClick: () -> Unit, ) { IconButton( - onClick = onIconClick, - modifier = Modifier + onClick = onIconClick, modifier = Modifier .border( - width = 0.5.dp, - color = Color.Black, - shape = CircleShape + width = 0.5.dp, color = Color.Black, shape = CircleShape ) - .size(buttonSize.size), - colors = colors + .size(buttonSize.size), colors = colors ) { Icon( painter = painterResource(id = icon), From f4cb1b2672b0b5031ce4c15963328b86d7d9c0a4 Mon Sep 17 00:00:00 2001 From: Raja Jawahar Date: Thu, 11 May 2023 21:02:49 +0530 Subject: [PATCH 008/571] Delete misc.xml --- .idea/misc.xml | 9 --------- 1 file changed, 9 deletions(-) delete mode 100644 .idea/misc.xml diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index dfc12ed9..00000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - \ No newline at end of file From 5110da895ce33ae84cfe3efedff04ab6f662f53c Mon Sep 17 00:00:00 2001 From: Raja Jawahar Date: Thu, 11 May 2023 21:03:59 +0530 Subject: [PATCH 009/571] Delete gradle.xml --- .idea/gradle.xml | 20 -------------------- 1 file changed, 20 deletions(-) delete mode 100644 .idea/gradle.xml diff --git a/.idea/gradle.xml b/.idea/gradle.xml deleted file mode 100644 index aef971c8..00000000 --- a/.idea/gradle.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - \ No newline at end of file From 79c5fcee52e1b899a43755a0f5c1c2ab77ddf72f Mon Sep 17 00:00:00 2001 From: Raja Jawahar Date: Fri, 12 May 2023 12:01:56 +0530 Subject: [PATCH 010/571] Badge Component created --- .../uicomponents/components/Badge.kt | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 common-ui/src/main/java/com/tarkalabs/uicomponents/components/Badge.kt diff --git a/common-ui/src/main/java/com/tarkalabs/uicomponents/components/Badge.kt b/common-ui/src/main/java/com/tarkalabs/uicomponents/components/Badge.kt new file mode 100644 index 00000000..f9a3e8f9 --- /dev/null +++ b/common-ui/src/main/java/com/tarkalabs/uicomponents/components/Badge.kt @@ -0,0 +1,60 @@ +package com.tarkalabs.uicomponents.components + +import androidx.compose.foundation.layout.defaultMinSize +import androidx.compose.foundation.layout.padding +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.MaterialTheme +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.tooling.preview.Preview +import androidx.compose.ui.unit.Dp +import androidx.compose.ui.unit.dp +import com.tarkalabs.uicomponents.components.BadgeSize.L +import com.tarkalabs.uicomponents.components.BadgeSize.M +import com.tarkalabs.uicomponents.components.BadgeSize.S +import com.tarkalabs.uicomponents.theme.Eam360Theme + +enum class BadgeSize(val size: Dp) { + S(12.dp), + M(16.dp), + L(24.dp) +} + +@OptIn(ExperimentalMaterial3Api::class) @Composable fun Badge( + count: Int? = null, badgeSize: BadgeSize = M +) { + val padding = when (badgeSize) { + S -> 0.dp + M -> 4.dp + L -> 8.dp + } + val textStyle = when (badgeSize) { + S, M -> { + Eam360Theme.typography.button8 + } + L -> { + Eam360Theme.typography.button7 + } + } + androidx.compose.material3.Badge( + containerColor = MaterialTheme.colorScheme.error, + modifier = Modifier + .padding(padding) + .defaultMinSize( + minWidth = badgeSize.size, minHeight = badgeSize.size + ) + + ) { + if (count != null) Text( + text = count.toString(), + style = textStyle, + color = MaterialTheme.colorScheme.onTertiary, + ) + } +} + +@Preview(showBackground = true) @Composable fun BadgePreview() { + Badge(count = 4440440, badgeSize = M) +} From d7e4b7334616f8f27539e4abe5582ad5e4bd4867 Mon Sep 17 00:00:00 2001 From: Raja Jawahar Date: Fri, 12 May 2023 15:35:30 +0530 Subject: [PATCH 011/571] FAB Component added --- .../components/FloatingActionButton.kt | 83 +++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 common-ui/src/main/java/com/tarkalabs/uicomponents/components/FloatingActionButton.kt diff --git a/common-ui/src/main/java/com/tarkalabs/uicomponents/components/FloatingActionButton.kt b/common-ui/src/main/java/com/tarkalabs/uicomponents/components/FloatingActionButton.kt new file mode 100644 index 00000000..e94bb492 --- /dev/null +++ b/common-ui/src/main/java/com/tarkalabs/uicomponents/components/FloatingActionButton.kt @@ -0,0 +1,83 @@ +package com.tarkalabs.uicomponents.components + +import androidx.annotation.DrawableRes +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.defaultMinSize +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.material3.FloatingActionButton +import androidx.compose.material3.Icon +import androidx.compose.material3.MaterialTheme +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.Dp +import androidx.compose.ui.unit.dp +import com.tarkalabs.uicomponents.components.FloatingActionButtonSize.L +import com.tarkalabs.uicomponents.components.FloatingActionButtonSize.R +import com.tarkalabs.uicomponents.components.FloatingActionButtonSize.S + +enum class FloatingActionButtonSize(val size: Dp) { + S(40.dp), + R(56.dp), + L(96.dp) +} + +@Composable fun FloatingActionButton( + fabSize: FloatingActionButtonSize = S, + @DrawableRes icon: Int, + contentDescription: String, + onClick: () -> Unit +) { + val iconSize = when (fabSize) { + S, R -> 18.dp + L -> 22.dp + } + FloatingActionButton( + onClick = onClick, + containerColor = MaterialTheme.colorScheme.primary, + shape = CircleShape, + modifier = Modifier.defaultMinSize(minHeight = fabSize.size, minWidth = fabSize.size) + ) { + Icon( + modifier = Modifier.defaultMinSize(iconSize, iconSize), + painter = painterResource(id = icon), + contentDescription = contentDescription + ) + } +} + +@Preview(showBackground = true) +@Composable fun FloatingActionButtonPreview() { + Column( + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.SpaceEvenly + + ) { + FloatingActionButton( + L, com.tarkalabs.uicomponents.R.drawable.keyboard_arrow_right, "atata" + ) { + + } + Spacer(modifier = Modifier.padding(5.dp)) + FloatingActionButton( + R, com.tarkalabs.uicomponents.R.drawable.keyboard_arrow_right, "atata" + ) { + + } + Spacer(modifier = Modifier.padding(5.dp)) + FloatingActionButton( + S, com.tarkalabs.uicomponents.R.drawable.keyboard_arrow_right, "atata" + ) { + + } + } +} + + + + From 9617636faef6314ca8bff5524093014415c09c5b Mon Sep 17 00:00:00 2001 From: Raja Jawahar Date: Fri, 12 May 2023 15:50:19 +0530 Subject: [PATCH 012/571] Preview layout aded for Badge --- .../tarkalabs/uicomponents/components/Badge.kt | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/common-ui/src/main/java/com/tarkalabs/uicomponents/components/Badge.kt b/common-ui/src/main/java/com/tarkalabs/uicomponents/components/Badge.kt index f9a3e8f9..04072a15 100644 --- a/common-ui/src/main/java/com/tarkalabs/uicomponents/components/Badge.kt +++ b/common-ui/src/main/java/com/tarkalabs/uicomponents/components/Badge.kt @@ -1,13 +1,16 @@ package com.tarkalabs.uicomponents.components +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.defaultMinSize import androidx.compose.foundation.layout.padding import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.MaterialTheme 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.TextStyle import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp @@ -56,5 +59,16 @@ enum class BadgeSize(val size: Dp) { } @Preview(showBackground = true) @Composable fun BadgePreview() { - Badge(count = 4440440, badgeSize = M) + Column( + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.SpaceEvenly + + ) { + Spacer(modifier = Modifier.padding(2.dp)) + Badge(badgeSize = S) + Spacer(modifier = Modifier.padding(2.dp)) + Badge(count = 4, badgeSize = M) + Spacer(modifier = Modifier.padding(2.dp)) + Badge(count = 444, badgeSize = L) + } } From 35f80d20c0b6bf9712ae5a8bee655e1daf659ca0 Mon Sep 17 00:00:00 2001 From: AskNilesh Date: Fri, 12 May 2023 16:32:14 +0530 Subject: [PATCH 013/571] - Refactored IconButton --- .../uicomponents/components/IconButton.kt | 367 ++++++++++++++---- 1 file changed, 296 insertions(+), 71 deletions(-) diff --git a/common-ui/src/main/java/com/tarkalabs/uicomponents/components/IconButton.kt b/common-ui/src/main/java/com/tarkalabs/uicomponents/components/IconButton.kt index 6f14b8ac..7d4f732d 100644 --- a/common-ui/src/main/java/com/tarkalabs/uicomponents/components/IconButton.kt +++ b/common-ui/src/main/java/com/tarkalabs/uicomponents/components/IconButton.kt @@ -2,20 +2,45 @@ package com.tarkalabs.uicomponents.components import androidx.annotation.DrawableRes import androidx.compose.foundation.border +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width import androidx.compose.foundation.shape.CircleShape import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.IconButtonColors import androidx.compose.material3.IconButtonDefaults +import androidx.compose.material3.MaterialTheme +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.clip 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 androidx.compose.ui.unit.dp -import com.tarkalabs.uicomponents.components.IconButtonStyles.PRIMARY +import androidx.compose.ui.unit.sp +import com.tarkalabs.uicomponents.R +import com.tarkalabs.uicomponents.components.IconButtonSize.L +import com.tarkalabs.uicomponents.components.IconButtonSize.M +import com.tarkalabs.uicomponents.components.IconButtonSize.S +import com.tarkalabs.uicomponents.components.IconButtonSize.XL +import com.tarkalabs.uicomponents.components.IconButtonSize.XS +import com.tarkalabs.uicomponents.components.IconButtonStyle.GHOST +import com.tarkalabs.uicomponents.components.IconButtonStyle.OUTLINE +import com.tarkalabs.uicomponents.components.IconButtonStyle.PRIMARY +import com.tarkalabs.uicomponents.components.IconButtonStyle.SECONDARY +import com.tarkalabs.uicomponents.theme.ColorUtilityOutline +import com.tarkalabs.uicomponents.theme.EamTheme + +// Created by Nilesh Rathod on 12/05/23. enum class IconButtonSize(val size: Dp) { XS(20.dp), @@ -25,78 +50,301 @@ enum class IconButtonSize(val size: Dp) { XL(48.dp), } -enum class IconButtonStyles { - GHOST, - SECONDARY, +enum class IconButtonStyle { PRIMARY, - OUTLINE, + SECONDARY, + GHOST, + OUTLINE; + + companion object { + val defaultStyle: IconButtonStyle = PRIMARY + } } +/** + * Below function defines a reusable composable function which can be used to create an IconButton with various styles and sizes which takes several parameters such as + * @param icon The drawable resource ID of the icon to be displayed inside the button. + * @param contentDescription The textual description of the icon for accessibility purposes. + * @param buttonSize The size of the button, which can be one of the values of the IconButtonSize enum. + * @param iconButtonStyle The style of the button, which can be one of the values of the IconButtonStyle enum. + * @param enabled Whether the button is clickable or not. + * @param badgeCount The count to be displayed as a badge on top of the icon. + * @param onIconClick A callback function that is invoked when the button is clicked. + * The function calculates the size of the icon based on the buttonSize parameter and sets the colors of the button + * + * How to use IconButton() composable function + * + IconButton( + icon = R.drawable.keyboard_arrow_right, + contentDescription = "", + buttonSize = IconButtonSize.XS, + iconButtonStyle = IconButtonStyle.OUTLINE, + ) + * + */ @Composable fun IconButton( @DrawableRes icon: Int, contentDescription: String, - colors: IconButtonColors = IconButtonDefaults.iconButtonColors(), - buttonSize: IconButtonSize = IconButtonSize.L, - iconButtonStyles: IconButtonStyles = PRIMARY, + buttonSize: IconButtonSize = L, + iconButtonStyle: IconButtonStyle = IconButtonStyle.defaultStyle, + enabled: Boolean = true, badgeCount: String? = null, onIconClick: () -> Unit = {}, ) { - IconButton( - onClick = onIconClick, modifier = Modifier.size(buttonSize.size), colors = colors - ) { - Icon(painter = painterResource(id = icon), contentDescription = contentDescription) + var iconButtonColors: IconButtonColors = IconButtonDefaults.iconButtonColors() + + var modifier = Modifier + .height(buttonSize.size) + .width(buttonSize.size) + .clip(CircleShape) + + val iconModifier = when (buttonSize) { + XS, S, M -> Modifier + .height(12.dp) + .width(12.dp) + L, XL -> Modifier + .size(24.dp) + .size(23.dp) + + } + when (iconButtonStyle) { + GHOST -> { + iconButtonColors = IconButtonDefaults.iconButtonColors( + containerColor = Color.Transparent, + contentColor = MaterialTheme.colorScheme.onSurface, + disabledContentColor = MaterialTheme.colorScheme.onSurface.copy(alpha = 0.38f), + ) + } + + SECONDARY -> { + iconButtonColors = IconButtonDefaults.iconButtonColors( + containerColor = MaterialTheme.colorScheme.secondary, + contentColor = MaterialTheme.colorScheme.onSecondary, + ) + } + + PRIMARY -> { + iconButtonColors = IconButtonDefaults.iconButtonColors( + containerColor = MaterialTheme.colorScheme.primary, + contentColor = MaterialTheme.colorScheme.onPrimary, + ) + } + + OUTLINE -> { + iconButtonColors = IconButtonDefaults.iconButtonColors( + containerColor = MaterialTheme.colorScheme.surface, + contentColor = MaterialTheme.colorScheme.onSurface, + disabledContentColor = MaterialTheme.colorScheme.onSurface.copy(alpha = 0.38f), + ) + modifier = Modifier + .border( + width = 0.5.dp, color = ColorUtilityOutline, shape = CircleShape + ) + .size(buttonSize.size) + } } -} -@Composable fun GhostIconButton( - @DrawableRes icon: Int, - contentDescription: String, - colors: IconButtonColors = IconButtonDefaults.iconButtonColors(), - buttonSize: IconButtonSize = IconButtonSize.L, - badgeCount: String? = null, - onIconClick: () -> Unit, -) { IconButton( - onClick = onIconClick, - modifier = Modifier - .size(buttonSize.size) - .clip(CircleShape), - colors = colors + onClick = onIconClick, modifier = modifier, colors = iconButtonColors, enabled = enabled ) { Icon( + modifier = iconModifier, painter = painterResource(id = icon), contentDescription = contentDescription ) } } -@Composable fun SecondaryIconButton( - @DrawableRes icon: Int, - contentDescription: String, - colors: IconButtonColors = IconButtonDefaults.iconButtonColors(), - buttonSize: IconButtonSize = IconButtonSize.L, - badgeCount: String? = null, - onIconClick: () -> Unit, -) { - IconButton( - onClick = onIconClick, - modifier = Modifier - .size(buttonSize.size) - .clip(CircleShape), - colors = colors - ) { - Icon( - painter = painterResource(id = icon), - contentDescription = contentDescription - ) +@Preview(showSystemUi = true) @Composable fun DefaultIconButtonPreview() { + EamTheme { + Column( + horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center + ) { + Text("Primary Icon Button", fontSize = 30.sp) + Spacer(modifier = Modifier.width(20.dp)) + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.Center, + verticalAlignment = Alignment.CenterVertically + ) { + IconButton( + icon = R.drawable.keyboard_arrow_right, + contentDescription = "", + buttonSize = XS, + iconButtonStyle = PRIMARY + ) + Spacer(modifier = Modifier.width(20.dp)) + IconButton( + icon = R.drawable.keyboard_arrow_right, + contentDescription = "", + buttonSize = S, + iconButtonStyle = PRIMARY + ) + Spacer(modifier = Modifier.width(20.dp)) + + IconButton( + icon = R.drawable.keyboard_arrow_right, + contentDescription = "", + buttonSize = M, + iconButtonStyle = PRIMARY + ) + Spacer(modifier = Modifier.width(20.dp)) + IconButton( + icon = R.drawable.keyboard_arrow_right, + contentDescription = "", + buttonSize = L, + iconButtonStyle = PRIMARY + ) + Spacer(modifier = Modifier.width(20.dp)) + IconButton( + icon = R.drawable.keyboard_arrow_right, + contentDescription = "", + buttonSize = XL, + iconButtonStyle = PRIMARY + ) + } + + Text("Secondary Icon Button", fontSize = 30.sp) + Spacer(modifier = Modifier.width(20.dp)) + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.Center, + verticalAlignment = Alignment.CenterVertically + ) { + IconButton( + icon = R.drawable.keyboard_arrow_right, + contentDescription = "", + buttonSize = XS, + iconButtonStyle = SECONDARY + ) + Spacer(modifier = Modifier.width(20.dp)) + IconButton( + icon = R.drawable.keyboard_arrow_right, + contentDescription = "", + buttonSize = S, + iconButtonStyle = SECONDARY + ) + Spacer(modifier = Modifier.width(20.dp)) + + IconButton( + icon = R.drawable.keyboard_arrow_right, + contentDescription = "", + buttonSize = M, + iconButtonStyle = SECONDARY + ) + Spacer(modifier = Modifier.width(20.dp)) + IconButton( + icon = R.drawable.keyboard_arrow_right, + contentDescription = "", + buttonSize = L, + iconButtonStyle = SECONDARY + ) + Spacer(modifier = Modifier.width(20.dp)) + IconButton( + icon = R.drawable.keyboard_arrow_right, + contentDescription = "", + buttonSize = XL, + iconButtonStyle = SECONDARY + ) + } + + + Text("Ghost Icon Button", fontSize = 30.sp) + Spacer(modifier = Modifier.width(20.dp)) + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.Center, + verticalAlignment = Alignment.CenterVertically + ) { + IconButton( + icon = R.drawable.keyboard_arrow_right, + contentDescription = "", + buttonSize = XS, + iconButtonStyle = GHOST + ) + Spacer(modifier = Modifier.width(20.dp)) + IconButton( + icon = R.drawable.keyboard_arrow_right, + contentDescription = "", + buttonSize = S, + iconButtonStyle = GHOST + ) + Spacer(modifier = Modifier.width(20.dp)) + + IconButton( + icon = R.drawable.keyboard_arrow_right, + contentDescription = "", + buttonSize = M, + iconButtonStyle = GHOST + ) + Spacer(modifier = Modifier.width(20.dp)) + IconButton( + icon = R.drawable.keyboard_arrow_right, + contentDescription = "", + buttonSize = L, + iconButtonStyle = GHOST + ) + Spacer(modifier = Modifier.width(20.dp)) + IconButton( + icon = R.drawable.keyboard_arrow_right, + contentDescription = "", + buttonSize = XL, + iconButtonStyle = GHOST + ) + } + + Text("Outline Icon Button", fontSize = 30.sp) + Spacer(modifier = Modifier.width(20.dp)) + Row( + modifier = Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.Center, + verticalAlignment = Alignment.CenterVertically + ) { + IconButton( + icon = R.drawable.keyboard_arrow_right, + contentDescription = "", + buttonSize = XS, + iconButtonStyle = OUTLINE + ) + Spacer(modifier = Modifier.width(20.dp)) + IconButton( + icon = R.drawable.keyboard_arrow_right, + contentDescription = "", + buttonSize = S, + iconButtonStyle = OUTLINE + ) + Spacer(modifier = Modifier.width(20.dp)) + + IconButton( + icon = R.drawable.keyboard_arrow_right, + contentDescription = "", + buttonSize = M, + iconButtonStyle = OUTLINE + ) + Spacer(modifier = Modifier.width(20.dp)) + IconButton( + icon = R.drawable.keyboard_arrow_right, + contentDescription = "", + buttonSize = L, + iconButtonStyle = OUTLINE + ) + Spacer(modifier = Modifier.width(20.dp)) + IconButton( + icon = R.drawable.keyboard_arrow_right, + contentDescription = "", + buttonSize = XL, + iconButtonStyle = OUTLINE + ) + } + } } } -@Composable fun PrimaryIconButton( +@Composable fun GhostIconButton( @DrawableRes icon: Int, contentDescription: String, colors: IconButtonColors = IconButtonDefaults.iconButtonColors(), - buttonSize: IconButtonSize = IconButtonSize.L, + buttonSize: IconButtonSize = L, badgeCount: String? = null, onIconClick: () -> Unit, ) { @@ -108,30 +356,7 @@ enum class IconButtonStyles { colors = colors ) { Icon( - painter = painterResource(id = icon), - contentDescription = contentDescription - ) - } -} - -@Composable fun OutlineIconButton( - @DrawableRes icon: Int, - contentDescription: String, - colors: IconButtonColors = IconButtonDefaults.iconButtonColors(containerColor = Color.Transparent), - buttonSize: IconButtonSize = IconButtonSize.L, - badgeCount: String? = null, - onIconClick: () -> Unit, -) { - IconButton( - onClick = onIconClick, modifier = Modifier - .border( - width = 0.5.dp, color = Color.Black, shape = CircleShape - ) - .size(buttonSize.size), colors = colors - ) { - Icon( - painter = painterResource(id = icon), - contentDescription = contentDescription + painter = painterResource(id = icon), contentDescription = contentDescription ) } } From 3f4504c62d84c25d605896ce71c14f8fe883cb28 Mon Sep 17 00:00:00 2001 From: Raja Jawahar Date: Fri, 12 May 2023 17:16:34 +0530 Subject: [PATCH 014/571] TabRow component added --- .../uicomponents/components/TabBar.kt | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 common-ui/src/main/java/com/tarkalabs/uicomponents/components/TabBar.kt diff --git a/common-ui/src/main/java/com/tarkalabs/uicomponents/components/TabBar.kt b/common-ui/src/main/java/com/tarkalabs/uicomponents/components/TabBar.kt new file mode 100644 index 00000000..28aef543 --- /dev/null +++ b/common-ui/src/main/java/com/tarkalabs/uicomponents/components/TabBar.kt @@ -0,0 +1,51 @@ +package com.tarkalabs.uicomponents.components + +import androidx.compose.foundation.background +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Tab +import androidx.compose.material3.TabRow +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color + +@Composable fun TabBar( + items: List, + modifier: Modifier = Modifier, + selectedTabIndex: Int, + onSelectedTab: (Int) -> Unit +) { + var selectedIndex by remember { mutableStateOf(selectedTabIndex) } + + TabRow(selectedTabIndex = selectedTabIndex, + modifier = modifier, + containerColor = Color.Transparent, + contentColor = MaterialTheme.colorScheme.onSurface, + indicator = { + + }) { + items.forEachIndexed { index, text -> + val selected = selectedTabIndex == index + Tab(modifier = if (selected) Modifier + .clip(RoundedCornerShape(50)) + .background( + Color.White + ) + else Modifier + .clip(RoundedCornerShape(50)) + .background( + Color( + 0xff1E76DA + ) + ), selected = selected, onClick = { + selectedIndex = index + }, text = { Text(text = text, color = Color(0xff6FAAEE)) }) + } + } +} \ No newline at end of file From 526b36e7f08ef351e3b46d64e5c4b96ea1f2844d Mon Sep 17 00:00:00 2001 From: Raja Jawahar Date: Fri, 12 May 2023 17:17:22 +0530 Subject: [PATCH 015/571] Usused import removed --- .../src/main/java/com/tarkalabs/uicomponents/components/Badge.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/common-ui/src/main/java/com/tarkalabs/uicomponents/components/Badge.kt b/common-ui/src/main/java/com/tarkalabs/uicomponents/components/Badge.kt index f9a3e8f9..d15813ae 100644 --- a/common-ui/src/main/java/com/tarkalabs/uicomponents/components/Badge.kt +++ b/common-ui/src/main/java/com/tarkalabs/uicomponents/components/Badge.kt @@ -7,7 +7,6 @@ import androidx.compose.material3.MaterialTheme 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.tooling.preview.Preview import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp From a7d2b6027842ef2266eafd35d6d6a90ea846df2e Mon Sep 17 00:00:00 2001 From: Raja Jawahar Date: Fri, 12 May 2023 17:18:27 +0530 Subject: [PATCH 016/571] code optimisiation --- .../java/com/tarkalabs/uicomponents/components/Badge.kt | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/common-ui/src/main/java/com/tarkalabs/uicomponents/components/Badge.kt b/common-ui/src/main/java/com/tarkalabs/uicomponents/components/Badge.kt index d15813ae..50c86741 100644 --- a/common-ui/src/main/java/com/tarkalabs/uicomponents/components/Badge.kt +++ b/common-ui/src/main/java/com/tarkalabs/uicomponents/components/Badge.kt @@ -30,12 +30,8 @@ enum class BadgeSize(val size: Dp) { L -> 8.dp } val textStyle = when (badgeSize) { - S, M -> { - Eam360Theme.typography.button8 - } - L -> { - Eam360Theme.typography.button7 - } + S, M -> Eam360Theme.typography.button8 + L -> Eam360Theme.typography.button7 } androidx.compose.material3.Badge( containerColor = MaterialTheme.colorScheme.error, From f6dee7c7937d5c5d9ce4c4b8dcae954f805cdfdf Mon Sep 17 00:00:00 2001 From: Raja Jawahar Date: Fri, 12 May 2023 17:20:08 +0530 Subject: [PATCH 017/571] Preview content description updated --- .../uicomponents/components/FloatingActionButton.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/common-ui/src/main/java/com/tarkalabs/uicomponents/components/FloatingActionButton.kt b/common-ui/src/main/java/com/tarkalabs/uicomponents/components/FloatingActionButton.kt index e94bb492..bb867814 100644 --- a/common-ui/src/main/java/com/tarkalabs/uicomponents/components/FloatingActionButton.kt +++ b/common-ui/src/main/java/com/tarkalabs/uicomponents/components/FloatingActionButton.kt @@ -59,19 +59,19 @@ enum class FloatingActionButtonSize(val size: Dp) { ) { FloatingActionButton( - L, com.tarkalabs.uicomponents.R.drawable.keyboard_arrow_right, "atata" + L, com.tarkalabs.uicomponents.R.drawable.keyboard_arrow_right, "Large FAB" ) { } Spacer(modifier = Modifier.padding(5.dp)) FloatingActionButton( - R, com.tarkalabs.uicomponents.R.drawable.keyboard_arrow_right, "atata" + R, com.tarkalabs.uicomponents.R.drawable.keyboard_arrow_right, "Regular FAB" ) { } Spacer(modifier = Modifier.padding(5.dp)) FloatingActionButton( - S, com.tarkalabs.uicomponents.R.drawable.keyboard_arrow_right, "atata" + S, com.tarkalabs.uicomponents.R.drawable.keyboard_arrow_right, "Small FAB" ) { } From 9bcc7dea97049cf3af44d340d2364f31b58484b1 Mon Sep 17 00:00:00 2001 From: Younes Charfaoui Date: Mon, 15 May 2023 09:22:01 +0100 Subject: [PATCH 018/571] Adding required setup and first tests --- build.gradle.kts | 3 ++ common-ui/build.gradle.kts | 11 +++++- .../tarkalabs/commonui/AndroidManifest.xml | 6 +++ .../commonui/TopBarScreenShotTest.kt | 38 +++++++++++++++++++ 4 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 common-ui/src/androidTest/java/com/tarkalabs/commonui/AndroidManifest.xml create mode 100644 common-ui/src/androidTest/java/com/tarkalabs/commonui/TopBarScreenShotTest.kt diff --git a/build.gradle.kts b/build.gradle.kts index 58e6cee2..39caa1e6 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,4 +1,7 @@ buildscript { + dependencies { + classpath("com.karumi:shot:5.13.0") + } } plugins { diff --git a/common-ui/build.gradle.kts b/common-ui/build.gradle.kts index e5fdd5fe..fd6398e5 100644 --- a/common-ui/build.gradle.kts +++ b/common-ui/build.gradle.kts @@ -2,6 +2,7 @@ plugins { id("com.android.library") id("org.jetbrains.kotlin.android") + id("shot") } android { @@ -12,7 +13,8 @@ android { minSdk = 26 targetSdk = 33 - testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + testInstrumentationRunner = "com.karumi.shot.ShotTestRunner" + testApplicationId = "com.tarkalabs.uicomponents" consumerProguardFiles("consumer-rules.pro") } @@ -40,6 +42,13 @@ android { excludes.add("/META-INF/{AL2.0,LGPL2.1}") } } + shot { + tolerance = 0.1 + applicationId = "com.tarkalabs.uicomponents" + } + testOptions { + emulatorSnapshots.maxSnapshotsForTestFailures = 10 + } } dependencies { diff --git a/common-ui/src/androidTest/java/com/tarkalabs/commonui/AndroidManifest.xml b/common-ui/src/androidTest/java/com/tarkalabs/commonui/AndroidManifest.xml new file mode 100644 index 00000000..b9cc889f --- /dev/null +++ b/common-ui/src/androidTest/java/com/tarkalabs/commonui/AndroidManifest.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/common-ui/src/androidTest/java/com/tarkalabs/commonui/TopBarScreenShotTest.kt b/common-ui/src/androidTest/java/com/tarkalabs/commonui/TopBarScreenShotTest.kt new file mode 100644 index 00000000..a8d93788 --- /dev/null +++ b/common-ui/src/androidTest/java/com/tarkalabs/commonui/TopBarScreenShotTest.kt @@ -0,0 +1,38 @@ +@file:OptIn(ExperimentalMaterial3Api::class) + +package com.tarkalabs.commonui + +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.ui.test.junit4.createComposeRule +import com.karumi.shot.ScreenshotTest +import com.tarkalabs.uicomponents.components.TopBar +import org.junit.Rule +import org.junit.Test +import com.tarkalabs.uicomponents.R +import org.junit.runner.RunWith +import org.junit.runners.JUnit4 + +@RunWith(JUnit4::class) +class TopBarScreenShotTest : ScreenshotTest { + + @get:Rule + val composeRule = createComposeRule() + + @Test + fun renderTopAppBarTextOnly() { + composeRule.setContent { + TopBar("Screenshot") + } + + compareScreenshot(composeRule) + } + + @Test + fun renderTopAppBarTextWithIcon() { + composeRule.setContent { + TopBar("Screenshot", navigationIcon = R.drawable.keyboard_arrow_right) + } + + compareScreenshot(composeRule) + } +} \ No newline at end of file From 3201519c7274f77c95dc4177de4648a7bf924e0f Mon Sep 17 00:00:00 2001 From: Younes Charfaoui Date: Mon, 15 May 2023 10:05:36 +0100 Subject: [PATCH 019/571] Adding top bar images --- ...BarScreenShotTest_renderTopAppBarTextOnly.png | Bin 0 -> 8029 bytes ...creenShotTest_renderTopAppBarTextWithIcon.png | Bin 0 -> 8273 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 common-ui/screenshots/debug/com.tarkalabs.commonui.TopBarScreenShotTest_renderTopAppBarTextOnly.png create mode 100644 common-ui/screenshots/debug/com.tarkalabs.commonui.TopBarScreenShotTest_renderTopAppBarTextWithIcon.png diff --git a/common-ui/screenshots/debug/com.tarkalabs.commonui.TopBarScreenShotTest_renderTopAppBarTextOnly.png b/common-ui/screenshots/debug/com.tarkalabs.commonui.TopBarScreenShotTest_renderTopAppBarTextOnly.png new file mode 100644 index 0000000000000000000000000000000000000000..4b133b915139eaf734170bfe5843defa725a91bd GIT binary patch literal 8029 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 fC$s-Ahl@Ygd6nR!) literal 0 HcmV?d00001 diff --git a/common-ui/screenshots/debug/com.tarkalabs.commonui.TopBarScreenShotTest_renderTopAppBarTextWithIcon.png b/common-ui/screenshots/debug/com.tarkalabs.commonui.TopBarScreenShotTest_renderTopAppBarTextWithIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..24a90a5eda63f900cd965620b058c1d6d46c61b2 GIT binary patch literal 8273 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 AF8}}l literal 0 HcmV?d00001 From 585886f991e54ec815d48195023697aec48d4230 Mon Sep 17 00:00:00 2001 From: AskNilesh Date: Mon, 15 May 2023 15:57:44 +0530 Subject: [PATCH 020/571] - Refactored button UI component --- .../tarkalabs/commonui/components/Button.kt | 317 ++++++++++-------- .../components/FloatingActionButton.kt | 46 --- .../commonui/components/TestComponents.kt | 15 - .../java/com/tarkalabs/ui/SettingActivity.kt | 42 ++- 4 files changed, 203 insertions(+), 217 deletions(-) delete mode 100644 common-ui/src/main/java/com/tarkalabs/commonui/components/FloatingActionButton.kt diff --git a/common-ui/src/main/java/com/tarkalabs/commonui/components/Button.kt b/common-ui/src/main/java/com/tarkalabs/commonui/components/Button.kt index d1f9672a..dc323ebf 100644 --- a/common-ui/src/main/java/com/tarkalabs/commonui/components/Button.kt +++ b/common-ui/src/main/java/com/tarkalabs/commonui/components/Button.kt @@ -2,8 +2,24 @@ package com.tarkalabs.commonui.components import androidx.annotation.DrawableRes import androidx.compose.foundation.BorderStroke -import androidx.compose.foundation.layout.* -import androidx.compose.material3.* +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.wrapContentWidth +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.Icon +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -12,40 +28,58 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp -import com.tarkalabs.commonui.components.ButtonHeight.Regular +import androidx.compose.ui.unit.sp +import com.tarkalabs.commonui.components.ButtonSize.L +import com.tarkalabs.commonui.components.ButtonSize.M +import com.tarkalabs.commonui.components.ButtonSize.S +import com.tarkalabs.commonui.components.ButtonSize.XS +import com.tarkalabs.commonui.components.ButtonStyle.ERROR +import com.tarkalabs.commonui.components.ButtonStyle.GHOST +import com.tarkalabs.commonui.components.ButtonStyle.OUTLINE +import com.tarkalabs.commonui.components.ButtonStyle.PRIMARY +import com.tarkalabs.commonui.components.ButtonStyle.SECONDARY import com.tarkalabs.commonui.theme.Eam360Theme +import com.tarkalabs.commonui.theme.EamTheme -enum class ButtonHeight(val size: Dp) { - Large(48.dp), - Regular(40.dp), - Small(32.dp), - ExtraSmall(24.dp); +enum class ButtonStyle { + PRIMARY, + SECONDARY, + GHOST, + ERROR, + OUTLINE; +} + +enum class ButtonSize(val size: Dp) { + L(48.dp), + M(40.dp), + S(32.dp), + XS(24.dp); fun iconSize(): Dp { return when (this) { - Large -> 17.5.dp - Regular -> 17.5.dp - Small -> 11.dp - ExtraSmall -> 11.dp + L -> 17.5.dp + M -> 17.5.dp + S -> 11.dp + XS -> 11.dp } } fun paddingValues(isLeadingIconNull: Boolean, isTrailingIconNull: Boolean) = when (this) { - Large, Regular -> PaddingValues( + L, M -> PaddingValues( top = 0.dp, start = if (isLeadingIconNull) 24.dp else 16.dp, bottom = 0.dp, end = if (isTrailingIconNull) 24.dp else 16.dp ) - Small -> PaddingValues( + S -> PaddingValues( top = 0.dp, start = if (isLeadingIconNull) 16.dp else 8.dp, bottom = 0.dp, end = if (isTrailingIconNull) 16.dp else 8.dp ) - ExtraSmall -> PaddingValues( + XS -> PaddingValues( top = 0.dp, start = if (isLeadingIconNull) 8.dp else 4.dp, bottom = 0.dp, @@ -53,33 +87,87 @@ enum class ButtonHeight(val size: Dp) { ) } - @Composable - fun textStyle() = when (this) { - Large -> Eam360Theme.typography.button6 - Regular -> Eam360Theme.typography.button6 - Small -> Eam360Theme.typography.button7 - ExtraSmall -> Eam360Theme.typography.button8 + @Composable fun textStyle() = when (this) { + L -> Eam360Theme.typography.button6 + M -> Eam360Theme.typography.button6 + S -> Eam360Theme.typography.button7 + XS -> Eam360Theme.typography.button8 } } -@Composable -internal fun BaseButton( +/** + * Below TKButton() defines a reusable composable function which can be used to create an Button with various styles and sizes which takes several parameters such as + * @param label The text to be displayed on the button. + * @param height The height size of the button. Default is [ButtonSize.M]. + * @param buttonStyle The style of the button. Default is [ButtonStyle.PRIMARY]. + * @param leadingIcon The drawable resource for the leading icon, if any. Default is null. + * @param trailingIcon The drawable resource for the trailing icon, if any. Default is null. + * @param onClick The callback function to be executed when the button is clicked. + * + * How to use TKButton() composable function + * +TKButton( +label = "Primary Button", +height = M, +buttonStyle = PRIMARY, +onClick = {} +) + * + */ +@Composable fun TKButton( label: String, - colors: ButtonColors, - height: ButtonHeight = Regular, + height: ButtonSize = M, + buttonStyle: ButtonStyle = PRIMARY, @DrawableRes leadingIcon: Int? = null, @DrawableRes trailingIcon: Int? = null, onClick: () -> Unit, - borderStroke: BorderStroke? = null, ) { + + val buttonColor = when (buttonStyle) { + PRIMARY -> { + ButtonDefaults.buttonColors( + containerColor = MaterialTheme.colorScheme.primary, + contentColor = MaterialTheme.colorScheme.onPrimary + ) + } + + SECONDARY -> { + ButtonDefaults.buttonColors( + containerColor = MaterialTheme.colorScheme.secondary, + contentColor = MaterialTheme.colorScheme.onSecondary + ) + } + + GHOST -> { + ButtonDefaults.buttonColors( + containerColor = Color.Transparent, contentColor = MaterialTheme.colorScheme.secondary + ) + } + + ERROR -> { + ButtonDefaults.buttonColors( + containerColor = MaterialTheme.colorScheme.error, + contentColor = MaterialTheme.colorScheme.onPrimary, + ) + } + + OUTLINE -> { + ButtonDefaults.buttonColors( + containerColor = MaterialTheme.colorScheme.surface, + contentColor = MaterialTheme.colorScheme.onSurface + ) + } + } Button( onClick = onClick, - colors = colors, + colors = buttonColor, modifier = Modifier .height(height.size) .wrapContentWidth(), contentPadding = height.paddingValues(leadingIcon == null, trailingIcon == null), - border = borderStroke + border = if (buttonStyle == OUTLINE) BorderStroke( + width = 1.dp, color = MaterialTheme.colorScheme.onSurface + ) else null ) { Row( verticalAlignment = Alignment.CenterVertically, horizontalArrangement = Arrangement.Center @@ -103,114 +191,75 @@ internal fun BaseButton( } } -@Composable -fun PrimaryButton( - label: String, - height: ButtonHeight = Regular, - @DrawableRes leadingIcon: Int? = null, - @DrawableRes trailingIcon: Int? = null, - onClick: () -> Unit, -) { - BaseButton( - label = label, - colors = ButtonDefaults.buttonColors( - containerColor = MaterialTheme.colorScheme.primary, - contentColor = MaterialTheme.colorScheme.onPrimary - ), - height = height, - leadingIcon = leadingIcon, - trailingIcon = trailingIcon, - onClick = onClick - ) -} - -@Composable -fun SecondaryButton( - label: String, - height: ButtonHeight = Regular, - @DrawableRes leadingIcon: Int? = null, - @DrawableRes trailingIcon: Int? = null, - onClick: () -> Unit, -) { - BaseButton( - label = label, - colors = ButtonDefaults.buttonColors( - containerColor = MaterialTheme.colorScheme.secondary, - contentColor = MaterialTheme.colorScheme.onSecondary - ), - height = height, - leadingIcon = leadingIcon, - trailingIcon = trailingIcon, - onClick = onClick - ) -} - -@Composable -fun GhostButton( - label: String, - height: ButtonHeight = Regular, - @DrawableRes leadingIcon: Int? = null, - @DrawableRes trailingIcon: Int? = null, - onClick: () -> Unit, -) { - BaseButton( - label = label, - colors = ButtonDefaults.buttonColors( - containerColor = Color.Transparent, - contentColor = MaterialTheme.colorScheme.secondary - ), - height = height, - leadingIcon = leadingIcon, - trailingIcon = trailingIcon, - onClick = onClick - ) -} +@Composable @Preview(showBackground = true, showSystemUi = true) fun PreviewPrimaryButton() { + EamTheme { + Column( + horizontalAlignment = Alignment.CenterHorizontally, + modifier = Modifier + .fillMaxSize() + .verticalScroll(rememberScrollState()) + ) { + Row(horizontalArrangement = Arrangement.SpaceBetween) { + Column { + Text("Primary Button", fontSize = 24.sp) + Spacer(modifier = Modifier.height(20.dp)) + TKButton(label = "Primary ", height = M, buttonStyle = PRIMARY, onClick = {}) + Spacer(modifier = Modifier.height(10.dp)) + TKButton(label = "Primary ", height = L, buttonStyle = PRIMARY, onClick = {}) + Spacer(modifier = Modifier.height(10.dp)) + TKButton(label = "Primary ", height = S, buttonStyle = PRIMARY, onClick = {}) + Spacer(modifier = Modifier.height(10.dp)) + TKButton(label = "Primary ", height = XS, buttonStyle = PRIMARY, onClick = {}) -@Composable -fun ErrorButton( - label: String, - height: ButtonHeight = Regular, - @DrawableRes leadingIcon: Int? = null, - @DrawableRes trailingIcon: Int? = null, - onClick: () -> Unit, -) { - BaseButton( - label = label, - colors = ButtonDefaults.buttonColors( - containerColor = MaterialTheme.colorScheme.error, - contentColor = MaterialTheme.colorScheme.onPrimary, - ), - height = height, - leadingIcon = leadingIcon, - trailingIcon = trailingIcon, - onClick = onClick - ) -} + } + Column { + Text("Secondary Button", fontSize = 24.sp) + Spacer(modifier = Modifier.height(20.dp)) + TKButton(label = "Secondary ", height = M, buttonStyle = SECONDARY, onClick = {}) + Spacer(modifier = Modifier.height(10.dp)) + TKButton(label = "Secondary ", height = L, buttonStyle = SECONDARY, onClick = {}) + Spacer(modifier = Modifier.height(10.dp)) + TKButton(label = "Secondary ", height = S, buttonStyle = SECONDARY, onClick = {}) + Spacer(modifier = Modifier.height(10.dp)) + TKButton(label = "Secondary ", height = XS, buttonStyle = SECONDARY, onClick = {}) + } + } -@Composable -fun OutlinedButton( - label: String, - height: ButtonHeight = Regular, - @DrawableRes leadingIcon: Int? = null, - @DrawableRes trailingIcon: Int? = null, - onClick: () -> Unit, -) { - BaseButton( - label = label, - colors = ButtonDefaults.buttonColors( - containerColor = MaterialTheme.colorScheme.surface, - contentColor = MaterialTheme.colorScheme.onSurface - ), - height = height, - leadingIcon = leadingIcon, - trailingIcon = trailingIcon, - onClick = onClick, - borderStroke = BorderStroke(width = 1.dp, color = MaterialTheme.colorScheme.onSurface) - ) -} + Row(horizontalArrangement = Arrangement.SpaceBetween, modifier = Modifier.fillMaxWidth().padding(horizontal = 10.dp)) { + Column(horizontalAlignment = Alignment.Start) { + Text("Ghost Button", fontSize = 24.sp) + Spacer(modifier = Modifier.height(20.dp)) + TKButton(label = "Ghost Button", height = M, buttonStyle = GHOST, onClick = {}) + Spacer(modifier = Modifier.height(10.dp)) + TKButton(label = "Ghost Button", height = L, buttonStyle = GHOST, onClick = {}) + Spacer(modifier = Modifier.height(10.dp)) + TKButton(label = "Ghost Button", height = S, buttonStyle = GHOST, onClick = {}) + Spacer(modifier = Modifier.height(10.dp)) + TKButton(label = "Ghost Button", height = XS, buttonStyle = GHOST, onClick = {}) + } -@Composable -@Preview(showBackground = true) -fun PreviewPrimaryButton() { + Column { + Text("Error Button", fontSize = 24.sp) + Spacer(modifier = Modifier.height(20.dp)) + TKButton(label = "Error Button", height = M, buttonStyle = ERROR, onClick = {}) + Spacer(modifier = Modifier.height(10.dp)) + TKButton(label = "Error Button", height = L, buttonStyle = ERROR, onClick = {}) + Spacer(modifier = Modifier.height(10.dp)) + TKButton(label = "Error Button", height = S, buttonStyle = ERROR, onClick = {}) + Spacer(modifier = Modifier.height(10.dp)) + TKButton(label = "Error Button", height = XS, buttonStyle = ERROR, onClick = {}) + } + } + Text("Outline Button", fontSize = 30.sp) + Spacer(modifier = Modifier.height(20.dp)) + TKButton(label = "Outline Button", height = M, buttonStyle = OUTLINE, onClick = {}) + Spacer(modifier = Modifier.height(10.dp)) + TKButton(label = "Outline Button", height = L, buttonStyle = OUTLINE, onClick = {}) + Spacer(modifier = Modifier.height(10.dp)) + TKButton(label = "Outline Button", height = S, buttonStyle = OUTLINE, onClick = {}) + Spacer(modifier = Modifier.height(10.dp)) + TKButton(label = "Outline Button", height = XS, buttonStyle = OUTLINE, onClick = {}) + } + } } \ No newline at end of file diff --git a/common-ui/src/main/java/com/tarkalabs/commonui/components/FloatingActionButton.kt b/common-ui/src/main/java/com/tarkalabs/commonui/components/FloatingActionButton.kt deleted file mode 100644 index f384fb45..00000000 --- a/common-ui/src/main/java/com/tarkalabs/commonui/components/FloatingActionButton.kt +++ /dev/null @@ -1,46 +0,0 @@ -package com.tarkalabs.commonui.components - -import androidx.annotation.DrawableRes -import androidx.compose.foundation.layout.size -import androidx.compose.foundation.shape.CircleShape -import androidx.compose.material3.FloatingActionButton -import androidx.compose.material3.Icon -import androidx.compose.material3.MaterialTheme -import androidx.compose.runtime.Composable -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.graphics.Shape -import androidx.compose.ui.res.painterResource -import androidx.compose.ui.tooling.preview.Preview -import androidx.compose.ui.unit.Dp -import androidx.compose.ui.unit.dp -import com.tarkalabs.common_ui.R - -enum class FloatingActionButtonSize(val size: Dp) { - REGULAR(40.dp), - SMALL(56.dp), - LARGE(96.dp), -} - -@Preview -@Composable fun FloatingActionButton( - @DrawableRes icon: Int = R.drawable.keyboard_arrow_right, - iconSize: FloatingActionButtonSize = FloatingActionButtonSize.REGULAR, - onClick: () -> Unit = {}, - contentDescription: String? = null, - containerColor: Color = MaterialTheme.colorScheme.primary, - iconTint: Color = MaterialTheme.colorScheme.onPrimary, - shape: Shape = CircleShape, -) { - FloatingActionButton( - onClick = onClick, - containerColor = containerColor, - contentColor = iconTint, - modifier = Modifier.size(iconSize.size), - shape = shape, - ) { - Icon( - painter = painterResource(id = icon), contentDescription = contentDescription - ) - } -} \ No newline at end of file diff --git a/common-ui/src/main/java/com/tarkalabs/commonui/components/TestComponents.kt b/common-ui/src/main/java/com/tarkalabs/commonui/components/TestComponents.kt index 100fbf58..7f14650b 100644 --- a/common-ui/src/main/java/com/tarkalabs/commonui/components/TestComponents.kt +++ b/common-ui/src/main/java/com/tarkalabs/commonui/components/TestComponents.kt @@ -1,7 +1,5 @@ package com.tarkalabs.commonui.components -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding import androidx.compose.material3.Button import androidx.compose.material3.ButtonColors import androidx.compose.material3.ButtonDefaults @@ -10,11 +8,6 @@ import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.tooling.preview.Preview -import androidx.compose.ui.unit.dp -import com.tarkalabs.common_ui.R -import com.tarkalabs.commonui.components.ButtonHeight.Large -import com.tarkalabs.commonui.components.ButtonHeight.Regular -import com.tarkalabs.commonui.components.ButtonHeight.Small import com.tarkalabs.commonui.theme.Eam360Theme @Composable fun TestText(text: String = "Hello There") { @@ -23,14 +16,6 @@ import com.tarkalabs.commonui.theme.Eam360Theme @Preview(showBackground = true) @Composable fun TestButton() { - PrimaryButton( - label = "Label", - leadingIcon = R.drawable.keyboard_arrow_right, - trailingIcon = R.drawable.keyboard_arrow_right, - height = Large - ) { - - } } @Composable fun EAMButton( diff --git a/example/src/main/java/com/tarkalabs/ui/SettingActivity.kt b/example/src/main/java/com/tarkalabs/ui/SettingActivity.kt index 977b39ec..1ad7fc55 100644 --- a/example/src/main/java/com/tarkalabs/ui/SettingActivity.kt +++ b/example/src/main/java/com/tarkalabs/ui/SettingActivity.kt @@ -26,8 +26,6 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.tarkalabs.commonui.components.* -import com.tarkalabs.commonui.components.ButtonHeight.Large -import com.tarkalabs.commonui.components.ButtonHeight.Small import com.tarkalabs.commonui.theme.ColorUtilityOutline import com.tarkalabs.commonui.theme.Eam360Theme import com.tarkalabs.commonui.theme.EamTheme @@ -58,7 +56,7 @@ class SettingActivity : ComponentActivity() { label = "Label", leadingIcon = R.drawable.keyboard_arrow_right, trailingIcon = R.drawable.keyboard_arrow_right, - height = ButtonHeight.Large + height = ButtonSize.L ) { } @@ -66,7 +64,7 @@ class SettingActivity : ComponentActivity() { label = "Label", leadingIcon = R.drawable.keyboard_arrow_right, trailingIcon = R.drawable.keyboard_arrow_right, - height = ButtonHeight.Regular + height = ButtonSize.M ) { } @@ -74,7 +72,7 @@ class SettingActivity : ComponentActivity() { label = "Label", leadingIcon = R.drawable.keyboard_arrow_right, trailingIcon = R.drawable.keyboard_arrow_right, - height = ButtonHeight.Small + height = ButtonSize.S ) { } @@ -82,7 +80,7 @@ class SettingActivity : ComponentActivity() { label = "Label", leadingIcon = R.drawable.keyboard_arrow_right, trailingIcon = R.drawable.keyboard_arrow_right, - height = ButtonHeight.ExtraSmall + height = ButtonSize.XS ) { } @@ -93,7 +91,7 @@ class SettingActivity : ComponentActivity() { label = "Label", leadingIcon = R.drawable.keyboard_arrow_right, trailingIcon = R.drawable.keyboard_arrow_right, - height = ButtonHeight.Large + height = ButtonSize.L ) { } @@ -101,7 +99,7 @@ class SettingActivity : ComponentActivity() { label = "Label", leadingIcon = R.drawable.keyboard_arrow_right, trailingIcon = R.drawable.keyboard_arrow_right, - height = ButtonHeight.Regular + height = ButtonSize.M ) { } @@ -109,7 +107,7 @@ class SettingActivity : ComponentActivity() { label = "Label", leadingIcon = R.drawable.keyboard_arrow_right, trailingIcon = R.drawable.keyboard_arrow_right, - height = ButtonHeight.Small + height = ButtonSize.S ) { } @@ -117,7 +115,7 @@ class SettingActivity : ComponentActivity() { label = "Label", leadingIcon = R.drawable.keyboard_arrow_right, trailingIcon = R.drawable.keyboard_arrow_right, - height = ButtonHeight.ExtraSmall + height = ButtonSize.XS ) { } @@ -128,7 +126,7 @@ class SettingActivity : ComponentActivity() { label = "Label", leadingIcon = R.drawable.keyboard_arrow_right, trailingIcon = R.drawable.keyboard_arrow_right, - height = ButtonHeight.Large + height = ButtonSize.L ) { } @@ -136,7 +134,7 @@ class SettingActivity : ComponentActivity() { label = "Label", leadingIcon = R.drawable.keyboard_arrow_right, trailingIcon = R.drawable.keyboard_arrow_right, - height = ButtonHeight.Regular + height = ButtonSize.M ) { } @@ -144,7 +142,7 @@ class SettingActivity : ComponentActivity() { label = "Label", leadingIcon = R.drawable.keyboard_arrow_right, trailingIcon = R.drawable.keyboard_arrow_right, - height = ButtonHeight.Small + height = ButtonSize.S ) { } @@ -152,7 +150,7 @@ class SettingActivity : ComponentActivity() { label = "Label", leadingIcon = R.drawable.keyboard_arrow_right, trailingIcon = R.drawable.keyboard_arrow_right, - height = ButtonHeight.ExtraSmall + height = ButtonSize.XS ) { } @@ -163,7 +161,7 @@ class SettingActivity : ComponentActivity() { label = "Label", leadingIcon = R.drawable.keyboard_arrow_right, trailingIcon = R.drawable.keyboard_arrow_right, - height = ButtonHeight.Large + height = ButtonSize.L ) { } @@ -171,7 +169,7 @@ class SettingActivity : ComponentActivity() { label = "Label", leadingIcon = R.drawable.keyboard_arrow_right, trailingIcon = R.drawable.keyboard_arrow_right, - height = ButtonHeight.Regular + height = ButtonSize.M ) { } @@ -179,7 +177,7 @@ class SettingActivity : ComponentActivity() { label = "Label", leadingIcon = R.drawable.keyboard_arrow_right, trailingIcon = R.drawable.keyboard_arrow_right, - height = ButtonHeight.Small + height = ButtonSize.S ) { } @@ -187,7 +185,7 @@ class SettingActivity : ComponentActivity() { label = "Label", leadingIcon = R.drawable.keyboard_arrow_right, trailingIcon = R.drawable.keyboard_arrow_right, - height = ButtonHeight.ExtraSmall + height = ButtonSize.XS ) { } @@ -198,7 +196,7 @@ class SettingActivity : ComponentActivity() { label = "Label", leadingIcon = R.drawable.keyboard_arrow_right, trailingIcon = R.drawable.keyboard_arrow_right, - height = ButtonHeight.Large + height = ButtonSize.L ) { } @@ -206,7 +204,7 @@ class SettingActivity : ComponentActivity() { label = "Label", leadingIcon = R.drawable.keyboard_arrow_right, trailingIcon = R.drawable.keyboard_arrow_right, - height = ButtonHeight.Regular + height = ButtonSize.M ) { } @@ -214,7 +212,7 @@ class SettingActivity : ComponentActivity() { label = "Label", leadingIcon = R.drawable.keyboard_arrow_right, trailingIcon = R.drawable.keyboard_arrow_right, - height = ButtonHeight.Small + height = ButtonSize.S ) { } @@ -222,7 +220,7 @@ class SettingActivity : ComponentActivity() { label = "Label", leadingIcon = R.drawable.keyboard_arrow_right, trailingIcon = R.drawable.keyboard_arrow_right, - height = ButtonHeight.ExtraSmall + height = ButtonSize.XS ) { } From a3be66f932ba9bc5212edac43cada29ffcaed433 Mon Sep 17 00:00:00 2001 From: AskNilesh Date: Mon, 15 May 2023 16:02:59 +0530 Subject: [PATCH 021/571] - Removed unused code --- .../java/com/tarkalabs/ui/SettingActivity.kt | 176 ------------------ 1 file changed, 176 deletions(-) diff --git a/example/src/main/java/com/tarkalabs/ui/SettingActivity.kt b/example/src/main/java/com/tarkalabs/ui/SettingActivity.kt index 1ad7fc55..0d74bcff 100644 --- a/example/src/main/java/com/tarkalabs/ui/SettingActivity.kt +++ b/example/src/main/java/com/tarkalabs/ui/SettingActivity.kt @@ -8,7 +8,6 @@ import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.PaddingValues -import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size @@ -51,181 +50,6 @@ class SettingActivity : ComponentActivity() { Column(modifier = Modifier.padding(paddingValues)) { Divider() VerticalSpacer(space = 24) - Row(horizontalArrangement = Arrangement.SpaceBetween) { - PrimaryButton( - label = "Label", - leadingIcon = R.drawable.keyboard_arrow_right, - trailingIcon = R.drawable.keyboard_arrow_right, - height = ButtonSize.L - ) { - - } - PrimaryButton( - label = "Label", - leadingIcon = R.drawable.keyboard_arrow_right, - trailingIcon = R.drawable.keyboard_arrow_right, - height = ButtonSize.M - ) { - - } - PrimaryButton( - label = "Label", - leadingIcon = R.drawable.keyboard_arrow_right, - trailingIcon = R.drawable.keyboard_arrow_right, - height = ButtonSize.S - ) { - - } - PrimaryButton( - label = "Label", - leadingIcon = R.drawable.keyboard_arrow_right, - trailingIcon = R.drawable.keyboard_arrow_right, - height = ButtonSize.XS - ) { - - } - } - VerticalSpacer(space = 24) - Row(horizontalArrangement = Arrangement.SpaceBetween) { - SecondaryButton( - label = "Label", - leadingIcon = R.drawable.keyboard_arrow_right, - trailingIcon = R.drawable.keyboard_arrow_right, - height = ButtonSize.L - ) { - - } - SecondaryButton( - label = "Label", - leadingIcon = R.drawable.keyboard_arrow_right, - trailingIcon = R.drawable.keyboard_arrow_right, - height = ButtonSize.M - ) { - - } - SecondaryButton( - label = "Label", - leadingIcon = R.drawable.keyboard_arrow_right, - trailingIcon = R.drawable.keyboard_arrow_right, - height = ButtonSize.S - ) { - - } - SecondaryButton( - label = "Label", - leadingIcon = R.drawable.keyboard_arrow_right, - trailingIcon = R.drawable.keyboard_arrow_right, - height = ButtonSize.XS - ) { - - } - } - VerticalSpacer(space = 24) - Row(horizontalArrangement = Arrangement.SpaceBetween) { - OutlinedButton( - label = "Label", - leadingIcon = R.drawable.keyboard_arrow_right, - trailingIcon = R.drawable.keyboard_arrow_right, - height = ButtonSize.L - ) { - - } - OutlinedButton( - label = "Label", - leadingIcon = R.drawable.keyboard_arrow_right, - trailingIcon = R.drawable.keyboard_arrow_right, - height = ButtonSize.M - ) { - - } - OutlinedButton( - label = "Label", - leadingIcon = R.drawable.keyboard_arrow_right, - trailingIcon = R.drawable.keyboard_arrow_right, - height = ButtonSize.S - ) { - - } - OutlinedButton( - label = "Label", - leadingIcon = R.drawable.keyboard_arrow_right, - trailingIcon = R.drawable.keyboard_arrow_right, - height = ButtonSize.XS - ) { - - } - } - VerticalSpacer(space = 24) - Row(horizontalArrangement = Arrangement.SpaceBetween) { - GhostButton( - label = "Label", - leadingIcon = R.drawable.keyboard_arrow_right, - trailingIcon = R.drawable.keyboard_arrow_right, - height = ButtonSize.L - ) { - - } - GhostButton( - label = "Label", - leadingIcon = R.drawable.keyboard_arrow_right, - trailingIcon = R.drawable.keyboard_arrow_right, - height = ButtonSize.M - ) { - - } - GhostButton( - label = "Label", - leadingIcon = R.drawable.keyboard_arrow_right, - trailingIcon = R.drawable.keyboard_arrow_right, - height = ButtonSize.S - ) { - - } - GhostButton( - label = "Label", - leadingIcon = R.drawable.keyboard_arrow_right, - trailingIcon = R.drawable.keyboard_arrow_right, - height = ButtonSize.XS - ) { - - } - } - VerticalSpacer(space = 24) - Row(horizontalArrangement = Arrangement.SpaceBetween) { - ErrorButton( - label = "Label", - leadingIcon = R.drawable.keyboard_arrow_right, - trailingIcon = R.drawable.keyboard_arrow_right, - height = ButtonSize.L - ) { - - } - ErrorButton( - label = "Label", - leadingIcon = R.drawable.keyboard_arrow_right, - trailingIcon = R.drawable.keyboard_arrow_right, - height = ButtonSize.M - ) { - - } - ErrorButton( - label = "Label", - leadingIcon = R.drawable.keyboard_arrow_right, - trailingIcon = R.drawable.keyboard_arrow_right, - height = ButtonSize.S - ) { - - } - ErrorButton( - label = "Label", - leadingIcon = R.drawable.keyboard_arrow_right, - trailingIcon = R.drawable.keyboard_arrow_right, - height = ButtonSize.XS - ) { - - } - } - VerticalSpacer(space = 24) SettingHeader() VerticalSpacer(space = 16) TextRowWithDescription( From cb4e765644c208008a62076113ee15035aa1f2f1 Mon Sep 17 00:00:00 2001 From: Younes Charfaoui Date: Mon, 15 May 2023 13:52:56 +0100 Subject: [PATCH 022/571] Added CI with Git --- .github/workflows/feature-check.yml | 46 ++++++++++++++++++ ...ScreenShotTest_renderTopAppBarTextOnly.png | Bin 0 -> 9666 bytes ...enShotTest_renderTopAppBarTextWithIcon.png | Bin 0 -> 9952 bytes .../metadata_compose.json_emulator-5554 | 1 + 4 files changed, 47 insertions(+) create mode 100644 .github/workflows/feature-check.yml create mode 100644 common-ui/screenshots/debug/screenshots-default/com.tarkalabs.commonui.TopBarScreenShotTest_renderTopAppBarTextOnly.png create mode 100644 common-ui/screenshots/debug/screenshots-default/com.tarkalabs.commonui.TopBarScreenShotTest_renderTopAppBarTextWithIcon.png create mode 100644 common-ui/screenshots/debug/screenshots-default/metadata_compose.json_emulator-5554 diff --git a/.github/workflows/feature-check.yml b/.github/workflows/feature-check.yml new file mode 100644 index 00000000..b62976d1 --- /dev/null +++ b/.github/workflows/feature-check.yml @@ -0,0 +1,46 @@ +name: Commits and Pull Requests +on: + on: + workflow_dispatch: + push: + pull_request_target: + types: [ synchronize, ready_for_review ] + pull_request: + types: [ opened ] + +jobs: + build: + name: Building + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v3 + - name: Set up JDK 11 + uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: '11' + - name: Build + run: bash ./gradlew build + screenshot-test: + name: Run Screenshot tests + runs-on: macos-latest + steps: + - name: Set up JDK 11 + uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: '11' + - name: Checkout + uses: actions/checkout@v3 + - name: Make files executable + run: chmod +x ./gradlew + - name: Screenshot tests + uses: reactivecircus/android-emulator-runner@v2.24.0 + with: + api-level: 31 + arch: x86_64 + profile: pixel + target: google_apis + sdcard-path-or-size: 512M + emulator-options: -no-window -gpu swiftshader_indirect -no-snapshot -noaudio -no-boot-anim + script: ./gradlew executeScreenshotTests \ No newline at end of file diff --git a/common-ui/screenshots/debug/screenshots-default/com.tarkalabs.commonui.TopBarScreenShotTest_renderTopAppBarTextOnly.png b/common-ui/screenshots/debug/screenshots-default/com.tarkalabs.commonui.TopBarScreenShotTest_renderTopAppBarTextOnly.png new file mode 100644 index 0000000000000000000000000000000000000000..2a6ff2b099f487363e639421de4685fd6917c72c GIT binary patch literal 9666 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 literal 0 HcmV?d00001 diff --git a/common-ui/screenshots/debug/screenshots-default/metadata_compose.json_emulator-5554 b/common-ui/screenshots/debug/screenshots-default/metadata_compose.json_emulator-5554 new file mode 100644 index 00000000..33f04a42 --- /dev/null +++ b/common-ui/screenshots/debug/screenshots-default/metadata_compose.json_emulator-5554 @@ -0,0 +1 @@ +{"screenshots":[{"name":"com.tarkalabs.commonui.TopBarScreenShotTest_renderTopAppBarTextWithIcon","testClassName":"com.tarkalabs.commonui.TopBarScreenShotTest","testName":"renderTopAppBarTextWithIcon"},{"name":"com.tarkalabs.commonui.TopBarScreenShotTest_renderTopAppBarTextOnly","testClassName":"com.tarkalabs.commonui.TopBarScreenShotTest","testName":"renderTopAppBarTextOnly"}]} \ No newline at end of file From 6062e9d527ab8c0e6518e2dc695ed12c973b08b0 Mon Sep 17 00:00:00 2001 From: Younes Charfaoui Date: Mon, 15 May 2023 14:02:16 +0100 Subject: [PATCH 023/571] Updating the Images of the TopAppBar --- ...BarScreenShotTest_renderTopAppBarTextOnly.png | Bin 9666 -> 0 bytes ...creenShotTest_renderTopAppBarTextWithIcon.png | Bin 9952 -> 0 bytes .../metadata_compose.json_emulator-5554 | 1 - 3 files changed, 1 deletion(-) delete mode 100644 common-ui/screenshots/debug/screenshots-default/com.tarkalabs.commonui.TopBarScreenShotTest_renderTopAppBarTextOnly.png delete mode 100644 common-ui/screenshots/debug/screenshots-default/com.tarkalabs.commonui.TopBarScreenShotTest_renderTopAppBarTextWithIcon.png delete mode 100644 common-ui/screenshots/debug/screenshots-default/metadata_compose.json_emulator-5554 diff --git a/common-ui/screenshots/debug/screenshots-default/com.tarkalabs.commonui.TopBarScreenShotTest_renderTopAppBarTextOnly.png b/common-ui/screenshots/debug/screenshots-default/com.tarkalabs.commonui.TopBarScreenShotTest_renderTopAppBarTextOnly.png deleted file mode 100644 index 2a6ff2b099f487363e639421de4685fd6917c72c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9666 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 diff --git a/common-ui/screenshots/debug/screenshots-default/metadata_compose.json_emulator-5554 b/common-ui/screenshots/debug/screenshots-default/metadata_compose.json_emulator-5554 deleted file mode 100644 index 33f04a42..00000000 --- a/common-ui/screenshots/debug/screenshots-default/metadata_compose.json_emulator-5554 +++ /dev/null @@ -1 +0,0 @@ -{"screenshots":[{"name":"com.tarkalabs.commonui.TopBarScreenShotTest_renderTopAppBarTextWithIcon","testClassName":"com.tarkalabs.commonui.TopBarScreenShotTest","testName":"renderTopAppBarTextWithIcon"},{"name":"com.tarkalabs.commonui.TopBarScreenShotTest_renderTopAppBarTextOnly","testClassName":"com.tarkalabs.commonui.TopBarScreenShotTest","testName":"renderTopAppBarTextOnly"}]} \ No newline at end of file From 0edc5777ea759898f7e133e49464aace9e8a53b0 Mon Sep 17 00:00:00 2001 From: Charfaoui Younes Date: Tue, 16 May 2023 09:02:26 +0100 Subject: [PATCH 024/571] Adding the required fluent icons for the complete setting screen --- common-ui/build.gradle.kts | 3 +- .../uicomponents/models/TarkaIcon.kt | 53 +++++++++++++++++++ 2 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 common-ui/src/main/java/com/tarkalabs/uicomponents/models/TarkaIcon.kt diff --git a/common-ui/build.gradle.kts b/common-ui/build.gradle.kts index e5fdd5fe..1cbffef6 100644 --- a/common-ui/build.gradle.kts +++ b/common-ui/build.gradle.kts @@ -47,7 +47,8 @@ dependencies { implementation("androidx.core:core-ktx:1.10.0") implementation( "androidx.compose.ui:ui:$composeUiVersion") implementation( "androidx.compose.ui:ui-tooling-preview:$composeUiVersion") - implementation ("androidx.compose.material3:material3:1.1.0-rc01") + implementation("androidx.compose.material3:material3:1.1.0-rc01") + implementation("com.microsoft.design:fluent-system-icons:1.1.201@aar") testImplementation( "junit:junit:4.13.2") androidTestImplementation( "androidx.test.ext:junit:1.1.5") diff --git a/common-ui/src/main/java/com/tarkalabs/uicomponents/models/TarkaIcon.kt b/common-ui/src/main/java/com/tarkalabs/uicomponents/models/TarkaIcon.kt new file mode 100644 index 00000000..b90acf2f --- /dev/null +++ b/common-ui/src/main/java/com/tarkalabs/uicomponents/models/TarkaIcon.kt @@ -0,0 +1,53 @@ +package com.tarkalabs.uicomponents.models + +import androidx.annotation.DrawableRes +import com.microsoft.fluent.mobile.icons.R +import com.microsoft.fluent.mobile.icons.R.drawable.ic_fluent_arrow_counterclockwise_24_regular +import com.microsoft.fluent.mobile.icons.R.drawable.ic_fluent_arrow_export_ltr_24_regular +import com.microsoft.fluent.mobile.icons.R.drawable.ic_fluent_arrow_sync_circle_24_regular +import com.microsoft.fluent.mobile.icons.R.drawable.ic_fluent_checkmark_16_filled +import com.microsoft.fluent.mobile.icons.R.drawable.ic_fluent_checkmark_starburst_24_regular +import com.microsoft.fluent.mobile.icons.R.drawable.ic_fluent_chevron_down_20_regular +import com.microsoft.fluent.mobile.icons.R.drawable.ic_fluent_chevron_left_20_regular +import com.microsoft.fluent.mobile.icons.R.drawable.ic_fluent_chevron_up_20_regular +import com.microsoft.fluent.mobile.icons.R.drawable.ic_fluent_copy_24_regular +import com.microsoft.fluent.mobile.icons.R.drawable.ic_fluent_delete_24_regular +import com.microsoft.fluent.mobile.icons.R.drawable.ic_fluent_dismiss_16_filled +import com.microsoft.fluent.mobile.icons.R.drawable.ic_fluent_dismiss_24_regular +import com.microsoft.fluent.mobile.icons.R.drawable.ic_fluent_document_header_arrow_down_24_regular +import com.microsoft.fluent.mobile.icons.R.drawable.ic_fluent_document_text_24_regular +import com.microsoft.fluent.mobile.icons.R.drawable.ic_fluent_map_24_regular +import com.microsoft.fluent.mobile.icons.R.drawable.ic_fluent_question_circle_24_regular +import com.microsoft.fluent.mobile.icons.R.drawable.ic_fluent_re_order_dots_vertical_24_regular +import com.microsoft.fluent.mobile.icons.R.drawable.ic_fluent_search_24_regular +import com.microsoft.fluent.mobile.icons.R.drawable.ic_fluent_shield_task_24_regular +import com.microsoft.fluent.mobile.icons.R.drawable.ic_fluent_tabs_24_regular + +data class TarkaIcon( + @DrawableRes val iconRes: Int, + val contentDescription: String, +) + +object TarkaIcons { + val ChevronUp = TarkaIcon(ic_fluent_chevron_up_20_regular, "Chevron Up") + val ChevronRight = TarkaIcon(R.drawable.ic_fluent_chevron_right_20_regular, "Chevron Right") + val ChevronLeft = TarkaIcon(ic_fluent_chevron_left_20_regular, "Chevron Left") + val ChevronDown = TarkaIcon(ic_fluent_chevron_down_20_regular, "Chevron Down") + val CheckmarkStarburst = TarkaIcon(ic_fluent_checkmark_starburst_24_regular, "Checkmark Starburst") + val Tabs = TarkaIcon(ic_fluent_tabs_24_regular, "Tabs") + val ArrowExport = TarkaIcon(ic_fluent_arrow_export_ltr_24_regular, "Arrow Export") + val ArrowCounterClockWise = TarkaIcon(ic_fluent_arrow_counterclockwise_24_regular, "Arrow Counter clockwise") + val Search = TarkaIcon(ic_fluent_search_24_regular, "Search") + val Copy = TarkaIcon(ic_fluent_copy_24_regular, "Copy") + val Delete = TarkaIcon(ic_fluent_delete_24_regular, "Delete") + val Dismiss = TarkaIcon(ic_fluent_dismiss_24_regular, "Dismiss") + val DismissFilled = TarkaIcon(ic_fluent_dismiss_16_filled, "Dismiss") + val ArrowSyncCircle = TarkaIcon(ic_fluent_arrow_sync_circle_24_regular, "Arrow Sync Circle") + val DocumentHeaderArrowDown = TarkaIcon(ic_fluent_document_header_arrow_down_24_regular, "Document Header Arrow Down") + val Map = TarkaIcon(ic_fluent_map_24_regular, "Map") + val ReOrderDots = TarkaIcon(ic_fluent_re_order_dots_vertical_24_regular, "Re order dots") + val CheckMark = TarkaIcon(ic_fluent_checkmark_16_filled, "Check Mark") + val QuestionCircle = TarkaIcon(ic_fluent_question_circle_24_regular, "Question Circle") + val DocumentText = TarkaIcon(ic_fluent_document_text_24_regular, "Document Text") + val ShieldTask = TarkaIcon(ic_fluent_shield_task_24_regular, "Document Text") +} \ No newline at end of file From d4e35af01fb43ee354ea0ba11626b2fdbaa726e4 Mon Sep 17 00:00:00 2001 From: AskNilesh Date: Tue, 16 May 2023 14:35:18 +0530 Subject: [PATCH 025/571] - Fixed height issue resolved --- .../main/java/com/tarkalabs/uicomponents/components/TextRow.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/common-ui/src/main/java/com/tarkalabs/uicomponents/components/TextRow.kt b/common-ui/src/main/java/com/tarkalabs/uicomponents/components/TextRow.kt index ddabc775..4b4996bb 100644 --- a/common-ui/src/main/java/com/tarkalabs/uicomponents/components/TextRow.kt +++ b/common-ui/src/main/java/com/tarkalabs/uicomponents/components/TextRow.kt @@ -5,6 +5,7 @@ import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.defaultMinSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding @@ -42,7 +43,7 @@ import com.tarkalabs.uicomponents.theme.Eam360Theme Row( modifier .clickable { onTextRowClick() } - .height(40.dp) + .defaultMinSize(minHeight = 40.dp) .padding(paddingValues), verticalAlignment = Alignment.CenterVertically) { Column(Modifier.weight(1f)) { From ed0b0bc3b9691cc15ab386f3706ad2ade0b50566 Mon Sep 17 00:00:00 2001 From: AskNilesh Date: Wed, 17 May 2023 10:53:18 +0530 Subject: [PATCH 026/571] - Code optimisation --- .../uicomponents/components/Button.kt | 34 +++++++++++-------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/common-ui/src/main/java/com/tarkalabs/uicomponents/components/Button.kt b/common-ui/src/main/java/com/tarkalabs/uicomponents/components/Button.kt index dc323ebf..2b8e9b71 100644 --- a/common-ui/src/main/java/com/tarkalabs/uicomponents/components/Button.kt +++ b/common-ui/src/main/java/com/tarkalabs/uicomponents/components/Button.kt @@ -1,4 +1,4 @@ -package com.tarkalabs.commonui.components +package com.tarkalabs.uicomponents.components import androidx.annotation.DrawableRes import androidx.compose.foundation.BorderStroke @@ -29,17 +29,17 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import com.tarkalabs.commonui.components.ButtonSize.L -import com.tarkalabs.commonui.components.ButtonSize.M -import com.tarkalabs.commonui.components.ButtonSize.S -import com.tarkalabs.commonui.components.ButtonSize.XS -import com.tarkalabs.commonui.components.ButtonStyle.ERROR -import com.tarkalabs.commonui.components.ButtonStyle.GHOST -import com.tarkalabs.commonui.components.ButtonStyle.OUTLINE -import com.tarkalabs.commonui.components.ButtonStyle.PRIMARY -import com.tarkalabs.commonui.components.ButtonStyle.SECONDARY -import com.tarkalabs.commonui.theme.Eam360Theme -import com.tarkalabs.commonui.theme.EamTheme +import com.tarkalabs.uicomponents.components.ButtonSize.L +import com.tarkalabs.uicomponents.components.ButtonSize.M +import com.tarkalabs.uicomponents.components.ButtonSize.S +import com.tarkalabs.uicomponents.components.ButtonSize.XS +import com.tarkalabs.uicomponents.components.ButtonStyle.ERROR +import com.tarkalabs.uicomponents.components.ButtonStyle.GHOST +import com.tarkalabs.uicomponents.components.ButtonStyle.OUTLINE +import com.tarkalabs.uicomponents.components.ButtonStyle.PRIMARY +import com.tarkalabs.uicomponents.components.ButtonStyle.SECONDARY +import com.tarkalabs.uicomponents.theme.Eam360Theme +import com.tarkalabs.uicomponents.theme.EamTheme enum class ButtonStyle { PRIMARY, @@ -59,8 +59,7 @@ enum class ButtonSize(val size: Dp) { return when (this) { L -> 17.5.dp M -> 17.5.dp - S -> 11.dp - XS -> 11.dp + S, XS -> 11.dp } } @@ -225,7 +224,12 @@ onClick = {} } } - Row(horizontalArrangement = Arrangement.SpaceBetween, modifier = Modifier.fillMaxWidth().padding(horizontal = 10.dp)) { + Row( + horizontalArrangement = Arrangement.SpaceBetween, + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 10.dp) + ) { Column(horizontalAlignment = Alignment.Start) { Text("Ghost Button", fontSize = 24.sp) Spacer(modifier = Modifier.height(20.dp)) From 622e35188bb9fb63c6e5919a022fc5a398818e2e Mon Sep 17 00:00:00 2001 From: Raja Jawahar Date: Wed, 17 May 2023 12:24:46 +0530 Subject: [PATCH 027/571] TarkaIcon used instead of Drawable Resource --- .../uicomponents/components/NavigationRows.kt | 13 ++++---- .../uicomponents/components/TextRow.kt | 31 ++++++++++++------- .../uicomponents/components/TopBar.kt | 29 ++++++++++------- .../java/com/tarkalabs/ui/SettingActivity.kt | 29 +++++++++++------ 4 files changed, 63 insertions(+), 39 deletions(-) diff --git a/common-ui/src/main/java/com/tarkalabs/uicomponents/components/NavigationRows.kt b/common-ui/src/main/java/com/tarkalabs/uicomponents/components/NavigationRows.kt index a3c6be66..563cb726 100644 --- a/common-ui/src/main/java/com/tarkalabs/uicomponents/components/NavigationRows.kt +++ b/common-ui/src/main/java/com/tarkalabs/uicomponents/components/NavigationRows.kt @@ -2,7 +2,6 @@ package com.tarkalabs.uicomponents.components -import androidx.annotation.DrawableRes import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.* import androidx.compose.material3.* @@ -12,15 +11,14 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.res.painterResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import androidx.core.R.drawable import com.tarkalabs.uicomponents.R +import com.tarkalabs.uicomponents.models.TarkaIcon import com.tarkalabs.uicomponents.theme.Eam360Theme -// TODO: 5/2/2023 add content description // TODO: 5/2/2023 use dimensions instead of hard coded things @OptIn(ExperimentalMaterial3Api::class) @Composable fun NavigationRow( title: String, - @DrawableRes leadingIcon: Int? = null, + leadingIcon: TarkaIcon? = null, badgeCount: Int? = null, showRightArrow: Boolean = false, modifier: Modifier = Modifier, @@ -33,7 +31,7 @@ import com.tarkalabs.uicomponents.theme.Eam360Theme verticalAlignment = Alignment.CenterVertically) { if (leadingIcon != null) Icon( modifier = Modifier.size(24.dp), - painter = painterResource(id = leadingIcon), + painter = painterResource(id = leadingIcon.iconRes), contentDescription = null, tint = MaterialTheme.colorScheme.secondary ) @@ -67,7 +65,10 @@ import com.tarkalabs.uicomponents.theme.Eam360Theme @Preview(showBackground = true) @Composable fun NavigationRowPreview() { NavigationRow( - title = "Label", leadingIcon = drawable.ic_call_decline, badgeCount = 5, showRightArrow = true + title = "Label", + leadingIcon = TarkaIcon(androidx.core.R.drawable.ic_call_decline, "Call Decline"), + badgeCount = 5, + showRightArrow = true ) { } diff --git a/common-ui/src/main/java/com/tarkalabs/uicomponents/components/TextRow.kt b/common-ui/src/main/java/com/tarkalabs/uicomponents/components/TextRow.kt index 4b4996bb..a5ada54b 100644 --- a/common-ui/src/main/java/com/tarkalabs/uicomponents/components/TextRow.kt +++ b/common-ui/src/main/java/com/tarkalabs/uicomponents/components/TextRow.kt @@ -23,16 +23,17 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.core.R.drawable +import com.tarkalabs.uicomponents.models.TarkaIcon import com.tarkalabs.uicomponents.theme.Eam360Theme -@Composable fun TextRowWithDescription( +@Composable fun TextRow( title: String, description: String, modifier: Modifier = Modifier.fillMaxWidth(), - @DrawableRes iconOne: Int? = null, - @DrawableRes iconTwo: Int? = null, + iconOne: TarkaIcon? = null, + iconTwo: TarkaIcon? = null, buttonTitle: String? = null, - @DrawableRes infoIcon: Int? = null, + infoIcon: TarkaIcon? = null, onIconOneClick: () -> Unit = {}, onIconTwoClick: () -> Unit = {}, onButtonClick: () -> Unit = {}, @@ -59,8 +60,16 @@ import com.tarkalabs.uicomponents.theme.Eam360Theme ) } Row(verticalAlignment = Alignment.CenterVertically) { - if (iconOne != null) GhostIconButton(icon = iconOne, onIconClick = onIconOneClick, contentDescription = "") - if (iconTwo != null) GhostIconButton(icon = iconTwo, onIconClick = onIconTwoClick, contentDescription = "") + if (iconOne != null) GhostIconButton( + icon = iconOne.iconRes, + onIconClick = onIconOneClick, + contentDescription = "" + ) + if (iconTwo != null) GhostIconButton( + icon = iconTwo.iconRes, + onIconClick = onIconTwoClick, + contentDescription = "" + ) if (buttonTitle != null) { OutlinedButton( modifier = Modifier @@ -72,7 +81,7 @@ import com.tarkalabs.uicomponents.theme.Eam360Theme } if (infoIcon != null) { IconButton(modifier = Modifier.size(24.dp), onClick = onInfoIconClick) { - Icon(painter = painterResource(id = infoIcon), contentDescription = null) + Icon(painter = painterResource(id = infoIcon.iconRes), contentDescription = null) } } } @@ -80,12 +89,12 @@ import com.tarkalabs.uicomponents.theme.Eam360Theme } @Preview(showBackground = true) @Composable fun TextRowWithDescriptionPreview() { - TextRowWithDescription( + TextRow( title = "Title", description = "Description", - infoIcon = drawable.ic_call_answer, - iconOne = drawable.ic_call_answer, - iconTwo = drawable.ic_call_answer, + infoIcon = TarkaIcon(drawable.ic_call_answer, "Call Answer"), + iconOne = TarkaIcon(drawable.ic_call_answer, "Call Answer"), + iconTwo = TarkaIcon(drawable.ic_call_answer, "Call Answer"), buttonTitle = "Label" ) } \ No newline at end of file diff --git a/common-ui/src/main/java/com/tarkalabs/uicomponents/components/TopBar.kt b/common-ui/src/main/java/com/tarkalabs/uicomponents/components/TopBar.kt index b58ac799..4788ecf4 100644 --- a/common-ui/src/main/java/com/tarkalabs/uicomponents/components/TopBar.kt +++ b/common-ui/src/main/java/com/tarkalabs/uicomponents/components/TopBar.kt @@ -1,6 +1,5 @@ package com.tarkalabs.uicomponents.components -import androidx.annotation.DrawableRes import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon @@ -18,15 +17,16 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.res.painterResource +import com.tarkalabs.uicomponents.models.TarkaIcon import com.tarkalabs.uicomponents.theme.Eam360Theme @OptIn(ExperimentalMaterial3Api::class) @Composable fun TopBar( title: String, - @DrawableRes navigationIcon: Int? = null, - @DrawableRes searchIcon: Int? = null, - @DrawableRes menuItemIconOne: Int? = null, - @DrawableRes menuItemIconTwo: Int? = null, - @DrawableRes menuItemIconThree: Int? = null, + navigationIcon: TarkaIcon? = null, + searchIcon: TarkaIcon? = null, + menuItemIconOne: TarkaIcon? = null, + menuItemIconTwo: TarkaIcon? = null, + menuItemIconThree: TarkaIcon? = null, onNavigationIconClick: () -> Unit = {}, onFirstMenuItemClicked: () -> Unit = {}, onSecondMenuItemClicked: () -> Unit = {}, @@ -53,7 +53,10 @@ import com.tarkalabs.uicomponents.theme.Eam360Theme navigationIcon = { if (navigationIcon != null) { IconButton(onClick = onNavigationIconClick) { - Icon(painter = painterResource(id = navigationIcon), contentDescription = "Back arrow") + Icon( + painter = painterResource(id = navigationIcon.iconRes), + contentDescription = "Back arrow" + ) } } }, @@ -62,14 +65,14 @@ import com.tarkalabs.uicomponents.theme.Eam360Theme IconButton(onClick = { showSearchBar = true }) { - Icon(painter = painterResource(id = searchIcon), contentDescription = "Search") + Icon(painter = painterResource(id = searchIcon.iconRes), contentDescription = "Search") } } if (menuItemIconThree != null) { IconButton(onClick = onThirdMenuItemClicked) { Icon( - painter = painterResource(id = menuItemIconThree), + painter = painterResource(id = menuItemIconThree.iconRes), contentDescription = "Menu Item three" ) } @@ -78,7 +81,8 @@ import com.tarkalabs.uicomponents.theme.Eam360Theme if (menuItemIconTwo != null) { IconButton(onClick = onSecondMenuItemClicked) { Icon( - painter = painterResource(id = menuItemIconTwo), contentDescription = "Menu Item two" + painter = painterResource(id = menuItemIconTwo.iconRes), + contentDescription = "Menu Item two" ) } } @@ -86,7 +90,8 @@ import com.tarkalabs.uicomponents.theme.Eam360Theme if (menuItemIconOne != null) { IconButton(onClick = onFirstMenuItemClicked) { Icon( - painter = painterResource(id = menuItemIconOne), contentDescription = "Menu Item one" + painter = painterResource(id = menuItemIconOne.iconRes), + contentDescription = "Menu Item one" ) } } @@ -100,7 +105,7 @@ import com.tarkalabs.uicomponents.theme.Eam360Theme } @OptIn(ExperimentalMaterial3Api::class) @Composable fun EamNormalTopBar( - title: String, @DrawableRes navigationIcon: Int? = null + title: String, navigationIcon: TarkaIcon? = null ) { TopBar(title = title, navigationIcon = navigationIcon) } diff --git a/example/src/main/java/com/tarkalabs/ui/SettingActivity.kt b/example/src/main/java/com/tarkalabs/ui/SettingActivity.kt index 2c582187..92fc41cb 100644 --- a/example/src/main/java/com/tarkalabs/ui/SettingActivity.kt +++ b/example/src/main/java/com/tarkalabs/ui/SettingActivity.kt @@ -29,6 +29,7 @@ import com.tarkalabs.uicomponents.theme.ColorUtilityOutline import com.tarkalabs.uicomponents.theme.Eam360Theme import com.tarkalabs.uicomponents.theme.EamTheme import com.tarkalabs.ui.R.drawable +import com.tarkalabs.uicomponents.models.TarkaIcon @OptIn(ExperimentalMaterial3Api::class) class SettingActivity : ComponentActivity() { @@ -44,7 +45,7 @@ class SettingActivity : ComponentActivity() { @Composable @Preview(showSystemUi = true) fun SettingScreen() { Scaffold(topBar = { TopBar( - title = "Settings", navigationIcon = drawable.arrow_back + title = "Settings", navigationIcon = TarkaIcon(drawable.arrow_back, "Back Arrow") ) }, containerColor = MaterialTheme.colorScheme.surface) { paddingValues -> Column(modifier = Modifier.padding(paddingValues)) { @@ -52,10 +53,10 @@ class SettingActivity : ComponentActivity() { VerticalSpacer(space = 24) SettingHeader() VerticalSpacer(space = 16) - TextRowWithDescription( + TextRow( title = "Role", description = "Supervisor", - infoIcon = drawable.keyboard_arrow_right, + infoIcon = TarkaIcon(drawable.keyboard_arrow_right, "Role Change"), modifier = Modifier.fillMaxWidth(), paddingValues = PaddingValues(horizontal = 24.dp) ) @@ -67,19 +68,25 @@ class SettingActivity : ComponentActivity() { title = "Transaction errors", badgeCount = 3, showRightArrow = true, - leadingIcon = drawable.ic_transaction, + leadingIcon = TarkaIcon(drawable.ic_transaction, "Transaction Errors"), onClick = {} ) NavigationRow( - title = "Sync status", showRightArrow = true, leadingIcon = drawable.checkmark_starburst, + title = "Sync status", + showRightArrow = true, + leadingIcon = TarkaIcon(drawable.checkmark_starburst, "Sync Status"), onClick = {} ) NavigationRow( - title = "Tabs configuration", showRightArrow = true, leadingIcon = drawable.tabs, + title = "Tabs configuration", + showRightArrow = true, + leadingIcon = TarkaIcon(drawable.tabs, "Tabs Configuration"), onClick = {} ) NavigationRow( - title = "Export log", showRightArrow = true, leadingIcon = drawable.arrow_export, + title = "Export log", + showRightArrow = true, + leadingIcon = TarkaIcon(drawable.arrow_export, "Export Log"), onClick = {} ) } @@ -111,9 +118,11 @@ class SettingActivity : ComponentActivity() { style = Eam360Theme.typography.heading6, color = MaterialTheme.colorScheme.onSurface ) - Text(text = "BEDFORD", - style = Eam360Theme.typography.body7, - color = ColorUtilityOutline) + Text( + text = "BEDFORD", + style = Eam360Theme.typography.body7, + color = ColorUtilityOutline + ) } Box(modifier = Modifier.align(Alignment.TopEnd)) { GhostIconButton(icon = drawable.ic_refresh, contentDescription = "", onIconClick = {}) From 7d379d16146d7417de038259c3917939be9f3da5 Mon Sep 17 00:00:00 2001 From: AskNilesh Date: Wed, 17 May 2023 12:32:40 +0530 Subject: [PATCH 028/571] - Used tarka icons instead of drawable resoures --- .../uicomponents/components/IconButton.kt | 76 +++++++------------ 1 file changed, 27 insertions(+), 49 deletions(-) diff --git a/common-ui/src/main/java/com/tarkalabs/uicomponents/components/IconButton.kt b/common-ui/src/main/java/com/tarkalabs/uicomponents/components/IconButton.kt index 7d4f732d..ecbac90e 100644 --- a/common-ui/src/main/java/com/tarkalabs/uicomponents/components/IconButton.kt +++ b/common-ui/src/main/java/com/tarkalabs/uicomponents/components/IconButton.kt @@ -27,7 +27,6 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp -import com.tarkalabs.uicomponents.R import com.tarkalabs.uicomponents.components.IconButtonSize.L import com.tarkalabs.uicomponents.components.IconButtonSize.M import com.tarkalabs.uicomponents.components.IconButtonSize.S @@ -37,6 +36,8 @@ import com.tarkalabs.uicomponents.components.IconButtonStyle.GHOST import com.tarkalabs.uicomponents.components.IconButtonStyle.OUTLINE import com.tarkalabs.uicomponents.components.IconButtonStyle.PRIMARY import com.tarkalabs.uicomponents.components.IconButtonStyle.SECONDARY +import com.tarkalabs.uicomponents.models.TarkaIcon +import com.tarkalabs.uicomponents.models.TarkaIcons import com.tarkalabs.uicomponents.theme.ColorUtilityOutline import com.tarkalabs.uicomponents.theme.EamTheme @@ -63,8 +64,7 @@ enum class IconButtonStyle { /** * Below function defines a reusable composable function which can be used to create an IconButton with various styles and sizes which takes several parameters such as - * @param icon The drawable resource ID of the icon to be displayed inside the button. - * @param contentDescription The textual description of the icon for accessibility purposes. + * @param icon The Tarka Icon resource ID of the icon to be displayed inside the button. * @param buttonSize The size of the button, which can be one of the values of the IconButtonSize enum. * @param iconButtonStyle The style of the button, which can be one of the values of the IconButtonStyle enum. * @param enabled Whether the button is clickable or not. @@ -75,16 +75,14 @@ enum class IconButtonStyle { * How to use IconButton() composable function * IconButton( - icon = R.drawable.keyboard_arrow_right, - contentDescription = "", + icon = TarkaIcons.ChevronRight, buttonSize = IconButtonSize.XS, iconButtonStyle = IconButtonStyle.OUTLINE, ) * */ @Composable fun IconButton( - @DrawableRes icon: Int, - contentDescription: String, + icon: TarkaIcon, buttonSize: IconButtonSize = L, iconButtonStyle: IconButtonStyle = IconButtonStyle.defaultStyle, enabled: Boolean = true, @@ -149,8 +147,8 @@ enum class IconButtonStyle { ) { Icon( modifier = iconModifier, - painter = painterResource(id = icon), - contentDescription = contentDescription + painter = painterResource(id = icon.iconRes), + contentDescription = icon.contentDescription ) } } @@ -168,37 +166,32 @@ enum class IconButtonStyle { verticalAlignment = Alignment.CenterVertically ) { IconButton( - icon = R.drawable.keyboard_arrow_right, - contentDescription = "", + icon = TarkaIcons.ChevronRight, buttonSize = XS, iconButtonStyle = PRIMARY ) Spacer(modifier = Modifier.width(20.dp)) IconButton( - icon = R.drawable.keyboard_arrow_right, - contentDescription = "", + icon = TarkaIcons.ChevronRight, buttonSize = S, iconButtonStyle = PRIMARY ) Spacer(modifier = Modifier.width(20.dp)) IconButton( - icon = R.drawable.keyboard_arrow_right, - contentDescription = "", + icon = TarkaIcons.ChevronRight, buttonSize = M, iconButtonStyle = PRIMARY ) Spacer(modifier = Modifier.width(20.dp)) IconButton( - icon = R.drawable.keyboard_arrow_right, - contentDescription = "", + icon = TarkaIcons.ChevronRight, buttonSize = L, iconButtonStyle = PRIMARY ) Spacer(modifier = Modifier.width(20.dp)) IconButton( - icon = R.drawable.keyboard_arrow_right, - contentDescription = "", + icon = TarkaIcons.ChevronRight, buttonSize = XL, iconButtonStyle = PRIMARY ) @@ -212,37 +205,32 @@ enum class IconButtonStyle { verticalAlignment = Alignment.CenterVertically ) { IconButton( - icon = R.drawable.keyboard_arrow_right, - contentDescription = "", + icon = TarkaIcons.ChevronRight, buttonSize = XS, iconButtonStyle = SECONDARY ) Spacer(modifier = Modifier.width(20.dp)) IconButton( - icon = R.drawable.keyboard_arrow_right, - contentDescription = "", + icon = TarkaIcons.ChevronRight, buttonSize = S, iconButtonStyle = SECONDARY ) Spacer(modifier = Modifier.width(20.dp)) IconButton( - icon = R.drawable.keyboard_arrow_right, - contentDescription = "", + icon = TarkaIcons.ChevronRight, buttonSize = M, iconButtonStyle = SECONDARY ) Spacer(modifier = Modifier.width(20.dp)) IconButton( - icon = R.drawable.keyboard_arrow_right, - contentDescription = "", + icon = TarkaIcons.ChevronRight, buttonSize = L, iconButtonStyle = SECONDARY ) Spacer(modifier = Modifier.width(20.dp)) IconButton( - icon = R.drawable.keyboard_arrow_right, - contentDescription = "", + icon = TarkaIcons.ChevronRight, buttonSize = XL, iconButtonStyle = SECONDARY ) @@ -257,37 +245,32 @@ enum class IconButtonStyle { verticalAlignment = Alignment.CenterVertically ) { IconButton( - icon = R.drawable.keyboard_arrow_right, - contentDescription = "", + icon = TarkaIcons.ChevronRight, buttonSize = XS, iconButtonStyle = GHOST ) Spacer(modifier = Modifier.width(20.dp)) IconButton( - icon = R.drawable.keyboard_arrow_right, - contentDescription = "", + icon = TarkaIcons.ChevronRight, buttonSize = S, iconButtonStyle = GHOST ) Spacer(modifier = Modifier.width(20.dp)) IconButton( - icon = R.drawable.keyboard_arrow_right, - contentDescription = "", + icon = TarkaIcons.ChevronRight, buttonSize = M, iconButtonStyle = GHOST ) Spacer(modifier = Modifier.width(20.dp)) IconButton( - icon = R.drawable.keyboard_arrow_right, - contentDescription = "", + icon = TarkaIcons.ChevronRight, buttonSize = L, iconButtonStyle = GHOST ) Spacer(modifier = Modifier.width(20.dp)) IconButton( - icon = R.drawable.keyboard_arrow_right, - contentDescription = "", + icon = TarkaIcons.ChevronRight, buttonSize = XL, iconButtonStyle = GHOST ) @@ -301,37 +284,32 @@ enum class IconButtonStyle { verticalAlignment = Alignment.CenterVertically ) { IconButton( - icon = R.drawable.keyboard_arrow_right, - contentDescription = "", + icon = TarkaIcons.ChevronRight, buttonSize = XS, iconButtonStyle = OUTLINE ) Spacer(modifier = Modifier.width(20.dp)) IconButton( - icon = R.drawable.keyboard_arrow_right, - contentDescription = "", + icon = TarkaIcons.ChevronRight, buttonSize = S, iconButtonStyle = OUTLINE ) Spacer(modifier = Modifier.width(20.dp)) IconButton( - icon = R.drawable.keyboard_arrow_right, - contentDescription = "", + icon = TarkaIcons.ChevronRight, buttonSize = M, iconButtonStyle = OUTLINE ) Spacer(modifier = Modifier.width(20.dp)) IconButton( - icon = R.drawable.keyboard_arrow_right, - contentDescription = "", + icon = TarkaIcons.ChevronRight, buttonSize = L, iconButtonStyle = OUTLINE ) Spacer(modifier = Modifier.width(20.dp)) IconButton( - icon = R.drawable.keyboard_arrow_right, - contentDescription = "", + icon = TarkaIcons.ChevronRight, buttonSize = XL, iconButtonStyle = OUTLINE ) From fdb5c9e24670532bcfa590b803ffb4ea2bdaf025 Mon Sep 17 00:00:00 2001 From: AskNilesh Date: Wed, 17 May 2023 14:30:23 +0530 Subject: [PATCH 029/571] - Added screenshots testcase for Button --- ...i.ButtonScreenShotTest_errorButtonTest.png | Bin 0 -> 6326 bytes ...i.ButtonScreenShotTest_ghostButtonTest.png | Bin 0 -> 5362 bytes ...ButtonScreenShotTest_outlineButtonTest.png | Bin 0 -> 9939 bytes ...ButtonScreenShotTest_primaryButtonTest.png | Bin 0 -> 8291 bytes ...ttonScreenShotTest_secondaryButtonTest.png | Bin 0 -> 10207 bytes .../commonui/ButtonScreenShotTest.kt | 55 ++++++++++++++++++ .../commonui/TopBarScreenShotTest.kt | 5 +- .../uicomponents/components/Button.kt | 14 ++--- 8 files changed, 65 insertions(+), 9 deletions(-) create mode 100644 common-ui/screenshots/debug/com.tarkalabs.commonui.ButtonScreenShotTest_errorButtonTest.png create mode 100644 common-ui/screenshots/debug/com.tarkalabs.commonui.ButtonScreenShotTest_ghostButtonTest.png create mode 100644 common-ui/screenshots/debug/com.tarkalabs.commonui.ButtonScreenShotTest_outlineButtonTest.png create mode 100644 common-ui/screenshots/debug/com.tarkalabs.commonui.ButtonScreenShotTest_primaryButtonTest.png create mode 100644 common-ui/screenshots/debug/com.tarkalabs.commonui.ButtonScreenShotTest_secondaryButtonTest.png create mode 100644 common-ui/src/androidTest/java/com/tarkalabs/commonui/ButtonScreenShotTest.kt diff --git a/common-ui/screenshots/debug/com.tarkalabs.commonui.ButtonScreenShotTest_errorButtonTest.png b/common-ui/screenshots/debug/com.tarkalabs.commonui.ButtonScreenShotTest_errorButtonTest.png new file mode 100644 index 0000000000000000000000000000000000000000..1744b39347da49d7d11cc78c515939e95bb33b86 GIT binary patch literal 6326 zcmXw-byQT}*TyfcNcbg3q!b2_9=Z|fu0cvd5RhBfN}B?Oi3ZUK?*l%YduhVIUR zcl@pO{&Uw^=bpIh>}T(Lo)1DxLy?$}h7bS%Vr3;c9RR?BW7?q)@G;Ls=_n%r0Qo7) z$v{2-?9D%X1D&KNIFxoW#IsU-i3gn%{5@aISzDcKXuYM&U&c9}Jrt3ily9{*$oFCN zxYjnwaMohYG|B3x6*pU9c=&E(TV-eCea_<{Z2nGOSDW<3dP zKU0ZOKickXbGs6Ko`aP)w#NEbp%fkwP@C1F%{SPSP+_`5I!b?2z}%WvScPK^Zu#)b z#)h_+O7*$ZCR?0MuLf$gfy3+Ljz*c!Da%Er(_bZ`cog)2Ju8j_pTMeH6Lz*i7oK(7 zNw7H<7XnR6n_Sw^SdnB}!FlU>=!4`QxI*g>h=X#bjupuO;E}LFP0b6Njn_x!QaE9s7i*^z?!&d2 z4YlJxlZWV<=*R1dc|WmVwm>Gq(Y z&azkcuQPdH|GY^SqJ1>W^tsbd+B+^#;NXeN3-|GY#OpJKVx6MC4o3o@Ems8vhpmV^ zj(m!p(&{rwU_+%Bp;lH)O1qXem)H~+Sn`X$FBfN37ly}6qXW5Nm$|TOHZp8rrr54w z*~b|jmUuiXW+%KRWhZ@x6)z!4>C(-3Z9`k`HeLvR5cbPHoXY*EMsu^H_dwg~?X!Oq zsT-d8I?od%-u-6T=0(4?6TXtlV}}1RR3`b3zU2B!>-ll?>S7^#h5tz3l<)->uqz-< zL8ZN7T%o&O$G~>G+}q{A5($O}th8Ripi4fFe*$9xmvAQp0361y)ErUVoaRiN*NMMa zsq&&~pnm1TdjicEN;BS?OBpPbV10T8058Lc8kSQpHcYoKHVn;kS8P9zaJZdM`@x60185tYw)wUCkcf+9eEU#;z_Fdsqnp zbL_dc7-I_cychix=SvPdjTTGgIX@g*yI3Cr<`#2H+=D}pO;leefGlzt3UsqEm43`rCU<49wiD z?OW@IQDo+tlWeM`;{m0;S`w{V66jI|OBoAjyA?TiA=kiG7iI^8je8)+eEj zREMmO>~^))#PW_10p?z`k)kZZ9(6i3WH^fjfiH>xV4xi`E67`Dcp(Z(1M$_t+JD;v z0AW|vEY}Z7yyz$PEnRK)3`cy_n4Q&VbBx`09VY&$D1hPPs?<{-S|4H-=!AT?Je%Ah zI@lK$fgFy_8h|N*mscXMU5A9+`e7ktvgGI^eaW5^ZSQ zNd}Dx1<2^JQ>u{suYbd!;sZSXyesgx2LL$G_j)&DBCuAfq9TXD0%k;F&S+029lghu zh@Kd?D%xVY9>!cnv*4S`2-;5zC1R>V+R|6E|C%e?2TF*^WT*D`*uVhbqe|kkOZr4w z+sC4Bq2>`77cjRGIk#6Qnu|`PJ|R%Sh+x=hcY{{zZyGciT~_pDfE7>fq+>|TpV1s`bBm_%YdhZK^L7jp9BfN=ox0ucfy?!)j+H&F-$ zt$46bkqs(cx?fVH>s@b2QE4uN&&OBo?5G;3iBfikqFGo6mR4s&CO3qlhh7nr%QK?G zcCf0)o5zA^4|3)<6g=y`; z<^|J}B_xKti7Ml|oWRsd5;K8me@?Y@W%CTb^`LFR1Jpn%<4}J?plfihidgK}h^)Jp z=pK#K13WB1DB3j``aM1>9`job`qxZ~h}ROSUzkkqhO`zp&_{1baT)82Dj&Bgc z%)@iM^*3V<8@sRncN%+Sq>?-2+i?uNZ5214ZfZr=n#;R64#kLdQwsvuIFT3%&-lt0xzxmuBlXYYTn~Zp#KhJajTYch}52=gO*c?_} zu^c#Hltg#HBV{Z5mUsH<`*#~T#ciPj!{gRW*i~y|;f&<=?9^|w=ySVGXZ z9nIab?!=$_vPbuSV_Q=?4$@>kpr*kDVfd~3&P9QI{tNO2i$>4l$=~;i$`tqgR#0X; zV$b@(OKf@r@p9j?p0W&G5Q_OF&2NUg)g#j2qtzzZ+0Asju;u1Eip~DM2hE!=VkV1c z8h~?V+@fO>h;k+R<^1EaITtBBf}p0(wqXBpS84jlEcdYg!j3uA=vK78ah3a+!JC*a z?ViXAea9ii%O%39M0s_^_7HFTWToUcNj#iBM|C2B;;PRQwY2$uWXJQOB?9h$EQ&_& zN~kQ>&RcBQZ%!InDrZT-j^LWjv2Sp&x11(8p&EEo8R?Ixv@a8FuLWPBawqT0CQmmK z8;h3SaY~7t{V#geg^$5my!+3xD4h1(ttAx-2pICYYjWJ`>b~zv9Uf=5RFq}n@E7b% z?pbV~2!{K{G^d+o>+2NqT&_bVK9~x0H@6Udfy$iqa14ya%T`Ujlxihc2|AkSH_T9_VL0d#HN4LiybtO=~Cm{H!2b|4Y)>TaZeT zG@Xrvfd?nOVxOdM_&_yZw}E1csb8UlYYmCPprwJA>b#jbRqpV%Bk~7Yt?ny|^ zjCNE~{9&u${g0#&*}~5G1c8uiVKYR~NsodO66vvII zsIDyu8?UOGL>m8=sIBR(LE4&P&4~tSwAPGe76tv2vQzW@PCwhgpGL(Uq-HBRe{SV8 zH|7F4aruN);Y6VC_*SCv-jprxF8A)orfes0pC?X0S(XPAVg_GX%?Mj5S@TdvKftRHq_DMW7|(HmYg*)3)c|LWf9 zR(UZeH`Rq!sAhV8?c8S&g-*bVhK{n`s_=G_b#7$JT$7lhkmo}GZ(=M()q`-<=JqQ+ zc4mCAZE<|cF{n%|)K;RG%Y&YCLUF34*{F4AwR?F zWaagg&@Tpu$966zdg*&!KS^)SM4<;yb&d$rj+(Juu`+*09ak*k4(-zgT?OJ;5L; zJ@|c_9hXlMBVA@q9(H8=JW~C2aWQ*@&uXiXy9Reli+6n~%?AV}wf!7!Q#rOky@4hQ`hv)Hy~nx z%U;sB)prqhJN9@dwrmx1VkWWXi~TZwgbWpK1A|~QG56~JR?;R|==rLt7VJLPVAl2W zEV0GXIH7e%`d#7qiK_ajr^Ym~p)da%-8a5yxAWPYyFgJ)rp&$io5Q?oa97nT*fLYv zX+pl$r5gGD_9infr&cPX`Cd~#!(;P_3ftZC3hd1r>7(- z0`fcY#D&u4=l|+yzicnIt~tY)hXZ9wO5y6KJ+kQlW*FhvlQ+E!�d3>T7>?JU#AT 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 Msp+bgKYkJMf4bwTKL7v# literal 0 HcmV?d00001 diff --git a/common-ui/screenshots/debug/com.tarkalabs.commonui.ButtonScreenShotTest_outlineButtonTest.png b/common-ui/screenshots/debug/com.tarkalabs.commonui.ButtonScreenShotTest_outlineButtonTest.png new file mode 100644 index 0000000000000000000000000000000000000000..8cfac635c9b8c2ba2bb634eb3cc5bc4440bc1d0a GIT binary patch literal 9939 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 ZP@-|q!R{+dx`DA< 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 Dig%-@ literal 0 HcmV?d00001 diff --git a/common-ui/screenshots/debug/com.tarkalabs.commonui.ButtonScreenShotTest_secondaryButtonTest.png b/common-ui/screenshots/debug/com.tarkalabs.commonui.ButtonScreenShotTest_secondaryButtonTest.png new file mode 100644 index 0000000000000000000000000000000000000000..7c1e02fdeca9fe741b05aee85f32ea8b751e1d86 GIT binary patch literal 10207 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 Unit, ) { @@ -173,16 +173,16 @@ onClick = {} ) { leadingIcon?.let { Icon( - painter = painterResource(id = leadingIcon), - contentDescription = "", + painter = painterResource(id = leadingIcon.iconRes), + contentDescription = leadingIcon.contentDescription, modifier = Modifier.size(height.iconSize()) ) } Text(text = label, style = height.textStyle()) trailingIcon?.let { Icon( - painter = painterResource(id = trailingIcon), - contentDescription = "", + painter = painterResource(id = trailingIcon.iconRes), + contentDescription = trailingIcon.contentDescription, modifier = Modifier.size(height.iconSize()) ) } From bef8122ff10fd242a3fb3863aac2dead3c15a442 Mon Sep 17 00:00:00 2001 From: Raja Jawahar Date: Wed, 17 May 2023 14:48:29 +0530 Subject: [PATCH 030/571] Badge Screenshot testing added --- ...geScreenShotTest_test_badge_with_count.png | Bin 0 -> 1627 bytes ...reenShotTest_test_badge_with_out_count.png | Bin 0 -> 812 bytes .../tarkalabs/commonui/BadgeScreenShotTest.kt | 31 ++++++++++++++++++ 3 files changed, 31 insertions(+) create mode 100644 common-ui/screenshots/debug/com.tarkalabs.commonui.BadgeScreenShotTest_test_badge_with_count.png create mode 100644 common-ui/screenshots/debug/com.tarkalabs.commonui.BadgeScreenShotTest_test_badge_with_out_count.png create mode 100644 common-ui/src/androidTest/java/com/tarkalabs/commonui/BadgeScreenShotTest.kt diff --git a/common-ui/screenshots/debug/com.tarkalabs.commonui.BadgeScreenShotTest_test_badge_with_count.png b/common-ui/screenshots/debug/com.tarkalabs.commonui.BadgeScreenShotTest_test_badge_with_count.png new file mode 100644 index 0000000000000000000000000000000000000000..80f6a3db04752914ce94ba435109992f9a79d022 GIT binary patch literal 1627 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 Date: Wed, 17 May 2023 14:55:55 +0530 Subject: [PATCH 031/571] Compilation issue resolved --- .../java/com/tarkalabs/commonui/TopBarScreenShotTest.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/common-ui/src/androidTest/java/com/tarkalabs/commonui/TopBarScreenShotTest.kt b/common-ui/src/androidTest/java/com/tarkalabs/commonui/TopBarScreenShotTest.kt index a8d93788..52a743cf 100644 --- a/common-ui/src/androidTest/java/com/tarkalabs/commonui/TopBarScreenShotTest.kt +++ b/common-ui/src/androidTest/java/com/tarkalabs/commonui/TopBarScreenShotTest.kt @@ -9,6 +9,7 @@ import com.tarkalabs.uicomponents.components.TopBar import org.junit.Rule import org.junit.Test import com.tarkalabs.uicomponents.R +import com.tarkalabs.uicomponents.models.TarkaIcon import org.junit.runner.RunWith import org.junit.runners.JUnit4 @@ -30,7 +31,10 @@ class TopBarScreenShotTest : ScreenshotTest { @Test fun renderTopAppBarTextWithIcon() { composeRule.setContent { - TopBar("Screenshot", navigationIcon = R.drawable.keyboard_arrow_right) + TopBar( + "Screenshot", + navigationIcon = TarkaIcon(R.drawable.keyboard_arrow_right, "Arrow Right") + ) } compareScreenshot(composeRule) From 7038f38231b3dec7851568761417a4c29f980f9a Mon Sep 17 00:00:00 2001 From: Raja Jawahar Date: Wed, 17 May 2023 14:57:14 +0530 Subject: [PATCH 032/571] TabBar deleted --- .../uicomponents/components/TabBar.kt | 51 ------------------- 1 file changed, 51 deletions(-) delete mode 100644 common-ui/src/main/java/com/tarkalabs/uicomponents/components/TabBar.kt diff --git a/common-ui/src/main/java/com/tarkalabs/uicomponents/components/TabBar.kt b/common-ui/src/main/java/com/tarkalabs/uicomponents/components/TabBar.kt deleted file mode 100644 index 28aef543..00000000 --- a/common-ui/src/main/java/com/tarkalabs/uicomponents/components/TabBar.kt +++ /dev/null @@ -1,51 +0,0 @@ -package com.tarkalabs.uicomponents.components - -import androidx.compose.foundation.background -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.Tab -import androidx.compose.material3.TabRow -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable -import androidx.compose.runtime.getValue -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.runtime.setValue -import androidx.compose.ui.Modifier -import androidx.compose.ui.draw.clip -import androidx.compose.ui.graphics.Color - -@Composable fun TabBar( - items: List, - modifier: Modifier = Modifier, - selectedTabIndex: Int, - onSelectedTab: (Int) -> Unit -) { - var selectedIndex by remember { mutableStateOf(selectedTabIndex) } - - TabRow(selectedTabIndex = selectedTabIndex, - modifier = modifier, - containerColor = Color.Transparent, - contentColor = MaterialTheme.colorScheme.onSurface, - indicator = { - - }) { - items.forEachIndexed { index, text -> - val selected = selectedTabIndex == index - Tab(modifier = if (selected) Modifier - .clip(RoundedCornerShape(50)) - .background( - Color.White - ) - else Modifier - .clip(RoundedCornerShape(50)) - .background( - Color( - 0xff1E76DA - ) - ), selected = selected, onClick = { - selectedIndex = index - }, text = { Text(text = text, color = Color(0xff6FAAEE)) }) - } - } -} \ No newline at end of file From 1e0e4a198933eb4e62cd1849db5e24bb25dc474f Mon Sep 17 00:00:00 2001 From: AskNilesh Date: Wed, 17 May 2023 15:04:11 +0530 Subject: [PATCH 033/571] - Added screenshots testcase for Icon Button --- .../commonui/IconButtonScreenShotTest.kt | 77 +++++++++++++++++++ .../commonui/TopBarScreenShotTest.kt | 5 +- 2 files changed, 80 insertions(+), 2 deletions(-) create mode 100644 common-ui/src/androidTest/java/com/tarkalabs/commonui/IconButtonScreenShotTest.kt diff --git a/common-ui/src/androidTest/java/com/tarkalabs/commonui/IconButtonScreenShotTest.kt b/common-ui/src/androidTest/java/com/tarkalabs/commonui/IconButtonScreenShotTest.kt new file mode 100644 index 00000000..5724ef22 --- /dev/null +++ b/common-ui/src/androidTest/java/com/tarkalabs/commonui/IconButtonScreenShotTest.kt @@ -0,0 +1,77 @@ +@file:OptIn(ExperimentalMaterial3Api::class) + +package com.tarkalabs.commonui + +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.ui.test.junit4.createComposeRule +import com.karumi.shot.ScreenshotTest +import com.tarkalabs.uicomponents.components.IconButton +import com.tarkalabs.uicomponents.components.IconButtonSize +import com.tarkalabs.uicomponents.components.IconButtonStyle +import com.tarkalabs.uicomponents.models.TarkaIcons +import org.junit.Rule +import org.junit.Test +import org.junit.runner.RunWith +import org.junit.runners.JUnit4 + +@RunWith(JUnit4::class) +class IconButtonScreenShotTest : ScreenshotTest { + + @get:Rule + val composeRule = createComposeRule() + + @Test + fun primaryIconButton() { + composeRule.setContent { + IconButton( + icon = TarkaIcons.ChevronRight, + buttonSize = IconButtonSize.XS, + iconButtonStyle = IconButtonStyle.PRIMARY, + ) + } + + compareScreenshot(composeRule) + } + + @Test + fun secondaryIconButton() { + composeRule.setContent { + IconButton( + icon = TarkaIcons.ChevronRight, + buttonSize = IconButtonSize.XS, + iconButtonStyle = IconButtonStyle.SECONDARY, + ) + + } + + compareScreenshot(composeRule) + } + + @Test + fun ghostIconButton() { + composeRule.setContent { + IconButton( + icon = TarkaIcons.ChevronRight, + buttonSize = IconButtonSize.XS, + iconButtonStyle = IconButtonStyle.GHOST, + ) + + } + + compareScreenshot(composeRule) + } + + @Test + fun outlineIconButton() { + composeRule.setContent { + IconButton( + icon = TarkaIcons.ChevronRight, + buttonSize = IconButtonSize.XS, + iconButtonStyle = IconButtonStyle.OUTLINE, + ) + + } + + compareScreenshot(composeRule) + } +} \ No newline at end of file diff --git a/common-ui/src/androidTest/java/com/tarkalabs/commonui/TopBarScreenShotTest.kt b/common-ui/src/androidTest/java/com/tarkalabs/commonui/TopBarScreenShotTest.kt index a8d93788..c9f9b41d 100644 --- a/common-ui/src/androidTest/java/com/tarkalabs/commonui/TopBarScreenShotTest.kt +++ b/common-ui/src/androidTest/java/com/tarkalabs/commonui/TopBarScreenShotTest.kt @@ -6,9 +6,9 @@ import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.ui.test.junit4.createComposeRule import com.karumi.shot.ScreenshotTest import com.tarkalabs.uicomponents.components.TopBar +import com.tarkalabs.uicomponents.models.TarkaIcons import org.junit.Rule import org.junit.Test -import com.tarkalabs.uicomponents.R import org.junit.runner.RunWith import org.junit.runners.JUnit4 @@ -18,6 +18,7 @@ class TopBarScreenShotTest : ScreenshotTest { @get:Rule val composeRule = createComposeRule() + @OptIn(ExperimentalMaterial3Api::class) @Test fun renderTopAppBarTextOnly() { composeRule.setContent { @@ -30,7 +31,7 @@ class TopBarScreenShotTest : ScreenshotTest { @Test fun renderTopAppBarTextWithIcon() { composeRule.setContent { - TopBar("Screenshot", navigationIcon = R.drawable.keyboard_arrow_right) + TopBar("Screenshot", navigationIcon = TarkaIcons.ArrowExport) } compareScreenshot(composeRule) From 1ab8115e887797477f1706ada55229f4d632500f Mon Sep 17 00:00:00 2001 From: AskNilesh Date: Wed, 17 May 2023 15:04:40 +0530 Subject: [PATCH 034/571] - Added screenshots testcase for Icon Button --- ....IconButtonScreenShotTest_ghostIconButton.png | Bin 0 -> 419 bytes ...conButtonScreenShotTest_outlineIconButton.png | Bin 0 -> 2217 bytes ...conButtonScreenShotTest_primaryIconButton.png | Bin 0 -> 1336 bytes ...nButtonScreenShotTest_secondaryIconButton.png | Bin 0 -> 1333 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 common-ui/screenshots/debug/com.tarkalabs.commonui.IconButtonScreenShotTest_ghostIconButton.png create mode 100644 common-ui/screenshots/debug/com.tarkalabs.commonui.IconButtonScreenShotTest_outlineIconButton.png create mode 100644 common-ui/screenshots/debug/com.tarkalabs.commonui.IconButtonScreenShotTest_primaryIconButton.png create mode 100644 common-ui/screenshots/debug/com.tarkalabs.commonui.IconButtonScreenShotTest_secondaryIconButton.png diff --git a/common-ui/screenshots/debug/com.tarkalabs.commonui.IconButtonScreenShotTest_ghostIconButton.png b/common-ui/screenshots/debug/com.tarkalabs.commonui.IconButtonScreenShotTest_ghostIconButton.png new file mode 100644 index 0000000000000000000000000000000000000000..35997f73296fb49ea97994f8417fd4b1d9b7b683 GIT binary patch literal 419 zcmV;U0bKrxP)hui~vv5qp2lrYksj?;+&;>P*4n4!#Et^7I1pU2aoU!O`-ix;ZJ|A#Ace+brf&|+21 zw}XfEdIXBXbzKKf+wJ&nPcUNI(!%o12AZb1+tG}q!kpl^VC*UQ=H-yr#Qt4t}`)bwDR6Z4sieg N002ovPDHLkV1i1syl?;j literal 0 HcmV?d00001 diff --git a/common-ui/screenshots/debug/com.tarkalabs.commonui.IconButtonScreenShotTest_outlineIconButton.png b/common-ui/screenshots/debug/com.tarkalabs.commonui.IconButtonScreenShotTest_outlineIconButton.png new file mode 100644 index 0000000000000000000000000000000000000000..72b8147d3f1a99066f8a69b4e26ec456ff31f125 GIT binary patch literal 2217 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 literal 0 HcmV?d00001 From c328905eb09123b878368d5fc083f4afea223cca Mon Sep 17 00:00:00 2001 From: AskNilesh Date: Wed, 17 May 2023 15:05:35 +0530 Subject: [PATCH 035/571] - Fixed typo --- .../java/com/tarkalabs/uicomponents/components/IconButton.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common-ui/src/main/java/com/tarkalabs/uicomponents/components/IconButton.kt b/common-ui/src/main/java/com/tarkalabs/uicomponents/components/IconButton.kt index ecbac90e..cf59fdaf 100644 --- a/common-ui/src/main/java/com/tarkalabs/uicomponents/components/IconButton.kt +++ b/common-ui/src/main/java/com/tarkalabs/uicomponents/components/IconButton.kt @@ -102,7 +102,7 @@ enum class IconButtonStyle { .width(12.dp) L, XL -> Modifier .size(24.dp) - .size(23.dp) + .size(24.dp) } when (iconButtonStyle) { From 5bae08cd12ff2db60fc6e7c43ac133ed5c196ecd Mon Sep 17 00:00:00 2001 From: Raja Jawahar Date: Wed, 17 May 2023 17:06:10 +0530 Subject: [PATCH 036/571] Package name modified to tarkaui --- .idea/gradle.xml | 2 +- example/build.gradle.kts | 2 +- settings.gradle.kts | 2 +- {common-ui => tarkaui}/.gitignore | 0 {common-ui => tarkaui}/build.gradle.kts | 6 +++--- {common-ui => tarkaui}/consumer-rules.pro | 0 {common-ui => tarkaui}/proguard-rules.pro | 0 {common-ui => tarkaui}/src/main/AndroidManifest.xml | 0 .../com/tarkalabs/commonui/components/TestComponents.kt | 0 .../src/main/java/com/tarkalabs/commonui/theme/Color.kt | 0 .../src/main/java/com/tarkalabs/commonui/theme/Shape.kt | 0 .../src/main/java/com/tarkalabs/commonui/theme/Theme.kt | 0 .../src/main/java/com/tarkalabs/commonui/theme/Type.kt | 0 13 files changed, 6 insertions(+), 6 deletions(-) rename {common-ui => tarkaui}/.gitignore (100%) rename {common-ui => tarkaui}/build.gradle.kts (93%) rename {common-ui => tarkaui}/consumer-rules.pro (100%) rename {common-ui => tarkaui}/proguard-rules.pro (100%) rename {common-ui => tarkaui}/src/main/AndroidManifest.xml (100%) rename {common-ui => tarkaui}/src/main/java/com/tarkalabs/commonui/components/TestComponents.kt (100%) rename {common-ui => tarkaui}/src/main/java/com/tarkalabs/commonui/theme/Color.kt (100%) rename {common-ui => tarkaui}/src/main/java/com/tarkalabs/commonui/theme/Shape.kt (100%) rename {common-ui => tarkaui}/src/main/java/com/tarkalabs/commonui/theme/Theme.kt (100%) rename {common-ui => tarkaui}/src/main/java/com/tarkalabs/commonui/theme/Type.kt (100%) diff --git a/.idea/gradle.xml b/.idea/gradle.xml index aef971c8..7dc2aa0b 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -10,8 +10,8 @@ diff --git a/example/build.gradle.kts b/example/build.gradle.kts index 66fefc57..5234dc70 100644 --- a/example/build.gradle.kts +++ b/example/build.gradle.kts @@ -49,7 +49,7 @@ android { dependencies { val composeUiVersion = "1.4.0" - implementation(project(":common-ui")) + implementation(project(":tarkaui")) implementation("androidx.core:core-ktx:1.10.0") implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.6.1") implementation("androidx.activity:activity-compose:1.7.0") diff --git a/settings.gradle.kts b/settings.gradle.kts index ad14a738..49a19d22 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -18,4 +18,4 @@ dependencyResolutionManagement { } rootProject.name = "eam360-ui-android" include(":example") -include(":common-ui") +include(":tarkaui") diff --git a/common-ui/.gitignore b/tarkaui/.gitignore similarity index 100% rename from common-ui/.gitignore rename to tarkaui/.gitignore diff --git a/common-ui/build.gradle.kts b/tarkaui/build.gradle.kts similarity index 93% rename from common-ui/build.gradle.kts rename to tarkaui/build.gradle.kts index d6d97709..c216ca7b 100644 --- a/common-ui/build.gradle.kts +++ b/tarkaui/build.gradle.kts @@ -46,7 +46,7 @@ android { } } -fun getLibraryArtifactId() = "uicomponents" +fun getLibraryArtifactId() = "tarkaui" publishing { publications { @@ -54,7 +54,7 @@ publishing { run { groupId = "com.tarkalabs" artifactId = getLibraryArtifactId() - version = "0.9-alpha" + version = "1.0-alpha" artifact("$buildDir/outputs/aar/${getLibraryArtifactId()}-release.aar") } } @@ -63,7 +63,7 @@ publishing { repositories { maven { name = "GitHubPackages" - url = uri("https://maven.pkg.github.com/tarkalabs/eam360-ui-android") + url = uri("https://maven.pkg.github.com/tarkalabs/tarka-ui-kit-android") credentials { username = System.getenv("GITHUB_USER") password = System.getenv("GITHUB_TOKEN") diff --git a/common-ui/consumer-rules.pro b/tarkaui/consumer-rules.pro similarity index 100% rename from common-ui/consumer-rules.pro rename to tarkaui/consumer-rules.pro diff --git a/common-ui/proguard-rules.pro b/tarkaui/proguard-rules.pro similarity index 100% rename from common-ui/proguard-rules.pro rename to tarkaui/proguard-rules.pro diff --git a/common-ui/src/main/AndroidManifest.xml b/tarkaui/src/main/AndroidManifest.xml similarity index 100% rename from common-ui/src/main/AndroidManifest.xml rename to tarkaui/src/main/AndroidManifest.xml diff --git a/common-ui/src/main/java/com/tarkalabs/commonui/components/TestComponents.kt b/tarkaui/src/main/java/com/tarkalabs/commonui/components/TestComponents.kt similarity index 100% rename from common-ui/src/main/java/com/tarkalabs/commonui/components/TestComponents.kt rename to tarkaui/src/main/java/com/tarkalabs/commonui/components/TestComponents.kt diff --git a/common-ui/src/main/java/com/tarkalabs/commonui/theme/Color.kt b/tarkaui/src/main/java/com/tarkalabs/commonui/theme/Color.kt similarity index 100% rename from common-ui/src/main/java/com/tarkalabs/commonui/theme/Color.kt rename to tarkaui/src/main/java/com/tarkalabs/commonui/theme/Color.kt diff --git a/common-ui/src/main/java/com/tarkalabs/commonui/theme/Shape.kt b/tarkaui/src/main/java/com/tarkalabs/commonui/theme/Shape.kt similarity index 100% rename from common-ui/src/main/java/com/tarkalabs/commonui/theme/Shape.kt rename to tarkaui/src/main/java/com/tarkalabs/commonui/theme/Shape.kt diff --git a/common-ui/src/main/java/com/tarkalabs/commonui/theme/Theme.kt b/tarkaui/src/main/java/com/tarkalabs/commonui/theme/Theme.kt similarity index 100% rename from common-ui/src/main/java/com/tarkalabs/commonui/theme/Theme.kt rename to tarkaui/src/main/java/com/tarkalabs/commonui/theme/Theme.kt diff --git a/common-ui/src/main/java/com/tarkalabs/commonui/theme/Type.kt b/tarkaui/src/main/java/com/tarkalabs/commonui/theme/Type.kt similarity index 100% rename from common-ui/src/main/java/com/tarkalabs/commonui/theme/Type.kt rename to tarkaui/src/main/java/com/tarkalabs/commonui/theme/Type.kt From ecabdcde66a4be079cfa7723c2f1dc1e07afb277 Mon Sep 17 00:00:00 2001 From: Raja Jawahar Date: Wed, 17 May 2023 19:03:58 +0530 Subject: [PATCH 037/571] package mismatch handled --- .idea/.name | 1 + .idea/deploymentTargetDropDown.xml | 17 ++++++ .idea/gradle.xml | 21 +++++++ .idea/misc.xml | 7 +++ ...geScreenShotTest_test_badge_with_count.png | Bin 1627 -> 0 bytes ...reenShotTest_test_badge_with_out_count.png | Bin 812 -> 0 bytes ...ScreenShotTest_renderTopAppBarTextOnly.png | Bin 8029 -> 0 bytes ...enShotTest_renderTopAppBarTextWithIcon.png | Bin 8273 -> 0 bytes .../java/com/tarkalabs/ui/SettingActivity.kt | 53 ++++++++---------- .../tarkalabs/commonui/AndroidManifest.xml | 0 .../tarkalabs/commonui/BadgeScreenShotTest.kt | 0 .../commonui/TopBarScreenShotTest.kt | 0 .../uicomponents/components/Badge.kt | 0 .../uicomponents/components/IconButton.kt | 12 ++-- .../uicomponents/components/NavigationRows.kt | 0 .../uicomponents/components/Spacers.kt | 0 .../uicomponents/components/TextRow.kt | 0 .../uicomponents/components/TopBar.kt | 0 .../uicomponents/models/TarkaIcon.kt | 0 .../tarkalabs/uicomponents/theme/DarkColor.kt | 0 .../uicomponents/theme/LightColor.kt | 0 .../com/tarkalabs/uicomponents/theme/Shape.kt | 0 .../com/tarkalabs/uicomponents/theme/Theme.kt | 0 .../com/tarkalabs/uicomponents/theme/Type.kt | 0 .../res/drawable/keyboard_arrow_right.xml | 0 .../src/main/res/font/inter_bold.ttf | Bin .../src/main/res/font/inter_light.ttf | Bin .../src/main/res/font/inter_regular.ttf | Bin .../src/main/res/font/inter_semibold.ttf | Bin 29 files changed, 73 insertions(+), 38 deletions(-) create mode 100644 .idea/.name create mode 100644 .idea/deploymentTargetDropDown.xml create mode 100644 .idea/gradle.xml create mode 100644 .idea/misc.xml delete mode 100644 common-ui/screenshots/debug/com.tarkalabs.commonui.BadgeScreenShotTest_test_badge_with_count.png delete mode 100644 common-ui/screenshots/debug/com.tarkalabs.commonui.BadgeScreenShotTest_test_badge_with_out_count.png delete mode 100644 common-ui/screenshots/debug/com.tarkalabs.commonui.TopBarScreenShotTest_renderTopAppBarTextOnly.png delete mode 100644 common-ui/screenshots/debug/com.tarkalabs.commonui.TopBarScreenShotTest_renderTopAppBarTextWithIcon.png rename {common-ui/src => tarkaui/src/main}/androidTest/java/com/tarkalabs/commonui/AndroidManifest.xml (100%) rename {common-ui/src => tarkaui/src/main}/androidTest/java/com/tarkalabs/commonui/BadgeScreenShotTest.kt (100%) rename {common-ui/src => tarkaui/src/main}/androidTest/java/com/tarkalabs/commonui/TopBarScreenShotTest.kt (100%) rename {common-ui => tarkaui}/src/main/java/com/tarkalabs/uicomponents/components/Badge.kt (100%) rename {common-ui => tarkaui}/src/main/java/com/tarkalabs/uicomponents/components/IconButton.kt (90%) rename {common-ui => tarkaui}/src/main/java/com/tarkalabs/uicomponents/components/NavigationRows.kt (100%) rename {common-ui => tarkaui}/src/main/java/com/tarkalabs/uicomponents/components/Spacers.kt (100%) rename {common-ui => tarkaui}/src/main/java/com/tarkalabs/uicomponents/components/TextRow.kt (100%) rename {common-ui => tarkaui}/src/main/java/com/tarkalabs/uicomponents/components/TopBar.kt (100%) rename {common-ui => tarkaui}/src/main/java/com/tarkalabs/uicomponents/models/TarkaIcon.kt (100%) rename {common-ui => tarkaui}/src/main/java/com/tarkalabs/uicomponents/theme/DarkColor.kt (100%) rename {common-ui => tarkaui}/src/main/java/com/tarkalabs/uicomponents/theme/LightColor.kt (100%) rename {common-ui => tarkaui}/src/main/java/com/tarkalabs/uicomponents/theme/Shape.kt (100%) rename {common-ui => tarkaui}/src/main/java/com/tarkalabs/uicomponents/theme/Theme.kt (100%) rename {common-ui => tarkaui}/src/main/java/com/tarkalabs/uicomponents/theme/Type.kt (100%) rename {common-ui => tarkaui}/src/main/res/drawable/keyboard_arrow_right.xml (100%) rename {common-ui => tarkaui}/src/main/res/font/inter_bold.ttf (100%) rename {common-ui => tarkaui}/src/main/res/font/inter_light.ttf (100%) rename {common-ui => tarkaui}/src/main/res/font/inter_regular.ttf (100%) rename {common-ui => tarkaui}/src/main/res/font/inter_semibold.ttf (100%) diff --git a/.idea/.name b/.idea/.name new file mode 100644 index 00000000..ee5d4906 --- /dev/null +++ b/.idea/.name @@ -0,0 +1 @@ +eam360-ui-android \ No newline at end of file diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml new file mode 100644 index 00000000..5d6140c2 --- /dev/null +++ b/.idea/deploymentTargetDropDown.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 00000000..4a352bba --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,21 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 00000000..cb1a6338 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/common-ui/screenshots/debug/com.tarkalabs.commonui.BadgeScreenShotTest_test_badge_with_count.png b/common-ui/screenshots/debug/com.tarkalabs.commonui.BadgeScreenShotTest_test_badge_with_count.png deleted file mode 100644 index 80f6a3db04752914ce94ba435109992f9a79d022..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1627 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 fC$s-Ahl@Ygd6nR!) diff --git a/common-ui/screenshots/debug/com.tarkalabs.commonui.TopBarScreenShotTest_renderTopAppBarTextWithIcon.png b/common-ui/screenshots/debug/com.tarkalabs.commonui.TopBarScreenShotTest_renderTopAppBarTextWithIcon.png deleted file mode 100644 index 24a90a5eda63f900cd965620b058c1d6d46c61b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8273 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 AF8}}l diff --git a/example/src/main/java/com/tarkalabs/ui/SettingActivity.kt b/example/src/main/java/com/tarkalabs/ui/SettingActivity.kt index 92fc41cb..2029e1c9 100644 --- a/example/src/main/java/com/tarkalabs/ui/SettingActivity.kt +++ b/example/src/main/java/com/tarkalabs/ui/SettingActivity.kt @@ -24,12 +24,15 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.res.painterResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import com.tarkalabs.uicomponents.components.* +import com.tarkalabs.uicomponents.components.GhostIconButton +import com.tarkalabs.uicomponents.components.NavigationRow +import com.tarkalabs.uicomponents.components.TextRow +import com.tarkalabs.uicomponents.components.TopBar +import com.tarkalabs.uicomponents.components.VerticalSpacer +import com.tarkalabs.uicomponents.models.TarkaIcon import com.tarkalabs.uicomponents.theme.ColorUtilityOutline import com.tarkalabs.uicomponents.theme.Eam360Theme import com.tarkalabs.uicomponents.theme.EamTheme -import com.tarkalabs.ui.R.drawable -import com.tarkalabs.uicomponents.models.TarkaIcon @OptIn(ExperimentalMaterial3Api::class) class SettingActivity : ComponentActivity() { @@ -45,7 +48,7 @@ class SettingActivity : ComponentActivity() { @Composable @Preview(showSystemUi = true) fun SettingScreen() { Scaffold(topBar = { TopBar( - title = "Settings", navigationIcon = TarkaIcon(drawable.arrow_back, "Back Arrow") + title = "Settings", navigationIcon = TarkaIcon(R.drawable.arrow_back, "Back Arrow") ) }, containerColor = MaterialTheme.colorScheme.surface) { paddingValues -> Column(modifier = Modifier.padding(paddingValues)) { @@ -56,7 +59,7 @@ class SettingActivity : ComponentActivity() { TextRow( title = "Role", description = "Supervisor", - infoIcon = TarkaIcon(drawable.keyboard_arrow_right, "Role Change"), + infoIcon = TarkaIcon(R.drawable.keyboard_arrow_right, "Role Change"), modifier = Modifier.fillMaxWidth(), paddingValues = PaddingValues(horizontal = 24.dp) ) @@ -64,31 +67,23 @@ class SettingActivity : ComponentActivity() { Divider() VerticalSpacer(space = 16) Column(Modifier.padding(horizontal = 16.dp)) { - NavigationRow( - title = "Transaction errors", + NavigationRow(title = "Transaction errors", badgeCount = 3, showRightArrow = true, - leadingIcon = TarkaIcon(drawable.ic_transaction, "Transaction Errors"), - onClick = {} - ) - NavigationRow( - title = "Sync status", + leadingIcon = TarkaIcon(R.drawable.ic_transaction, "Transaction Errors"), + onClick = {}) + NavigationRow(title = "Sync status", showRightArrow = true, - leadingIcon = TarkaIcon(drawable.checkmark_starburst, "Sync Status"), - onClick = {} - ) - NavigationRow( - title = "Tabs configuration", + leadingIcon = TarkaIcon(R.drawable.checkmark_starburst, "Sync Status"), + onClick = {}) + NavigationRow(title = "Tabs configuration", showRightArrow = true, - leadingIcon = TarkaIcon(drawable.tabs, "Tabs Configuration"), - onClick = {} - ) - NavigationRow( - title = "Export log", + leadingIcon = TarkaIcon(R.drawable.tabs, "Tabs Configuration"), + onClick = {}) + NavigationRow(title = "Export log", showRightArrow = true, - leadingIcon = TarkaIcon(drawable.arrow_export, "Export Log"), - onClick = {} - ) + leadingIcon = TarkaIcon(R.drawable.arrow_export, "Export Log"), + onClick = {}) } VerticalSpacer(space = 16) } @@ -106,7 +101,7 @@ class SettingActivity : ComponentActivity() { verticalArrangement = Arrangement.Center, horizontalAlignment = Alignment.CenterHorizontally ) { Image( - painter = painterResource(id = drawable.avatar), + painter = painterResource(id = R.drawable.avatar), contentDescription = null, modifier = Modifier .clip(CircleShape) @@ -119,13 +114,11 @@ class SettingActivity : ComponentActivity() { color = MaterialTheme.colorScheme.onSurface ) Text( - text = "BEDFORD", - style = Eam360Theme.typography.body7, - color = ColorUtilityOutline + text = "BEDFORD", style = Eam360Theme.typography.body7, color = ColorUtilityOutline ) } Box(modifier = Modifier.align(Alignment.TopEnd)) { - GhostIconButton(icon = drawable.ic_refresh, contentDescription = "", onIconClick = {}) + GhostIconButton(icon = R.drawable.ic_refresh, contentDescription = "", onIconClick = {}) } } } diff --git a/common-ui/src/androidTest/java/com/tarkalabs/commonui/AndroidManifest.xml b/tarkaui/src/main/androidTest/java/com/tarkalabs/commonui/AndroidManifest.xml similarity index 100% rename from common-ui/src/androidTest/java/com/tarkalabs/commonui/AndroidManifest.xml rename to tarkaui/src/main/androidTest/java/com/tarkalabs/commonui/AndroidManifest.xml diff --git a/common-ui/src/androidTest/java/com/tarkalabs/commonui/BadgeScreenShotTest.kt b/tarkaui/src/main/androidTest/java/com/tarkalabs/commonui/BadgeScreenShotTest.kt similarity index 100% rename from common-ui/src/androidTest/java/com/tarkalabs/commonui/BadgeScreenShotTest.kt rename to tarkaui/src/main/androidTest/java/com/tarkalabs/commonui/BadgeScreenShotTest.kt diff --git a/common-ui/src/androidTest/java/com/tarkalabs/commonui/TopBarScreenShotTest.kt b/tarkaui/src/main/androidTest/java/com/tarkalabs/commonui/TopBarScreenShotTest.kt similarity index 100% rename from common-ui/src/androidTest/java/com/tarkalabs/commonui/TopBarScreenShotTest.kt rename to tarkaui/src/main/androidTest/java/com/tarkalabs/commonui/TopBarScreenShotTest.kt diff --git a/common-ui/src/main/java/com/tarkalabs/uicomponents/components/Badge.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/Badge.kt similarity index 100% rename from common-ui/src/main/java/com/tarkalabs/uicomponents/components/Badge.kt rename to tarkaui/src/main/java/com/tarkalabs/uicomponents/components/Badge.kt diff --git a/common-ui/src/main/java/com/tarkalabs/uicomponents/components/IconButton.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/IconButton.kt similarity index 90% rename from common-ui/src/main/java/com/tarkalabs/uicomponents/components/IconButton.kt rename to tarkaui/src/main/java/com/tarkalabs/uicomponents/components/IconButton.kt index 6f14b8ac..db8282ab 100644 --- a/common-ui/src/main/java/com/tarkalabs/uicomponents/components/IconButton.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/IconButton.kt @@ -64,8 +64,7 @@ enum class IconButtonStyles { colors = colors ) { Icon( - painter = painterResource(id = icon), - contentDescription = contentDescription + painter = painterResource(id = icon), contentDescription = contentDescription ) } } @@ -86,8 +85,7 @@ enum class IconButtonStyles { colors = colors ) { Icon( - painter = painterResource(id = icon), - contentDescription = contentDescription + painter = painterResource(id = icon), contentDescription = contentDescription ) } } @@ -108,8 +106,7 @@ enum class IconButtonStyles { colors = colors ) { Icon( - painter = painterResource(id = icon), - contentDescription = contentDescription + painter = painterResource(id = icon), contentDescription = contentDescription ) } } @@ -130,8 +127,7 @@ enum class IconButtonStyles { .size(buttonSize.size), colors = colors ) { Icon( - painter = painterResource(id = icon), - contentDescription = contentDescription + painter = painterResource(id = icon), contentDescription = contentDescription ) } } diff --git a/common-ui/src/main/java/com/tarkalabs/uicomponents/components/NavigationRows.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/NavigationRows.kt similarity index 100% rename from common-ui/src/main/java/com/tarkalabs/uicomponents/components/NavigationRows.kt rename to tarkaui/src/main/java/com/tarkalabs/uicomponents/components/NavigationRows.kt diff --git a/common-ui/src/main/java/com/tarkalabs/uicomponents/components/Spacers.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/Spacers.kt similarity index 100% rename from common-ui/src/main/java/com/tarkalabs/uicomponents/components/Spacers.kt rename to tarkaui/src/main/java/com/tarkalabs/uicomponents/components/Spacers.kt diff --git a/common-ui/src/main/java/com/tarkalabs/uicomponents/components/TextRow.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TextRow.kt similarity index 100% rename from common-ui/src/main/java/com/tarkalabs/uicomponents/components/TextRow.kt rename to tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TextRow.kt diff --git a/common-ui/src/main/java/com/tarkalabs/uicomponents/components/TopBar.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TopBar.kt similarity index 100% rename from common-ui/src/main/java/com/tarkalabs/uicomponents/components/TopBar.kt rename to tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TopBar.kt diff --git a/common-ui/src/main/java/com/tarkalabs/uicomponents/models/TarkaIcon.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/models/TarkaIcon.kt similarity index 100% rename from common-ui/src/main/java/com/tarkalabs/uicomponents/models/TarkaIcon.kt rename to tarkaui/src/main/java/com/tarkalabs/uicomponents/models/TarkaIcon.kt diff --git a/common-ui/src/main/java/com/tarkalabs/uicomponents/theme/DarkColor.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/DarkColor.kt similarity index 100% rename from common-ui/src/main/java/com/tarkalabs/uicomponents/theme/DarkColor.kt rename to tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/DarkColor.kt diff --git a/common-ui/src/main/java/com/tarkalabs/uicomponents/theme/LightColor.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/LightColor.kt similarity index 100% rename from common-ui/src/main/java/com/tarkalabs/uicomponents/theme/LightColor.kt rename to tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/LightColor.kt diff --git a/common-ui/src/main/java/com/tarkalabs/uicomponents/theme/Shape.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Shape.kt similarity index 100% rename from common-ui/src/main/java/com/tarkalabs/uicomponents/theme/Shape.kt rename to tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Shape.kt diff --git a/common-ui/src/main/java/com/tarkalabs/uicomponents/theme/Theme.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Theme.kt similarity index 100% rename from common-ui/src/main/java/com/tarkalabs/uicomponents/theme/Theme.kt rename to tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Theme.kt diff --git a/common-ui/src/main/java/com/tarkalabs/uicomponents/theme/Type.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Type.kt similarity index 100% rename from common-ui/src/main/java/com/tarkalabs/uicomponents/theme/Type.kt rename to tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Type.kt diff --git a/common-ui/src/main/res/drawable/keyboard_arrow_right.xml b/tarkaui/src/main/res/drawable/keyboard_arrow_right.xml similarity index 100% rename from common-ui/src/main/res/drawable/keyboard_arrow_right.xml rename to tarkaui/src/main/res/drawable/keyboard_arrow_right.xml diff --git a/common-ui/src/main/res/font/inter_bold.ttf b/tarkaui/src/main/res/font/inter_bold.ttf similarity index 100% rename from common-ui/src/main/res/font/inter_bold.ttf rename to tarkaui/src/main/res/font/inter_bold.ttf diff --git a/common-ui/src/main/res/font/inter_light.ttf b/tarkaui/src/main/res/font/inter_light.ttf similarity index 100% rename from common-ui/src/main/res/font/inter_light.ttf rename to tarkaui/src/main/res/font/inter_light.ttf diff --git a/common-ui/src/main/res/font/inter_regular.ttf b/tarkaui/src/main/res/font/inter_regular.ttf similarity index 100% rename from common-ui/src/main/res/font/inter_regular.ttf rename to tarkaui/src/main/res/font/inter_regular.ttf diff --git a/common-ui/src/main/res/font/inter_semibold.ttf b/tarkaui/src/main/res/font/inter_semibold.ttf similarity index 100% rename from common-ui/src/main/res/font/inter_semibold.ttf rename to tarkaui/src/main/res/font/inter_semibold.ttf From 96a0333526be7d2da236a38738720a953845dec4 Mon Sep 17 00:00:00 2001 From: Raja Jawahar Date: Wed, 17 May 2023 19:35:40 +0530 Subject: [PATCH 038/571] Settings Activity removed --- .../src/main/java/UIComponentListActivity.kt | 11 ++ .../java/com/tarkalabs/ui/SettingActivity.kt | 125 ------------------ 2 files changed, 11 insertions(+), 125 deletions(-) create mode 100644 example/src/main/java/UIComponentListActivity.kt delete mode 100644 example/src/main/java/com/tarkalabs/ui/SettingActivity.kt diff --git a/example/src/main/java/UIComponentListActivity.kt b/example/src/main/java/UIComponentListActivity.kt new file mode 100644 index 00000000..953c0d0a --- /dev/null +++ b/example/src/main/java/UIComponentListActivity.kt @@ -0,0 +1,11 @@ +import android.os.Bundle +import androidx.activity.ComponentActivity +import androidx.activity.compose.setContent + +class UIComponentListActivity : ComponentActivity() { + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContent {} + } +} \ No newline at end of file diff --git a/example/src/main/java/com/tarkalabs/ui/SettingActivity.kt b/example/src/main/java/com/tarkalabs/ui/SettingActivity.kt deleted file mode 100644 index 2029e1c9..00000000 --- a/example/src/main/java/com/tarkalabs/ui/SettingActivity.kt +++ /dev/null @@ -1,125 +0,0 @@ -package com.tarkalabs.ui - -import android.os.Bundle -import androidx.activity.ComponentActivity -import androidx.activity.compose.setContent -import androidx.compose.foundation.Image -import androidx.compose.foundation.layout.Arrangement -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.PaddingValues -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.size -import androidx.compose.foundation.shape.CircleShape -import androidx.compose.material3.Divider -import androidx.compose.material3.ExperimentalMaterial3Api -import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.Scaffold -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.clip -import androidx.compose.ui.res.painterResource -import androidx.compose.ui.tooling.preview.Preview -import androidx.compose.ui.unit.dp -import com.tarkalabs.uicomponents.components.GhostIconButton -import com.tarkalabs.uicomponents.components.NavigationRow -import com.tarkalabs.uicomponents.components.TextRow -import com.tarkalabs.uicomponents.components.TopBar -import com.tarkalabs.uicomponents.components.VerticalSpacer -import com.tarkalabs.uicomponents.models.TarkaIcon -import com.tarkalabs.uicomponents.theme.ColorUtilityOutline -import com.tarkalabs.uicomponents.theme.Eam360Theme -import com.tarkalabs.uicomponents.theme.EamTheme - -@OptIn(ExperimentalMaterial3Api::class) -class SettingActivity : ComponentActivity() { - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - setContent { - EamTheme { - SettingScreen() - } - } - } - - @Composable @Preview(showSystemUi = true) fun SettingScreen() { - Scaffold(topBar = { - TopBar( - title = "Settings", navigationIcon = TarkaIcon(R.drawable.arrow_back, "Back Arrow") - ) - }, containerColor = MaterialTheme.colorScheme.surface) { paddingValues -> - Column(modifier = Modifier.padding(paddingValues)) { - Divider() - VerticalSpacer(space = 24) - SettingHeader() - VerticalSpacer(space = 16) - TextRow( - title = "Role", - description = "Supervisor", - infoIcon = TarkaIcon(R.drawable.keyboard_arrow_right, "Role Change"), - modifier = Modifier.fillMaxWidth(), - paddingValues = PaddingValues(horizontal = 24.dp) - ) - VerticalSpacer(space = 16) - Divider() - VerticalSpacer(space = 16) - Column(Modifier.padding(horizontal = 16.dp)) { - NavigationRow(title = "Transaction errors", - badgeCount = 3, - showRightArrow = true, - leadingIcon = TarkaIcon(R.drawable.ic_transaction, "Transaction Errors"), - onClick = {}) - NavigationRow(title = "Sync status", - showRightArrow = true, - leadingIcon = TarkaIcon(R.drawable.checkmark_starburst, "Sync Status"), - onClick = {}) - NavigationRow(title = "Tabs configuration", - showRightArrow = true, - leadingIcon = TarkaIcon(R.drawable.tabs, "Tabs Configuration"), - onClick = {}) - NavigationRow(title = "Export log", - showRightArrow = true, - leadingIcon = TarkaIcon(R.drawable.arrow_export, "Export Log"), - onClick = {}) - } - VerticalSpacer(space = 16) - } - } - } - - @Composable fun SettingHeader() { - Box( - contentAlignment = Alignment.Center, - modifier = Modifier - .fillMaxWidth() - .padding(horizontal = 24.dp) - ) { - Column( - verticalArrangement = Arrangement.Center, horizontalAlignment = Alignment.CenterHorizontally - ) { - Image( - painter = painterResource(id = R.drawable.avatar), - contentDescription = null, - modifier = Modifier - .clip(CircleShape) - .size(96.dp) - ) - VerticalSpacer(space = 16) - Text( - text = "Ronald Richards", - style = Eam360Theme.typography.heading6, - color = MaterialTheme.colorScheme.onSurface - ) - Text( - text = "BEDFORD", style = Eam360Theme.typography.body7, color = ColorUtilityOutline - ) - } - Box(modifier = Modifier.align(Alignment.TopEnd)) { - GhostIconButton(icon = R.drawable.ic_refresh, contentDescription = "", onIconClick = {}) - } - } - } -} \ No newline at end of file From 673620887a729de36b720b39b78f1f66dcd71c52 Mon Sep 17 00:00:00 2001 From: Raja Jawahar Date: Wed, 17 May 2023 20:50:53 +0530 Subject: [PATCH 039/571] Package name modified to tarkaui --- ...BadgeScreenShotTest_test_badge_with_count.png | Bin 0 -> 1627 bytes ...eScreenShotTest_test_badge_with_out_count.png | Bin 0 -> 812 bytes ...BarScreenShotTest_renderTopAppBarTextOnly.png | Bin 0 -> 7754 bytes ...creenShotTest_renderTopAppBarTextWithIcon.png | Bin 0 -> 7954 bytes .../tarkalabs/uicomponents}/AndroidManifest.xml | 1 - .../uicomponents}/BadgeScreenShotTest.kt | 2 -- .../uicomponents}/TopBarScreenShotTest.kt | 15 +++++---------- 7 files changed, 5 insertions(+), 13 deletions(-) create mode 100644 tarkaui/screenshots/debug/BadgeScreenShotTest_test_badge_with_count.png create mode 100644 tarkaui/screenshots/debug/BadgeScreenShotTest_test_badge_with_out_count.png create mode 100644 tarkaui/screenshots/debug/TopBarScreenShotTest_renderTopAppBarTextOnly.png create mode 100644 tarkaui/screenshots/debug/TopBarScreenShotTest_renderTopAppBarTextWithIcon.png rename tarkaui/src/{main/androidTest/java/com/tarkalabs/commonui => androidTest/java/com/tarkalabs/uicomponents}/AndroidManifest.xml (99%) rename tarkaui/src/{main/androidTest/java/com/tarkalabs/commonui => androidTest/java/com/tarkalabs/uicomponents}/BadgeScreenShotTest.kt (96%) rename tarkaui/src/{main/androidTest/java/com/tarkalabs/commonui => androidTest/java/com/tarkalabs/uicomponents}/TopBarScreenShotTest.kt (72%) diff --git a/tarkaui/screenshots/debug/BadgeScreenShotTest_test_badge_with_count.png b/tarkaui/screenshots/debug/BadgeScreenShotTest_test_badge_with_count.png new file mode 100644 index 0000000000000000000000000000000000000000..80f6a3db04752914ce94ba435109992f9a79d022 GIT binary patch literal 1627 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 Ca1`$V literal 0 HcmV?d00001 diff --git a/tarkaui/screenshots/debug/TopBarScreenShotTest_renderTopAppBarTextWithIcon.png b/tarkaui/screenshots/debug/TopBarScreenShotTest_renderTopAppBarTextWithIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..d2b525b0539f1e8efacea28e610b65aa22a1efe5 GIT binary patch literal 7954 zcmeHM(C@4sy#Ha}Zqf1dx>6|b^y1N}EAT?lg$B+_< z!A6Y{&%odF2RtvHcfU9LoSpOioVd?@-`90t=gTu~6^a{7H%LfGDAZJ+=#r3-Nf6t4 z*RB$OuSlBBlaK%=)t)H4@SNJ5CHJKro$B1-rJ}tIqnGzKpnWhK>=vJMf9OgaN2BG( z0mKWtA^5i08Y>;2zI?XY^L!3f;0Jc9tmWBN3z10~_(pKm!f8_)NZzIbR9RWME^{Wi zDoNTI$#N6s9KG#4&i1G_fQq;-2}xiUpZpnvGa-$1h5Y(0O~9d39raeC3#R|ymVXV z0v{L4#W;J@;WsU^W4NcP1=gxNA3=K2o4khk&iM@CLN;^S?ZXgt|F+fVbJLKJe3s)$ zxE9HiToyNQE$nU~7Pa5pMtLz3*zOE!-UcRLyQNCsvQ2x@hc+<^;xv>Ox<3AlOL}IN zTu}AOMSnX(v;C)2Q}xAtDmn`BL@OG{q8UEal)(VKDU-x^PN(A(9X#-KzGJR(A?cc6djgHrB z7X+VhORF1D@_hWai7!Cup|l>E@@sAZB+=*BOhTe+e~IJ7?oJoqzp1rXp`UNaNL~!d z>n;k^TKvZf&bOTEuPD8^7zkXXcD`tkbaJBqH6m30a~hV&z{?k15&%;2i-xoGrGMr^ zdy@UTfR>$W=blEq>;F#l|7jytkX}+-iTc$_={TAKRmiYu|SN=GL&@j=JY^v}>2fc7XgDBxEtb z&Pe!4PBWBUIZ|k>bLq0(;|mYX;6Q(V(iVOtls++Fyg&~Y#ToJO((R)euo#Zp60j0sD19uG<2jP z$l7^72JV^9@?Gy%ZTeDKA$8Pu@7}jY#wAGC<5ZJG?6@}Uzp+Schx%6fH?HAdXQB)$ ztgd@yn#pKCCQdv151jbh^71+OqUu9?~_`F70!Zm0;_M?S(PO!K_D`+t$Q$ z`|$$4wV`a>M2V7a!b4LYrC`c<4H(eJkxk06?nR;QuimaX3eLI@>fTRGe8fu9Gc5^Y2I@W)Qx3jK^Vr!OYe749pguTtw_O2@cMs&&E=_ zojGcYwZ4E-^DO7r!^28o-FLNiIQoA<9H`K;5KNqXV-nH%<8(6j`;;*k`fs5#$ zLH=y9l<>hL0LXnSE-hdVl2g=3k(`ewb++*EZ;$n^LxuYWuSRZ%Ct!PamoYEYpswNwnhQa+^U+(bs`3D6F ztM;=$LD=56HH6S-LXr2m9hr?$t$Aq{-<8!)dq?& zyv>!r>%k_aYNeH%Aos4VS)X2q248#(8TeYlOuegGddSUgJ#G#4g;t%T<0IK*QRJT4 zOzNE1YKiIC{Gi|8f%2|XT-uo`lD-cwL`L)zQu2Etm3FKYaG$Nl&eGLE<;hhCeIK)i z_f6um)#=jKQzD6Ce!(+!@7gR8VlLH!XFI%UNoj1}dEXPU6^@BQg0ctL_y^W7<4mC6 z(Jl{qKzXz4K&88GXED=pJRP*!e*#z()Jc`n%0ZQ};TGCL`sS&xxR{sdYbA+0*aYvj zEBj(l?x`YGpRY+Y%~z@YfMV_u4loCv8$Znh;(^Ua>dFyJ+@l5h@u{;2jj$7YZZncDmldOL9yN4jR4K6vy`K|KJ zu4qmkmb-GVGxEttN_E&=Pw*P0uNynSy~%5POlLc}X{YraY@TRRyYZar7sa}w9gm&* zrl8o-aq~{kTb6Q%>^-O>sS9k8Z&B!4@HE^)yHhtQ=4wi$i-#PYAo?FHoYkxNHZ1DYcqjDEB zZNMbv*;cCTrHDagk~Z2Di@Y7{&7C(bcga3pvd=>$%g*lp_|lygaLSi1<9#IaawlCW zB>N>?Ot;z0bZxj0mZg~}q+hD#;~?^`QEVFgGlg>9yU`tzCa2W8c4g1*VGHY!}^w(JP=wIi~Hz`&rWps2Q-XXzou9!1c+Rvao`NQw0~T&%^o z7Q(RJiGs_SmzdOZWGY8Q`E2c!u726S`dOZWl8#y<^(sglc~%&pRj%>+7ilB4Wmc?qKr&PfJ4ntkao zZO1oXH|O1-tzkeUYsp39NGP+nX z2)I01VI2=hPnX3Qhg|#POd4RvKGI~VQaUXR?tge&ZZ|4REmqkdDvE`6y$`3P^W6SP z{^nt8(g4BL1K(rKDB~WsX1xHUh+640x3HPsvH98h)U1u7c=LI+x^;IfD3a{TEblo+ z>KGJP1XCLYWoWJq>8ATiHb*=UNwIZe53tiox*p4;Hb2*xdD4h!I+N{i&fJdGNiw<{ z59CzzpH8Rdcc(ln;9iKd~NK;>+1N z{lgh~SQP*%b9g>@&B!6cew05(##n6lraWc{A9pZh1H(5pzn^aF6E2S&Cs&({mr0}p3XD}VEp+wX^4 z&T22EL7UIeQuo<$1j0@@2gzJ=FsQGjc=PMu@~M$xz3JY5*RzuY6~j_d@s2QNhY#01 z?(k^sg3tp=Z2aK<2 z>aJzO-Z*Xum{fHck?5_*hcSw(3t6dR$_0pw2Rrv&AqHgdmQmVDH4eg*(VHT!V^r&y z$hFUqLPVpk?R!cx`*?KF?VeD&2kLP5&Atu(EjLf(oS#o|8iG?LB1yg@Wz3avpfnBI z^}OJP!jLG}6aTZ5WX4q5#QuhiD+;1T+adeMcO`wlspxR0e9C$A>Bdm5c|fA5Pfh2d zi04!d1fKY`%Vw?tKQ^A*7{jBJY_Y!%5VLhkF3(hfqgIHFN(NB))I^l_-EIH3j<3`MaQi$rB%d(7jK+*BioizZ{U)*lFee2=v-rl={gGSU+ zZJ{7m4k5QLpRuxgE^T|8HhoseF@c;3D=WPm&3GHFBu|l*JKh0<-O-#Ow^*eo)@7ld zz28YsvR@=ti~%H@kFlY9!X8`4lIu8`{Xd+8fV3vr6g($nsw!srw09+$jGSDf10Cjn zJ9j9F-do1YC;957Sp+nmf?4cU+l`c=F?wg)LqSN#t#wy-AMtk18Rz-c@1&Ql3Hz)$ z32IhTg(~Y~Pf~v{5Us$Dt_xL)aB4o;O3N3TRf@>zn@eyKFIs)_G=t)pJCwesY@w~# zBRn&+(&0}=8$%VMiSo`DK8t~1_}pZz=p4LZPd|*%8~*_IBHu)^hw4r?X8f{@X~CO+B<;34m;vwGFsuEEOjKKX^*p<$893z=Z^3?a z`n|5g(L#8t}K^nr%a`2x5Ln2!#P_WBDN}F4yVRlm*$vTQvfQnQc$aw?+SqF z20Gr+DZVLqyL6lHk%YAK>=MLcvXvtH({YY=Vy{|- z=(9>NY!K57q+k|_s>iLs7pUj{T2A~)S&2vi!9PS_CLDy;4AyzA)319A+|Tz|_8Tlz z@o;6BHx1rh^OIfSkAHwaMi|#PR+j+HONvmabWy4X(Lb}7Lq5)#ySdp$0aKl2as|+J zO!PJtlp#U+JME3_KF}?vP3PecyBEDc)td zc)c3^=bSO*owFY*=b2v%!J84_Cw1i(b0)#L?cZ&qIcx?meTIuU#ZWMd_e??4;8){; zZt6(O&WP^ae7#07Z4bgnb2d{0AcDgFuV7Zqh3Yd1YAGJmrbZG#aEG{J|-ewT0 zY&m2K{I%zRqgN+#uHjOL2HWUXSvEN3^&x;%#Rc0N_tMwJ*7s}h?p-}MR-E@-fTy?5S>UDqsF!iwa_DFRDkta(TB-Xk{DEu#lqQtEew0yj7q^a# zx?c=QM{?E6G;TPQ>ce=PME4!Kv=k*=r%q3^-}$lO+l))UAz_bjzs~Qn^B(#$>4I|W z@T4xk{(T@_4=lFYVO))%ol+ztwbGmDKq2wSCox9s@#8h^*K3>K7MJP;pe!`r0bkTY zW9?DF?}NyZD}Bbt-bM7kMzc+)#fH*N5nRF)f9ZfwmE*)ltT5nZcj9TRF3%t&0GJ)Z-;{lR&$-!?MTxK=t;E=N6Hs>9A~_GQsCg$k?gH#v4t zkNpk9$Uvn~P5{V%X3+z6wxbdwV{XLO?%o^A69yZ}*8}+nsQpIvLucb3K5u;}qloC< zxx=d|KqD}b-=#Xoo{)MiFw>^@Ea-<0T2JHRl>LI1`<{eD!f9nui% zyFlEjoLp|porR8+;n&Rk*kN5}!a#Z=k6|J=j-5A#Is zfjqWE!l$!T!P^4>zODWg5CibNk|G9}Kj@&Ybjh?QfzNWxw9$K1^Bw5jkQM$n5?CBb za2qY)qIRZz_-epA+<|nCSXtwDS)`PZ;>6rsyKHrpj%XPPD$)?<*6_N8xk8TCeb(s{ zN{JFv1dm)j(_1lxd}+jx+(I^cmbS`tk)2-Je!cVH8$7nKRC>%~{iwu_wzFD=&2Qv~ z|9TC?9~Bl&d$3AI4M>qr4pUGxQ{jPcK`)FUf_-a|p*KNQ0s{ z4YRLrrar{IdAjLQChkutW(?jYrj{oNxyDKv*RhbXjt%tt%fFX>=?+|aL+OFhu)>$I zOWl@$vCOsyV}7UgRy}cQLWl%3IxOaqsnPmw0WqH2zsm@n9xmP%7Fi?K;x1b=UiF?k z8AOT&nv&v_iX-k|yqGkkHi_aU=Pleba;sNlv9J&-+%It@NgVXZ07W4KmLngJDck`me!A6TmS%ic4hc$Nq>EpUcBQ zjVpPyibzAQGC0-R-ct%`;KgHC!Yc%%rA=f{m-Mdh2(M_ildB)?t`$$iYwfN5`hWlWs+PZ+!KO%0YlWHJA=JBK z2b1fE@?HmlQoo!Fe(dPa+z^XM7TI3TCH9#*VIsK_AAUC#3`>^vGxFZwg3vcIr#t{Z z8pmr3fKjJ!b1);5&olH6yLp%6?MEBl1{~$*Y68ioP3;BxU;S{D%*P+CV<$2rljc~! zCIn-IdrI}s(%q7PY?xWtIPPVWiDABOeav-3j^UPEV_OfyGK+MgxT0}m35Bt*%ZYtp z&}wz|{&I!w&YR)kUpY^4wZ-8x?GxsTK15MZ=Vr*>`R*!4;ic_`Hb5leV9uuxug+fudvW3oU2bOU+nLD0tc^kBzM%sB1ME;q z#Ih}kiB$t8fICW_RYIs)SnQq|4xmE)0sC9CtL0j9D7OAo$i5dI%RTP1o%Ev6=o3(h zXfP^gE-uJM!RM$TVm@6)!E}^wvGMd7*L>YSpk$SDq&HtnIf&*A?wp`&0v~LxP&R3k z+Gn=Kxb6HxlU~;16qH>v#gLvHbvK=mTb-Sr0H&*JK0Im~x+g6F7uOLYXxQGC-VUsC zm{umH_SN!DbZN8tL2Bc%chlDF53gM@bw_VaslMV(zoAPRm`J8goa-KDTD&72L~UQ+ z1SH&Mv6^*9w~$umHF)7Jr18K&PC=!JIX?pR+xF<5c>eCJ>x?x-}3MN~Zp^=<875&Gxp zY6Pp_qtC?JTSIjU32rZ2z-}wuhL1DQ)31y#?j5a-W+D;|dGg2N2P~6CU30=1LHb1G zS{k>k*6$DW_tPRZ4fx|D^ZJ;4sL0E8vfdRoK0geR3ewVLtU2cnmm$6=u2yxR?3kraXY~W?P3T12^mvaLFd}-}f9tjX5;O*Y z^({*|Vye~lFRi{X`dwtt59~w@#!UR8v9u7ZUFc(O~b!vqot3hsqr{e zsLRO_R4q{`d(t3v#*52g?4iF5hW9~2=QMukO@x&1cL&waEH13LXik+SA{5(5^}i@l zhWv0_>#ZMZx%bHXZu{!#)~>W2I!nXR8kL|mRb_7-3{RHu8Zx;&g^&-;4Gx(XstmH~ zPgcXObT2}K;}5+dOiQeiyAH`Fi$|xQ+`bTDeqkbx594aO$k?}zv;Jyh{%1Akd0Vi} zAPR>8qk7`Y9uuX$L}JkfM>&6` - \ No newline at end of file diff --git a/tarkaui/src/main/androidTest/java/com/tarkalabs/commonui/BadgeScreenShotTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/BadgeScreenShotTest.kt similarity index 96% rename from tarkaui/src/main/androidTest/java/com/tarkalabs/commonui/BadgeScreenShotTest.kt rename to tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/BadgeScreenShotTest.kt index 18ab4c76..181dff98 100644 --- a/tarkaui/src/main/androidTest/java/com/tarkalabs/commonui/BadgeScreenShotTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/BadgeScreenShotTest.kt @@ -1,5 +1,3 @@ -package com.tarkalabs.commonui - import androidx.compose.ui.test.junit4.createComposeRule import com.karumi.shot.ScreenshotTest import com.tarkalabs.uicomponents.components.Badge diff --git a/tarkaui/src/main/androidTest/java/com/tarkalabs/commonui/TopBarScreenShotTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TopBarScreenShotTest.kt similarity index 72% rename from tarkaui/src/main/androidTest/java/com/tarkalabs/commonui/TopBarScreenShotTest.kt rename to tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TopBarScreenShotTest.kt index 52a743cf..c6525ffd 100644 --- a/tarkaui/src/main/androidTest/java/com/tarkalabs/commonui/TopBarScreenShotTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TopBarScreenShotTest.kt @@ -1,7 +1,5 @@ @file:OptIn(ExperimentalMaterial3Api::class) -package com.tarkalabs.commonui - import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.ui.test.junit4.createComposeRule import com.karumi.shot.ScreenshotTest @@ -16,11 +14,10 @@ import org.junit.runners.JUnit4 @RunWith(JUnit4::class) class TopBarScreenShotTest : ScreenshotTest { - @get:Rule - val composeRule = createComposeRule() + @get:Rule val composeRule = createComposeRule() - @Test - fun renderTopAppBarTextOnly() { + @OptIn(ExperimentalMaterial3Api::class) + @Test fun renderTopAppBarTextOnly() { composeRule.setContent { TopBar("Screenshot") } @@ -28,12 +25,10 @@ class TopBarScreenShotTest : ScreenshotTest { compareScreenshot(composeRule) } - @Test - fun renderTopAppBarTextWithIcon() { + @Test fun renderTopAppBarTextWithIcon() { composeRule.setContent { TopBar( - "Screenshot", - navigationIcon = TarkaIcon(R.drawable.keyboard_arrow_right, "Arrow Right") + "Screenshot", navigationIcon = TarkaIcon(R.drawable.keyboard_arrow_right, "Arrow Right") ) } From 7ff54aca083945c240df0333b08cc910044cfdc4 Mon Sep 17 00:00:00 2001 From: Younes Charfaoui Date: Thu, 18 May 2023 09:02:04 +0100 Subject: [PATCH 040/571] Fixing the problems of Activity + Manifest in the example app module --- example/src/main/AndroidManifest.xml | 2 +- .../main/java/{ => com/tarkalabs/ui}/UIComponentListActivity.kt | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) rename example/src/main/java/{ => com/tarkalabs/ui}/UIComponentListActivity.kt (91%) diff --git a/example/src/main/AndroidManifest.xml b/example/src/main/AndroidManifest.xml index 807153d9..769a3f24 100644 --- a/example/src/main/AndroidManifest.xml +++ b/example/src/main/AndroidManifest.xml @@ -12,7 +12,7 @@ android:theme="@style/Theme.Eam360uiandroid" tools:targetApi="31"> diff --git a/example/src/main/java/UIComponentListActivity.kt b/example/src/main/java/com/tarkalabs/ui/UIComponentListActivity.kt similarity index 91% rename from example/src/main/java/UIComponentListActivity.kt rename to example/src/main/java/com/tarkalabs/ui/UIComponentListActivity.kt index 953c0d0a..3a967daf 100644 --- a/example/src/main/java/UIComponentListActivity.kt +++ b/example/src/main/java/com/tarkalabs/ui/UIComponentListActivity.kt @@ -1,3 +1,5 @@ +package com.tarkalabs.ui + import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent From d739d72b5f51389cf8ae76b7c2c3dad08e1e31b2 Mon Sep 17 00:00:00 2001 From: Younes Charfaoui Date: Thu, 18 May 2023 09:07:14 +0100 Subject: [PATCH 041/571] Fixing the CI Screenshot test script --- ...e-check.yml => screenshot_verification.yml} | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) rename .github/workflows/{feature-check.yml => screenshot_verification.yml} (71%) diff --git a/.github/workflows/feature-check.yml b/.github/workflows/screenshot_verification.yml similarity index 71% rename from .github/workflows/feature-check.yml rename to .github/workflows/screenshot_verification.yml index b62976d1..52996d7c 100644 --- a/.github/workflows/feature-check.yml +++ b/.github/workflows/screenshot_verification.yml @@ -1,6 +1,5 @@ -name: Commits and Pull Requests +name: ScreenShot Testing on: - on: workflow_dispatch: push: pull_request_target: @@ -9,18 +8,7 @@ on: types: [ opened ] jobs: - build: - name: Building - runs-on: ubuntu-18.04 - steps: - - uses: actions/checkout@v3 - - name: Set up JDK 11 - uses: actions/setup-java@v3 - with: - distribution: 'temurin' - java-version: '11' - - name: Build - run: bash ./gradlew build + screenshot-test: name: Run Screenshot tests runs-on: macos-latest @@ -39,7 +27,7 @@ jobs: with: api-level: 31 arch: x86_64 - profile: pixel + profile: pixel_4 target: google_apis sdcard-path-or-size: 512M emulator-options: -no-window -gpu swiftshader_indirect -no-snapshot -noaudio -no-boot-anim From 5ab8a681c29ce06cb019559fe7aff62d8ca5df78 Mon Sep 17 00:00:00 2001 From: Younes Charfaoui Date: Thu, 18 May 2023 09:09:32 +0100 Subject: [PATCH 042/571] Adding the screenshots, all tests are passing --- ...geScreenShotTest_test_badge_with_count.png | Bin 1627 -> 1627 bytes ...reenShotTest_test_badge_with_out_count.png | Bin 812 -> 812 bytes ...ScreenShotTest_renderTopAppBarTextOnly.png | Bin 7754 -> 8029 bytes ...enShotTest_renderTopAppBarTextWithIcon.png | Bin 7954 -> 8273 bytes 4 files changed, 0 insertions(+), 0 deletions(-) diff --git a/tarkaui/screenshots/debug/BadgeScreenShotTest_test_badge_with_count.png b/tarkaui/screenshots/debug/BadgeScreenShotTest_test_badge_with_count.png index 80f6a3db04752914ce94ba435109992f9a79d022..8e4731521cb9d91c0374672bbd010c27a0030ac4 100644 GIT binary patch literal 1627 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 fC$s-Ahl@Ygd6nR!) literal 7754 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 Ca1`$V diff --git a/tarkaui/screenshots/debug/TopBarScreenShotTest_renderTopAppBarTextWithIcon.png b/tarkaui/screenshots/debug/TopBarScreenShotTest_renderTopAppBarTextWithIcon.png index d2b525b0539f1e8efacea28e610b65aa22a1efe5..24a90a5eda63f900cd965620b058c1d6d46c61b2 100644 GIT binary patch literal 8273 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 AF8}}l literal 7954 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 Date: Thu, 18 May 2023 09:19:30 +0100 Subject: [PATCH 043/571] Removing .idea specific form the repo --- .gitignore | 7 ++++++- .idea/.name | 1 - .idea/compiler.xml | 6 ------ .idea/deploymentTargetDropDown.xml | 17 ----------------- .idea/gradle.xml | 21 --------------------- .idea/misc.xml | 7 ------- 6 files changed, 6 insertions(+), 53 deletions(-) delete mode 100644 .idea/.name delete mode 100644 .idea/compiler.xml delete mode 100644 .idea/deploymentTargetDropDown.xml delete mode 100644 .idea/gradle.xml delete mode 100644 .idea/misc.xml diff --git a/.gitignore b/.gitignore index 173ede64..0c1140ac 100644 --- a/.gitignore +++ b/.gitignore @@ -15,4 +15,9 @@ .cxx local.properties /common-ui/build -/sample/build \ No newline at end of file +/sample/build +.idea/.name +.idea/compiler.xml +.idea/deploymentTargetDropDown.xml +.idea/gradle.xml +.idea/misc.xml diff --git a/.idea/.name b/.idea/.name deleted file mode 100644 index ee5d4906..00000000 --- a/.idea/.name +++ /dev/null @@ -1 +0,0 @@ -eam360-ui-android \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml deleted file mode 100644 index fb7f4a8a..00000000 --- a/.idea/compiler.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml deleted file mode 100644 index 5d6140c2..00000000 --- a/.idea/deploymentTargetDropDown.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml deleted file mode 100644 index 4a352bba..00000000 --- a/.idea/gradle.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index cb1a6338..00000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file From d3fc4dac50bee51ddc5f2e4354401b13f1166526 Mon Sep 17 00:00:00 2001 From: Younes Charfaoui Date: Thu, 18 May 2023 09:28:44 +0100 Subject: [PATCH 044/571] changing the name of the project to match the repository name --- settings.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings.gradle.kts b/settings.gradle.kts index 49a19d22..3d2c0035 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -16,6 +16,6 @@ dependencyResolutionManagement { mavenCentral() } } -rootProject.name = "eam360-ui-android" +rootProject.name = "tarka-ui-kit-android" include(":example") include(":tarkaui") From 08b6dee128531b69a56abc2a12f2f88fbbfe466d Mon Sep 17 00:00:00 2001 From: Charfaoui Younes Date: Thu, 18 May 2023 09:50:01 +0100 Subject: [PATCH 045/571] Fixing the CD problem, accepting slighly different tolerance --- .github/workflows/screenshot_verification.yml | 8 +++++++- tarkaui/build.gradle.kts | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/screenshot_verification.yml b/.github/workflows/screenshot_verification.yml index 52996d7c..ab296426 100644 --- a/.github/workflows/screenshot_verification.yml +++ b/.github/workflows/screenshot_verification.yml @@ -31,4 +31,10 @@ jobs: target: google_apis sdcard-path-or-size: 512M emulator-options: -no-window -gpu swiftshader_indirect -no-snapshot -noaudio -no-boot-anim - script: ./gradlew executeScreenshotTests \ No newline at end of file + script: ./gradlew executeScreenshotTests + - name: Upload Screenshot Results + if : always() + uses: actions/upload-artifact@v2 + with: + name: screenshots + path: '**/tarkaui/build/reports/shot/debug/' \ No newline at end of file diff --git a/tarkaui/build.gradle.kts b/tarkaui/build.gradle.kts index 99eece90..9af6d49d 100644 --- a/tarkaui/build.gradle.kts +++ b/tarkaui/build.gradle.kts @@ -47,7 +47,7 @@ android { } } shot { - tolerance = 0.1 + tolerance = 0.2 applicationId = "com.tarkalabs.uicomponents" } testOptions { From 3424de65123c15f4256b2410c4dbd2261c1c0f18 Mon Sep 17 00:00:00 2001 From: Charfaoui Younes Date: Thu, 18 May 2023 10:14:12 +0100 Subject: [PATCH 046/571] Fixing the Emulator one more time --- .github/workflows/screenshot_verification.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/screenshot_verification.yml b/.github/workflows/screenshot_verification.yml index ab296426..19285bdd 100644 --- a/.github/workflows/screenshot_verification.yml +++ b/.github/workflows/screenshot_verification.yml @@ -25,11 +25,12 @@ jobs: - name: Screenshot tests uses: reactivecircus/android-emulator-runner@v2.24.0 with: - api-level: 31 + api-level: 32 arch: x86_64 profile: pixel_4 target: google_apis sdcard-path-or-size: 512M + disable-animations: true emulator-options: -no-window -gpu swiftshader_indirect -no-snapshot -noaudio -no-boot-anim script: ./gradlew executeScreenshotTests - name: Upload Screenshot Results From 5cb335c7727808f65de8aad6bc18162d516b1963 Mon Sep 17 00:00:00 2001 From: Charfaoui Younes Date: Thu, 18 May 2023 10:46:15 +0100 Subject: [PATCH 047/571] Adding first version of the publishing --- .github/workflows/publishing.yml | 44 ++++++++++++++++++++++++++++++++ tarkaui/build.gradle.kts | 24 +++++++++-------- 2 files changed, 57 insertions(+), 11 deletions(-) create mode 100644 .github/workflows/publishing.yml diff --git a/.github/workflows/publishing.yml b/.github/workflows/publishing.yml new file mode 100644 index 00000000..d6a24381 --- /dev/null +++ b/.github/workflows/publishing.yml @@ -0,0 +1,44 @@ +name: Package Publishing +on: + workflow_dispatch: + push: + branches: + - develop + +jobs: + + publish: + name: Release UI Library + runs-on: ubuntu-latest + + steps: + - name: Set up JDK 11 + uses: actions/setup-java@v3 + with: + java-version: '11' + + - name: Checkout + uses: actions/checkout@v3 + + - name: Cache Gradle and wrapper + uses: actions/cache@v2 + with: + path: | + ~/.gradle/caches + ~/.gradle/wrapper + key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }} + restore-keys: | + ${{ runner.os }}-gradle- + + - name: Grant Permission for Gradlew to Execute + run: chmod +x gradlew + + - name: Build AAR 🔨 + run: bash ./gradlew :tarkaui:assemble + + + - name: Publish to GitHub Package 🚀 + run: bash ./gradlew :tarkaui:publish + env: + GITHUB_USER: ${{ github.actor }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/tarkaui/build.gradle.kts b/tarkaui/build.gradle.kts index 9af6d49d..f8e5ff1b 100644 --- a/tarkaui/build.gradle.kts +++ b/tarkaui/build.gradle.kts @@ -36,7 +36,7 @@ android { jvmTarget = "11" } buildFeatures { - compose = true + compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.4.3" @@ -47,7 +47,7 @@ android { } } shot { - tolerance = 0.2 + tolerance = 0.2 applicationId = "com.tarkalabs.uicomponents" } testOptions { @@ -59,7 +59,7 @@ fun getLibraryArtifactId() = "tarkaui" publishing { publications { - create("gpr"){ + create("gpr") { run { groupId = "com.tarkalabs" artifactId = getLibraryArtifactId() @@ -84,18 +84,20 @@ publishing { dependencies { val composeUiVersion = "1.4.1" implementation("androidx.core:core-ktx:1.10.0") - implementation( "androidx.compose.ui:ui:$composeUiVersion") - implementation( "androidx.compose.ui:ui-tooling-preview:$composeUiVersion") + implementation("androidx.compose.ui:ui:$composeUiVersion") + implementation("androidx.compose.ui:ui-tooling-preview:$composeUiVersion") implementation("androidx.compose.material3:material3:1.1.0-rc01") implementation("com.microsoft.design:fluent-system-icons:1.1.201@aar") - testImplementation( "junit:junit:4.13.2") - androidTestImplementation( "androidx.test.ext:junit:1.1.5") - androidTestImplementation( "androidx.test.espresso:espresso-core:3.5.1") + testImplementation("junit:junit:4.13.2") + androidTestImplementation("androidx.test.ext:junit:1.1.5") + androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1") androidTestImplementation("org.mockito.kotlin:mockito-kotlin:4.0.0") androidTestImplementation("org.mockito:mockito-android:4.5.1") - androidTestImplementation( "androidx.compose.ui:ui-test-junit4:$composeUiVersion") - debugImplementation( "androidx.compose.ui:ui-tooling:$composeUiVersion") - debugImplementation( "androidx.compose.ui:ui-test-manifest:$composeUiVersion") + androidTestImplementation("androidx.compose.ui:ui-test-junit4:$composeUiVersion") + debugImplementation("androidx.compose.ui:ui-tooling:$composeUiVersion") + debugImplementation("androidx.compose.ui:ui-test-manifest:$composeUiVersion") } + +tasks.getByName("publish").dependsOn(tasks.getByName("assemble")) From 403032ff96829794efa308eae3b53da89b4a6ef9 Mon Sep 17 00:00:00 2001 From: Charfaoui Younes Date: Thu, 18 May 2023 10:46:46 +0100 Subject: [PATCH 048/571] experimenting with bigger version of tolerance --- tarkaui/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tarkaui/build.gradle.kts b/tarkaui/build.gradle.kts index 9af6d49d..e67a2e9f 100644 --- a/tarkaui/build.gradle.kts +++ b/tarkaui/build.gradle.kts @@ -47,7 +47,7 @@ android { } } shot { - tolerance = 0.2 + tolerance = 0.5 applicationId = "com.tarkalabs.uicomponents" } testOptions { From 1668fbed1f7d5aed1442be4b5f662c7f168676ee Mon Sep 17 00:00:00 2001 From: Charfaoui Younes Date: Thu, 18 May 2023 11:02:22 +0100 Subject: [PATCH 049/571] Adding ways to provide version from the tags --- .github/workflows/publishing.yml | 6 ++++++ tarkaui/build.gradle.kts | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/publishing.yml b/.github/workflows/publishing.yml index d6a24381..670d6057 100644 --- a/.github/workflows/publishing.yml +++ b/.github/workflows/publishing.yml @@ -36,6 +36,12 @@ jobs: - name: Build AAR 🔨 run: bash ./gradlew :tarkaui:assemble + - name: Set Environment Variable 🏁 + run: | + NEW_VERSION=$(echo "${GITHUB_REF}" | cut -d "/" -f3) + echo "New version: ${NEW_VERSION}" + echo "Github username: ${GITHUB_ACTOR}" + echo "VERSION=${{NEW_VERSION}}" >> $GITHUB_ENV - name: Publish to GitHub Package 🚀 run: bash ./gradlew :tarkaui:publish diff --git a/tarkaui/build.gradle.kts b/tarkaui/build.gradle.kts index f8e5ff1b..d6d90d64 100644 --- a/tarkaui/build.gradle.kts +++ b/tarkaui/build.gradle.kts @@ -63,7 +63,7 @@ publishing { run { groupId = "com.tarkalabs" artifactId = getLibraryArtifactId() - version = "1.0-alpha" + version = System.getenv("VERSION") ?: "1.0.0" artifact("$buildDir/outputs/aar/${getLibraryArtifactId()}-release.aar") } } From d02410c89b32c7d4839a6548286768dab77a2feb Mon Sep 17 00:00:00 2001 From: Charfaoui Younes Date: Thu, 18 May 2023 11:12:43 +0100 Subject: [PATCH 050/571] Changing the architecture of the emulator --- .github/workflows/screenshot_verification.yml | 2 +- tarkaui/build.gradle.kts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/screenshot_verification.yml b/.github/workflows/screenshot_verification.yml index 19285bdd..d9ab6d8f 100644 --- a/.github/workflows/screenshot_verification.yml +++ b/.github/workflows/screenshot_verification.yml @@ -26,7 +26,7 @@ jobs: uses: reactivecircus/android-emulator-runner@v2.24.0 with: api-level: 32 - arch: x86_64 + arch: arm64-v8a profile: pixel_4 target: google_apis sdcard-path-or-size: 512M diff --git a/tarkaui/build.gradle.kts b/tarkaui/build.gradle.kts index e67a2e9f..99eece90 100644 --- a/tarkaui/build.gradle.kts +++ b/tarkaui/build.gradle.kts @@ -47,7 +47,7 @@ android { } } shot { - tolerance = 0.5 + tolerance = 0.1 applicationId = "com.tarkalabs.uicomponents" } testOptions { From a4147aa581869b6599a0f8cf3bb5c7c0a92ee773 Mon Sep 17 00:00:00 2001 From: Charfaoui Younes Date: Thu, 18 May 2023 11:23:52 +0100 Subject: [PATCH 051/571] Removing branch to check test out the script --- .github/workflows/publishing.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publishing.yml b/.github/workflows/publishing.yml index 670d6057..86a07492 100644 --- a/.github/workflows/publishing.yml +++ b/.github/workflows/publishing.yml @@ -2,8 +2,8 @@ name: Package Publishing on: workflow_dispatch: push: - branches: - - develop +# branches: +# - develop jobs: From 8e6fcbcd362e94f898d6f6c57f0d69a6edd7c50d Mon Sep 17 00:00:00 2001 From: Charfaoui Younes Date: Thu, 18 May 2023 11:29:29 +0100 Subject: [PATCH 052/571] Fixing back the emulator, adding screenshots generation --- .github/workflows/screenshot_verification.yml | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/.github/workflows/screenshot_verification.yml b/.github/workflows/screenshot_verification.yml index d9ab6d8f..b9b44c9c 100644 --- a/.github/workflows/screenshot_verification.yml +++ b/.github/workflows/screenshot_verification.yml @@ -26,16 +26,23 @@ jobs: uses: reactivecircus/android-emulator-runner@v2.24.0 with: api-level: 32 - arch: arm64-v8a + arch: x86_64 profile: pixel_4 target: google_apis sdcard-path-or-size: 512M disable-animations: true emulator-options: -no-window -gpu swiftshader_indirect -no-snapshot -noaudio -no-boot-anim - script: ./gradlew executeScreenshotTests + script: ./gradlew executeScreenshotTests -Precord - name: Upload Screenshot Results if : always() uses: actions/upload-artifact@v2 + with: + name: screenshots-results + path: '**/tarkaui/build/reports/shot/debug/' + + - name: Upload New Screenshots + if: always() + uses: actions/upload-artifact@v2 with: name: screenshots - path: '**/tarkaui/build/reports/shot/debug/' \ No newline at end of file + path: '**/tarkaui/screenshots/' \ No newline at end of file From c17008af9cb1ee693980fd53b9db095a635302d9 Mon Sep 17 00:00:00 2001 From: Charfaoui Younes Date: Thu, 18 May 2023 11:51:30 +0100 Subject: [PATCH 053/571] Updating the screenshots from the emulator --- .github/workflows/screenshot_verification.yml | 11 ++--------- ...geScreenShotTest_test_badge_with_count.png | Bin 1627 -> 1637 bytes ...reenShotTest_test_badge_with_out_count.png | Bin 812 -> 856 bytes ...ScreenShotTest_renderTopAppBarTextOnly.png | Bin 8029 -> 8037 bytes ...enShotTest_renderTopAppBarTextWithIcon.png | Bin 8273 -> 8349 bytes 5 files changed, 2 insertions(+), 9 deletions(-) diff --git a/.github/workflows/screenshot_verification.yml b/.github/workflows/screenshot_verification.yml index b9b44c9c..fe6b501a 100644 --- a/.github/workflows/screenshot_verification.yml +++ b/.github/workflows/screenshot_verification.yml @@ -32,17 +32,10 @@ jobs: sdcard-path-or-size: 512M disable-animations: true emulator-options: -no-window -gpu swiftshader_indirect -no-snapshot -noaudio -no-boot-anim - script: ./gradlew executeScreenshotTests -Precord + script: ./gradlew executeScreenshotTests - name: Upload Screenshot Results if : always() uses: actions/upload-artifact@v2 with: name: screenshots-results - path: '**/tarkaui/build/reports/shot/debug/' - - - name: Upload New Screenshots - if: always() - uses: actions/upload-artifact@v2 - with: - name: screenshots - path: '**/tarkaui/screenshots/' \ No newline at end of file + path: '**/tarkaui/build/reports/shot/debug/' \ No newline at end of file diff --git a/tarkaui/screenshots/debug/BadgeScreenShotTest_test_badge_with_count.png b/tarkaui/screenshots/debug/BadgeScreenShotTest_test_badge_with_count.png index 8e4731521cb9d91c0374672bbd010c27a0030ac4..fdcbf0c689316aaf7ac439fe636a3cb70c194468 100644 GIT binary patch delta 1620 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 M07*qoM6N<$f>u6{5&!@I delta 790 zcmV+x1L^$O2CN2q9GDtf=V2io~Fz%Px#Q zE+Qi8qM)mSAjl%J2)j_BG%6IyD9ECeva&DmqRVhD_xn_AA5({iRqglSB$YZZY()Z58--ViQadwG1P61crWm#rORjlW4%4_ zQ8PEdRZ)%vgAvJl_9OM+VL1>i1QDD<(D%Lu_WO4*;_3PQu^`AEUBF?3<8BH1Usb_y z;v|xHWz7ts)qiTI1?Viwhx<*n_^g3^^C%d%8(jrg@w24~tFm)uhL{XMbNngiEC%XL z&|>z~#|Jd#absQn4RH-cKnOgRd1V9q`E!n*< z4B>cEj$xN;V&_Lo3AhpN=d5^$v?IsB=!N^`Ges8S-$cG5#9*@-e%n{5z##gPKl9er zLQRoB^R>083PJvC*s9J{NFsk0=6o%1B_qlObQIG`C|AD#((^7p UqYoX5+5i9m07*qoM6N<$f=bDL%K!iX diff --git a/tarkaui/screenshots/debug/TopBarScreenShotTest_renderTopAppBarTextOnly.png b/tarkaui/screenshots/debug/TopBarScreenShotTest_renderTopAppBarTextOnly.png index 4b133b915139eaf734170bfe5843defa725a91bd..5971e996a0c187c39b0c0c880ba79402ece89ddd 100644 GIT binary patch literal 8037 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 literal 8029 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 fC$s-Ahl@Ygd6nR!) diff --git a/tarkaui/screenshots/debug/TopBarScreenShotTest_renderTopAppBarTextWithIcon.png b/tarkaui/screenshots/debug/TopBarScreenShotTest_renderTopAppBarTextWithIcon.png index 24a90a5eda63f900cd965620b058c1d6d46c61b2..6722c080ff4c7c54e4d63cde5ea063ea23410537 100644 GIT binary patch literal 8349 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

<96Ca5kVY$>N%71k4Kg2r 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 AF8}}l From f0fbc5005bcbabe1ed424f77a4b6e500411935d8 Mon Sep 17 00:00:00 2001 From: Charfaoui Younes Date: Thu, 18 May 2023 12:32:50 +0100 Subject: [PATCH 054/571] Updating the token name --- .github/workflows/publishing.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publishing.yml b/.github/workflows/publishing.yml index 86a07492..255fa5bb 100644 --- a/.github/workflows/publishing.yml +++ b/.github/workflows/publishing.yml @@ -47,4 +47,4 @@ jobs: run: bash ./gradlew :tarkaui:publish env: GITHUB_USER: ${{ github.actor }} - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file + GITHUB_TOKEN: ${{ secrets.SECRET_TOKEN }} \ No newline at end of file From 56e1cc58fcca4faf6a38635c3619a63b6c8e2fb3 Mon Sep 17 00:00:00 2001 From: Raja Jawahar Date: Thu, 18 May 2023 19:14:32 +0530 Subject: [PATCH 055/571] Missed icons added --- .idea/androidTestResultsUserPreferences.xml | 35 +++++++++++++++++++++ .idea/deploymentTargetDropDown.xml | 17 ---------- 2 files changed, 35 insertions(+), 17 deletions(-) create mode 100644 .idea/androidTestResultsUserPreferences.xml delete mode 100644 .idea/deploymentTargetDropDown.xml diff --git a/.idea/androidTestResultsUserPreferences.xml b/.idea/androidTestResultsUserPreferences.xml new file mode 100644 index 00000000..874036c5 --- /dev/null +++ b/.idea/androidTestResultsUserPreferences.xml @@ -0,0 +1,35 @@ + + + + + + \ No newline at end of file diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml deleted file mode 100644 index 5d6140c2..00000000 --- a/.idea/deploymentTargetDropDown.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file From 5e8e8e65d1b050d12a84190f4ad62445b0ce24dd Mon Sep 17 00:00:00 2001 From: Raja Jawahar Date: Thu, 18 May 2023 19:16:07 +0530 Subject: [PATCH 056/571] Version upgarded and fluent icons dependency changed to api --- tarkaui/build.gradle.kts | 4 ++-- .../com/tarkalabs/uicomponents/components/NavigationRows.kt | 5 +++-- .../main/java/com/tarkalabs/uicomponents/models/TarkaIcon.kt | 2 ++ 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/tarkaui/build.gradle.kts b/tarkaui/build.gradle.kts index 99eece90..09a14668 100644 --- a/tarkaui/build.gradle.kts +++ b/tarkaui/build.gradle.kts @@ -63,7 +63,7 @@ publishing { run { groupId = "com.tarkalabs" artifactId = getLibraryArtifactId() - version = "1.0-alpha" + version = "1.2-alpha" artifact("$buildDir/outputs/aar/${getLibraryArtifactId()}-release.aar") } } @@ -87,7 +87,7 @@ dependencies { implementation( "androidx.compose.ui:ui:$composeUiVersion") implementation( "androidx.compose.ui:ui-tooling-preview:$composeUiVersion") implementation("androidx.compose.material3:material3:1.1.0-rc01") - implementation("com.microsoft.design:fluent-system-icons:1.1.201@aar") + api("com.microsoft.design:fluent-system-icons:1.1.201@aar") testImplementation( "junit:junit:4.13.2") androidTestImplementation( "androidx.test.ext:junit:1.1.5") diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/NavigationRows.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/NavigationRows.kt index 563cb726..ec466327 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/NavigationRows.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/NavigationRows.kt @@ -11,8 +11,8 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.res.painterResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import com.tarkalabs.uicomponents.R import com.tarkalabs.uicomponents.models.TarkaIcon +import com.tarkalabs.uicomponents.models.TarkaIcons import com.tarkalabs.uicomponents.theme.Eam360Theme // TODO: 5/2/2023 use dimensions instead of hard coded things @@ -57,7 +57,8 @@ import com.tarkalabs.uicomponents.theme.Eam360Theme } if (showRightArrow) { Icon( - painter = painterResource(id = R.drawable.keyboard_arrow_right), contentDescription = null + painter = painterResource(id = TarkaIcons.ChevronRight.iconRes), + contentDescription = TarkaIcons.ChevronRight.contentDescription ) } } diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/models/TarkaIcon.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/models/TarkaIcon.kt index b90acf2f..ace3ce1c 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/models/TarkaIcon.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/models/TarkaIcon.kt @@ -14,6 +14,7 @@ import com.microsoft.fluent.mobile.icons.R.drawable.ic_fluent_copy_24_regular import com.microsoft.fluent.mobile.icons.R.drawable.ic_fluent_delete_24_regular import com.microsoft.fluent.mobile.icons.R.drawable.ic_fluent_dismiss_16_filled import com.microsoft.fluent.mobile.icons.R.drawable.ic_fluent_dismiss_24_regular +import com.microsoft.fluent.mobile.icons.R.drawable.ic_fluent_document_error_24_regular import com.microsoft.fluent.mobile.icons.R.drawable.ic_fluent_document_header_arrow_down_24_regular import com.microsoft.fluent.mobile.icons.R.drawable.ic_fluent_document_text_24_regular import com.microsoft.fluent.mobile.icons.R.drawable.ic_fluent_map_24_regular @@ -44,6 +45,7 @@ object TarkaIcons { val DismissFilled = TarkaIcon(ic_fluent_dismiss_16_filled, "Dismiss") val ArrowSyncCircle = TarkaIcon(ic_fluent_arrow_sync_circle_24_regular, "Arrow Sync Circle") val DocumentHeaderArrowDown = TarkaIcon(ic_fluent_document_header_arrow_down_24_regular, "Document Header Arrow Down") + val DocumentError = TarkaIcon(ic_fluent_document_error_24_regular, "Document Error") val Map = TarkaIcon(ic_fluent_map_24_regular, "Map") val ReOrderDots = TarkaIcon(ic_fluent_re_order_dots_vertical_24_regular, "Re order dots") val CheckMark = TarkaIcon(ic_fluent_checkmark_16_filled, "Check Mark") From 42d6b7d87466b9113402e2f90be44b022e40d975 Mon Sep 17 00:00:00 2001 From: Younes Charfaoui Date: Thu, 18 May 2023 20:45:08 +0100 Subject: [PATCH 057/571] Updating the workflow file. --- .github/workflows/publishing.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/publishing.yml b/.github/workflows/publishing.yml index 255fa5bb..073cae07 100644 --- a/.github/workflows/publishing.yml +++ b/.github/workflows/publishing.yml @@ -37,6 +37,8 @@ jobs: run: bash ./gradlew :tarkaui:assemble - name: Set Environment Variable 🏁 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | NEW_VERSION=$(echo "${GITHUB_REF}" | cut -d "/" -f3) echo "New version: ${NEW_VERSION}" From 79d451eeb51c3df5f9454561d02219e2c03a71b6 Mon Sep 17 00:00:00 2001 From: Younes Charfaoui Date: Thu, 18 May 2023 20:47:50 +0100 Subject: [PATCH 058/571] Just to relaunch the workflow --- .github/workflows/publishing.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publishing.yml b/.github/workflows/publishing.yml index 073cae07..c630a63c 100644 --- a/.github/workflows/publishing.yml +++ b/.github/workflows/publishing.yml @@ -2,8 +2,8 @@ name: Package Publishing on: workflow_dispatch: push: -# branches: -# - develop + branches: + - * jobs: From ce70ccf0abe930cd0420d8eee901c51bfd5991f3 Mon Sep 17 00:00:00 2001 From: Younes Charfaoui Date: Thu, 18 May 2023 20:48:27 +0100 Subject: [PATCH 059/571] Same as the previous --- .github/workflows/publishing.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/publishing.yml b/.github/workflows/publishing.yml index c630a63c..14b1cc55 100644 --- a/.github/workflows/publishing.yml +++ b/.github/workflows/publishing.yml @@ -2,8 +2,6 @@ name: Package Publishing on: workflow_dispatch: push: - branches: - - * jobs: From 0c5796c34f836a0194b96b60e18bc1d4bc37bb3f Mon Sep 17 00:00:00 2001 From: Younes Charfaoui Date: Thu, 18 May 2023 20:52:54 +0100 Subject: [PATCH 060/571] Fixing the problem --- .github/workflows/publishing.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publishing.yml b/.github/workflows/publishing.yml index 14b1cc55..29fd2047 100644 --- a/.github/workflows/publishing.yml +++ b/.github/workflows/publishing.yml @@ -38,7 +38,7 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - NEW_VERSION=$(echo "${GITHUB_REF}" | cut -d "/" -f3) + export NEW_VERSION=$(echo "${GITHUB_REF}" | cut -d "/" -f3) echo "New version: ${NEW_VERSION}" echo "Github username: ${GITHUB_ACTOR}" echo "VERSION=${{NEW_VERSION}}" >> $GITHUB_ENV From ceceeaa9dcd501779cb3539829d165ae0f5c0115 Mon Sep 17 00:00:00 2001 From: Younes Charfaoui Date: Thu, 18 May 2023 20:55:58 +0100 Subject: [PATCH 061/571] Fixing the tag name to use ref_name --- .github/workflows/publishing.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/publishing.yml b/.github/workflows/publishing.yml index 29fd2047..a6381066 100644 --- a/.github/workflows/publishing.yml +++ b/.github/workflows/publishing.yml @@ -38,10 +38,9 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - export NEW_VERSION=$(echo "${GITHUB_REF}" | cut -d "/" -f3) - echo "New version: ${NEW_VERSION}" + echo "New version: ${github.ref_name}" echo "Github username: ${GITHUB_ACTOR}" - echo "VERSION=${{NEW_VERSION}}" >> $GITHUB_ENV + echo "VERSION=${{github.ref_name}}" >> $GITHUB_ENV - name: Publish to GitHub Package 🚀 run: bash ./gradlew :tarkaui:publish From 05d1bf60355e7353c14983caffa1c897d5daf9f9 Mon Sep 17 00:00:00 2001 From: Younes Charfaoui Date: Thu, 18 May 2023 20:57:23 +0100 Subject: [PATCH 062/571] Fixign the java distribution --- .github/workflows/publishing.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/publishing.yml b/.github/workflows/publishing.yml index a6381066..65073274 100644 --- a/.github/workflows/publishing.yml +++ b/.github/workflows/publishing.yml @@ -13,6 +13,7 @@ jobs: - name: Set up JDK 11 uses: actions/setup-java@v3 with: + distribution: 'temurin' java-version: '11' - name: Checkout From 5dbb45ec12605b516a6b98a17bb316b385d7b027 Mon Sep 17 00:00:00 2001 From: Younes Charfaoui Date: Thu, 18 May 2023 21:01:51 +0100 Subject: [PATCH 063/571] Fixing the substitiuion --- .github/workflows/publishing.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publishing.yml b/.github/workflows/publishing.yml index 65073274..fcd3598c 100644 --- a/.github/workflows/publishing.yml +++ b/.github/workflows/publishing.yml @@ -39,8 +39,8 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - echo "New version: ${github.ref_name}" - echo "Github username: ${GITHUB_ACTOR}" + echo "New version: ${{github.ref_name}}" + echo "Github username: ${{GITHUB_ACTOR}}" echo "VERSION=${{github.ref_name}}" >> $GITHUB_ENV - name: Publish to GitHub Package 🚀 From 6bb11af9826c1020b18600b4ea731896388bb6d2 Mon Sep 17 00:00:00 2001 From: Younes Charfaoui Date: Thu, 18 May 2023 21:02:57 +0100 Subject: [PATCH 064/571] Fixing the github actor --- .github/workflows/publishing.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publishing.yml b/.github/workflows/publishing.yml index fcd3598c..0ed9542a 100644 --- a/.github/workflows/publishing.yml +++ b/.github/workflows/publishing.yml @@ -40,7 +40,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | echo "New version: ${{github.ref_name}}" - echo "Github username: ${{GITHUB_ACTOR}}" + echo "Github username: ${{github.actor}}" echo "VERSION=${{github.ref_name}}" >> $GITHUB_ENV - name: Publish to GitHub Package 🚀 From 6bde0313bad55643f1e4d2bb1e384479b7766de2 Mon Sep 17 00:00:00 2001 From: Younes Charfaoui Date: Thu, 18 May 2023 21:09:58 +0100 Subject: [PATCH 065/571] Updating to use tags only --- .github/workflows/publishing.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/publishing.yml b/.github/workflows/publishing.yml index 0ed9542a..bc08c3f1 100644 --- a/.github/workflows/publishing.yml +++ b/.github/workflows/publishing.yml @@ -2,6 +2,8 @@ name: Package Publishing on: workflow_dispatch: push: + tags: + -'*' jobs: From 4d35c387de2055a9dda2b78f6f415f1f38040453 Mon Sep 17 00:00:00 2001 From: Younes Charfaoui Date: Thu, 18 May 2023 21:13:58 +0100 Subject: [PATCH 066/571] Updating the version --- .github/workflows/publishing.yml | 10 ---------- tarkaui/build.gradle.kts | 2 +- 2 files changed, 1 insertion(+), 11 deletions(-) diff --git a/.github/workflows/publishing.yml b/.github/workflows/publishing.yml index bc08c3f1..da36c25a 100644 --- a/.github/workflows/publishing.yml +++ b/.github/workflows/publishing.yml @@ -2,8 +2,6 @@ name: Package Publishing on: workflow_dispatch: push: - tags: - -'*' jobs: @@ -37,14 +35,6 @@ jobs: - name: Build AAR 🔨 run: bash ./gradlew :tarkaui:assemble - - name: Set Environment Variable 🏁 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - echo "New version: ${{github.ref_name}}" - echo "Github username: ${{github.actor}}" - echo "VERSION=${{github.ref_name}}" >> $GITHUB_ENV - - name: Publish to GitHub Package 🚀 run: bash ./gradlew :tarkaui:publish env: diff --git a/tarkaui/build.gradle.kts b/tarkaui/build.gradle.kts index d6d90d64..2d591732 100644 --- a/tarkaui/build.gradle.kts +++ b/tarkaui/build.gradle.kts @@ -63,7 +63,7 @@ publishing { run { groupId = "com.tarkalabs" artifactId = getLibraryArtifactId() - version = System.getenv("VERSION") ?: "1.0.0" + version = "1.1.1-beta" artifact("$buildDir/outputs/aar/${getLibraryArtifactId()}-release.aar") } } From e7f0e2e89e3a74210de655f789d6afc7a3c1f933 Mon Sep 17 00:00:00 2001 From: Younes Charfaoui Date: Thu, 18 May 2023 21:22:06 +0100 Subject: [PATCH 067/571] Final updates, making the script run when merging with the develop branch, updating the version --- .github/workflows/publishing.yml | 1 + tarkaui/build.gradle.kts | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publishing.yml b/.github/workflows/publishing.yml index da36c25a..2835d8a3 100644 --- a/.github/workflows/publishing.yml +++ b/.github/workflows/publishing.yml @@ -2,6 +2,7 @@ name: Package Publishing on: workflow_dispatch: push: + - develop jobs: diff --git a/tarkaui/build.gradle.kts b/tarkaui/build.gradle.kts index 2d591732..e26ec798 100644 --- a/tarkaui/build.gradle.kts +++ b/tarkaui/build.gradle.kts @@ -47,7 +47,7 @@ android { } } shot { - tolerance = 0.2 + tolerance = 0.1 applicationId = "com.tarkalabs.uicomponents" } testOptions { @@ -63,7 +63,7 @@ publishing { run { groupId = "com.tarkalabs" artifactId = getLibraryArtifactId() - version = "1.1.1-beta" + version = "1.1.2-beta" artifact("$buildDir/outputs/aar/${getLibraryArtifactId()}-release.aar") } } From 2fe149c3b9238a1cca1fe1728740cdb556d0953d Mon Sep 17 00:00:00 2001 From: Younes Charfaoui Date: Thu, 18 May 2023 21:23:09 +0100 Subject: [PATCH 068/571] Fixing the error of the branch --- .github/workflows/publishing.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/publishing.yml b/.github/workflows/publishing.yml index 2835d8a3..282b0c7b 100644 --- a/.github/workflows/publishing.yml +++ b/.github/workflows/publishing.yml @@ -2,7 +2,8 @@ name: Package Publishing on: workflow_dispatch: push: - - develop + branches: + - develop jobs: From 1305e2af42796933b4d2f24d5c0ce0ad0a4a3852 Mon Sep 17 00:00:00 2001 From: AskNilesh Date: Fri, 19 May 2023 10:27:15 +0530 Subject: [PATCH 069/571] - Fixed compilation error issue --- .../uicomponents/components/Button.kt | 129 ++++++++++++++++++ 1 file changed, 129 insertions(+) diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/Button.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/Button.kt index a1a2f7cd..68e0e29e 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/Button.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/Button.kt @@ -1,3 +1,131 @@ +import ButtonSize.L +import ButtonSize.M +import ButtonSize.S +import ButtonSize.XS +import ButtonStyle.ERROR +import ButtonStyle.GHOST +import ButtonStyle.OUTLINE +import ButtonStyle.PRIMARY +import ButtonStyle.SECONDARY +import androidx.compose.foundation.BorderStroke +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.wrapContentWidth +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll +import androidx.compose.material3.Button +import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.Icon +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Text +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 androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import com.tarkalabs.uicomponents.models.TarkaIcon +import com.tarkalabs.uicomponents.theme.Eam360Theme +import com.tarkalabs.uicomponents.theme.EamTheme + +enum class ButtonStyle { + PRIMARY, + SECONDARY, + GHOST, + ERROR, + OUTLINE; +} + +enum class ButtonSize(val size: Dp) { + L(48.dp), + M(40.dp), + S(32.dp), + XS(24.dp); + + fun iconSize(): Dp { + return when (this) { + L -> 17.5.dp + M -> 17.5.dp + S, XS -> 11.dp + } + } + + fun paddingValues(isLeadingIconNull: Boolean, isTrailingIconNull: Boolean) = when (this) { + L, M -> PaddingValues( + top = 0.dp, + start = if (isLeadingIconNull) 24.dp else 16.dp, + bottom = 0.dp, + end = if (isTrailingIconNull) 24.dp else 16.dp + ) + + S -> PaddingValues( + top = 0.dp, + start = if (isLeadingIconNull) 16.dp else 8.dp, + bottom = 0.dp, + end = if (isTrailingIconNull) 16.dp else 8.dp + ) + + XS -> PaddingValues( + top = 0.dp, + start = if (isLeadingIconNull) 8.dp else 4.dp, + bottom = 0.dp, + end = if (isTrailingIconNull) 8.dp else 4.dp + ) + } + + @Composable fun textStyle() = when (this) { + L -> Eam360Theme.typography.button6 + M -> Eam360Theme.typography.button6 + S -> Eam360Theme.typography.button7 + XS -> Eam360Theme.typography.button8 + } +} + +/** + * Below TKButton() defines a reusable composable function which can be used to create an Button with various styles and sizes which takes several parameters such as + * @param label The text to be displayed on the button. + * @param height The height size of the button. Default is [ButtonSize.M]. + * @param buttonStyle The style of the button. Default is [ButtonStyle.PRIMARY]. + * @param leadingIcon The drawable resource for the leading icon, if any. Default is null. + * @param trailingIcon The drawable resource for the trailing icon, if any. Default is null. + * @param onClick The callback function to be executed when the button is clicked. + * + * How to use TKButton() composable function + * +TKButton( +label = "Primary Button", +height = M, +buttonStyle = PRIMARY, +onClick = {} +) + * + */ +@Composable fun TKButton( + label: String, + height: ButtonSize = M, + buttonStyle: ButtonStyle = PRIMARY, + leadingIcon: TarkaIcon? = null, + trailingIcon: TarkaIcon? = null, + onClick: () -> Unit, +) { + val buttonColor = when (buttonStyle) { + PRIMARY -> { + ButtonDefaults.buttonColors( + containerColor = MaterialTheme.colorScheme.primary, + contentColor = MaterialTheme.colorScheme.onPrimary + ) + } SECONDARY -> { ButtonDefaults.buttonColors( @@ -26,6 +154,7 @@ ) } } + Button( onClick = onClick, colors = buttonColor, From b2ece45a12811e97e01c9c3c63668ba8559bc6dc Mon Sep 17 00:00:00 2001 From: Raja Jawahar Date: Fri, 19 May 2023 10:40:10 +0530 Subject: [PATCH 070/571] Button renaming --- .../uicomponents/components/Button.kt | 42 +++++++++---------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/Button.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/Button.kt index 68e0e29e..c4e1cb7d 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/Button.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/Button.kt @@ -111,7 +111,7 @@ onClick = {} ) * */ -@Composable fun TKButton( +@Composable fun Button( label: String, height: ButtonSize = M, buttonStyle: ButtonStyle = PRIMARY, @@ -200,25 +200,25 @@ onClick = {} Column { Text("Primary Button", fontSize = 24.sp) Spacer(modifier = Modifier.height(20.dp)) - TKButton(label = "Primary ", height = M, buttonStyle = PRIMARY, onClick = {}) + Button(label = "Primary ", height = M, buttonStyle = PRIMARY, onClick = {}) Spacer(modifier = Modifier.height(10.dp)) - TKButton(label = "Primary ", height = L, buttonStyle = PRIMARY, onClick = {}) + Button(label = "Primary ", height = L, buttonStyle = PRIMARY, onClick = {}) Spacer(modifier = Modifier.height(10.dp)) - TKButton(label = "Primary ", height = S, buttonStyle = PRIMARY, onClick = {}) + Button(label = "Primary ", height = S, buttonStyle = PRIMARY, onClick = {}) Spacer(modifier = Modifier.height(10.dp)) - TKButton(label = "Primary ", height = XS, buttonStyle = PRIMARY, onClick = {}) + Button(label = "Primary ", height = XS, buttonStyle = PRIMARY, onClick = {}) } Column { Text("Secondary Button", fontSize = 24.sp) Spacer(modifier = Modifier.height(20.dp)) - TKButton(label = "Secondary ", height = M, buttonStyle = SECONDARY, onClick = {}) + Button(label = "Secondary ", height = M, buttonStyle = SECONDARY, onClick = {}) Spacer(modifier = Modifier.height(10.dp)) - TKButton(label = "Secondary ", height = L, buttonStyle = SECONDARY, onClick = {}) + Button(label = "Secondary ", height = L, buttonStyle = SECONDARY, onClick = {}) Spacer(modifier = Modifier.height(10.dp)) - TKButton(label = "Secondary ", height = S, buttonStyle = SECONDARY, onClick = {}) + Button(label = "Secondary ", height = S, buttonStyle = SECONDARY, onClick = {}) Spacer(modifier = Modifier.height(10.dp)) - TKButton(label = "Secondary ", height = XS, buttonStyle = SECONDARY, onClick = {}) + Button(label = "Secondary ", height = XS, buttonStyle = SECONDARY, onClick = {}) } } @@ -231,37 +231,37 @@ onClick = {} Column(horizontalAlignment = Alignment.Start) { Text("Ghost Button", fontSize = 24.sp) Spacer(modifier = Modifier.height(20.dp)) - TKButton(label = "Ghost Button", height = M, buttonStyle = GHOST, onClick = {}) + Button(label = "Ghost Button", height = M, buttonStyle = GHOST, onClick = {}) Spacer(modifier = Modifier.height(10.dp)) - TKButton(label = "Ghost Button", height = L, buttonStyle = GHOST, onClick = {}) + Button(label = "Ghost Button", height = L, buttonStyle = GHOST, onClick = {}) Spacer(modifier = Modifier.height(10.dp)) - TKButton(label = "Ghost Button", height = S, buttonStyle = GHOST, onClick = {}) + Button(label = "Ghost Button", height = S, buttonStyle = GHOST, onClick = {}) Spacer(modifier = Modifier.height(10.dp)) - TKButton(label = "Ghost Button", height = XS, buttonStyle = GHOST, onClick = {}) + Button(label = "Ghost Button", height = XS, buttonStyle = GHOST, onClick = {}) } Column { Text("Error Button", fontSize = 24.sp) Spacer(modifier = Modifier.height(20.dp)) - TKButton(label = "Error Button", height = M, buttonStyle = ERROR, onClick = {}) + Button(label = "Error Button", height = M, buttonStyle = ERROR, onClick = {}) Spacer(modifier = Modifier.height(10.dp)) - TKButton(label = "Error Button", height = L, buttonStyle = ERROR, onClick = {}) + Button(label = "Error Button", height = L, buttonStyle = ERROR, onClick = {}) Spacer(modifier = Modifier.height(10.dp)) - TKButton(label = "Error Button", height = S, buttonStyle = ERROR, onClick = {}) + Button(label = "Error Button", height = S, buttonStyle = ERROR, onClick = {}) Spacer(modifier = Modifier.height(10.dp)) - TKButton(label = "Error Button", height = XS, buttonStyle = ERROR, onClick = {}) + Button(label = "Error Button", height = XS, buttonStyle = ERROR, onClick = {}) } } Text("Outline Button", fontSize = 30.sp) Spacer(modifier = Modifier.height(20.dp)) - TKButton(label = "Outline Button", height = M, buttonStyle = OUTLINE, onClick = {}) + Button(label = "Outline Button", height = M, buttonStyle = OUTLINE, onClick = {}) Spacer(modifier = Modifier.height(10.dp)) - TKButton(label = "Outline Button", height = L, buttonStyle = OUTLINE, onClick = {}) + Button(label = "Outline Button", height = L, buttonStyle = OUTLINE, onClick = {}) Spacer(modifier = Modifier.height(10.dp)) - TKButton(label = "Outline Button", height = S, buttonStyle = OUTLINE, onClick = {}) + Button(label = "Outline Button", height = S, buttonStyle = OUTLINE, onClick = {}) Spacer(modifier = Modifier.height(10.dp)) - TKButton(label = "Outline Button", height = XS, buttonStyle = OUTLINE, onClick = {}) + Button(label = "Outline Button", height = XS, buttonStyle = OUTLINE, onClick = {}) } } } \ No newline at end of file From f758501e0e1c810b3dff020c7f7212c79fd797f5 Mon Sep 17 00:00:00 2001 From: AskNilesh Date: Fri, 19 May 2023 15:16:51 +0530 Subject: [PATCH 071/571] - Removed ghostIconButton composable function --- .../uicomponents/components/IconButton.kt | 23 ------------------- .../uicomponents/components/TextRow.kt | 14 +++++------ 2 files changed, 7 insertions(+), 30 deletions(-) diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/IconButton.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/IconButton.kt index cf59fdaf..a1cb8555 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/IconButton.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/IconButton.kt @@ -1,6 +1,5 @@ package com.tarkalabs.uicomponents.components -import androidx.annotation.DrawableRes import androidx.compose.foundation.border import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column @@ -318,25 +317,3 @@ enum class IconButtonStyle { } } -@Composable fun GhostIconButton( - @DrawableRes icon: Int, - contentDescription: String, - colors: IconButtonColors = IconButtonDefaults.iconButtonColors(), - buttonSize: IconButtonSize = L, - badgeCount: String? = null, - onIconClick: () -> Unit, -) { - IconButton( - onClick = onIconClick, - modifier = Modifier - .size(buttonSize.size) - .clip(CircleShape), - colors = colors - ) { - Icon( - painter = painterResource(id = icon), contentDescription = contentDescription - ) - } -} - - diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TextRow.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TextRow.kt index a5ada54b..dfe50529 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TextRow.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TextRow.kt @@ -1,6 +1,5 @@ package com.tarkalabs.uicomponents.components -import androidx.annotation.DrawableRes import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.PaddingValues @@ -60,15 +59,16 @@ import com.tarkalabs.uicomponents.theme.Eam360Theme ) } Row(verticalAlignment = Alignment.CenterVertically) { - if (iconOne != null) GhostIconButton( - icon = iconOne.iconRes, + if (iconOne != null) IconButton( + icon = iconOne, onIconClick = onIconOneClick, - contentDescription = "" + iconButtonStyle = IconButtonStyle.GHOST, ) - if (iconTwo != null) GhostIconButton( - icon = iconTwo.iconRes, + if (iconTwo != null) IconButton( + icon = iconTwo, onIconClick = onIconTwoClick, - contentDescription = "" + iconButtonStyle = IconButtonStyle.GHOST + ) if (buttonTitle != null) { OutlinedButton( From 6046828248666550804a3d71567a313b668e9da9 Mon Sep 17 00:00:00 2001 From: Raja Jawahar Date: Tue, 23 May 2023 15:51:05 +0530 Subject: [PATCH 072/571] File renaming --- tarkaui/build.gradle.kts | 2 +- .../uicomponents/BadgeScreenShotTest.kt | 6 +-- .../uicomponents/ButtonScreenShotTest.kt | 29 ++++++------ .../uicomponents/IconButtonScreenShotTest.kt | 10 ++--- .../components/{Badge.kt => TUIBadge.kt} | 13 +++++- .../components/{Button.kt => TUIButton.kt} | 44 +++++++++---------- .../{IconButton.kt => TUIIconButton.kt} | 42 +++++++++--------- ...NavigationRows.kt => TUINavigationRows.kt} | 4 +- .../components/{TextRow.kt => TUITextRow.kt} | 5 +-- 9 files changed, 82 insertions(+), 73 deletions(-) rename tarkaui/src/main/java/com/tarkalabs/uicomponents/components/{Badge.kt => TUIBadge.kt} (75%) rename tarkaui/src/main/java/com/tarkalabs/uicomponents/components/{Button.kt => TUIButton.kt} (78%) rename tarkaui/src/main/java/com/tarkalabs/uicomponents/components/{IconButton.kt => TUIIconButton.kt} (95%) rename tarkaui/src/main/java/com/tarkalabs/uicomponents/components/{NavigationRows.kt => TUINavigationRows.kt} (96%) rename tarkaui/src/main/java/com/tarkalabs/uicomponents/components/{TextRow.kt => TUITextRow.kt} (97%) diff --git a/tarkaui/build.gradle.kts b/tarkaui/build.gradle.kts index 09a14668..c679be4a 100644 --- a/tarkaui/build.gradle.kts +++ b/tarkaui/build.gradle.kts @@ -63,7 +63,7 @@ publishing { run { groupId = "com.tarkalabs" artifactId = getLibraryArtifactId() - version = "1.2-alpha" + version = "0.1-alpha" artifact("$buildDir/outputs/aar/${getLibraryArtifactId()}-release.aar") } } diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/BadgeScreenShotTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/BadgeScreenShotTest.kt index 181dff98..dc5569a7 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/BadgeScreenShotTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/BadgeScreenShotTest.kt @@ -1,6 +1,6 @@ import androidx.compose.ui.test.junit4.createComposeRule import com.karumi.shot.ScreenshotTest -import com.tarkalabs.uicomponents.components.Badge +import com.tarkalabs.uicomponents.components.TUIBadge import com.tarkalabs.uicomponents.components.BadgeSize.M import com.tarkalabs.uicomponents.components.BadgeSize.S import org.junit.Rule @@ -15,14 +15,14 @@ class BadgeScreenShotTest : ScreenshotTest { @Test fun test_badge_with_count() { composeRule.setContent { - Badge(count = 2, badgeSize = M) + TUIBadge(count = 2, badgeSize = M) } compareScreenshot(composeRule) } @Test fun test_badge_with_out_count() { composeRule.setContent { - Badge(badgeSize = S) + TUIBadge(badgeSize = S) } compareScreenshot(composeRule) } diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/ButtonScreenShotTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/ButtonScreenShotTest.kt index 6fe4b537..4620ebf3 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/ButtonScreenShotTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/ButtonScreenShotTest.kt @@ -1,14 +1,14 @@ -package com.tarkalabs.commonui +package com.tarkalabs.uicomponents +import TUIButton +import ButtonSize.L +import ButtonStyle.ERROR +import ButtonStyle.GHOST +import ButtonStyle.OUTLINE +import ButtonStyle.PRIMARY +import ButtonStyle.SECONDARY import androidx.compose.ui.test.junit4.createComposeRule import com.karumi.shot.ScreenshotTest -import com.tarkalabs.uicomponents.components.ButtonSize.L -import com.tarkalabs.uicomponents.components.ButtonStyle.ERROR -import com.tarkalabs.uicomponents.components.ButtonStyle.GHOST -import com.tarkalabs.uicomponents.components.ButtonStyle.OUTLINE -import com.tarkalabs.uicomponents.components.ButtonStyle.PRIMARY -import com.tarkalabs.uicomponents.components.ButtonStyle.SECONDARY -import com.tarkalabs.uicomponents.components.TKButton import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith @@ -21,35 +21,36 @@ class ButtonScreenShotTest : ScreenshotTest { @Test fun primaryButtonTest() { composeRule.setContent { - TKButton(label = "Primary button", buttonStyle = PRIMARY, height = L, onClick = {}) + TUIButton(label = "Primary button", buttonStyle = PRIMARY, height = L, onClick = {}) } compareScreenshot(composeRule) } + @Test fun secondaryButtonTest() { composeRule.setContent { - TKButton(label = "Secondary button", buttonStyle = SECONDARY, height = L, onClick = {}) + TUIButton(label = "Secondary button", buttonStyle = SECONDARY, height = L, onClick = {}) } compareScreenshot(composeRule) } @Test fun ghostButtonTest() { composeRule.setContent { - TKButton(label = "Ghost button", buttonStyle = GHOST, height = L, onClick = {}) + TUIButton(label = "Ghost button", buttonStyle = GHOST, height = L, onClick = {}) } compareScreenshot(composeRule) } + @Test fun errorButtonTest() { composeRule.setContent { - TKButton(label = "Error button", buttonStyle = ERROR, height = L, onClick = {}) + TUIButton(label = "Error button", buttonStyle = ERROR, height = L, onClick = {}) } compareScreenshot(composeRule) } @Test fun outlineButtonTest() { composeRule.setContent { - TKButton(label = "Outline button", buttonStyle = OUTLINE, height = L, onClick = {}) + TUIButton(label = "Outline button", buttonStyle = OUTLINE, height = L, onClick = {}) } compareScreenshot(composeRule) } - } \ No newline at end of file diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/IconButtonScreenShotTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/IconButtonScreenShotTest.kt index 5724ef22..38fd54d0 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/IconButtonScreenShotTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/IconButtonScreenShotTest.kt @@ -5,7 +5,7 @@ package com.tarkalabs.commonui import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.ui.test.junit4.createComposeRule import com.karumi.shot.ScreenshotTest -import com.tarkalabs.uicomponents.components.IconButton +import com.tarkalabs.uicomponents.components.TUIIconButton import com.tarkalabs.uicomponents.components.IconButtonSize import com.tarkalabs.uicomponents.components.IconButtonStyle import com.tarkalabs.uicomponents.models.TarkaIcons @@ -23,7 +23,7 @@ class IconButtonScreenShotTest : ScreenshotTest { @Test fun primaryIconButton() { composeRule.setContent { - IconButton( + TUIIconButton( icon = TarkaIcons.ChevronRight, buttonSize = IconButtonSize.XS, iconButtonStyle = IconButtonStyle.PRIMARY, @@ -36,7 +36,7 @@ class IconButtonScreenShotTest : ScreenshotTest { @Test fun secondaryIconButton() { composeRule.setContent { - IconButton( + TUIIconButton( icon = TarkaIcons.ChevronRight, buttonSize = IconButtonSize.XS, iconButtonStyle = IconButtonStyle.SECONDARY, @@ -50,7 +50,7 @@ class IconButtonScreenShotTest : ScreenshotTest { @Test fun ghostIconButton() { composeRule.setContent { - IconButton( + TUIIconButton( icon = TarkaIcons.ChevronRight, buttonSize = IconButtonSize.XS, iconButtonStyle = IconButtonStyle.GHOST, @@ -64,7 +64,7 @@ class IconButtonScreenShotTest : ScreenshotTest { @Test fun outlineIconButton() { composeRule.setContent { - IconButton( + TUIIconButton( icon = TarkaIcons.ChevronRight, buttonSize = IconButtonSize.XS, iconButtonStyle = IconButtonStyle.OUTLINE, diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/Badge.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIBadge.kt similarity index 75% rename from tarkaui/src/main/java/com/tarkalabs/uicomponents/components/Badge.kt rename to tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIBadge.kt index 50c86741..17000373 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/Badge.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIBadge.kt @@ -21,7 +21,16 @@ enum class BadgeSize(val size: Dp) { L(24.dp) } -@OptIn(ExperimentalMaterial3Api::class) @Composable fun Badge( +/** + * Below TUIBadge() defines a reusable composable function which can be used to create an Badge with various sizes which takes couple of parameters + * @param count The Count to be displayed on the badge. + * @param badgeSize The height size of the badge. Default is [BadgeSize.M]. + * + * How to use TKButton() composable function + * TUIBadge(count = 3,badgeSize = M) + * + */ +@OptIn(ExperimentalMaterial3Api::class) @Composable fun TUIBadge( count: Int? = null, badgeSize: BadgeSize = M ) { val padding = when (badgeSize) { @@ -51,5 +60,5 @@ enum class BadgeSize(val size: Dp) { } @Preview(showBackground = true) @Composable fun BadgePreview() { - Badge(count = 4440440, badgeSize = M) + TUIBadge(count = 4440440, badgeSize = M) } diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/Button.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIButton.kt similarity index 78% rename from tarkaui/src/main/java/com/tarkalabs/uicomponents/components/Button.kt rename to tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIButton.kt index c4e1cb7d..f73cc95c 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/Button.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIButton.kt @@ -93,7 +93,7 @@ enum class ButtonSize(val size: Dp) { } /** - * Below TKButton() defines a reusable composable function which can be used to create an Button with various styles and sizes which takes several parameters such as + * Below TUIButton() defines a reusable composable function which can be used to create an Button with various styles and sizes which takes several parameters such as * @param label The text to be displayed on the button. * @param height The height size of the button. Default is [ButtonSize.M]. * @param buttonStyle The style of the button. Default is [ButtonStyle.PRIMARY]. @@ -111,7 +111,7 @@ onClick = {} ) * */ -@Composable fun Button( +@Composable fun TUIButton( label: String, height: ButtonSize = M, buttonStyle: ButtonStyle = PRIMARY, @@ -200,25 +200,25 @@ onClick = {} Column { Text("Primary Button", fontSize = 24.sp) Spacer(modifier = Modifier.height(20.dp)) - Button(label = "Primary ", height = M, buttonStyle = PRIMARY, onClick = {}) + TUIButton(label = "Primary ", height = M, buttonStyle = PRIMARY, onClick = {}) Spacer(modifier = Modifier.height(10.dp)) - Button(label = "Primary ", height = L, buttonStyle = PRIMARY, onClick = {}) + TUIButton(label = "Primary ", height = L, buttonStyle = PRIMARY, onClick = {}) Spacer(modifier = Modifier.height(10.dp)) - Button(label = "Primary ", height = S, buttonStyle = PRIMARY, onClick = {}) + TUIButton(label = "Primary ", height = S, buttonStyle = PRIMARY, onClick = {}) Spacer(modifier = Modifier.height(10.dp)) - Button(label = "Primary ", height = XS, buttonStyle = PRIMARY, onClick = {}) + TUIButton(label = "Primary ", height = XS, buttonStyle = PRIMARY, onClick = {}) } Column { Text("Secondary Button", fontSize = 24.sp) Spacer(modifier = Modifier.height(20.dp)) - Button(label = "Secondary ", height = M, buttonStyle = SECONDARY, onClick = {}) + TUIButton(label = "Secondary ", height = M, buttonStyle = SECONDARY, onClick = {}) Spacer(modifier = Modifier.height(10.dp)) - Button(label = "Secondary ", height = L, buttonStyle = SECONDARY, onClick = {}) + TUIButton(label = "Secondary ", height = L, buttonStyle = SECONDARY, onClick = {}) Spacer(modifier = Modifier.height(10.dp)) - Button(label = "Secondary ", height = S, buttonStyle = SECONDARY, onClick = {}) + TUIButton(label = "Secondary ", height = S, buttonStyle = SECONDARY, onClick = {}) Spacer(modifier = Modifier.height(10.dp)) - Button(label = "Secondary ", height = XS, buttonStyle = SECONDARY, onClick = {}) + TUIButton(label = "Secondary ", height = XS, buttonStyle = SECONDARY, onClick = {}) } } @@ -231,37 +231,37 @@ onClick = {} Column(horizontalAlignment = Alignment.Start) { Text("Ghost Button", fontSize = 24.sp) Spacer(modifier = Modifier.height(20.dp)) - Button(label = "Ghost Button", height = M, buttonStyle = GHOST, onClick = {}) + TUIButton(label = "Ghost Button", height = M, buttonStyle = GHOST, onClick = {}) Spacer(modifier = Modifier.height(10.dp)) - Button(label = "Ghost Button", height = L, buttonStyle = GHOST, onClick = {}) + TUIButton(label = "Ghost Button", height = L, buttonStyle = GHOST, onClick = {}) Spacer(modifier = Modifier.height(10.dp)) - Button(label = "Ghost Button", height = S, buttonStyle = GHOST, onClick = {}) + TUIButton(label = "Ghost Button", height = S, buttonStyle = GHOST, onClick = {}) Spacer(modifier = Modifier.height(10.dp)) - Button(label = "Ghost Button", height = XS, buttonStyle = GHOST, onClick = {}) + TUIButton(label = "Ghost Button", height = XS, buttonStyle = GHOST, onClick = {}) } Column { Text("Error Button", fontSize = 24.sp) Spacer(modifier = Modifier.height(20.dp)) - Button(label = "Error Button", height = M, buttonStyle = ERROR, onClick = {}) + TUIButton(label = "Error Button", height = M, buttonStyle = ERROR, onClick = {}) Spacer(modifier = Modifier.height(10.dp)) - Button(label = "Error Button", height = L, buttonStyle = ERROR, onClick = {}) + TUIButton(label = "Error Button", height = L, buttonStyle = ERROR, onClick = {}) Spacer(modifier = Modifier.height(10.dp)) - Button(label = "Error Button", height = S, buttonStyle = ERROR, onClick = {}) + TUIButton(label = "Error Button", height = S, buttonStyle = ERROR, onClick = {}) Spacer(modifier = Modifier.height(10.dp)) - Button(label = "Error Button", height = XS, buttonStyle = ERROR, onClick = {}) + TUIButton(label = "Error Button", height = XS, buttonStyle = ERROR, onClick = {}) } } Text("Outline Button", fontSize = 30.sp) Spacer(modifier = Modifier.height(20.dp)) - Button(label = "Outline Button", height = M, buttonStyle = OUTLINE, onClick = {}) + TUIButton(label = "Outline Button", height = M, buttonStyle = OUTLINE, onClick = {}) Spacer(modifier = Modifier.height(10.dp)) - Button(label = "Outline Button", height = L, buttonStyle = OUTLINE, onClick = {}) + TUIButton(label = "Outline Button", height = L, buttonStyle = OUTLINE, onClick = {}) Spacer(modifier = Modifier.height(10.dp)) - Button(label = "Outline Button", height = S, buttonStyle = OUTLINE, onClick = {}) + TUIButton(label = "Outline Button", height = S, buttonStyle = OUTLINE, onClick = {}) Spacer(modifier = Modifier.height(10.dp)) - Button(label = "Outline Button", height = XS, buttonStyle = OUTLINE, onClick = {}) + TUIButton(label = "Outline Button", height = XS, buttonStyle = OUTLINE, onClick = {}) } } } \ No newline at end of file diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/IconButton.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIIconButton.kt similarity index 95% rename from tarkaui/src/main/java/com/tarkalabs/uicomponents/components/IconButton.kt rename to tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIIconButton.kt index cf59fdaf..6c8f247d 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/IconButton.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIIconButton.kt @@ -81,7 +81,7 @@ enum class IconButtonStyle { ) * */ -@Composable fun IconButton( +@Composable fun TUIIconButton( icon: TarkaIcon, buttonSize: IconButtonSize = L, iconButtonStyle: IconButtonStyle = IconButtonStyle.defaultStyle, @@ -165,32 +165,32 @@ enum class IconButtonStyle { horizontalArrangement = Arrangement.Center, verticalAlignment = Alignment.CenterVertically ) { - IconButton( + TUIIconButton( icon = TarkaIcons.ChevronRight, buttonSize = XS, iconButtonStyle = PRIMARY ) Spacer(modifier = Modifier.width(20.dp)) - IconButton( + TUIIconButton( icon = TarkaIcons.ChevronRight, buttonSize = S, iconButtonStyle = PRIMARY ) Spacer(modifier = Modifier.width(20.dp)) - IconButton( + TUIIconButton( icon = TarkaIcons.ChevronRight, buttonSize = M, iconButtonStyle = PRIMARY ) Spacer(modifier = Modifier.width(20.dp)) - IconButton( + TUIIconButton( icon = TarkaIcons.ChevronRight, buttonSize = L, iconButtonStyle = PRIMARY ) Spacer(modifier = Modifier.width(20.dp)) - IconButton( + TUIIconButton( icon = TarkaIcons.ChevronRight, buttonSize = XL, iconButtonStyle = PRIMARY @@ -204,32 +204,32 @@ enum class IconButtonStyle { horizontalArrangement = Arrangement.Center, verticalAlignment = Alignment.CenterVertically ) { - IconButton( + TUIIconButton( icon = TarkaIcons.ChevronRight, buttonSize = XS, iconButtonStyle = SECONDARY ) Spacer(modifier = Modifier.width(20.dp)) - IconButton( + TUIIconButton( icon = TarkaIcons.ChevronRight, buttonSize = S, iconButtonStyle = SECONDARY ) Spacer(modifier = Modifier.width(20.dp)) - IconButton( + TUIIconButton( icon = TarkaIcons.ChevronRight, buttonSize = M, iconButtonStyle = SECONDARY ) Spacer(modifier = Modifier.width(20.dp)) - IconButton( + TUIIconButton( icon = TarkaIcons.ChevronRight, buttonSize = L, iconButtonStyle = SECONDARY ) Spacer(modifier = Modifier.width(20.dp)) - IconButton( + TUIIconButton( icon = TarkaIcons.ChevronRight, buttonSize = XL, iconButtonStyle = SECONDARY @@ -244,32 +244,32 @@ enum class IconButtonStyle { horizontalArrangement = Arrangement.Center, verticalAlignment = Alignment.CenterVertically ) { - IconButton( + TUIIconButton( icon = TarkaIcons.ChevronRight, buttonSize = XS, iconButtonStyle = GHOST ) Spacer(modifier = Modifier.width(20.dp)) - IconButton( + TUIIconButton( icon = TarkaIcons.ChevronRight, buttonSize = S, iconButtonStyle = GHOST ) Spacer(modifier = Modifier.width(20.dp)) - IconButton( + TUIIconButton( icon = TarkaIcons.ChevronRight, buttonSize = M, iconButtonStyle = GHOST ) Spacer(modifier = Modifier.width(20.dp)) - IconButton( + TUIIconButton( icon = TarkaIcons.ChevronRight, buttonSize = L, iconButtonStyle = GHOST ) Spacer(modifier = Modifier.width(20.dp)) - IconButton( + TUIIconButton( icon = TarkaIcons.ChevronRight, buttonSize = XL, iconButtonStyle = GHOST @@ -283,32 +283,32 @@ enum class IconButtonStyle { horizontalArrangement = Arrangement.Center, verticalAlignment = Alignment.CenterVertically ) { - IconButton( + TUIIconButton( icon = TarkaIcons.ChevronRight, buttonSize = XS, iconButtonStyle = OUTLINE ) Spacer(modifier = Modifier.width(20.dp)) - IconButton( + TUIIconButton( icon = TarkaIcons.ChevronRight, buttonSize = S, iconButtonStyle = OUTLINE ) Spacer(modifier = Modifier.width(20.dp)) - IconButton( + TUIIconButton( icon = TarkaIcons.ChevronRight, buttonSize = M, iconButtonStyle = OUTLINE ) Spacer(modifier = Modifier.width(20.dp)) - IconButton( + TUIIconButton( icon = TarkaIcons.ChevronRight, buttonSize = L, iconButtonStyle = OUTLINE ) Spacer(modifier = Modifier.width(20.dp)) - IconButton( + TUIIconButton( icon = TarkaIcons.ChevronRight, buttonSize = XL, iconButtonStyle = OUTLINE diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/NavigationRows.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUINavigationRows.kt similarity index 96% rename from tarkaui/src/main/java/com/tarkalabs/uicomponents/components/NavigationRows.kt rename to tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUINavigationRows.kt index ec466327..8b5a0401 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/NavigationRows.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUINavigationRows.kt @@ -16,7 +16,7 @@ import com.tarkalabs.uicomponents.models.TarkaIcons import com.tarkalabs.uicomponents.theme.Eam360Theme // TODO: 5/2/2023 use dimensions instead of hard coded things -@OptIn(ExperimentalMaterial3Api::class) @Composable fun NavigationRow( +@OptIn(ExperimentalMaterial3Api::class) @Composable fun TUINavigationRow( title: String, leadingIcon: TarkaIcon? = null, badgeCount: Int? = null, @@ -65,7 +65,7 @@ import com.tarkalabs.uicomponents.theme.Eam360Theme } @Preview(showBackground = true) @Composable fun NavigationRowPreview() { - NavigationRow( + TUINavigationRow( title = "Label", leadingIcon = TarkaIcon(androidx.core.R.drawable.ic_call_decline, "Call Decline"), badgeCount = 5, diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TextRow.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUITextRow.kt similarity index 97% rename from tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TextRow.kt rename to tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUITextRow.kt index a5ada54b..ab5ae87d 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TextRow.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUITextRow.kt @@ -1,6 +1,5 @@ package com.tarkalabs.uicomponents.components -import androidx.annotation.DrawableRes import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.PaddingValues @@ -26,7 +25,7 @@ import androidx.core.R.drawable import com.tarkalabs.uicomponents.models.TarkaIcon import com.tarkalabs.uicomponents.theme.Eam360Theme -@Composable fun TextRow( +@Composable fun TUITextRow( title: String, description: String, modifier: Modifier = Modifier.fillMaxWidth(), @@ -89,7 +88,7 @@ import com.tarkalabs.uicomponents.theme.Eam360Theme } @Preview(showBackground = true) @Composable fun TextRowWithDescriptionPreview() { - TextRow( + TUITextRow( title = "Title", description = "Description", infoIcon = TarkaIcon(drawable.ic_call_answer, "Call Answer"), From 1fb3fbfb85a4fae7d052dc3e52934f018547bb01 Mon Sep 17 00:00:00 2001 From: Raja Jawahar Date: Thu, 25 May 2023 11:51:22 +0530 Subject: [PATCH 073/571] Minor optimisation --- .../tarkalabs/uicomponents/components/TUIBadge.kt | 6 +++--- .../tarkalabs/uicomponents/components/TUIButton.kt | 13 ++++++------- .../uicomponents/components/TUIIconButton.kt | 6 +++--- .../uicomponents/components/TUINavigationRows.kt | 8 ++++---- .../tarkalabs/uicomponents/components/TUITextRow.kt | 12 ++++++------ .../com/tarkalabs/uicomponents/components/TopBar.kt | 4 ++-- .../java/com/tarkalabs/uicomponents/theme/Theme.kt | 4 ++-- 7 files changed, 26 insertions(+), 27 deletions(-) diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIBadge.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIBadge.kt index 17000373..88c61f02 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIBadge.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIBadge.kt @@ -13,7 +13,7 @@ import androidx.compose.ui.unit.dp import com.tarkalabs.uicomponents.components.BadgeSize.L import com.tarkalabs.uicomponents.components.BadgeSize.M import com.tarkalabs.uicomponents.components.BadgeSize.S -import com.tarkalabs.uicomponents.theme.Eam360Theme +import com.tarkalabs.uicomponents.theme.TUITheme enum class BadgeSize(val size: Dp) { S(12.dp), @@ -39,8 +39,8 @@ enum class BadgeSize(val size: Dp) { L -> 8.dp } val textStyle = when (badgeSize) { - S, M -> Eam360Theme.typography.button8 - L -> Eam360Theme.typography.button7 + S, M -> TUITheme.typography.button8 + L -> TUITheme.typography.button7 } androidx.compose.material3.Badge( containerColor = MaterialTheme.colorScheme.error, diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIButton.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIButton.kt index f73cc95c..e0050a0c 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIButton.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIButton.kt @@ -36,8 +36,7 @@ import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import com.tarkalabs.uicomponents.models.TarkaIcon -import com.tarkalabs.uicomponents.theme.Eam360Theme -import com.tarkalabs.uicomponents.theme.EamTheme +import com.tarkalabs.uicomponents.theme.TUITheme enum class ButtonStyle { PRIMARY, @@ -85,10 +84,10 @@ enum class ButtonSize(val size: Dp) { } @Composable fun textStyle() = when (this) { - L -> Eam360Theme.typography.button6 - M -> Eam360Theme.typography.button6 - S -> Eam360Theme.typography.button7 - XS -> Eam360Theme.typography.button8 + L -> TUITheme.typography.button6 + M -> TUITheme.typography.button6 + S -> TUITheme.typography.button7 + XS -> TUITheme.typography.button8 } } @@ -189,7 +188,7 @@ onClick = {} } @Composable @Preview(showBackground = true, showSystemUi = true) fun PreviewPrimaryButton() { - EamTheme { + TUITheme { Column( horizontalAlignment = Alignment.CenterHorizontally, modifier = Modifier diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIIconButton.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIIconButton.kt index 26d5546d..4e9cdc63 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIIconButton.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIIconButton.kt @@ -38,7 +38,7 @@ import com.tarkalabs.uicomponents.components.IconButtonStyle.SECONDARY import com.tarkalabs.uicomponents.models.TarkaIcon import com.tarkalabs.uicomponents.models.TarkaIcons import com.tarkalabs.uicomponents.theme.ColorUtilityOutline -import com.tarkalabs.uicomponents.theme.EamTheme +import com.tarkalabs.uicomponents.theme.TUITheme // Created by Nilesh Rathod on 12/05/23. @@ -152,8 +152,8 @@ enum class IconButtonStyle { } } -@Preview(showSystemUi = true) @Composable fun DefaultIconButtonPreview() { - EamTheme { +@Preview(showSystemUi = true) @Composable fun TUIIconButtonPreview() { + TUITheme { Column( horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center ) { diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUINavigationRows.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUINavigationRows.kt index 8b5a0401..115a0c1b 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUINavigationRows.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUINavigationRows.kt @@ -13,7 +13,7 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.tarkalabs.uicomponents.models.TarkaIcon import com.tarkalabs.uicomponents.models.TarkaIcons -import com.tarkalabs.uicomponents.theme.Eam360Theme +import com.tarkalabs.uicomponents.theme.TUITheme // TODO: 5/2/2023 use dimensions instead of hard coded things @OptIn(ExperimentalMaterial3Api::class) @Composable fun TUINavigationRow( @@ -40,7 +40,7 @@ import com.tarkalabs.uicomponents.theme.Eam360Theme modifier = Modifier .weight(1f) .padding(horizontal = 20.dp), - style = Eam360Theme.typography.heading7, + style = TUITheme.typography.heading7, color = MaterialTheme.colorScheme.onSurface ) if (badgeCount != null) Badge( @@ -51,7 +51,7 @@ import com.tarkalabs.uicomponents.theme.Eam360Theme ) { Text( text = badgeCount.toString(), - style = Eam360Theme.typography.button8, + style = TUITheme.typography.button8, color = MaterialTheme.colorScheme.onTertiary, ) } @@ -64,7 +64,7 @@ import com.tarkalabs.uicomponents.theme.Eam360Theme } } -@Preview(showBackground = true) @Composable fun NavigationRowPreview() { +@Preview(showBackground = true) @Composable fun TUINavigationRowPreview() { TUINavigationRow( title = "Label", leadingIcon = TarkaIcon(androidx.core.R.drawable.ic_call_decline, "Call Decline"), diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUITextRow.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUITextRow.kt index c8256ef9..759a7bca 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUITextRow.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUITextRow.kt @@ -23,7 +23,7 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.core.R.drawable import com.tarkalabs.uicomponents.models.TarkaIcon -import com.tarkalabs.uicomponents.theme.Eam360Theme +import com.tarkalabs.uicomponents.theme.TUITheme @Composable fun TUITextRow( title: String, @@ -49,22 +49,22 @@ import com.tarkalabs.uicomponents.theme.Eam360Theme Column(Modifier.weight(1f)) { Text( text = title, - style = Eam360Theme.typography.body8, + style = TUITheme.typography.body8, color = MaterialTheme.colorScheme.onSurface.copy(alpha = 0.7f) ) Text( text = description, - style = Eam360Theme.typography.body7, + style = TUITheme.typography.body7, color = MaterialTheme.colorScheme.onSurface ) } Row(verticalAlignment = Alignment.CenterVertically) { - if (iconOne != null) IconButton( + if (iconOne != null) TUIIconButton( icon = iconOne, onIconClick = onIconOneClick, iconButtonStyle = IconButtonStyle.GHOST, ) - if (iconTwo != null) IconButton( + if (iconTwo != null) TUIIconButton( icon = iconTwo, onIconClick = onIconTwoClick, iconButtonStyle = IconButtonStyle.GHOST @@ -88,7 +88,7 @@ import com.tarkalabs.uicomponents.theme.Eam360Theme } } -@Preview(showBackground = true) @Composable fun TextRowWithDescriptionPreview() { +@Preview(showBackground = true) @Composable fun TUITextRowPreview() { TUITextRow( title = "Title", description = "Description", diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TopBar.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TopBar.kt index 4788ecf4..94a0cf53 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TopBar.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TopBar.kt @@ -18,7 +18,7 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.res.painterResource import com.tarkalabs.uicomponents.models.TarkaIcon -import com.tarkalabs.uicomponents.theme.Eam360Theme +import com.tarkalabs.uicomponents.theme.TUITheme @OptIn(ExperimentalMaterial3Api::class) @Composable fun TopBar( title: String, @@ -46,7 +46,7 @@ import com.tarkalabs.uicomponents.theme.Eam360Theme title = { Text( text = title, - style = Eam360Theme.typography.heading5, + style = TUITheme.typography.heading5, color = MaterialTheme.colorScheme.onSurface ) }, diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Theme.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Theme.kt index 075c05d8..075bf6bd 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Theme.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Theme.kt @@ -49,7 +49,7 @@ private val LightColorPalette = lightColorScheme( onSurface = LightColorOnSurface ) -@Composable fun EamTheme( +@Composable fun TUITheme( darkTheme: Boolean = isSystemInDarkTheme(), content: @Composable () -> Unit, ) { val colors = if (darkTheme) DarkColorPalette else LightColorPalette @@ -64,7 +64,7 @@ private val LightColorPalette = lightColorScheme( } -object Eam360Theme { +object TUITheme { val typography: ExtendedTypography @Composable get() = LocalExtendedTypography.current From 9e7421b87fc5adbc89d6a12b432a04fc7f790930 Mon Sep 17 00:00:00 2001 From: Raja Jawahar Date: Thu, 25 May 2023 11:56:06 +0530 Subject: [PATCH 074/571] Old Files deleted --- ...geScreenShotTest_test_badge_with_count.png | Bin 1637 -> 1627 bytes ...reenShotTest_test_badge_with_out_count.png | Bin 856 -> 812 bytes ...ScreenShotTest_renderTopAppBarTextOnly.png | Bin 8037 -> 7754 bytes ...enShotTest_renderTopAppBarTextWithIcon.png | Bin 8349 -> 7954 bytes ...i.ButtonScreenShotTest_errorButtonTest.png | Bin 6326 -> 0 bytes ...i.ButtonScreenShotTest_ghostButtonTest.png | Bin 5362 -> 0 bytes ...ButtonScreenShotTest_outlineButtonTest.png | Bin 9939 -> 0 bytes ...ButtonScreenShotTest_primaryButtonTest.png | Bin 8291 -> 0 bytes ...ttonScreenShotTest_secondaryButtonTest.png | Bin 10207 -> 0 bytes ...onButtonScreenShotTest_ghostIconButton.png | Bin 419 -> 430 bytes ...ButtonScreenShotTest_outlineIconButton.png | Bin 2217 -> 2212 bytes ...ButtonScreenShotTest_primaryIconButton.png | Bin 1336 -> 1346 bytes ...ttonScreenShotTest_secondaryIconButton.png | Bin 1333 -> 1337 bytes ...s.ButtonScreenShotTest_errorButtonTest.png | Bin 0 -> 6001 bytes ...s.ButtonScreenShotTest_ghostButtonTest.png | Bin 0 -> 5192 bytes ...ButtonScreenShotTest_outlineButtonTest.png | Bin 0 -> 9608 bytes ...ButtonScreenShotTest_primaryButtonTest.png | Bin 0 -> 7967 bytes ...ttonScreenShotTest_secondaryButtonTest.png | Bin 0 -> 9809 bytes .../uicomponents/components/TUIIconButton.kt | 12 ++++++------ 19 files changed, 6 insertions(+), 6 deletions(-) delete mode 100644 tarkaui/screenshots/debug/com.tarkalabs.commonui.ButtonScreenShotTest_errorButtonTest.png delete mode 100644 tarkaui/screenshots/debug/com.tarkalabs.commonui.ButtonScreenShotTest_ghostButtonTest.png delete mode 100644 tarkaui/screenshots/debug/com.tarkalabs.commonui.ButtonScreenShotTest_outlineButtonTest.png delete mode 100644 tarkaui/screenshots/debug/com.tarkalabs.commonui.ButtonScreenShotTest_primaryButtonTest.png delete mode 100644 tarkaui/screenshots/debug/com.tarkalabs.commonui.ButtonScreenShotTest_secondaryButtonTest.png create mode 100644 tarkaui/screenshots/debug/com.tarkalabs.uicomponents.ButtonScreenShotTest_errorButtonTest.png create mode 100644 tarkaui/screenshots/debug/com.tarkalabs.uicomponents.ButtonScreenShotTest_ghostButtonTest.png create mode 100644 tarkaui/screenshots/debug/com.tarkalabs.uicomponents.ButtonScreenShotTest_outlineButtonTest.png create mode 100644 tarkaui/screenshots/debug/com.tarkalabs.uicomponents.ButtonScreenShotTest_primaryButtonTest.png create mode 100644 tarkaui/screenshots/debug/com.tarkalabs.uicomponents.ButtonScreenShotTest_secondaryButtonTest.png diff --git a/tarkaui/screenshots/debug/BadgeScreenShotTest_test_badge_with_count.png b/tarkaui/screenshots/debug/BadgeScreenShotTest_test_badge_with_count.png index fdcbf0c689316aaf7ac439fe636a3cb70c194468..80f6a3db04752914ce94ba435109992f9a79d022 100644 GIT binary patch literal 1627 zcmV-h2Bi6kP)nVRzw*`Ibh?4TFD*&RQ7j_5>jC~uc&Zin6Vt4jpO3(ohzAV8~gQ{L`0gold| zKo+3YYVWJw(`?^KfJUQ{+;I7W?q^>Jq$Qxy2olF9xE6ZPumC|2EkLk8dff*u0Ydw% zdl&)(Z3z$o9mX$o5e5->p|2YP+ylSRMa1h71klV24h{qab^_Evz=I21@I+4;JlrZO zM1Ao&G?tg5`QJ*k)ZBp0YIXcitJfp+i714{#vwd03B8AnM4!=Pe6<9;Ck-X%VLAE@ zs*issD%;pCk8Rc_G*{B~H|kEGY$qig(Gw@3-|KH6V(4(SeSo_sU?-@d*o4a6+fm!D zj2t1tt{*<&xFW}nN8DTKh!{44_YzR<^RIlm0ay3!^{U4ptDq}pRvO|LFZItQ&~&*B zWd-@TU25iLu0(9Z`ExMlt%YH*k(ULq%gv(GFt5mgt*Mc_(;|XRnRAh{ZX^1R9_xDo zZv9q>lEs;{om4GIwuwa3n8QBXhCa`Y@!b+2vo|l#hEI->#4%~?5!?1ES`LaVplofP zDrVnpq!7m@3?ujKSD%0@o7Qu6cq~4Fu*7FCQ;z_O^Z$Ld$8XYE!V>lJBw2ZaECMQb zZBqm|B%(KBrc8rj;2?xXMxyQBJx6MM^MVOg-+v3am{K=x;ZFd~e(kBBWh*{pc|Q72 zeib^sq049PR9jH7dk3z3v6bn&2@_#swE|`Ws*W6#rF?jN0!D4!3B9=Cd6+yN-4DsR zD-b#AdHgZ|UD#V&nXqvup!ztwiRugnjNJ5jC*|$7R@|+tgC;c8VIA%gJ>f+RUA+#) zE0-`~OI*2z9|4r{$q9Q;&rU;xF}heC?X!R=<}fA}MDndJRtOcx=G5 z8K~H`1GmL|!_%-x7+EqzCIad&oRww%PrWu(>a`CaL~*_}Y*~Ihj{1vcj5~0|aW+7r z2?;^$jG4H&p@0b^Hv$^VF3BRm@PO%8?EbQA2Uv9-mY;q=+{{@W_w)l|!4o4B0d$fh zXZ<&nm%6Qc8|uv^-9CS}wnp-|Rv!kQ7?}v5Sj{S}O-(4A^QOnohs8)|{Eo!}o*0=3 zuvwe9W^|!Z(TEy1UUILd@DzArWDA3wcYUe(Yw%c~zOFp~ayhOZJp`T@b?_5O%2|T` zlU{M@Atpej8#izt*DnZ2cyA#RGUiL}{k3zuBQyp)0i?Jw>jSve<#6rTQC#|Dy(;6g z5kMfl=m!SRUj*a(Qst{po`C7YEcsu`c*4a*fL7eWdFuoyaZxrB7i38Q-}vPO&MeGe z+5mNhksAS&qFTK`KvH%t5;7Nbnt4*bt))d-C~Z%pxe!3LJL^9ciU20(E=T-3nbMg* zbrg51g#D+Q>T0Md2_)kj|d=a+!LWEr%Y!iKrJC`+zFsV$H*5Z zC~}58gfOXA7l@me!9>8Z;mOw~?L zQe@W!74HU(`2{d#r1`8uOks~O_-s2&b@`N!H=#HyL;W5BF_osVmA1+#J`bS8gE}>+ zSwSsJpqVG-{h~$2Ndk3hP_qJWpFnG#%-*k>q@2rvIyIVgyZ@QD%sd|Z{oarN_rJa$ zXQ`_02D;JBf4Y8ppBelNe*DY#ygg3?ee`YIFebua(7SoTRXlv>(y3q3-|>G&7#CvAFxR~UM>1#OQj zWDTy@N4z6OxUzLUR*3+uMcT z>jMMfKQ;u$2~h|%C17;&G>o}r26O=d!-I&we=0!zw|mfdARkwY$engO9CX=Eq51I7 zs1@9lL+G9NBK)C;G477Lwb>dv{Aw30ujN9`UY-c1trNc{ z7ZGW5JkKL)wrqs$(~q%(bw4XjDE430fDMgng zB5XUhNd_Bwdn%$AWMJH_(_sh<68}>>J8|}pGMw4F8z(>c7*ermLIm{=Qp@JVoaYg< za4~d#epjCV==HppOckz(`yN1P&eL$z)iJF>*a#zQZ^BFjHBeG4e&s5}Wo8Zd`LQ>r z;HJEHQJDT1Un@A6F{(-gwbIl8u^PRUY3T~ly-V$O)P21Nt;b5yb@3ubO`d`Yv(qpl zB&7G5V7?WkX4b}Krk1!KK7zrzjS1=JlLlr3&JoN@~K>OlzF$w<}We&^cw{YX8 zt-bfiLnvmn{(cOsSXCp!Zmp6;L_lbmIN<(zxbOXaU>~}>y1?mluD=fpXD|2|u`&_i zs68!-h$H5w;64>@E-CKwS^bCr{C_lXp|yp1O;)T-M9_>;iq-GmH{fR@9-J*Ajp9jb z*>UDIS+Oz^;T*K8WqP9#F$)%nGr%tg(RKbj^LMdgWve4p?k$pXUlnDHPCf-zzqeU( z?=dJ7D!E4WLS)*bqI)Mkc!w{!%QacwBZx39U5QCq%f)e}ARm^kd75EhBZ7jM!rQ~N zY$X!R&xitK%h6JlW}D@GG2>90i3mE4qJtQvEZ)2t@ypC2(6kjwmS^IU%ykH>YDCbH zoI@cZC?*Ko!JUNiG8AQH;Cxe)?C&S6su5v~oG2X0$+g6sHHdp6>oQL$TCz|P5}a67 zBO=I@AbT=3`MI@-&3ICD@1M#Fp$Sup1SeM2h@cZ{n+$MMUdTmEdWPuUIZI^^35^Yk z24TXg8WCesZj+oju3z^GqUWZINvO68F@d^HMUBTOU{#9<8gzu-H4}{mKQLE}*FHY~ z@-o=ohUE3H_df^utpt`Wn+CidVPw@+Fc(y$RbV9|{GOQunp5=IH*`3dF{)l!(y)WH z3bJ$$DjH#vA}WzoVn@wijEWa?Jdy~)rdh8+=LR$>9%w4fPfgK;gt0SHB`azqH(jyj zY(cQ$F~@#*rES*czk=zy4`H>Tap^Bi+=UZvb)cIOPczPixDV}Hs_{>Lyj|d+TJ|cWX j_=xZk;UmIFgc9~I$W>w1$qgQj00000NkvXXu0mjfIj{dk diff --git a/tarkaui/screenshots/debug/BadgeScreenShotTest_test_badge_with_out_count.png b/tarkaui/screenshots/debug/BadgeScreenShotTest_test_badge_with_out_count.png index 092a39d7c7f7ffb9b3627f1d1d0a9316468e42bc..23854375a8cd9ae6179a9c02685b08c2f887a8c8 100644 GIT binary patch literal 812 zcmV+{1JnG8P)Nklz%aC=l0p&*dZTxWg2=EJ zhEzlaeu#*IFv?ySZgXlM9JA11n_I@FxAUBF*PSlCy0`y!@3`FE^ZP%~InQ&C?+|LrpZ1N|8P;lV^;Ox!aV^N_v73}cZ6rpi@VxON@n+#Ki; z;}UQshO9un3UZj|sTDuFUUC+?%0jxwFm!iz+f;$9?@hVFyKPpnO2NBd!td# zSHnDj0H3y!rW44GlMN=zu?X+i9`qh>M2M$UM*N7SIhqJM?XWc*z>2o>$meThiUBFQ z@F;S7b0fkWE+ql1)r8L{#;&}4D<%_6l6VHBNENtFw?yDGkP zW?{cSV;LYeLx#ne$%K&Co3hR~ld?FQ<(LZ*p2a|_l+D>JudEz?yDcLIh|Th=*YGV@ zXGRPVn=M+ufp4|sY5TpDi!+JM3`Qf&Teqh@3&bS0D8psD_NLtcF+~~D$yi*9!ae&j z)Nv;*aAFZNYJg;^KLYQ^?vz)Ask}n4qK!yyLa;W*WtwCSL6nP)TXl6G%I>PLy4p_njPBDlH`<*!Fn5;O;eJ2&oO{kaBMkI^mjDS8 zAAR@GHvP2=jxTMP>F#M-Sn2-jE)i{ZkH z${c})0F&HqjJ>Lc<$Z%J>~8|UG&Ib+uwXS~ny!vkj8{LCfs*&-V?*H)2%`9R2*xyi zs}J;qFjgym@VREXJF)qE$x09!Z#c+)JDupgbOyGz7KlqOkAzJ$)?vY7Le`Bt(8R?B zLI~W&g4fLwdM=-Zqn!gpO5M+B-afv-ZFeh!AV_V=5d$|%;b{AWDCqk@`22&nO0ng_ zRUd>XaHk6r%GSgC^pzn-d0x+% z&8u$1NJ6@}o{{UO9V>#IpQg995R`Pol98?qF~!U9?1({Lr4+@LhceQg>TCzIw>B## z8p`Y~P23aTx}m0#KASZRsp0`|NVq<8O-`!n3DRe7*PN;lq|ZccEYt)ceWp!H!tD5% zY7nH)bQ?2Ng&=*lE;|Rd=8vjDkUmS?lM6%DBh?^CpT+Ok1zq|kIEQ~J9}2EZ`tkv` z{?K9kykD+31nJ8C1P!T2Pr&%{IX})#iUGvxQ)FE)1T_{J#i!AC?V@53r04k_VV;Nj z0|#O6_zY8BZPWo$3JPUCZ;$E!XJ$zm=6KDpwKhdB8+PZ)Isx5w@Jrd{73ev4Dk>lZ zK=UvA_z8ZX(dm%$pbGuhuS7I76oOz6tO(&BngpK1LzVabD{CkVXcPMHfv_Pwn>CrY z<)bg2V*E|bKNU18L{tYT4OjgtUu`m)Ano```Eu~=vGJa8s;3K1-VsqlLTvyY$8;Lf iVMJ#Em13%d;o2Xj7&Hr`(_cCO0000E diff --git a/tarkaui/screenshots/debug/TopBarScreenShotTest_renderTopAppBarTextOnly.png b/tarkaui/screenshots/debug/TopBarScreenShotTest_renderTopAppBarTextOnly.png index 5971e996a0c187c39b0c0c880ba79402ece89ddd..d3a6d23ebfb699fe82aaa6f314c3bc8642a8ab08 100644 GIT binary patch literal 7754 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 Ca1`$V literal 8037 zcmeHs=R2Ey*gw^&<*q7fgxjv#S}RtI+M}pVwDz8{g;obzf>i^)*Oi?6JU^c+?umgW9W5Iz6%`eowwAgv71c#K%K7uv z%ar%^c8m}e6_<#%`lF{IGaK_)KHPrH_I=CeIfFLm^J}n-fAd8ax$lmeM8g7tdi@>w zaQS@6Cbjv#`HnZ^wT2$umeYoHGxFVq-R5V5W+R67(&3xanNAt-Xfm;7v@YDaqO8m% zuMAUtd~bO+WdW0#eT>R3R3sacmqgVme@}UBie$v|EGOpk@Trq|)m7EhQnCceDvO8M zJXs&e64~xtZz`&!KPSC+&scn8UkhB(2+cBT3I9UpU^{5P&5c~zw|4&)O0 zI`v=aX8uoqTEI7kEI#d9L>5V5YtqN4;~)11 zuF{{z2>tj^_^kZNSGvD0D;^Q9j=mT>9@2>~zP=!8reJCw^_1u?KR1a_3zxz+q zs|M8S%ojQSN;|`%E_2A9T9`2Z{rGRqVV{^P872Cfjr~7?>k&mDuk_!=K@*FA4^&eQ z7q9$1edeV8zr+8xPQcg#d~@UjH1;_*{l^ zU@CUXLbr_6{c%IzCaDMDvlsu*?Vd6d@gPW9Gc@h5Imc{qvj6|$;+i}iB zJu9fRLe3D;X+pMES<+rS!^%7He7foJ!ZcLht=dfW``KVj*9kVD;k!E~SZ0yx)`oBpj;)lM-A#7HiDmD*FVwd%v znhCDi>z_juepgm{_Exj()OmcDnL=x(+l;n5Z5ko)p@8nQ+tV%P{ zBF{X(Qw=8UBBq@o2Dd?mJ*EdJ^VmW5(uUFPBSmGEpc6$w$Ea?`nt7KR%RMJK%_m0AnL5OUD5rv`G2MS zXkh&XHruBo`2Z8O;AdxH@nIlWdfcVv2_SQ{#X<9EHpNhf(CD?&MjQ%JavA*a|Kzkjxv&;x)X8H&S(t8ToC zicJ&Mru~SZ`sz5&1N?X{wj;t4_L?ub-fdjx`)7&J;y=8wy)Rd=r)_$%GV?>|SC(}; z7H@AfdA5P^u;24dhERZlGbn}6%~(5647uE&ZO+3(n;l)(MA%LfUd>YS`}I0UA=scA zgcK;~RpmGBdkT|u(CAGOwAo(mdla*^SKE+?Zqp)0HU0nh*(eTMzx z_gYyG+heJk($IMeF& zDOF_aXI0cPj6X&7()DdLC&iopE?xz(h}nSWa(OlBwbSl7JtU@0j2BGe?`Z;P6Ws;T zc5GrIq>vU7i~1))zklL)TG;d+c#T=GNxLqZbC1iqoR~NdXJQ*5hwsI8`k4m@$>>H+ zD5n?j!)Tg_!b$3Aqk?(0+ugw3LDz-(akj8x5#HkL-BOeE7^?y-)^qUvck* zk6KB4V5YWy&$Z|t)8F}5Gm&$TaO5(ao3_O$(8um$kbzMO*ZPz$O2anFFitQj>s^y{ zxDW}yEEzUeQ+1EgiHL!WAzchvRs0Iux3^t|Y%5ZkyuR;#dr33a;UIW_jJJ{K*8S0F zd#N_jaVAwr;NecpTfr_(Xln36_yW;k3@E`UU;xXk!$^%+vdOxGt@DgjW)~E|sWeyq zIgZG^EN)VUgb#N&XAOsPjzFNbDQN>@0k7;#y$8#P;DUM?o&VZ`OnI5{dRLXrh_65|k>`^<=+op2^|1|ngZu5&;jLz{czSuc|?a_28BVFo+ zYqEuFYdMmLc;gfk6QzYoH$=z;3;SaH|$fodQm4s4%#od_8>j-^vVy|xA*n{ zQ%RT2Ik_12(W-^dU*aER$~&|c>t#|FMoK+BF}uP6j91o87g?*lzOUcj zmq6Nrw!5*3f=%146tYR&*$#jY=1l>JFe z5GMMFI@mF=Pm}y|vj;A2r(AAb*628#t`8G5^e(+k8C_P5QOD)jo$x)p2k=+NJ9z<( zY$z@S6Mu?7%K}C8oDb*^N?tvaBoJc03Z~4=9Zn z_%UY0<}p>3X6b|6IAnu!7CrW*$@FjV8y7e_*_m(h9JgX=30Q&UMV|G>YivC>rymPI zP#0vw+k!%?Prp=?8eGe#fI=3F+&iOhS9z zjK+M0pYa2j%^&ng6Y?+Ju0e@#LBn)$@vgTwWB>b`?_;H> zTn*!FfjC*ikY-lPt!~Cd-K}5W9IDC})rr1@tMq~tN5QUPLHBhXfPrfbk*|YRN&7@% z19`zNN;EIBQLQgclyPKBUB*Lz=J;U8-GsoVPJD{6Y@52RzSnw3Rn2K=)+f`qJMOaT z3`3quaP>r`ZO=qp>}HWue{t8sthT!PYqSSr(csSk_-W&{0{by0<>P(4S2`x}dVv|j zQWO%lw>wh}4+6w3s&~oRUD9bVQ3+Y3x-Z3Fx-qMgFb>Yi952%?(P2V15~K@w0S_X^ zvjhxeJm*}aZ|foH_%ol z_)q6cD6flIrPanA89t5dj@|XqF3Gvr>d@tYTKg59BS%sY0s?f`=t_SeS*l{=XZhCj zjnmcld(9Q*pS(-W@v%km&sq7^EH3vZDI*pCbkb0hWm*F_e%L3m07NRT{Ukt_|keHAWKpc}fbrVxP)--{2-)UzGrbq2)TwN(g~3MM-gJ<=(< zOvgb36-V8uEY)ZdvpuDit>2Fsze-a@H(Fdn)`htzBxSt)NA{9Xku@q3iT?4n+x5N- zrAD?0B)2E14u{SHF;M#&lkcGwwdO*ZWA82H*$E)Kq=!~_8p!%A*SzTk_UoJL^ysr| zJ)?3JYNY*0#OpDhZTU=jk92H3|Ec~>-*erYaTlO>SNhXZdUVrM8wgYVbD=wql!cNS z6%(XNnD``)4BtK1d?81pRF|#kti8LjOvD5oVw$sNbhUzhx zL^U&oRDzIU4|T!ovC+mQxk=I<==s{y&M&Y0k7s@Ot*0vEW=h3@Giukpk9niwkA+6v z0JOvxJZa?(OHX%A&DBSTXY(IH7&rO&PUAaDyVT3Z8|G|Kk@HJ43)tfmTBh86(w%_S z0U@XURLM(54r4|ffEh9zHF9pu=HLr8H^_A)Z&f0;2PG-&>p9(OD&zTcF%Y+qQG@8X z$07zw`a*L>{w;?cr_%b2~8o+OXS;lrR@r=$J-n10$2gPq;=Cz zSu^5qXqg_M;}OYRehecnyET13qRw`>PzY`%a>v(Ofxb6N&;I3@8C5W!2dx0^R6EiW)> zLEbv_Koz|0kj@FA-B)ZI_-kf&`2*d_8Fc!$V0?=XqciuccBkBq?Dx90#vqpuXg!< z6BcSH*>#?~l1_c8+5%86L9bjNT*LZ%YZnkr)5j5gP3}pAxp~$Dcag{MnQKdo71z~+A z5ElRk>aV|85O$(H7!K?z_5@py|;3t&VA3F5p>ah%GxJeh}*{? zn~fL<{M9F#8ry$2OW1r~(``-bFGTyp!gO+$q!JbBHeXw!mkFHo$YcIGv8d+3udbaf zQ-vkv1Y4Nh|Ij=c6w;y3j{jKzX|GS_(YPWfIddb6%fi)|F&~fZOZ(*iXYoxj)ct(S9XIMMG3F+~ucPS9 zsiO(cQHEG`$oW2$@tP62&LS>@hNcK14Aaa+t+e`5Bc<(L#3$!}tUg?~9agI*0 zK^s@Se||Q)XIgP*goK|5SEVh6z*N}FU13mFP#H+d#A3L1Q1kO)@G{-S|E{7iS4bTd}FOqaSUYAwHsy2&@52NtqEAcVeI zppJoJexBjWprl+8J1A=CT!{Yn;U$oW2TJOW{@!hIcKH#*KL`=4Z7(j9~8Euhf6&3U!1-sL%k1#sNGVP$MH!v4)W*jS0K z_E<3)A($V$Z#J*x4 zfenQZSpJ^C4kG=-rOczx%R88K*7J@<7EqNUXb8j{L95M&IbnPnM&pOY!KfHI01q9z ztlu2DqKvVcT5rQjnqM)vx!5qzK+LX#=L$VX5|glbR@<%t*h-bsx+rLZQEghvX)yLS z-LUwD@#k_Gr(B?oqvldLjs^f11$j zK3V%_cMWq2g}1FHCsUS)xEpum)*3N_YR9`$dwW6xomaohFcx7|1_M0dz+gW>=r4rJ zJ@fP$hwm3RVC59@Rf0U_vEX()1qGhW&(KVGz^impFmAYe)bTa#uC>baD*B$xd7t~u z93~qPdxbOPp@3n|zvsx(4=ebCf*ZaaA;C_m7-ZOG8yYnQS1ZBii}_z_!-sQUC=h6_ z>}DMAtmn!!z7O2@?&pkF?nRY2LB!Xb#FOF}(Zk)TTiP-9u8jr8wpM+r+S=n?#=7KTq447e?mtIf^FC*l;+tt1&tl+e zCskK2e13!>FVYPAA-3gjJ-&`GtFSOy4;c!MyOn4;PO-(eKvl|T$kQaze!4bsrOT<` z95q>2N(qL9x zrq3WOF#{p7r)NJ_SdAOX> zW-v|IrE|mmlorDG*dyp-tzIXfp_;&AwyUiw=u1mdN=(tg{Y2`Eh#6S zg4y`Qoiv4DG5Ju%P2Onm(`e}GNYBS)-T~JORXy8vxceYvkST>GKH9MwVC3{J1@Fo`o9C!|2ct@9RIIQK$0))*QB`UKgYS8m#_9?1NCavXVL!ysEsX( diff --git a/tarkaui/screenshots/debug/TopBarScreenShotTest_renderTopAppBarTextWithIcon.png b/tarkaui/screenshots/debug/TopBarScreenShotTest_renderTopAppBarTextWithIcon.png index 6722c080ff4c7c54e4d63cde5ea063ea23410537..d2b525b0539f1e8efacea28e610b65aa22a1efe5 100644 GIT binary patch literal 7954 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

<96Ca5kVY$>N%71k4Kg2r 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�d3>T7>?JU#AT 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 Msp+bgKYkJMf4bwTKL7v# diff --git a/tarkaui/screenshots/debug/com.tarkalabs.commonui.ButtonScreenShotTest_outlineButtonTest.png b/tarkaui/screenshots/debug/com.tarkalabs.commonui.ButtonScreenShotTest_outlineButtonTest.png deleted file mode 100644 index 8cfac635c9b8c2ba2bb634eb3cc5bc4440bc1d0a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9939 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 ZP@-|q!R{+dx`DA< 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 Dig%-@ diff --git a/tarkaui/screenshots/debug/com.tarkalabs.commonui.ButtonScreenShotTest_secondaryButtonTest.png b/tarkaui/screenshots/debug/com.tarkalabs.commonui.ButtonScreenShotTest_secondaryButtonTest.png deleted file mode 100644 index 7c1e02fdeca9fe741b05aee85f32ea8b751e1d86..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10207 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 YSHT3GrB^ExA^-pY07*qoM6N<$g2#Hr00000 literal 419 zcmV;U0bKrxP)hui~vv5qp2lrYksj?;+&;>P*4n4!#Et^7I1pU2aoU!O`-ix;ZJ|A#Ace+brf&|+21 zw}XfEdIXBXbzKKf+wJ&nPcUNI(!%o12AZb1+tG}q!kpl^VC*UQ=H-yr#Qt4t}`)bwDR6Z4sieg N002ovPDHLkV1i1syl?;j diff --git a/tarkaui/screenshots/debug/com.tarkalabs.commonui.IconButtonScreenShotTest_outlineIconButton.png b/tarkaui/screenshots/debug/com.tarkalabs.commonui.IconButtonScreenShotTest_outlineIconButton.png index 72b8147d3f1a99066f8a69b4e26ec456ff31f125..0ce4fc4a42255381a1e938fd00969f06c7e5b988 100644 GIT binary patch literal 2212 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 Ef(1a2O8@`> literal 1336 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 diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.ButtonScreenShotTest_errorButtonTest.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.ButtonScreenShotTest_errorButtonTest.png new file mode 100644 index 0000000000000000000000000000000000000000..da5a9cb3f36e2d0492f1f93d8f9adcd7dd6492fd GIT binary patch literal 6001 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 literal 0 HcmV?d00001 diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.ButtonScreenShotTest_ghostButtonTest.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.ButtonScreenShotTest_ghostButtonTest.png new file mode 100644 index 0000000000000000000000000000000000000000..c967cbb9b1ce40d9e7b1d0958cb7f05241a502d4 GIT binary patch literal 5192 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 QutHLnSC^}m`4skl09qyPNdN!< literal 0 HcmV?d00001 diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.ButtonScreenShotTest_primaryButtonTest.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.ButtonScreenShotTest_primaryButtonTest.png new file mode 100644 index 0000000000000000000000000000000000000000..a91ad935392b550127ecb57eb3b89d566e9ac609 GIT binary patch literal 7967 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 Date: Thu, 25 May 2023 12:22:56 +0530 Subject: [PATCH 075/571] - Added dependencies for unit test --- tarkaui/build.gradle.kts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tarkaui/build.gradle.kts b/tarkaui/build.gradle.kts index c679be4a..328275ab 100644 --- a/tarkaui/build.gradle.kts +++ b/tarkaui/build.gradle.kts @@ -97,5 +97,11 @@ dependencies { androidTestImplementation( "androidx.compose.ui:ui-test-junit4:$composeUiVersion") debugImplementation( "androidx.compose.ui:ui-tooling:$composeUiVersion") debugImplementation( "androidx.compose.ui:ui-test-manifest:$composeUiVersion") + + androidTestImplementation("androidx.compose.ui:ui-test-junit4:1.4.3") + androidTestImplementation("org.mockito:mockito-android:4.5.1") + debugImplementation("androidx.compose.ui:ui-test-manifest:1.4.3") + debugImplementation ("androidx.compose.ui:ui-tooling:1.4.3") + androidTestImplementation ("androidx.test:core:1.5.0") } From 07645bce9e660b9c595e00a5d5e51eb6919993b1 Mon Sep 17 00:00:00 2001 From: AskNilesh Date: Thu, 25 May 2023 15:10:59 +0530 Subject: [PATCH 076/571] - Added android unit test for TopBar - Added documentation for TopBar --- .idea/androidTestResultsUserPreferences.xml | 52 +++++++++ .../com/tarkalabs/uicomponents/TopBarTest.kt | 104 ++++++++++++++++++ .../uicomponents/components/TopBar.kt | 75 +++++++++++-- 3 files changed, 221 insertions(+), 10 deletions(-) create mode 100644 tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TopBarTest.kt diff --git a/.idea/androidTestResultsUserPreferences.xml b/.idea/androidTestResultsUserPreferences.xml index 874036c5..7e09fd25 100644 --- a/.idea/androidTestResultsUserPreferences.xml +++ b/.idea/androidTestResultsUserPreferences.xml @@ -3,6 +3,19 @@ diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TopBarTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TopBarTest.kt new file mode 100644 index 00000000..3fe1cc4d --- /dev/null +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TopBarTest.kt @@ -0,0 +1,104 @@ +package com.tarkalabs.uicomponents + +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.ui.test.assertIsDisplayed +import androidx.compose.ui.test.junit4.createComposeRule +import androidx.compose.ui.test.onNodeWithTag +import androidx.compose.ui.test.onNodeWithText +import androidx.compose.ui.test.performClick +import com.tarkalabs.uicomponents.components.TopBar +import com.tarkalabs.uicomponents.models.TarkaIcons +import org.junit.Rule +import org.junit.Test +import org.mockito.kotlin.mock +import org.mockito.kotlin.verify + +class TopBarTest { + @get:Rule val composeTestRule = createComposeRule() + + private val NAVIGATION_ICON_TAG = "NAVIGATION_ICON_TAG" + private val SEARCH_ICON_TAG = "SEARCH_ICON_TAG" + private val MENU_ONE_ICON_TAG = "MENU_ONE_ICON_TAG" + private val MENU_TWO_ICON_TAG = "MENU_TWO_ICON_TAG" + private val MENU_THREE_ICON_TAG = "MENU_THREE_ICON_TAG" + + @OptIn(ExperimentalMaterial3Api::class) @Test fun topBarTitleDisplayed() { + composeTestRule.setContent { + TopBar( + title = "title", + navigationIcon = TarkaIcons.ChevronRight, + searchIcon = TarkaIcons.Search, + menuItemIconOne = TarkaIcons.ChevronRight, + menuItemIconTwo = TarkaIcons.ChevronRight, + menuItemIconThree = TarkaIcons.ChevronRight, + navigationIconTestTag = NAVIGATION_ICON_TAG, + searchIconTestTag = SEARCH_ICON_TAG, + menuItemOneTestTag = MENU_ONE_ICON_TAG, + menuItemTwoTestTag = MENU_TWO_ICON_TAG, + menuItemThreeTestTag = MENU_THREE_ICON_TAG, + ) + } + + composeTestRule.onNodeWithText("title").assertIsDisplayed() + composeTestRule.onNodeWithTag(NAVIGATION_ICON_TAG).assertIsDisplayed() + composeTestRule.onNodeWithTag(SEARCH_ICON_TAG).assertIsDisplayed() + composeTestRule.onNodeWithTag(MENU_ONE_ICON_TAG).assertIsDisplayed() + composeTestRule.onNodeWithTag(MENU_TWO_ICON_TAG).assertIsDisplayed() + composeTestRule.onNodeWithTag(MENU_THREE_ICON_TAG).assertIsDisplayed() + } + + @OptIn(ExperimentalMaterial3Api::class) @Test fun topBarSearchIconDisplayed() { + composeTestRule.setContent { + TopBar( + title = "title", + navigationIcon = TarkaIcons.ChevronRight, + searchIcon = TarkaIcons.Search, + navigationIconTestTag = NAVIGATION_ICON_TAG, + searchIconTestTag = SEARCH_ICON_TAG, + + ) + } + + composeTestRule.onNodeWithTag(SEARCH_ICON_TAG).assertIsDisplayed() + } + + @OptIn(ExperimentalMaterial3Api::class) @Test fun topBarClickEventTest() { + val onNavigationIconClick: () -> Unit = mock() + val onFirstMenuItemClicked: () -> Unit = mock() + val onSecondMenuItemClicked: () -> Unit = mock() + val onThirdMenuItemClicked: () -> Unit = mock() + + composeTestRule.setContent { + TopBar( + title = "title", + navigationIcon = TarkaIcons.ChevronRight, + searchIcon = TarkaIcons.Search, + + menuItemIconOne = TarkaIcons.ChevronRight, + menuItemIconTwo = TarkaIcons.ChevronRight, + menuItemIconThree = TarkaIcons.ChevronRight, + + navigationIconTestTag = NAVIGATION_ICON_TAG, + searchIconTestTag = SEARCH_ICON_TAG, + + menuItemOneTestTag = MENU_ONE_ICON_TAG, + menuItemTwoTestTag = MENU_TWO_ICON_TAG, + menuItemThreeTestTag = MENU_THREE_ICON_TAG, + onNavigationIconClick = onNavigationIconClick, + onFirstMenuItemClicked = onFirstMenuItemClicked, + onSecondMenuItemClicked = onSecondMenuItemClicked, + onThirdMenuItemClicked = onThirdMenuItemClicked, + ) + } + + composeTestRule.onNodeWithTag(NAVIGATION_ICON_TAG).performClick() + composeTestRule.onNodeWithTag(MENU_ONE_ICON_TAG).performClick() + composeTestRule.onNodeWithTag(MENU_TWO_ICON_TAG).performClick() + composeTestRule.onNodeWithTag(MENU_THREE_ICON_TAG).performClick() + + verify(onNavigationIconClick).invoke() + verify(onFirstMenuItemClicked).invoke() + verify(onSecondMenuItemClicked).invoke() + verify(onThirdMenuItemClicked).invoke() + } +} \ No newline at end of file diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TopBar.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TopBar.kt index 94a0cf53..d09aab25 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TopBar.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TopBar.kt @@ -16,10 +16,55 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.testTag import androidx.compose.ui.res.painterResource import com.tarkalabs.uicomponents.models.TarkaIcon import com.tarkalabs.uicomponents.theme.TUITheme + +/** + * Displays a customized top app bar with optional navigation icon, search icon, and menu item icons. + * + * @param title The title to be displayed in the top app bar. + * @param navigationIcon The navigation icon to be displayed on the left side of the top app bar. + * @param searchIcon The search icon to be displayed on the right side of the top app bar. + * @param menuItemIconOne The first menu item icon to be displayed on the right side of the top app bar. + * @param menuItemIconTwo The second menu item icon to be displayed on the right side of the top app bar. + * @param menuItemIconThree The third menu item icon to be displayed on the right side of the top app bar. + * @param onNavigationIconClick The callback function to be called when the navigation icon is clicked. + * @param onFirstMenuItemClicked The callback function to be called when the first menu item icon is clicked. + * @param onSecondMenuItemClicked The callback function to be called when the second menu item icon is clicked. + * @param onThirdMenuItemClicked The callback function to be called when the third menu item icon is clicked. + * @param onSearchQuery The callback function to be called when a search query is entered. + * @param colors The colors to be applied to the top app bar. + * @param scrollBehavior The scroll behavior to be applied to the top app bar. + * @param navigationIconTestTag The test tag for the navigation icon. + * @param searchIconTestTag The test tag for the search icon. + * @param menuItemOneTestTag The test tag for the first menu item icon. + * @param menuItemTwoTestTag The test tag for the second menu item icon. + * @param menuItemThreeTestTag The test tag for the third menu item icon. + * How to use TopBar() + TopBar( + title = "My App", + navigationIcon = TarkaIcon.Back, // Optional: Pass the navigation icon + searchIcon = TarkaIcon.Search, // Optional: Pass the search icon + menuItemIconOne = TarkaIcon.Menu, // Optional: Pass the first menu item icon + menuItemIconTwo = TarkaIcon.Settings, // Optional: Pass the second menu item icon + menuItemIconThree = TarkaIcon.Notifications, // Optional: Pass the third menu item icon + onNavigationIconClick = { /* Handle navigation icon click */ }, + onFirstMenuItemClicked = { /* Handle first menu item click */ }, + onSecondMenuItemClicked = { /* Handle second menu item click */ }, + onThirdMenuItemClicked = { /* Handle third menu item click */ }, + onSearchQuery = { query -> /* Handle search query */ }, + colors = TopAppBarColors(/* Specify custom colors if needed */), + scrollBehavior = TopAppBarScrollBehavior.ScrollOnAppBarScroll, // Optional: Specify scroll behavior + navigationIconTestTag = "navigation_icon", + searchIconTestTag = "search_icon", // Optional: pass test tag for android ui test + menuItemOneTestTag = "menu_item_1", // Optional: pass test tag for android ui test + menuItemTwoTestTag = "menu_item_2", // Optional: pass test tag for android ui test + menuItemThreeTestTag = "menu_item_3" // Optional: pass test tag for android ui test + ) + */ @OptIn(ExperimentalMaterial3Api::class) @Composable fun TopBar( title: String, navigationIcon: TarkaIcon? = null, @@ -35,7 +80,12 @@ import com.tarkalabs.uicomponents.theme.TUITheme colors: TopAppBarColors = TopAppBarDefaults.topAppBarColors( containerColor = MaterialTheme.colorScheme.surface ), - scrollBehavior: TopAppBarScrollBehavior? = null + scrollBehavior: TopAppBarScrollBehavior? = null, + navigationIconTestTag : String = "", + searchIconTestTag : String = "", + menuItemOneTestTag : String = "", + menuItemTwoTestTag : String = "", + menuItemThreeTestTag : String = "", ) { var showSearchBar by remember { @@ -52,7 +102,10 @@ import com.tarkalabs.uicomponents.theme.TUITheme }, navigationIcon = { if (navigationIcon != null) { - IconButton(onClick = onNavigationIconClick) { + IconButton( + onClick = onNavigationIconClick, + modifier = Modifier.testTag(navigationIconTestTag) + ) { Icon( painter = painterResource(id = navigationIcon.iconRes), contentDescription = "Back arrow" @@ -64,13 +117,16 @@ import com.tarkalabs.uicomponents.theme.TUITheme if (searchIcon != null) { IconButton(onClick = { showSearchBar = true - }) { - Icon(painter = painterResource(id = searchIcon.iconRes), contentDescription = "Search") + }, + modifier = Modifier.testTag(searchIconTestTag)) { + Icon(painter = painterResource(id = searchIcon.iconRes), + contentDescription = searchIcon.contentDescription) } } if (menuItemIconThree != null) { - IconButton(onClick = onThirdMenuItemClicked) { + IconButton(onClick = onThirdMenuItemClicked, + modifier = Modifier.testTag(menuItemThreeTestTag)) { Icon( painter = painterResource(id = menuItemIconThree.iconRes), contentDescription = "Menu Item three" @@ -79,19 +135,19 @@ import com.tarkalabs.uicomponents.theme.TUITheme } if (menuItemIconTwo != null) { - IconButton(onClick = onSecondMenuItemClicked) { + IconButton(onClick = onSecondMenuItemClicked, modifier = Modifier.testTag(menuItemTwoTestTag)) { Icon( painter = painterResource(id = menuItemIconTwo.iconRes), - contentDescription = "Menu Item two" + contentDescription = menuItemIconTwo.contentDescription ) } } if (menuItemIconOne != null) { - IconButton(onClick = onFirstMenuItemClicked) { + IconButton(onClick = onFirstMenuItemClicked, modifier = Modifier.testTag(menuItemOneTestTag)) { Icon( painter = painterResource(id = menuItemIconOne.iconRes), - contentDescription = "Menu Item one" + contentDescription = menuItemIconOne.contentDescription ) } } @@ -100,7 +156,6 @@ import com.tarkalabs.uicomponents.theme.TUITheme colors = colors, modifier = Modifier.fillMaxWidth(), scrollBehavior = scrollBehavior, - ) } From e3f0efaa27bb1b3c0d406e955af1020e2c4ecee9 Mon Sep 17 00:00:00 2001 From: AskNilesh Date: Thu, 25 May 2023 15:50:47 +0530 Subject: [PATCH 077/571] - Added android unit test for TUIBadge --- .idea/androidTestResultsUserPreferences.xml | 13 +++++++++ .../com/tarkalabs/uicomponents/BadgeTest.kt | 27 +++++++++++++++++++ .../uicomponents/components/TUIBadge.kt | 11 +++++--- 3 files changed, 48 insertions(+), 3 deletions(-) create mode 100644 tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/BadgeTest.kt diff --git a/.idea/androidTestResultsUserPreferences.xml b/.idea/androidTestResultsUserPreferences.xml index 7e09fd25..9e06ad38 100644 --- a/.idea/androidTestResultsUserPreferences.xml +++ b/.idea/androidTestResultsUserPreferences.xml @@ -3,6 +3,19 @@

+9CdI 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 mwo4NP(zp0>%{T&egj?Ee5Bko95! literal 0 HcmV?d00001 diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIFloatingActionButtonScreenShotTest_test_fab_with_regular_size.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIFloatingActionButtonScreenShotTest_test_fab_with_regular_size.png new file mode 100644 index 0000000000000000000000000000000000000000..7d0f1fa85c3beaa27b638902aa2935dd92a31c3e GIT binary patch literal 6802 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 A=l}o! literal 0 HcmV?d00001 diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIFloatingActionButtonScreenShotTest_test_fab_with_small_size.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIFloatingActionButtonScreenShotTest_test_fab_with_small_size.png new file mode 100644 index 0000000000000000000000000000000000000000..c83c2abb6883ff98ba3133d070142c0fafec0d44 GIT binary patch literal 6620 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 bqJ;hrJOHA-RhB}u00000NkvXXu0mjfX9ZlK literal 0 HcmV?d00001 diff --git a/tarkaui/screenshots/debug/com.tarkalabs.commonui.IconButtonScreenShotTest_ghostIconButton.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIIconButtonScreenShotTest_ghostIconButton.png similarity index 100% rename from tarkaui/screenshots/debug/com.tarkalabs.commonui.IconButtonScreenShotTest_ghostIconButton.png rename to tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIIconButtonScreenShotTest_ghostIconButton.png diff --git a/tarkaui/screenshots/debug/com.tarkalabs.commonui.IconButtonScreenShotTest_outlineIconButton.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIIconButtonScreenShotTest_outlineIconButton.png similarity index 100% rename from tarkaui/screenshots/debug/com.tarkalabs.commonui.IconButtonScreenShotTest_outlineIconButton.png rename to tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIIconButtonScreenShotTest_outlineIconButton.png diff --git a/tarkaui/screenshots/debug/com.tarkalabs.commonui.IconButtonScreenShotTest_primaryIconButton.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIIconButtonScreenShotTest_primaryIconButton.png similarity index 100% rename from tarkaui/screenshots/debug/com.tarkalabs.commonui.IconButtonScreenShotTest_primaryIconButton.png rename to tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIIconButtonScreenShotTest_primaryIconButton.png diff --git a/tarkaui/screenshots/debug/com.tarkalabs.commonui.IconButtonScreenShotTest_secondaryIconButton.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIIconButtonScreenShotTest_secondaryIconButton.png similarity index 100% rename from tarkaui/screenshots/debug/com.tarkalabs.commonui.IconButtonScreenShotTest_secondaryIconButton.png rename to tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIIconButtonScreenShotTest_secondaryIconButton.png diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIToggleSwitchScreenShotTest_test_checked_state_with_disabled_status.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIToggleSwitchScreenShotTest_test_checked_state_with_disabled_status.png new file mode 100644 index 0000000000000000000000000000000000000000..557230843be0cfaa3fe94bd42b872fd61df50a45 GIT binary patch literal 2799 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 literal 0 HcmV?d00001 diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIToggleSwitchScreenShotTest_test_unchecked_state_with_disabled_status.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIToggleSwitchScreenShotTest_test_unchecked_state_with_disabled_status.png new file mode 100644 index 0000000000000000000000000000000000000000..f324ef9d0c76c7e0906993b95119d78e14a155af GIT binary patch literal 2773 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 bqJ;hrJOHA-RhB}u00000NkvXXu0mjfX9ZlK literal 0 HcmV?d00001 diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIToggleSwitchScreenShotTest_test_unchecked_status.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIToggleSwitchScreenShotTest_test_unchecked_status.png new file mode 100644 index 0000000000000000000000000000000000000000..a613fa8dbfe011ed9b0721fc2fa1602f6c9611ff GIT binary patch literal 3077 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 T=H03t00000NkvXXu0mjflZnd> literal 0 HcmV?d00001 diff --git a/tarkaui/screenshots/debug/TopBarScreenShotTest_renderTopAppBarTextOnly.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUITopBarScreenShotTest_renderTopAppBarTextOnly.png similarity index 100% rename from tarkaui/screenshots/debug/TopBarScreenShotTest_renderTopAppBarTextOnly.png rename to tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUITopBarScreenShotTest_renderTopAppBarTextOnly.png diff --git a/tarkaui/screenshots/debug/TopBarScreenShotTest_renderTopAppBarTextWithIcon.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUITopBarScreenShotTest_renderTopAppBarTextWithIcon.png similarity index 100% rename from tarkaui/screenshots/debug/TopBarScreenShotTest_renderTopAppBarTextWithIcon.png rename to tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUITopBarScreenShotTest_renderTopAppBarTextWithIcon.png diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/BadgeScreenShotTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIBadgeScreenShotTest.kt similarity index 89% rename from tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/BadgeScreenShotTest.kt rename to tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIBadgeScreenShotTest.kt index dc5569a7..97108db7 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/BadgeScreenShotTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIBadgeScreenShotTest.kt @@ -1,3 +1,5 @@ +package com.tarkalabs.uicomponents + import androidx.compose.ui.test.junit4.createComposeRule import com.karumi.shot.ScreenshotTest import com.tarkalabs.uicomponents.components.TUIBadge @@ -9,7 +11,7 @@ import org.junit.runner.RunWith import org.junit.runners.JUnit4 @RunWith(JUnit4::class) -class BadgeScreenShotTest : ScreenshotTest { +open class TUIBadgeScreenShotTest : ScreenshotTest { @get:Rule val composeRule = createComposeRule() diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/ButtonScreenShotTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIButtonScreenShotTest.kt similarity index 96% rename from tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/ButtonScreenShotTest.kt rename to tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIButtonScreenShotTest.kt index 4620ebf3..2882990c 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/ButtonScreenShotTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIButtonScreenShotTest.kt @@ -15,7 +15,7 @@ import org.junit.runner.RunWith import org.junit.runners.JUnit4 @RunWith(JUnit4::class) -class ButtonScreenShotTest : ScreenshotTest { +class TUIButtonScreenShotTest : ScreenshotTest { @get: Rule val composeRule = createComposeRule() diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIFloatingActionButtonScreenShotTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIFloatingActionButtonScreenShotTest.kt new file mode 100644 index 00000000..5d39f705 --- /dev/null +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIFloatingActionButtonScreenShotTest.kt @@ -0,0 +1,57 @@ +package com.tarkalabs.uicomponents + +import androidx.compose.ui.test.junit4.createComposeRule +import com.karumi.shot.ScreenshotTest +import com.tarkalabs.uicomponents.components.FloatingActionButtonSize.L +import com.tarkalabs.uicomponents.components.FloatingActionButtonSize.R +import com.tarkalabs.uicomponents.components.FloatingActionButtonSize.S +import com.tarkalabs.uicomponents.components.TUIFloatingActionButton +import com.tarkalabs.uicomponents.components.TUIToggleSwitch +import com.tarkalabs.uicomponents.models.TarkaIcon +import com.tarkalabs.uicomponents.models.TarkaIcons +import org.junit.Rule +import org.junit.Test +import org.junit.runner.RunWith +import org.junit.runners.JUnit4 + +@RunWith(JUnit4::class) +class TUIFloatingActionButtonScreenShotTest : ScreenshotTest { + + @get:Rule val composeRule = createComposeRule() + + @Test fun test_fab_with_small_size() { + composeRule.setContent { + TUIFloatingActionButton(fabSize = S, icon = TarkaIcons.ArrowExport) { + + } + } + compareScreenshot(composeRule) + } + + @Test fun test_fab_with_large_size() { + composeRule.setContent { + TUIFloatingActionButton(fabSize = L, icon = TarkaIcons.ArrowExport) { + + } + } + compareScreenshot(composeRule) + } + + @Test fun test_fab_with_regular_size() { + composeRule.setContent { + TUIFloatingActionButton(fabSize = R, icon = TarkaIcons.ArrowExport) { + + } + } + compareScreenshot(composeRule) + } + + @Test fun test_unchecked_state_with_disabled_status() { + composeRule.setContent { + TUIToggleSwitch(state = false, enabled = false) { + + } + } + compareScreenshot(composeRule) + } +} \ No newline at end of file diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/IconButtonScreenShotTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIIconButtonScreenShotTest.kt similarity index 84% rename from tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/IconButtonScreenShotTest.kt rename to tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIIconButtonScreenShotTest.kt index 38fd54d0..ab93e76a 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/IconButtonScreenShotTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIIconButtonScreenShotTest.kt @@ -1,6 +1,6 @@ @file:OptIn(ExperimentalMaterial3Api::class) -package com.tarkalabs.commonui +package com.tarkalabs.uicomponents import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.ui.test.junit4.createComposeRule @@ -15,13 +15,11 @@ import org.junit.runner.RunWith import org.junit.runners.JUnit4 @RunWith(JUnit4::class) -class IconButtonScreenShotTest : ScreenshotTest { +class TUIIconButtonScreenShotTest : ScreenshotTest { - @get:Rule - val composeRule = createComposeRule() + @get:Rule val composeRule = createComposeRule() - @Test - fun primaryIconButton() { + @Test fun primaryIconButton() { composeRule.setContent { TUIIconButton( icon = TarkaIcons.ChevronRight, @@ -33,8 +31,7 @@ class IconButtonScreenShotTest : ScreenshotTest { compareScreenshot(composeRule) } - @Test - fun secondaryIconButton() { + @Test fun secondaryIconButton() { composeRule.setContent { TUIIconButton( icon = TarkaIcons.ChevronRight, @@ -47,8 +44,7 @@ class IconButtonScreenShotTest : ScreenshotTest { compareScreenshot(composeRule) } - @Test - fun ghostIconButton() { + @Test fun ghostIconButton() { composeRule.setContent { TUIIconButton( icon = TarkaIcons.ChevronRight, @@ -61,17 +57,14 @@ class IconButtonScreenShotTest : ScreenshotTest { compareScreenshot(composeRule) } - @Test - fun outlineIconButton() { + @Test fun outlineIconButton() { composeRule.setContent { TUIIconButton( icon = TarkaIcons.ChevronRight, buttonSize = IconButtonSize.XS, iconButtonStyle = IconButtonStyle.OUTLINE, ) - } - compareScreenshot(composeRule) } } \ No newline at end of file diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIToggleSwitchScreenShotTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIToggleSwitchScreenShotTest.kt new file mode 100644 index 00000000..515c92d0 --- /dev/null +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIToggleSwitchScreenShotTest.kt @@ -0,0 +1,51 @@ +package com.tarkalabs.uicomponents + +import androidx.compose.ui.test.junit4.createComposeRule +import com.karumi.shot.ScreenshotTest +import com.tarkalabs.uicomponents.components.TUIToggleSwitch +import org.junit.Rule +import org.junit.Test +import org.junit.runner.RunWith +import org.junit.runners.JUnit4 + +@RunWith(JUnit4::class) +class TUIToggleSwitchScreenShotTest : ScreenshotTest { + + @get:Rule val composeRule = createComposeRule() + + @Test fun test_checked_status() { + composeRule.setContent { + TUIToggleSwitch(state = true) { + + } + } + compareScreenshot(composeRule) + } + + @Test fun test_unchecked_status() { + composeRule.setContent { + TUIToggleSwitch(state = false) { + + } + } + compareScreenshot(composeRule) + } + + @Test fun test_checked_state_with_disabled_status() { + composeRule.setContent { + TUIToggleSwitch(state = true, enabled = false) { + + } + } + compareScreenshot(composeRule) + } + + @Test fun test_unchecked_state_with_disabled_status() { + composeRule.setContent { + TUIToggleSwitch(state = false, enabled = false) { + + } + } + compareScreenshot(composeRule) + } +} \ No newline at end of file diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TopBarScreenShotTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUITopBarScreenShotTest.kt similarity index 87% rename from tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TopBarScreenShotTest.kt rename to tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUITopBarScreenShotTest.kt index c6525ffd..bd246bb1 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TopBarScreenShotTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUITopBarScreenShotTest.kt @@ -1,18 +1,19 @@ @file:OptIn(ExperimentalMaterial3Api::class) +package com.tarkalabs.uicomponents + import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.ui.test.junit4.createComposeRule import com.karumi.shot.ScreenshotTest import com.tarkalabs.uicomponents.components.TopBar +import com.tarkalabs.uicomponents.models.TarkaIcon import org.junit.Rule import org.junit.Test -import com.tarkalabs.uicomponents.R -import com.tarkalabs.uicomponents.models.TarkaIcon import org.junit.runner.RunWith import org.junit.runners.JUnit4 @RunWith(JUnit4::class) -class TopBarScreenShotTest : ScreenshotTest { +class TUITopBarScreenShotTest : ScreenshotTest { @get:Rule val composeRule = createComposeRule() @@ -22,7 +23,7 @@ class TopBarScreenShotTest : ScreenshotTest { TopBar("Screenshot") } - compareScreenshot(composeRule) + compareScreenshot(composeRule,) } @Test fun renderTopAppBarTextWithIcon() { diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIToggleSwitch.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIToggleSwitch.kt new file mode 100644 index 00000000..6b25b302 --- /dev/null +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIToggleSwitch.kt @@ -0,0 +1,4 @@ +package com.tarkalabs.uicomponents.components + +class TUIToggleSwitch { +} \ No newline at end of file From 9d4ed9202b64b3f546360472a4cd138956cdbc78 Mon Sep 17 00:00:00 2001 From: Raja Jawahar Date: Thu, 25 May 2023 19:08:27 +0530 Subject: [PATCH 083/571] Code formatting in build.gradle --- tarkaui/build.gradle.kts | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/tarkaui/build.gradle.kts b/tarkaui/build.gradle.kts index c679be4a..fda4c7de 100644 --- a/tarkaui/build.gradle.kts +++ b/tarkaui/build.gradle.kts @@ -36,7 +36,7 @@ android { jvmTarget = "11" } buildFeatures { - compose = true + compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.4.3" @@ -47,7 +47,7 @@ android { } } shot { - tolerance = 0.1 + tolerance = 0.1 applicationId = "com.tarkalabs.uicomponents" } testOptions { @@ -59,7 +59,7 @@ fun getLibraryArtifactId() = "tarkaui" publishing { publications { - create("gpr"){ + create("gpr") { run { groupId = "com.tarkalabs" artifactId = getLibraryArtifactId() @@ -84,18 +84,18 @@ publishing { dependencies { val composeUiVersion = "1.4.1" implementation("androidx.core:core-ktx:1.10.0") - implementation( "androidx.compose.ui:ui:$composeUiVersion") - implementation( "androidx.compose.ui:ui-tooling-preview:$composeUiVersion") + implementation("androidx.compose.ui:ui:$composeUiVersion") + implementation("androidx.compose.ui:ui-tooling-preview:$composeUiVersion") implementation("androidx.compose.material3:material3:1.1.0-rc01") api("com.microsoft.design:fluent-system-icons:1.1.201@aar") - testImplementation( "junit:junit:4.13.2") - androidTestImplementation( "androidx.test.ext:junit:1.1.5") - androidTestImplementation( "androidx.test.espresso:espresso-core:3.5.1") + testImplementation("junit:junit:4.13.2") + androidTestImplementation("androidx.test.ext:junit:1.1.5") + androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1") androidTestImplementation("org.mockito.kotlin:mockito-kotlin:4.0.0") androidTestImplementation("org.mockito:mockito-android:4.5.1") - androidTestImplementation( "androidx.compose.ui:ui-test-junit4:$composeUiVersion") - debugImplementation( "androidx.compose.ui:ui-tooling:$composeUiVersion") - debugImplementation( "androidx.compose.ui:ui-test-manifest:$composeUiVersion") + androidTestImplementation("androidx.compose.ui:ui-test-junit4:$composeUiVersion") + debugImplementation("androidx.compose.ui:ui-tooling:$composeUiVersion") + debugImplementation("androidx.compose.ui:ui-test-manifest:$composeUiVersion") } From 67bb7488a9f495a538d17aacb4b260bf1d4ac17a Mon Sep 17 00:00:00 2001 From: Raja Jawahar Date: Thu, 25 May 2023 19:08:50 +0530 Subject: [PATCH 084/571] Minor correction in FAB preview function --- .../components/TUIFloatingActionButton.kt | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIFloatingActionButton.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIFloatingActionButton.kt index a25fc518..590d9a93 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIFloatingActionButton.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIFloatingActionButton.kt @@ -21,6 +21,7 @@ import com.tarkalabs.uicomponents.components.FloatingActionButtonSize.L import com.tarkalabs.uicomponents.components.FloatingActionButtonSize.R import com.tarkalabs.uicomponents.components.FloatingActionButtonSize.S import com.tarkalabs.uicomponents.models.TarkaIcon +import com.tarkalabs.uicomponents.models.TarkaIcons enum class FloatingActionButtonSize(val size: Dp) { S(40.dp), @@ -40,9 +41,7 @@ enum class FloatingActionButtonSize(val size: Dp) { * */ @Composable fun TUIFloatingActionButton( - fabSize: FloatingActionButtonSize = S, - icon: TarkaIcon, - onClick: () -> Unit + fabSize: FloatingActionButtonSize = S, icon: TarkaIcon, onClick: () -> Unit ) { val iconSize = when (fabSize) { S, R -> 18.dp @@ -62,26 +61,25 @@ enum class FloatingActionButtonSize(val size: Dp) { } } -@Preview(showBackground = true) -@Composable fun FloatingActionButtonPreview() { +@Preview(showBackground = true) @Composable fun FloatingActionButtonPreview() { Column( horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.SpaceEvenly ) { TUIFloatingActionButton( - L, TarkaIcon(com.tarkalabs.uicomponents.R.drawable.keyboard_arrow_right, "Large FAB") + L, TarkaIcons.ChevronRight ) { } Spacer(modifier = Modifier.padding(5.dp)) TUIFloatingActionButton( - R, TarkaIcon(com.tarkalabs.uicomponents.R.drawable.keyboard_arrow_right, "Regular FAB") + R, TarkaIcons.ChevronRight ) { } Spacer(modifier = Modifier.padding(5.dp)) TUIFloatingActionButton( - S, TarkaIcon(com.tarkalabs.uicomponents.R.drawable.keyboard_arrow_right, "Small FAB") + S, TarkaIcons.ChevronRight ) { } From fcf0ce7d1807f44265bff42bc40d15ca9c1f5404 Mon Sep 17 00:00:00 2001 From: Raja Jawahar Date: Thu, 25 May 2023 19:09:09 +0530 Subject: [PATCH 085/571] Required Colors added for Toggle Switch --- .../uicomponents/theme/LightColor.kt | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/LightColor.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/LightColor.kt index 688768a0..145b135c 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/LightColor.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/LightColor.kt @@ -20,19 +20,21 @@ val LightColorOnAltTertiary = Color(0xFF530953) val LightColorSuccess = Color(0xFF148F47) val LightColorOnSuccess = Color(0xFFF2FDF6) -val LightColorError= Color(0xFFCD1D32) -val LightColorOnError= Color(0xFFFEFBFB) -val LightColorAltError= Color(0x1ACD1D32) +val LightColorError = Color(0xFFCD1D32) +val LightColorOnError = Color(0xFFFEFBFB) +val LightColorAltError = Color(0x1ACD1D32) -val LightColorWarning= Color(0xFFFFB938) -val LightColorOnWarning= Color(0xFF241D0F) -val LightColorAltWarning= Color(0x1ACD1D32) +val LightColorWarning = Color(0xFFFFB938) +val LightColorOnWarning = Color(0xFF241D0F) +val LightColorAltWarning = Color(0x1ACD1D32) -val LightColorBackground= Color(0xFFEAECF0) -val LightColorOnBackground= Color(0xFF171B21) +val LightColorBackground = Color(0xFFEAECF0) +val LightColorOnBackground = Color(0xFF171B21) val LightColorSurface = Color(0xFFF9FAFB) val LightColorOnSurface = Color(0xFF1A1B1F) val ColorUtilityOutline = Color(0xFF878B92) - +val ColorLight = Color(0xFFFFFFFF) +val ColorUtilityDisabledBackground = Color(0XFF1A1C1F) +val ColorInputBackground = Color(0XFFEAEDF0) From fc59a469e7e63b66290dcf3ae48e6917cdb0e4d0 Mon Sep 17 00:00:00 2001 From: Raja Jawahar Date: Thu, 25 May 2023 19:13:42 +0530 Subject: [PATCH 086/571] ToggleSwitch Component Created --- .../components/TUIToggleSwitch.kt | 93 ++++++++++++++++++- 1 file changed, 92 insertions(+), 1 deletion(-) diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIToggleSwitch.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIToggleSwitch.kt index 6b25b302..23393e6f 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIToggleSwitch.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIToggleSwitch.kt @@ -1,4 +1,95 @@ package com.tarkalabs.uicomponents.components -class TUIToggleSwitch { +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.size +import androidx.compose.material3.Icon +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Switch +import androidx.compose.material3.SwitchDefaults +import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue +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 com.tarkalabs.uicomponents.models.TarkaIcons +import com.tarkalabs.uicomponents.theme.ColorInputBackground +import com.tarkalabs.uicomponents.theme.ColorLight +import com.tarkalabs.uicomponents.theme.ColorUtilityDisabledBackground +import com.tarkalabs.uicomponents.theme.TUITheme + +/** + * Below TUIToggleSwitch() defines a reusable composable function which can be used to create an Button with various styles and sizes which takes several parameters such as + * @param state Checked status of the ToggleSwitch + * @param enabled Enable status of the ToggleSwitch + * @param onToggleChange() A callback function that is invoked when the toggle is clicked. + * + * How to use TUIToggleSwitch() composable function + * + * TUIToggleSwitch(state = false ) { } + * + */ + +@Composable fun TUIToggleSwitch( + state: Boolean, enabled: Boolean = true, onToggleChange: () -> Unit +) { + var switchCheckedState by remember { mutableStateOf(state) } + TUITheme { + Switch(checked = switchCheckedState, enabled = enabled, onCheckedChange = { + switchCheckedState = it + onToggleChange() + }, thumbContent = { + Icon( + painter = painterResource(if (switchCheckedState) TarkaIcons.CheckMark.iconRes else TarkaIcons.Dismiss.iconRes), + contentDescription = null, + modifier = Modifier.size(width = 40.dp, height = 24.dp) + ) + }, colors = SwitchDefaults.colors( + checkedThumbColor = ColorLight, + checkedTrackColor = MaterialTheme.colorScheme.primary, + checkedIconColor = MaterialTheme.colorScheme.primary, + checkedBorderColor = ColorLight, + uncheckedThumbColor = MaterialTheme.colorScheme.onSurface, + uncheckedTrackColor = MaterialTheme.colorScheme.surfaceVariant, + uncheckedIconColor = ColorLight, + uncheckedBorderColor = Color.Transparent, + + disabledCheckedThumbColor = ColorUtilityDisabledBackground.copy(alpha = 0.38f), + disabledCheckedTrackColor = ColorUtilityDisabledBackground.copy(alpha = 0.06f), + disabledCheckedIconColor = ColorInputBackground.copy(alpha = 0.85f), + disabledCheckedBorderColor = Color.Transparent, + disabledUncheckedThumbColor = ColorUtilityDisabledBackground.copy(alpha = 0.38f), + disabledUncheckedTrackColor = ColorUtilityDisabledBackground.copy(alpha = 0.06f), + disabledUncheckedBorderColor = Color.Transparent, + disabledUncheckedIconColor = ColorInputBackground.copy(alpha = 0.85f) + ) + ) + } +} + +@Preview(showBackground = true) @Composable fun TUIToggleSwitchPreview() { + TUITheme { + Box(modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center) { + Column( + horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center + ) { + TUIToggleSwitch(state = true) {} + VerticalSpacer(space = 10) + TUIToggleSwitch(state = false) {} + VerticalSpacer(space = 10) + TUIToggleSwitch(state = false, enabled = false) {} + VerticalSpacer(space = 10) + TUIToggleSwitch(state = true, enabled = false) {} + } + } + + } } \ No newline at end of file From bc589a870502b0fc146c328823d12913fc3cfbf5 Mon Sep 17 00:00:00 2001 From: AskNilesh Date: Thu, 25 May 2023 19:21:30 +0530 Subject: [PATCH 087/571] - Added android unit test for TUITextRow --- .idea/androidTestResultsUserPreferences.xml | 13 +++++ .../com/tarkalabs/uicomponents/TextRowTest.kt | 56 +++++++++++++++++++ .../uicomponents/components/TUITextRow.kt | 41 +++++++++++++- 3 files changed, 109 insertions(+), 1 deletion(-) create mode 100644 tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TextRowTest.kt diff --git a/.idea/androidTestResultsUserPreferences.xml b/.idea/androidTestResultsUserPreferences.xml index 19062d0d..cea7fc3c 100644 --- a/.idea/androidTestResultsUserPreferences.xml +++ b/.idea/androidTestResultsUserPreferences.xml @@ -146,6 +146,19 @@ + + + + + + + diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TextRowTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TextRowTest.kt new file mode 100644 index 00000000..c720d013 --- /dev/null +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TextRowTest.kt @@ -0,0 +1,56 @@ +package com.tarkalabs.uicomponents + +import androidx.compose.ui.test.assertIsDisplayed +import androidx.compose.ui.test.junit4.createComposeRule +import androidx.compose.ui.test.onNodeWithText +import androidx.compose.ui.test.performClick +import androidx.core.R.drawable +import com.tarkalabs.uicomponents.components.TUITextRow +import com.tarkalabs.uicomponents.models.TarkaIcon +import com.tarkalabs.uicomponents.models.TarkaIcons +import org.junit.Rule +import org.junit.Test +import org.mockito.kotlin.mock +import org.mockito.kotlin.verify + +class TextRowTest { + @get:Rule val composable = createComposeRule() + + @Test fun visibilityTest() { + composable.setContent { + TUITextRow( + title = "Title", + description = "Description", + infoIcon = TarkaIcons.Delete, + iconOne = TarkaIcons.Copy, + iconTwo = TarkaIcons.CheckMark, + buttonTitle = "Label", + iconOneTestTag = "iconOneTestTag", + ) + } + composable.onNodeWithText("Title").assertIsDisplayed() + composable.onNodeWithText("Description").assertIsDisplayed() + composable.onNodeWithText("Label").assertIsDisplayed() + + // composable.onNodeWithText("iconOneTestTag").assertIsDisplayed() + } + + @Test fun clickEventTest() { + val onButtonClick: () -> Unit = mock() + + composable.setContent { + TUITextRow( + title = "Title", + description = "Description", + infoIcon = TarkaIcon(drawable.ic_call_answer, "Call Answer"), + iconOne = TarkaIcon(drawable.ic_call_answer, "Call Answer"), + iconTwo = TarkaIcon(drawable.ic_call_answer, "Call Answer"), + buttonTitle = "Label", + onButtonClick = onButtonClick + ) + } + composable.onNodeWithText("Label").performClick() + + verify(onButtonClick).invoke() + } +} \ No newline at end of file diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUITextRow.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUITextRow.kt index 759a7bca..d0625aa3 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUITextRow.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUITextRow.kt @@ -25,6 +25,43 @@ import androidx.core.R.drawable import com.tarkalabs.uicomponents.models.TarkaIcon import com.tarkalabs.uicomponents.theme.TUITheme +/** + * A composable function that represents a text row in a UI. + * It displays a title, a description, and optional icons, button, and info icon. + * + * @param title: The title text to be displayed in the text row. + * @param description: The description text to be displayed in the text row. + * @param modifier: The modifier to apply to the row. + * @param iconOne: The optional first icon to display. + * @param iconTwo: The optional second icon to display. + * @param buttonTitle: The optional title for the button. + * @param infoIcon: The optional info icon to display. + * @param onIconOneClick: The callback function when the first icon is clicked. + * @param onIconTwoClick: The callback function when the second icon is clicked. + * @param onButtonClick: The callback function when the button is clicked. + * @param onInfoIconClick: The callback function when the info icon is clicked. + * @param onTextRowClick: The callback function when the text row is clicked. + * @param paddingValues: The padding values to apply to the row. + * @param iconOneTestTag: The test tag for the first icon. + * + * The TUITextRow composable function creates a row that represents a text item in a UI. + * It handles click events and provides callback functions for customization. The row displays + * a title and a description. It can also include optional icons, a button, and an info icon. + * The appearance and behavior of the row can be modified using the provided modifiers and callbacks. + * + * Example usage: + * + * TUITextRow( + * title = "Account", + * description = "Manage your account settings", + * iconOne = TarkaIcons.Settings, + * onIconOneClick = { /* Handle icon one click event */ }, + * buttonTitle = "Edit", + * onButtonClick = { /* Handle button click event */ }, + * onTextRowClick = { /* Handle text row click event */ } + * ) + * + */ @Composable fun TUITextRow( title: String, description: String, @@ -38,7 +75,8 @@ import com.tarkalabs.uicomponents.theme.TUITheme onButtonClick: () -> Unit = {}, onInfoIconClick: () -> Unit = {}, onTextRowClick: () -> Unit = {}, - paddingValues: PaddingValues = PaddingValues() + paddingValues: PaddingValues = PaddingValues(), + iconOneTestTag : String = "", ) { Row( modifier @@ -63,6 +101,7 @@ import com.tarkalabs.uicomponents.theme.TUITheme icon = iconOne, onIconClick = onIconOneClick, iconButtonStyle = IconButtonStyle.GHOST, + testTag = iconOneTestTag ) if (iconTwo != null) TUIIconButton( icon = iconTwo, From a2bc2d6e80336f8416bfa84387a717f87be06e03 Mon Sep 17 00:00:00 2001 From: AskNilesh Date: Thu, 25 May 2023 19:22:58 +0530 Subject: [PATCH 088/571] - Method name refactoring --- .../androidTest/java/com/tarkalabs/uicomponents/BadgeTest.kt | 2 +- .../androidTest/java/com/tarkalabs/uicomponents/ButtonTest.kt | 4 ++-- .../androidTest/java/com/tarkalabs/uicomponents/FabTest.kt | 4 ++-- .../java/com/tarkalabs/uicomponents/IconButtonTest.kt | 4 ++-- .../java/com/tarkalabs/uicomponents/NavigationRowTest.kt | 4 ++-- .../androidTest/java/com/tarkalabs/uicomponents/TopBarTest.kt | 4 ++-- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/BadgeTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/BadgeTest.kt index 1ea27b38..d65c6344 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/BadgeTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/BadgeTest.kt @@ -12,7 +12,7 @@ class BadgeTest { @get:Rule val composeTestRule = createComposeRule() private val TEST_TAG = "TEST_TAG" - @Test fun badgeDisplayed() { + @Test fun visibilityTest() { composeTestRule.setContent { TUIBadge( badgeSize = L, diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/ButtonTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/ButtonTest.kt index b9693b37..bcf6502c 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/ButtonTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/ButtonTest.kt @@ -16,14 +16,14 @@ class ButtonTest { private val BUTTON_TAG = "BUTTON_TAG" - @Test fun isButtonDisplayed() { + @Test fun visibilityTest() { composable.setContent { TUIButton(label = "Button", onClick = { }, buttonStyle = SECONDARY, testTag = BUTTON_TAG) } composable.onNodeWithTag(BUTTON_TAG).assertIsDisplayed() } - @Test fun buttonClickTest() { + @Test fun clickEventTest() { val onClick: () -> Unit = mock() composable.setContent { diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/FabTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/FabTest.kt index a084d0b6..5df35ca0 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/FabTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/FabTest.kt @@ -14,7 +14,7 @@ class FabTest { private val FAB_TAG = "FAB_TAG" - @Test fun isFabDisplayed() { + @Test fun visibilityTest() { composable.setContent { TUIFloatingActionButton(icon = TarkaIcons.Delete, testTag = FAB_TAG) { } @@ -22,7 +22,7 @@ class FabTest { composable.onNodeWithTag(FAB_TAG).assertIsDisplayed() } - @Test fun fabClickTest() { + @Test fun clickEventTest() { val onClick: () -> Unit = mock() composable.setContent { diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/IconButtonTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/IconButtonTest.kt index 839e415d..29ca27d8 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/IconButtonTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/IconButtonTest.kt @@ -14,7 +14,7 @@ class IconButtonTest { private val ICON_BUTTON = "ICON_BUTTON" - @Test fun isIconButtonDisplayed() { + @Test fun visibilityTest() { composable.setContent { TUIIconButton(icon = TarkaIcons.Delete, testTag = ICON_BUTTON) { } @@ -22,7 +22,7 @@ class IconButtonTest { composable.onNodeWithTag(ICON_BUTTON).assertIsDisplayed() } - @Test fun iconButtonClickTest() { + @Test fun clickEventTest() { val onClick: () -> Unit = mock() composable.setContent { diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/NavigationRowTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/NavigationRowTest.kt index dc787df6..813d5c2f 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/NavigationRowTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/NavigationRowTest.kt @@ -18,7 +18,7 @@ class NavigationRowTest { private val BADGE_TAG = "BADGE_TAG" private val ROW_TAG = "ROW_TAG" - @Test fun navigationRowVisibilityTest() { + @Test fun visibilityTest() { composable.setContent { TUINavigationRow( @@ -34,7 +34,7 @@ class NavigationRowTest { // composable.onNodeWithTag(BADGE_TAG).assertIsDisplayed() } - @Test fun checkClickEvent(){ + @Test fun clickEventTest(){ val onClick: () -> Unit = mock() composable.setContent { diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TopBarTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TopBarTest.kt index 3fe1cc4d..404f1338 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TopBarTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TopBarTest.kt @@ -22,7 +22,7 @@ class TopBarTest { private val MENU_TWO_ICON_TAG = "MENU_TWO_ICON_TAG" private val MENU_THREE_ICON_TAG = "MENU_THREE_ICON_TAG" - @OptIn(ExperimentalMaterial3Api::class) @Test fun topBarTitleDisplayed() { + @OptIn(ExperimentalMaterial3Api::class) @Test fun visibilityTest() { composeTestRule.setContent { TopBar( title = "title", @@ -62,7 +62,7 @@ class TopBarTest { composeTestRule.onNodeWithTag(SEARCH_ICON_TAG).assertIsDisplayed() } - @OptIn(ExperimentalMaterial3Api::class) @Test fun topBarClickEventTest() { + @OptIn(ExperimentalMaterial3Api::class) @Test fun clickEventTest() { val onNavigationIconClick: () -> Unit = mock() val onFirstMenuItemClicked: () -> Unit = mock() val onSecondMenuItemClicked: () -> Unit = mock() From b0f08a1909973c3fe1c3ba21d0c063edafad9dfd Mon Sep 17 00:00:00 2001 From: AskNilesh Date: Fri, 26 May 2023 16:45:27 +0530 Subject: [PATCH 089/571] - Refactored unit tests --- .idea/androidTestResultsUserPreferences.xml | 39 +++++++++++++++++++ .../com/tarkalabs/uicomponents/BadgeTest.kt | 4 +- .../com/tarkalabs/uicomponents/ButtonTest.kt | 15 ++++--- .../com/tarkalabs/uicomponents/FabTest.kt | 6 ++- .../tarkalabs/uicomponents/IconButtonTest.kt | 6 ++- .../uicomponents/NavigationRowTest.kt | 24 +++++++++--- .../com/tarkalabs/uicomponents/TextRowTest.kt | 24 +++++++++--- .../uicomponents/components/TUIBadge.kt | 6 +-- .../uicomponents/components/TUIButton.kt | 6 +-- .../components/TUINavigationRows.kt | 2 +- .../uicomponents/components/TUITextRow.kt | 25 ++++++------ 11 files changed, 112 insertions(+), 45 deletions(-) diff --git a/.idea/androidTestResultsUserPreferences.xml b/.idea/androidTestResultsUserPreferences.xml index cea7fc3c..1fce0808 100644 --- a/.idea/androidTestResultsUserPreferences.xml +++ b/.idea/androidTestResultsUserPreferences.xml @@ -16,6 +16,19 @@ + + + + + + + @@ -94,6 +107,19 @@ + + + + + + + @@ -133,6 +159,19 @@ + + + + + + + diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/BadgeTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/BadgeTest.kt index d65c6344..5b09d021 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/BadgeTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/BadgeTest.kt @@ -12,11 +12,11 @@ class BadgeTest { @get:Rule val composeTestRule = createComposeRule() private val TEST_TAG = "TEST_TAG" - @Test fun visibilityTest() { + @Test fun badgeDisplayed() { composeTestRule.setContent { TUIBadge( badgeSize = L, - badgeTestTag = TEST_TAG, + TestTag = TEST_TAG, count = 299 ) } diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/ButtonTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/ButtonTest.kt index bcf6502c..d7a08d18 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/ButtonTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/ButtonTest.kt @@ -4,7 +4,7 @@ import ButtonStyle.SECONDARY import TUIButton import androidx.compose.ui.test.assertIsDisplayed import androidx.compose.ui.test.junit4.createComposeRule -import androidx.compose.ui.test.onNodeWithTag +import androidx.compose.ui.test.onNodeWithText import androidx.compose.ui.test.performClick import org.junit.Rule import org.junit.Test @@ -14,24 +14,23 @@ import org.mockito.kotlin.verify class ButtonTest { @get:Rule val composable = createComposeRule() - private val BUTTON_TAG = "BUTTON_TAG" - @Test fun visibilityTest() { + @Test fun buttonDisplayed() { composable.setContent { - TUIButton(label = "Button", onClick = { }, buttonStyle = SECONDARY, testTag = BUTTON_TAG) + TUIButton(label = "Button", onClick = { }, buttonStyle = SECONDARY) } - composable.onNodeWithTag(BUTTON_TAG).assertIsDisplayed() + composable.onNodeWithText("Button").assertIsDisplayed() } - @Test fun clickEventTest() { + @Test fun buttonClickTriggered() { val onClick: () -> Unit = mock() composable.setContent { TUIButton( - label = "Button", onClick = onClick, buttonStyle = SECONDARY, testTag = BUTTON_TAG + label = "Button", onClick = onClick, buttonStyle = SECONDARY ) } - composable.onNodeWithTag(BUTTON_TAG).performClick() + composable.onNodeWithText("Button").performClick() verify(onClick).invoke() } diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/FabTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/FabTest.kt index 5df35ca0..55bc9186 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/FabTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/FabTest.kt @@ -1,5 +1,6 @@ import androidx.compose.ui.test.assertIsDisplayed import androidx.compose.ui.test.junit4.createComposeRule +import androidx.compose.ui.test.onNodeWithContentDescription import androidx.compose.ui.test.onNodeWithTag import androidx.compose.ui.test.performClick import com.tarkalabs.uicomponents.components.TUIFloatingActionButton @@ -14,15 +15,16 @@ class FabTest { private val FAB_TAG = "FAB_TAG" - @Test fun visibilityTest() { + @Test fun fabDisplayed() { composable.setContent { TUIFloatingActionButton(icon = TarkaIcons.Delete, testTag = FAB_TAG) { } } composable.onNodeWithTag(FAB_TAG).assertIsDisplayed() + composable.onNodeWithContentDescription(TarkaIcons.Delete.contentDescription).assertIsDisplayed() } - @Test fun clickEventTest() { + @Test fun fabClickTriggered() { val onClick: () -> Unit = mock() composable.setContent { diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/IconButtonTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/IconButtonTest.kt index 29ca27d8..a90bb4a9 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/IconButtonTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/IconButtonTest.kt @@ -1,5 +1,6 @@ import androidx.compose.ui.test.assertIsDisplayed import androidx.compose.ui.test.junit4.createComposeRule +import androidx.compose.ui.test.onNodeWithContentDescription import androidx.compose.ui.test.onNodeWithTag import androidx.compose.ui.test.performClick import com.tarkalabs.uicomponents.components.TUIIconButton @@ -14,15 +15,16 @@ class IconButtonTest { private val ICON_BUTTON = "ICON_BUTTON" - @Test fun visibilityTest() { + @Test fun iconButtonDisplayed() { composable.setContent { TUIIconButton(icon = TarkaIcons.Delete, testTag = ICON_BUTTON) { } } composable.onNodeWithTag(ICON_BUTTON).assertIsDisplayed() + composable.onNodeWithContentDescription(TarkaIcons.Delete.contentDescription).assertIsDisplayed() } - @Test fun clickEventTest() { + @Test fun iconButtonClickTriggered() { val onClick: () -> Unit = mock() composable.setContent { diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/NavigationRowTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/NavigationRowTest.kt index 813d5c2f..cf21b811 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/NavigationRowTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/NavigationRowTest.kt @@ -1,7 +1,11 @@ package com.tarkalabs.uicomponents +import androidx.compose.ui.test.assertHasClickAction import androidx.compose.ui.test.assertIsDisplayed import androidx.compose.ui.test.junit4.createComposeRule +import androidx.compose.ui.test.onAllNodesWithTag +import androidx.compose.ui.test.onFirst +import androidx.compose.ui.test.onNodeWithContentDescription import androidx.compose.ui.test.onNodeWithTag import androidx.compose.ui.test.onNodeWithText import androidx.compose.ui.test.performClick @@ -18,23 +22,30 @@ class NavigationRowTest { private val BADGE_TAG = "BADGE_TAG" private val ROW_TAG = "ROW_TAG" - @Test fun visibilityTest() { + @Test fun navigationRowDisplayed() { composable.setContent { TUINavigationRow( title = "Label", - leadingIcon = TarkaIcons.Copy, + leadingIcon = TarkaIcons.CheckMark, badgeCount = 5, + showRightArrow = true, onClick = {}, badgeTestTag = BADGE_TAG, + rowTestTag = "rowTestTag" ) + } composable.onNodeWithText("Label").assertIsDisplayed() - // composable.onNodeWithTag(BADGE_TAG).assertIsDisplayed() + composable.onNodeWithTag("rowTestTag").assertIsDisplayed() + composable.onAllNodesWithTag(BADGE_TAG, useUnmergedTree = true).onFirst().assertIsDisplayed() + composable.onNodeWithContentDescription(TarkaIcons.ChevronRight.contentDescription).assertIsDisplayed() + composable.onNodeWithContentDescription(TarkaIcons.CheckMark.contentDescription, useUnmergedTree = true).assertIsDisplayed() + } - @Test fun clickEventTest(){ + @Test fun navigationRowClickTriggered() { val onClick: () -> Unit = mock() composable.setContent { @@ -47,10 +58,13 @@ class NavigationRowTest { rowTestTag = ROW_TAG ) } - composable.onNodeWithTag(ROW_TAG).performClick() verify(onClick).invoke() + composable.onNodeWithTag(ROW_TAG) + .assertHasClickAction() + .performClick() + } } \ No newline at end of file diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TextRowTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TextRowTest.kt index c720d013..b292fa7e 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TextRowTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TextRowTest.kt @@ -1,7 +1,10 @@ package com.tarkalabs.uicomponents +import androidx.compose.ui.test.assertHasClickAction import androidx.compose.ui.test.assertIsDisplayed import androidx.compose.ui.test.junit4.createComposeRule +import androidx.compose.ui.test.onNodeWithContentDescription +import androidx.compose.ui.test.onNodeWithTag import androidx.compose.ui.test.onNodeWithText import androidx.compose.ui.test.performClick import androidx.core.R.drawable @@ -16,7 +19,7 @@ import org.mockito.kotlin.verify class TextRowTest { @get:Rule val composable = createComposeRule() - @Test fun visibilityTest() { + @Test fun textRowDisplayed() { composable.setContent { TUITextRow( title = "Title", @@ -25,17 +28,19 @@ class TextRowTest { iconOne = TarkaIcons.Copy, iconTwo = TarkaIcons.CheckMark, buttonTitle = "Label", - iconOneTestTag = "iconOneTestTag", ) } composable.onNodeWithText("Title").assertIsDisplayed() composable.onNodeWithText("Description").assertIsDisplayed() composable.onNodeWithText("Label").assertIsDisplayed() - // composable.onNodeWithText("iconOneTestTag").assertIsDisplayed() + composable.onNodeWithContentDescription(TarkaIcons.Delete.contentDescription).assertIsDisplayed() + composable.onNodeWithContentDescription(TarkaIcons.Copy.contentDescription, useUnmergedTree = true).assertIsDisplayed() + composable.onNodeWithContentDescription(TarkaIcons.CheckMark.contentDescription, useUnmergedTree = true).assertIsDisplayed() + } - @Test fun clickEventTest() { + @Test fun textRowClickTriggered() { val onButtonClick: () -> Unit = mock() composable.setContent { @@ -46,11 +51,18 @@ class TextRowTest { iconOne = TarkaIcon(drawable.ic_call_answer, "Call Answer"), iconTwo = TarkaIcon(drawable.ic_call_answer, "Call Answer"), buttonTitle = "Label", - onButtonClick = onButtonClick + onButtonClick = onButtonClick, + testTag = "testTag", + onTextRowClick = { + } ) } composable.onNodeWithText("Label").performClick() - verify(onButtonClick).invoke() + + composable.onNodeWithTag("testTag") + .assertHasClickAction() + .performClick() + } } \ No newline at end of file diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIBadge.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIBadge.kt index 06df1a81..b5ece254 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIBadge.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIBadge.kt @@ -26,7 +26,7 @@ enum class BadgeSize(val size: Dp) { * Below TUIBadge() defines a reusable composable function which can be used to create an Badge with various sizes which takes couple of parameters * @param count The Count to be displayed on the badge. * @param badgeSize The height size of the badge. Default is [BadgeSize.M]. - * @param badgeTestTag The test tag for the TUIBadge. + * @param TestTag The test tag for the TUIBadge. * * How to use TKButton() composable function * TUIBadge(count = 3,badgeSize = M) @@ -35,7 +35,7 @@ enum class BadgeSize(val size: Dp) { @OptIn(ExperimentalMaterial3Api::class) @Composable fun TUIBadge(count: Int? = null, badgeSize: BadgeSize = M, - badgeTestTag : String = "", + TestTag : String = "", ) { val padding = when (badgeSize) { S -> 0.dp @@ -53,7 +53,7 @@ enum class BadgeSize(val size: Dp) { .defaultMinSize( minWidth = badgeSize.size, minHeight = badgeSize.size ). - testTag(badgeTestTag) + testTag(TestTag) ) { if (count != null) Text( diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIButton.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIButton.kt index c290e27a..83bd472a 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIButton.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIButton.kt @@ -30,7 +30,6 @@ 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.platform.testTag import androidx.compose.ui.res.painterResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp @@ -100,7 +99,6 @@ enum class ButtonSize(val size: Dp) { * @param leadingIcon The drawable resource for the leading icon, if any. Default is null. * @param trailingIcon The drawable resource for the trailing icon, if any. Default is null. * @param onClick The callback function to be executed when the button is clicked. - * @param testTag The test tag for the TUIButton. * How to use TKButton() composable function * TUIButton( @@ -118,7 +116,6 @@ onClick = {} leadingIcon: TarkaIcon? = null, trailingIcon: TarkaIcon? = null, onClick: () -> Unit, - testTag : String = "" ) { val buttonColor = when (buttonStyle) { PRIMARY -> { @@ -161,8 +158,7 @@ onClick = {} colors = buttonColor, modifier = Modifier .height(height.size) - .wrapContentWidth() - .testTag(testTag), + .wrapContentWidth(), contentPadding = height.paddingValues(leadingIcon == null, trailingIcon == null), border = if (buttonStyle == OUTLINE) BorderStroke( width = 1.dp, color = MaterialTheme.colorScheme.onSurface diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUINavigationRows.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUINavigationRows.kt index c3bc3f1d..652471fc 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUINavigationRows.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUINavigationRows.kt @@ -67,7 +67,7 @@ import com.tarkalabs.uicomponents.theme.TUITheme if (leadingIcon != null) Icon( modifier = Modifier.size(24.dp), painter = painterResource(id = leadingIcon.iconRes), - contentDescription = null, + contentDescription = leadingIcon.contentDescription, tint = MaterialTheme.colorScheme.secondary ) Text( diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUITextRow.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUITextRow.kt index d0625aa3..007d7d00 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUITextRow.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUITextRow.kt @@ -8,17 +8,14 @@ import androidx.compose.foundation.layout.defaultMinSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding -import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width -import androidx.compose.material3.Icon -import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme import androidx.compose.material3.OutlinedButton import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.res.painterResource +import androidx.compose.ui.platform.testTag import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.core.R.drawable @@ -76,13 +73,14 @@ import com.tarkalabs.uicomponents.theme.TUITheme onInfoIconClick: () -> Unit = {}, onTextRowClick: () -> Unit = {}, paddingValues: PaddingValues = PaddingValues(), - iconOneTestTag : String = "", + testTag: String = "" ) { Row( modifier .clickable { onTextRowClick() } .defaultMinSize(minHeight = 40.dp) - .padding(paddingValues), + .padding(paddingValues) + .testTag(testTag), verticalAlignment = Alignment.CenterVertically) { Column(Modifier.weight(1f)) { Text( @@ -101,12 +99,13 @@ import com.tarkalabs.uicomponents.theme.TUITheme icon = iconOne, onIconClick = onIconOneClick, iconButtonStyle = IconButtonStyle.GHOST, - testTag = iconOneTestTag + testTag = iconOne.contentDescription ) if (iconTwo != null) TUIIconButton( icon = iconTwo, onIconClick = onIconTwoClick, - iconButtonStyle = IconButtonStyle.GHOST + iconButtonStyle = IconButtonStyle.GHOST, + testTag = iconTwo.contentDescription ) if (buttonTitle != null) { @@ -119,9 +118,13 @@ import com.tarkalabs.uicomponents.theme.TUITheme } } if (infoIcon != null) { - IconButton(modifier = Modifier.size(24.dp), onClick = onInfoIconClick) { - Icon(painter = painterResource(id = infoIcon.iconRes), contentDescription = null) - } + TUIIconButton( + icon = infoIcon, + onIconClick = onInfoIconClick, + iconButtonStyle = IconButtonStyle.GHOST, + testTag = infoIcon.contentDescription + + ) } } } From b719e85acf9115e9e9c45a8ad57e12eda16452e3 Mon Sep 17 00:00:00 2001 From: AskNilesh Date: Fri, 26 May 2023 17:13:49 +0530 Subject: [PATCH 090/571] - Method name renaming in unit test --- .../java/com/tarkalabs/uicomponents/BadgeTest.kt | 2 +- .../java/com/tarkalabs/uicomponents/ButtonTest.kt | 8 +++++--- .../java/com/tarkalabs/uicomponents/FabTest.kt | 4 ++-- .../java/com/tarkalabs/uicomponents/IconButtonTest.kt | 4 ++-- .../java/com/tarkalabs/uicomponents/NavigationRowTest.kt | 4 ++-- .../java/com/tarkalabs/uicomponents/TextRowTest.kt | 5 +++-- 6 files changed, 15 insertions(+), 12 deletions(-) diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/BadgeTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/BadgeTest.kt index 5b09d021..a87e01ec 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/BadgeTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/BadgeTest.kt @@ -12,7 +12,7 @@ class BadgeTest { @get:Rule val composeTestRule = createComposeRule() private val TEST_TAG = "TEST_TAG" - @Test fun badgeDisplayed() { + @Test fun badge_Displayed() { composeTestRule.setContent { TUIBadge( badgeSize = L, diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/ButtonTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/ButtonTest.kt index d7a08d18..04272d6d 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/ButtonTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/ButtonTest.kt @@ -15,19 +15,21 @@ class ButtonTest { @get:Rule val composable = createComposeRule() - @Test fun buttonDisplayed() { + @Test fun button_Displayed() { composable.setContent { TUIButton(label = "Button", onClick = { }, buttonStyle = SECONDARY) } composable.onNodeWithText("Button").assertIsDisplayed() } - @Test fun buttonClickTriggered() { + @Test fun button_Click_Triggered() { val onClick: () -> Unit = mock() composable.setContent { TUIButton( - label = "Button", onClick = onClick, buttonStyle = SECONDARY + label = "Button", + onClick = onClick, + buttonStyle = SECONDARY ) } composable.onNodeWithText("Button").performClick() diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/FabTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/FabTest.kt index 55bc9186..96bd2a88 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/FabTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/FabTest.kt @@ -15,7 +15,7 @@ class FabTest { private val FAB_TAG = "FAB_TAG" - @Test fun fabDisplayed() { + @Test fun fab_Displayed() { composable.setContent { TUIFloatingActionButton(icon = TarkaIcons.Delete, testTag = FAB_TAG) { } @@ -24,7 +24,7 @@ class FabTest { composable.onNodeWithContentDescription(TarkaIcons.Delete.contentDescription).assertIsDisplayed() } - @Test fun fabClickTriggered() { + @Test fun fab_Click_Triggered() { val onClick: () -> Unit = mock() composable.setContent { diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/IconButtonTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/IconButtonTest.kt index a90bb4a9..7806fb6c 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/IconButtonTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/IconButtonTest.kt @@ -15,7 +15,7 @@ class IconButtonTest { private val ICON_BUTTON = "ICON_BUTTON" - @Test fun iconButtonDisplayed() { + @Test fun icon_Button_Displayed() { composable.setContent { TUIIconButton(icon = TarkaIcons.Delete, testTag = ICON_BUTTON) { } @@ -24,7 +24,7 @@ class IconButtonTest { composable.onNodeWithContentDescription(TarkaIcons.Delete.contentDescription).assertIsDisplayed() } - @Test fun iconButtonClickTriggered() { + @Test fun icon_Button_Click_Triggered() { val onClick: () -> Unit = mock() composable.setContent { diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/NavigationRowTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/NavigationRowTest.kt index cf21b811..70775a08 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/NavigationRowTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/NavigationRowTest.kt @@ -22,7 +22,7 @@ class NavigationRowTest { private val BADGE_TAG = "BADGE_TAG" private val ROW_TAG = "ROW_TAG" - @Test fun navigationRowDisplayed() { + @Test fun navigationRow_Elements_Displayed() { composable.setContent { TUINavigationRow( @@ -45,7 +45,7 @@ class NavigationRowTest { } - @Test fun navigationRowClickTriggered() { + @Test fun navigationRow_Elements_Click_Triggered() { val onClick: () -> Unit = mock() composable.setContent { diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TextRowTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TextRowTest.kt index b292fa7e..c5566fd3 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TextRowTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TextRowTest.kt @@ -19,7 +19,7 @@ import org.mockito.kotlin.verify class TextRowTest { @get:Rule val composable = createComposeRule() - @Test fun textRowDisplayed() { + @Test fun textRow_Elements_Displayed() { composable.setContent { TUITextRow( title = "Title", @@ -30,6 +30,7 @@ class TextRowTest { buttonTitle = "Label", ) } + composable.onNodeWithText("Title").assertIsDisplayed() composable.onNodeWithText("Description").assertIsDisplayed() composable.onNodeWithText("Label").assertIsDisplayed() @@ -40,7 +41,7 @@ class TextRowTest { } - @Test fun textRowClickTriggered() { + @Test fun textRow_Elements_Click_Triggered() { val onButtonClick: () -> Unit = mock() composable.setContent { From 1d4a75a3f5dfd5dcbb00f300903690dac7c8431e Mon Sep 17 00:00:00 2001 From: Younes Charfaoui Date: Fri, 26 May 2023 19:59:43 +0100 Subject: [PATCH 091/571] Moving the screenshot tests to separate package. --- .../uicomponents/{ => screenshots}/TUIBadgeScreenShotTest.kt | 2 +- .../{ => screenshots}/TUIButtonScreenShotTest.kt | 2 +- .../TUIFloatingActionButtonScreenShotTest.kt | 3 +-- .../{ => screenshots}/TUIIconButtonScreenShotTest.kt | 2 +- .../{ => screenshots}/TUIToggleSwitchScreenShotTest.kt | 2 +- .../{ => screenshots}/TUITopBarScreenShotTest.kt | 5 +++-- 6 files changed, 8 insertions(+), 8 deletions(-) rename tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/{ => screenshots}/TUIBadgeScreenShotTest.kt (94%) rename tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/{ => screenshots}/TUIButtonScreenShotTest.kt (96%) rename tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/{ => screenshots}/TUIFloatingActionButtonScreenShotTest.kt (94%) rename tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/{ => screenshots}/TUIIconButtonScreenShotTest.kt (97%) rename tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/{ => screenshots}/TUIToggleSwitchScreenShotTest.kt (95%) rename tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/{ => screenshots}/TUITopBarScreenShotTest.kt (82%) diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIBadgeScreenShotTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIBadgeScreenShotTest.kt similarity index 94% rename from tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIBadgeScreenShotTest.kt rename to tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIBadgeScreenShotTest.kt index 97108db7..8304887d 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIBadgeScreenShotTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIBadgeScreenShotTest.kt @@ -1,4 +1,4 @@ -package com.tarkalabs.uicomponents +package com.tarkalabs.uicomponents.screenshots import androidx.compose.ui.test.junit4.createComposeRule import com.karumi.shot.ScreenshotTest diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIButtonScreenShotTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIButtonScreenShotTest.kt similarity index 96% rename from tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIButtonScreenShotTest.kt rename to tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIButtonScreenShotTest.kt index 2882990c..164641b1 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIButtonScreenShotTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIButtonScreenShotTest.kt @@ -1,4 +1,4 @@ -package com.tarkalabs.uicomponents +package com.tarkalabs.uicomponents.screenshots import TUIButton import ButtonSize.L diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIFloatingActionButtonScreenShotTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIFloatingActionButtonScreenShotTest.kt similarity index 94% rename from tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIFloatingActionButtonScreenShotTest.kt rename to tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIFloatingActionButtonScreenShotTest.kt index 5d39f705..1d4f61cb 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIFloatingActionButtonScreenShotTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIFloatingActionButtonScreenShotTest.kt @@ -1,4 +1,4 @@ -package com.tarkalabs.uicomponents +package com.tarkalabs.uicomponents.screenshots import androidx.compose.ui.test.junit4.createComposeRule import com.karumi.shot.ScreenshotTest @@ -7,7 +7,6 @@ import com.tarkalabs.uicomponents.components.FloatingActionButtonSize.R import com.tarkalabs.uicomponents.components.FloatingActionButtonSize.S import com.tarkalabs.uicomponents.components.TUIFloatingActionButton import com.tarkalabs.uicomponents.components.TUIToggleSwitch -import com.tarkalabs.uicomponents.models.TarkaIcon import com.tarkalabs.uicomponents.models.TarkaIcons import org.junit.Rule import org.junit.Test diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIIconButtonScreenShotTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIIconButtonScreenShotTest.kt similarity index 97% rename from tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIIconButtonScreenShotTest.kt rename to tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIIconButtonScreenShotTest.kt index ab93e76a..09ce3ad2 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIIconButtonScreenShotTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIIconButtonScreenShotTest.kt @@ -1,6 +1,6 @@ @file:OptIn(ExperimentalMaterial3Api::class) -package com.tarkalabs.uicomponents +package com.tarkalabs.uicomponents.screenshots import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.ui.test.junit4.createComposeRule diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIToggleSwitchScreenShotTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIToggleSwitchScreenShotTest.kt similarity index 95% rename from tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIToggleSwitchScreenShotTest.kt rename to tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIToggleSwitchScreenShotTest.kt index 515c92d0..516c2127 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIToggleSwitchScreenShotTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIToggleSwitchScreenShotTest.kt @@ -1,4 +1,4 @@ -package com.tarkalabs.uicomponents +package com.tarkalabs.uicomponents.screenshots import androidx.compose.ui.test.junit4.createComposeRule import com.karumi.shot.ScreenshotTest diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUITopBarScreenShotTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUITopBarScreenShotTest.kt similarity index 82% rename from tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUITopBarScreenShotTest.kt rename to tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUITopBarScreenShotTest.kt index bd246bb1..ad49ae2c 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUITopBarScreenShotTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUITopBarScreenShotTest.kt @@ -1,10 +1,11 @@ @file:OptIn(ExperimentalMaterial3Api::class) -package com.tarkalabs.uicomponents +package com.tarkalabs.uicomponents.screenshots import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.ui.test.junit4.createComposeRule import com.karumi.shot.ScreenshotTest +import com.tarkalabs.uicomponents.R.drawable import com.tarkalabs.uicomponents.components.TopBar import com.tarkalabs.uicomponents.models.TarkaIcon import org.junit.Rule @@ -29,7 +30,7 @@ class TUITopBarScreenShotTest : ScreenshotTest { @Test fun renderTopAppBarTextWithIcon() { composeRule.setContent { TopBar( - "Screenshot", navigationIcon = TarkaIcon(R.drawable.keyboard_arrow_right, "Arrow Right") + "Screenshot", navigationIcon = TarkaIcon(drawable.keyboard_arrow_right, "Arrow Right") ) } From 2df976d59f731157a697b123073f427929f8953f Mon Sep 17 00:00:00 2001 From: Younes Charfaoui Date: Sat, 27 May 2023 00:26:45 +0100 Subject: [PATCH 092/571] Making the tests smaller by extracting base class --- .../ComposeScreenshotComparator.kt | 19 ++++++++ .../screenshots/TUIBadgeScreenShotTest.kt | 17 ++----- .../screenshots/TUIButtonScreenShotTest.kt | 44 +++++-------------- .../TUIFloatingActionButtonScreenShotTest.kt | 40 ++++------------- .../TUIIconButtonScreenShotTest.kt | 29 +++--------- .../TUIToggleSwitchScreenShotTest.kt | 43 ++++-------------- .../screenshots/TUITopBarScreenShotTest.kt | 30 ++++--------- 7 files changed, 66 insertions(+), 156 deletions(-) create mode 100644 tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/ComposeScreenshotComparator.kt diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/ComposeScreenshotComparator.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/ComposeScreenshotComparator.kt new file mode 100644 index 00000000..5cbc9811 --- /dev/null +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/ComposeScreenshotComparator.kt @@ -0,0 +1,19 @@ +package com.tarkalabs.uicomponents.screenshots + +import androidx.compose.runtime.Composable +import androidx.compose.ui.test.junit4.createComposeRule +import com.karumi.shot.ScreenshotTest +import org.junit.Rule + +open class ComposeScreenshotComparator : ScreenshotTest { + + @get:Rule val composeRule = createComposeRule() + + protected fun compareScreenshotFor(composableToTest: @Composable () -> Unit) { + composeRule.setContent { + composableToTest() + } + compareScreenshot(composeRule) + } + +} \ No newline at end of file diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIBadgeScreenShotTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIBadgeScreenShotTest.kt index 8304887d..1089d2e1 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIBadgeScreenShotTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIBadgeScreenShotTest.kt @@ -1,31 +1,20 @@ package com.tarkalabs.uicomponents.screenshots -import androidx.compose.ui.test.junit4.createComposeRule -import com.karumi.shot.ScreenshotTest import com.tarkalabs.uicomponents.components.TUIBadge import com.tarkalabs.uicomponents.components.BadgeSize.M import com.tarkalabs.uicomponents.components.BadgeSize.S -import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith import org.junit.runners.JUnit4 @RunWith(JUnit4::class) -open class TUIBadgeScreenShotTest : ScreenshotTest { +open class TUIBadgeScreenShotTest : ComposeScreenshotComparator() { - @get:Rule val composeRule = createComposeRule() - - @Test fun test_badge_with_count() { - composeRule.setContent { + @Test fun test_badge_with_count() = compareScreenshotFor { TUIBadge(count = 2, badgeSize = M) - } - compareScreenshot(composeRule) } - @Test fun test_badge_with_out_count() { - composeRule.setContent { + @Test fun test_badge_with_out_count() = compareScreenshotFor { TUIBadge(badgeSize = S) - } - compareScreenshot(composeRule) } } \ No newline at end of file diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIButtonScreenShotTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIButtonScreenShotTest.kt index 164641b1..6799c800 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIButtonScreenShotTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIButtonScreenShotTest.kt @@ -1,56 +1,36 @@ package com.tarkalabs.uicomponents.screenshots -import TUIButton import ButtonSize.L import ButtonStyle.ERROR import ButtonStyle.GHOST import ButtonStyle.OUTLINE import ButtonStyle.PRIMARY import ButtonStyle.SECONDARY -import androidx.compose.ui.test.junit4.createComposeRule -import com.karumi.shot.ScreenshotTest -import org.junit.Rule +import TUIButton import org.junit.Test import org.junit.runner.RunWith import org.junit.runners.JUnit4 @RunWith(JUnit4::class) -class TUIButtonScreenShotTest : ScreenshotTest { - - @get: Rule val composeRule = createComposeRule() +class TUIButtonScreenShotTest : ComposeScreenshotComparator() { - @Test fun primaryButtonTest() { - composeRule.setContent { - TUIButton(label = "Primary button", buttonStyle = PRIMARY, height = L, onClick = {}) - } - compareScreenshot(composeRule) + @Test fun primaryButtonTest() = compareScreenshotFor { + TUIButton(label = "Primary button", buttonStyle = PRIMARY, height = L, onClick = {}) } - @Test fun secondaryButtonTest() { - composeRule.setContent { - TUIButton(label = "Secondary button", buttonStyle = SECONDARY, height = L, onClick = {}) - } - compareScreenshot(composeRule) + @Test fun secondaryButtonTest() = compareScreenshotFor { + TUIButton(label = "Secondary button", buttonStyle = SECONDARY, height = L, onClick = {}) } - @Test fun ghostButtonTest() { - composeRule.setContent { - TUIButton(label = "Ghost button", buttonStyle = GHOST, height = L, onClick = {}) - } - compareScreenshot(composeRule) + @Test fun ghostButtonTest() = compareScreenshotFor { + TUIButton(label = "Ghost button", buttonStyle = GHOST, height = L, onClick = {}) } - @Test fun errorButtonTest() { - composeRule.setContent { - TUIButton(label = "Error button", buttonStyle = ERROR, height = L, onClick = {}) - } - compareScreenshot(composeRule) + @Test fun errorButtonTest() = compareScreenshotFor { + TUIButton(label = "Error button", buttonStyle = ERROR, height = L, onClick = {}) } - @Test fun outlineButtonTest() { - composeRule.setContent { - TUIButton(label = "Outline button", buttonStyle = OUTLINE, height = L, onClick = {}) - } - compareScreenshot(composeRule) + @Test fun outlineButtonTest() = compareScreenshotFor { + TUIButton(label = "Outline button", buttonStyle = OUTLINE, height = L, onClick = {}) } } \ No newline at end of file diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIFloatingActionButtonScreenShotTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIFloatingActionButtonScreenShotTest.kt index 1d4f61cb..51b91412 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIFloatingActionButtonScreenShotTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIFloatingActionButtonScreenShotTest.kt @@ -14,43 +14,21 @@ import org.junit.runner.RunWith import org.junit.runners.JUnit4 @RunWith(JUnit4::class) -class TUIFloatingActionButtonScreenShotTest : ScreenshotTest { +class TUIFloatingActionButtonScreenShotTest : ComposeScreenshotComparator() { - @get:Rule val composeRule = createComposeRule() - - @Test fun test_fab_with_small_size() { - composeRule.setContent { - TUIFloatingActionButton(fabSize = S, icon = TarkaIcons.ArrowExport) { - - } - } - compareScreenshot(composeRule) + @Test fun test_fab_with_small_size() = compareScreenshotFor { + TUIFloatingActionButton(fabSize = S, icon = TarkaIcons.ArrowExport, onClick = {}) } - @Test fun test_fab_with_large_size() { - composeRule.setContent { - TUIFloatingActionButton(fabSize = L, icon = TarkaIcons.ArrowExport) { - - } - } - compareScreenshot(composeRule) + @Test fun test_fab_with_large_size() = compareScreenshotFor { + TUIFloatingActionButton(fabSize = L, icon = TarkaIcons.ArrowExport, onClick = {}) } - @Test fun test_fab_with_regular_size() { - composeRule.setContent { - TUIFloatingActionButton(fabSize = R, icon = TarkaIcons.ArrowExport) { - - } - } - compareScreenshot(composeRule) + @Test fun test_fab_with_regular_size() = compareScreenshotFor { + TUIFloatingActionButton(fabSize = R, icon = TarkaIcons.ArrowExport, onClick = {}) } - @Test fun test_unchecked_state_with_disabled_status() { - composeRule.setContent { - TUIToggleSwitch(state = false, enabled = false) { - - } - } - compareScreenshot(composeRule) + @Test fun test_unchecked_state_with_disabled_status() = compareScreenshotFor { + TUIToggleSwitch(state = false, enabled = false, onToggleChange = {}) } } \ No newline at end of file diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIIconButtonScreenShotTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIIconButtonScreenShotTest.kt index 09ce3ad2..21dc4bab 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIIconButtonScreenShotTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIIconButtonScreenShotTest.kt @@ -15,56 +15,37 @@ import org.junit.runner.RunWith import org.junit.runners.JUnit4 @RunWith(JUnit4::class) -class TUIIconButtonScreenShotTest : ScreenshotTest { +class TUIIconButtonScreenShotTest : ComposeScreenshotComparator() { - @get:Rule val composeRule = createComposeRule() - - @Test fun primaryIconButton() { - composeRule.setContent { + @Test fun primaryIconButton() = compareScreenshotFor { TUIIconButton( icon = TarkaIcons.ChevronRight, buttonSize = IconButtonSize.XS, iconButtonStyle = IconButtonStyle.PRIMARY, ) - } - - compareScreenshot(composeRule) } - @Test fun secondaryIconButton() { - composeRule.setContent { + @Test fun secondaryIconButton() = compareScreenshotFor { TUIIconButton( icon = TarkaIcons.ChevronRight, buttonSize = IconButtonSize.XS, iconButtonStyle = IconButtonStyle.SECONDARY, ) - - } - - compareScreenshot(composeRule) } - @Test fun ghostIconButton() { - composeRule.setContent { + @Test fun ghostIconButton() = compareScreenshotFor{ TUIIconButton( icon = TarkaIcons.ChevronRight, buttonSize = IconButtonSize.XS, iconButtonStyle = IconButtonStyle.GHOST, ) - - } - - compareScreenshot(composeRule) } - @Test fun outlineIconButton() { - composeRule.setContent { + @Test fun outlineIconButton() = compareScreenshotFor{ TUIIconButton( icon = TarkaIcons.ChevronRight, buttonSize = IconButtonSize.XS, iconButtonStyle = IconButtonStyle.OUTLINE, ) - } - compareScreenshot(composeRule) } } \ No newline at end of file diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIToggleSwitchScreenShotTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIToggleSwitchScreenShotTest.kt index 516c2127..2b557ca6 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIToggleSwitchScreenShotTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIToggleSwitchScreenShotTest.kt @@ -1,51 +1,26 @@ package com.tarkalabs.uicomponents.screenshots -import androidx.compose.ui.test.junit4.createComposeRule -import com.karumi.shot.ScreenshotTest import com.tarkalabs.uicomponents.components.TUIToggleSwitch -import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith import org.junit.runners.JUnit4 @RunWith(JUnit4::class) -class TUIToggleSwitchScreenShotTest : ScreenshotTest { +class TUIToggleSwitchScreenShotTest : ComposeScreenshotComparator() { - @get:Rule val composeRule = createComposeRule() - - @Test fun test_checked_status() { - composeRule.setContent { - TUIToggleSwitch(state = true) { - - } - } - compareScreenshot(composeRule) + @Test fun test_checked_status() = compareScreenshotFor { + TUIToggleSwitch(state = true, onToggleChange = {}) } - @Test fun test_unchecked_status() { - composeRule.setContent { - TUIToggleSwitch(state = false) { - - } - } - compareScreenshot(composeRule) + @Test fun test_unchecked_status() = compareScreenshotFor { + TUIToggleSwitch(state = false, onToggleChange = {}) } - @Test fun test_checked_state_with_disabled_status() { - composeRule.setContent { - TUIToggleSwitch(state = true, enabled = false) { - - } - } - compareScreenshot(composeRule) + @Test fun test_checked_state_with_disabled_status() = compareScreenshotFor { + TUIToggleSwitch(state = true, enabled = false, onToggleChange = {}) } - @Test fun test_unchecked_state_with_disabled_status() { - composeRule.setContent { - TUIToggleSwitch(state = false, enabled = false) { - - } - } - compareScreenshot(composeRule) + @Test fun test_unchecked_state_with_disabled_status() = compareScreenshotFor { + TUIToggleSwitch(state = false, enabled = false, onToggleChange = {}) } } \ No newline at end of file diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUITopBarScreenShotTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUITopBarScreenShotTest.kt index ad49ae2c..1dbaa74d 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUITopBarScreenShotTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUITopBarScreenShotTest.kt @@ -3,37 +3,25 @@ package com.tarkalabs.uicomponents.screenshots import androidx.compose.material3.ExperimentalMaterial3Api -import androidx.compose.ui.test.junit4.createComposeRule -import com.karumi.shot.ScreenshotTest import com.tarkalabs.uicomponents.R.drawable import com.tarkalabs.uicomponents.components.TopBar import com.tarkalabs.uicomponents.models.TarkaIcon -import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith import org.junit.runners.JUnit4 +@OptIn(ExperimentalMaterial3Api::class) @RunWith(JUnit4::class) -class TUITopBarScreenShotTest : ScreenshotTest { +class TUITopBarScreenShotTest : ComposeScreenshotComparator() { - @get:Rule val composeRule = createComposeRule() - - @OptIn(ExperimentalMaterial3Api::class) - @Test fun renderTopAppBarTextOnly() { - composeRule.setContent { - TopBar("Screenshot") - } - - compareScreenshot(composeRule,) + @Test fun renderTopAppBarTextOnly() = compareScreenshotFor { + TopBar(title = "Screenshot") } - @Test fun renderTopAppBarTextWithIcon() { - composeRule.setContent { - TopBar( - "Screenshot", navigationIcon = TarkaIcon(drawable.keyboard_arrow_right, "Arrow Right") - ) - } - - compareScreenshot(composeRule) + @Test fun renderTopAppBarTextWithIcon() = compareScreenshotFor { + TopBar( + title = "Screenshot", + navigationIcon = TarkaIcon(drawable.keyboard_arrow_right, "Arrow Right") + ) } } \ No newline at end of file From c915e6f92b172e1aa797094b19468a3858bb1600 Mon Sep 17 00:00:00 2001 From: Raja Jawahar Date: Sat, 27 May 2023 13:37:05 +0530 Subject: [PATCH 093/571] Update tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIToggleSwitch.kt Co-authored-by: Nilesh Rathod --- .../com/tarkalabs/uicomponents/components/TUIToggleSwitch.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIToggleSwitch.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIToggleSwitch.kt index 23393e6f..8cdaea1a 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIToggleSwitch.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIToggleSwitch.kt @@ -27,7 +27,7 @@ import com.tarkalabs.uicomponents.theme.ColorUtilityDisabledBackground import com.tarkalabs.uicomponents.theme.TUITheme /** - * Below TUIToggleSwitch() defines a reusable composable function which can be used to create an Button with various styles and sizes which takes several parameters such as + * Below TUIToggleSwitch() defines a reusable composable function which can be used to create a Switch which takes several parameters such as * @param state Checked status of the ToggleSwitch * @param enabled Enable status of the ToggleSwitch * @param onToggleChange() A callback function that is invoked when the toggle is clicked. From 441f35f33123986c40b053a1c060b4e8cbdc7763 Mon Sep 17 00:00:00 2001 From: Charfaoui Younes Date: Mon, 29 May 2023 08:57:43 +0100 Subject: [PATCH 094/571] Adding new color design system for tarka UI --- .../com/tarkalabs/uicomponents/theme/Color.kt | 135 ++++++++++++++++++ .../tarkalabs/uicomponents/theme/DarkColor.kt | 28 ++-- .../uicomponents/theme/LightColor.kt | 20 ++- .../com/tarkalabs/uicomponents/theme/Theme.kt | 53 +------ 4 files changed, 177 insertions(+), 59 deletions(-) create mode 100644 tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Color.kt diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Color.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Color.kt new file mode 100644 index 00000000..8c8851ca --- /dev/null +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Color.kt @@ -0,0 +1,135 @@ +package com.tarkalabs.uicomponents.theme + +import androidx.compose.runtime.Immutable +import androidx.compose.runtime.staticCompositionLocalOf +import androidx.compose.ui.graphics.Color + +@Immutable +data class TarkaColors( + val primary: Color, + val onPrimary: Color, + val primaryAlt: Color, + val onPrimaryAlt: Color, + val secondary: Color, + val onSecondary: Color, + val secondaryAlt: Color, + val onSecondaryAlt: Color, + val tertiary: Color, + val onTertiary: Color, + val tertiaryAlt: Color, + val onTertiaryAlt: Color, + val success: Color, + val onSuccess: Color, + val onSuccess10: Color, + val onSuccess20: Color, + val error: Color, + val onError: Color, + val onError10: Color, + val warning: Color, + val onWarning: Color, + val onWarning10: Color, + val background: Color, + val onBackground: Color, + val utilityOutline: Color, + val utilityDisabledContent: Color, + val utilityDisabledBackground: Color, + val utilityLink: Color, + val inputBackground: Color, + val inputText: Color, + val inputDim: Color, + val surface: Color, + val surface50: Color, + val onSurface: Color, + val surfaceVariant: Color, + val constantLight: Color, + val constantDark: Color, +) + +val LocalTUIColors = staticCompositionLocalOf { + lightColors() +} + +fun lightColors(): TarkaColors { + return TarkaColors( + primary = LightColorPrimary, + onPrimary = LightColorOnPrimary, + primaryAlt = LightColorAltPrimary, + onPrimaryAlt = LightColorOnAltPrimary, + secondary = LightColorSecondary, + onSecondary = LightColorOnSecondary, + secondaryAlt = LightColorAltSecondary, + onSecondaryAlt = LightColorOnAltSecondary, + tertiary = LightColorTertiary, + onTertiary = LightColorOnTertiary, + tertiaryAlt = LightColorAltTertiary, + onTertiaryAlt = LightColorOnAltTertiary, + success = LightColorSuccess, + onSuccess = LightColorOnSuccess, + onSuccess10 = LightColorSuccess10, + onSuccess20 = LightColorSuccess20, + error = LightColorError, + onError = LightColorOnError, + onError10 = LightColorError10, + warning = LightColorWarning, + onWarning = LightColorOnWarning, + onWarning10 = LightColorWarning10, + background = LightColorBackground, + onBackground = LightColorOnBackground, + utilityOutline = LightColorUtilityOutline, + utilityDisabledContent = LightColorUtilityDisabledContent, + utilityDisabledBackground = LightColorUtilityDisabledBackground, + utilityLink = LightColorUtilityLink, + inputBackground = LightColorInputBackground, + inputText = LightColorInputText, + inputDim = LightColorInputDim, + surface = LightColorSurface, + surface50 = LightColorSurface50, + onSurface = LightColorOnSurface, + surfaceVariant = LightColorSurfaceVariant, + constantLight = ColorLight, + constantDark = ColorDark + ) +} + +fun darkColors(): TarkaColors { + return TarkaColors( + primary = DarkColorPrimary, + onPrimary = DarkColorOnPrimary, + primaryAlt = DarkColorAltPrimary, + onPrimaryAlt = DarkColorOnAltPrimary, + secondary = DarkColorSecondary, + onSecondary = DarkColorOnSecondary, + secondaryAlt = DarkColorAltSecondary, + onSecondaryAlt = DarkColorOnAltSecondary, + tertiary = DarkColorTertiary, + onTertiary = DarkColorOnTertiary, + tertiaryAlt = DarkColorAltTertiary, + onTertiaryAlt = DarkColorOnAltTertiary, + success = DarkColorSuccess, + onSuccess = DarkColorOnSuccess, + onSuccess10 = DarkColorSuccess10, + onSuccess20 = DarkColorSuccess20, + error = DarkColorError, + onError = DarkColorOnError, + onError10 = DarkColorError10, + warning = DarkColorWarning, + onWarning = DarkColorOnWarning, + onWarning10 = DarkColorWarning10, + background = DarkColorBackground, + onBackground = DarkColorOnBackground, + utilityOutline = DarkColorUtilityOutline, + utilityDisabledContent = DarkColorUtilityDisabledContent, + utilityDisabledBackground = DarkColorUtilityDisabledBackground, + utilityLink = DarkColorUtilityLink, + inputBackground = DarkColorInputBackground, + inputText = DarkColorInputText, + inputDim = DarkColorInputDim, + surface = DarkColorSurface, + surface50 = DarkColorSurface50, + onSurface = DarkColorOnSurface, + surfaceVariant = DarkColorSurfaceVariant, + constantLight = ColorLight, + constantDark = ColorDark + ) +} + diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/DarkColor.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/DarkColor.kt index 5f1561d9..e5ef2223 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/DarkColor.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/DarkColor.kt @@ -18,19 +18,31 @@ val DarkColorAltTertiary = Color(0xFF532D53) val DarkColorOnAltTertiary = Color(0xFFFFD6FF) val DarkColorSuccess = Color(0xFF55E792) +val DarkColorSuccess10 = DarkColorSuccess.copy(alpha = 10f) +val DarkColorSuccess20 = DarkColorSuccess.copy(alpha = 20f) val DarkColorOnSuccess = Color(0xFF003817) -val DarkColorError= Color(0xFFD42136) -val DarkColorOnError= Color(0xFFFFFAFA) -val DarkColorAltError= Color(0x1ACD1D32) +val DarkColorError = Color(0xFFD42136) +val DarkColorOnError = Color(0xFFFFFAFA) +val DarkColorError10 = DarkColorError.copy(alpha = 10f) -val DarkColorWarning= Color(0xFFFFB938) -val DarkColorOnWarning= Color(0xFF241D0F) -val DarkColorAltWarning= Color(0x1ACD1D32) +val DarkColorWarning = Color(0xFFFFB938) +val DarkColorOnWarning = Color(0xFF241D0F) +val DarkColorWarning10 = DarkColorWarning.copy(alpha = 10f) -val DarkColorBackground= Color(0xFF0F1115) -val DarkColorOnBackground= Color(0xFFF0F2F4) +val DarkColorBackground = Color(0xFF0F1115) +val DarkColorOnBackground = Color(0xFFF0F2F4) val DarkColorSurface = Color(0xFF212731) val DarkColorOnSurface = Color(0xFFFCFCFD) +val DarkColorSurfaceVariant = Color(0xFF2D3543) +val DarkColorSurface50 = DarkColorSurface.copy(alpha = 50f) + +val DarkColorUtilityOutline = Color(0xFF878B92) +val DarkColorUtilityLink = Color(0xFF80B0FF) +val DarkColorUtilityDisabledBackground = Color(0XFFFCFCFD).copy(alpha = 12f) +val DarkColorUtilityDisabledContent = Color(0XFFFCFCFD).copy(alpha = 38f) +val DarkColorInputBackground = Color(0XFF0F1115).copy(alpha = 60f) +val DarkColorInputText = Color(0XFFFCFCFD) +val DarkColorInputDim = DarkColorInputText.copy(alpha = 70f) diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/LightColor.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/LightColor.kt index 145b135c..6f72b736 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/LightColor.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/LightColor.kt @@ -18,23 +18,33 @@ val LightColorAltTertiary = Color(0xFFF3CEF3) val LightColorOnAltTertiary = Color(0xFF530953) val LightColorSuccess = Color(0xFF148F47) +val LightColorSuccess10 = LightColorSuccess.copy(alpha = 10f) +val LightColorSuccess20 = LightColorSuccess.copy(alpha = 20f) val LightColorOnSuccess = Color(0xFFF2FDF6) val LightColorError = Color(0xFFCD1D32) val LightColorOnError = Color(0xFFFEFBFB) -val LightColorAltError = Color(0x1ACD1D32) +val LightColorError10 = LightColorError.copy(alpha = 10f) val LightColorWarning = Color(0xFFFFB938) val LightColorOnWarning = Color(0xFF241D0F) -val LightColorAltWarning = Color(0x1ACD1D32) +val LightColorWarning10 = LightColorWarning.copy(alpha = 10f) val LightColorBackground = Color(0xFFEAECF0) val LightColorOnBackground = Color(0xFF171B21) val LightColorSurface = Color(0xFFF9FAFB) val LightColorOnSurface = Color(0xFF1A1B1F) +val LightColorSurfaceVariant = Color(0xFFEBEFF4) +val LightColorSurface50 = LightColorSurface.copy(alpha = 50f) + +val LightColorUtilityOutline = Color(0xFF878B92) +val LightColorUtilityLink = Color(0xFF3381FF) +val LightColorUtilityDisabledBackground = Color(0XFF1A1C1F) +val LightColorUtilityDisabledContent = Color(0XFF1A1B1F).copy(alpha = 38f) +val LightColorInputBackground = Color(0XFFEAECF0).copy(alpha = 85f) +val LightColorInputText = Color(0XFF1A1B1F) +val LightColorInputDim = LightColorInputText.copy(alpha = 70f) -val ColorUtilityOutline = Color(0xFF878B92) val ColorLight = Color(0xFFFFFFFF) -val ColorUtilityDisabledBackground = Color(0XFF1A1C1F) -val ColorInputBackground = Color(0XFFEAEDF0) +val ColorDark = Color(0xFF000000) \ No newline at end of file diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Theme.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Theme.kt index 075bf6bd..c3ea8bbc 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Theme.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Theme.kt @@ -2,63 +2,21 @@ package com.tarkalabs.uicomponents.theme import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.darkColorScheme -import androidx.compose.material3.lightColorScheme import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider -private val DarkColorPalette = darkColorScheme( - primary = DarkColorPrimary, - onPrimary = DarkColorOnPrimary, - primaryContainer = DarkColorAltPrimary, - onPrimaryContainer = DarkColorOnAltPrimary, - secondary = DarkColorSecondary, - onSecondary = DarkColorOnSecondary, - secondaryContainer = DarkColorAltSecondary, - onSecondaryContainer = DarkColorOnAltSecondary, - tertiary = DarkColorTertiary, - onTertiary = DarkColorOnTertiary, - onTertiaryContainer = DarkColorAltTertiary, - tertiaryContainer = DarkColorOnAltTertiary, - error = DarkColorError, - onError = DarkColorOnError, - background = DarkColorBackground, - onBackground = DarkColorOnBackground, - surface = DarkColorSurface, - onSurface = DarkColorOnSurface, -) - -private val LightColorPalette = lightColorScheme( - primary = LightColorPrimary, - onPrimary = LightColorOnPrimary, - primaryContainer = LightColorAltPrimary, - onPrimaryContainer = LightColorOnAltPrimary, - secondary = LightColorSecondary, - onSecondary = LightColorOnSecondary, - secondaryContainer = LightColorAltSecondary, - onSecondaryContainer = LightColorOnAltSecondary, - tertiary = LightColorTertiary, - onTertiary = LightColorOnTertiary, - onTertiaryContainer = LightColorAltTertiary, - tertiaryContainer = LightColorOnAltTertiary, - error = LightColorError, - onError = LightColorOnError, - background = LightColorBackground, - onBackground = LightColorOnBackground, - surface = LightColorSurface, - onSurface = LightColorOnSurface - ) @Composable fun TUITheme( darkTheme: Boolean = isSystemInDarkTheme(), content: @Composable () -> Unit, ) { - val colors = if (darkTheme) DarkColorPalette else LightColorPalette + val colors = if (darkTheme) darkColors() else lightColors() CompositionLocalProvider( - LocalExtendedTypography provides extendedTypography + LocalExtendedTypography provides extendedTypography, + LocalTUIColors provides colors ) { MaterialTheme( - typography = Typography, content = content, colorScheme = colors, shapes = Shapes + typography = Typography, content = content, shapes = Shapes ) } } @@ -68,4 +26,7 @@ object TUITheme { val typography: ExtendedTypography @Composable get() = LocalExtendedTypography.current + val colors: TarkaColors + @Composable + get() = LocalTUIColors.current } \ No newline at end of file From de0d428d8e279e05f1e9aede3d043f2843078fe3 Mon Sep 17 00:00:00 2001 From: Charfaoui Younes Date: Mon, 29 May 2023 09:01:04 +0100 Subject: [PATCH 095/571] Fixing the color usages --- .../uicomponents/components/TUIIconButton.kt | 3 +-- .../components/TUIToggleSwitch.kt | 21 ++++++++----------- 2 files changed, 10 insertions(+), 14 deletions(-) diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIIconButton.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIIconButton.kt index 227885ba..4f65466f 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIIconButton.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIIconButton.kt @@ -37,7 +37,6 @@ import com.tarkalabs.uicomponents.components.IconButtonStyle.PRIMARY import com.tarkalabs.uicomponents.components.IconButtonStyle.SECONDARY import com.tarkalabs.uicomponents.models.TarkaIcon import com.tarkalabs.uicomponents.models.TarkaIcons -import com.tarkalabs.uicomponents.theme.ColorUtilityOutline import com.tarkalabs.uicomponents.theme.TUITheme // Created by Nilesh Rathod on 12/05/23. @@ -135,7 +134,7 @@ iconButtonStyle = IconButtonStyle.OUTLINE, ) modifier = Modifier .border( - width = 0.5.dp, color = ColorUtilityOutline, shape = CircleShape + width = 0.5.dp, color = TUITheme.colors.utilityOutline, shape = CircleShape ) .size(buttonSize.size) } diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIToggleSwitch.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIToggleSwitch.kt index 8cdaea1a..24e14c5c 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIToggleSwitch.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIToggleSwitch.kt @@ -21,9 +21,6 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.tarkalabs.uicomponents.models.TarkaIcons -import com.tarkalabs.uicomponents.theme.ColorInputBackground -import com.tarkalabs.uicomponents.theme.ColorLight -import com.tarkalabs.uicomponents.theme.ColorUtilityDisabledBackground import com.tarkalabs.uicomponents.theme.TUITheme /** @@ -53,23 +50,23 @@ import com.tarkalabs.uicomponents.theme.TUITheme modifier = Modifier.size(width = 40.dp, height = 24.dp) ) }, colors = SwitchDefaults.colors( - checkedThumbColor = ColorLight, + checkedThumbColor = TUITheme.colors.constantLight, checkedTrackColor = MaterialTheme.colorScheme.primary, checkedIconColor = MaterialTheme.colorScheme.primary, - checkedBorderColor = ColorLight, + checkedBorderColor = TUITheme.colors.constantLight, uncheckedThumbColor = MaterialTheme.colorScheme.onSurface, uncheckedTrackColor = MaterialTheme.colorScheme.surfaceVariant, - uncheckedIconColor = ColorLight, + uncheckedIconColor = TUITheme.colors.constantLight, uncheckedBorderColor = Color.Transparent, - disabledCheckedThumbColor = ColorUtilityDisabledBackground.copy(alpha = 0.38f), - disabledCheckedTrackColor = ColorUtilityDisabledBackground.copy(alpha = 0.06f), - disabledCheckedIconColor = ColorInputBackground.copy(alpha = 0.85f), + disabledCheckedThumbColor = TUITheme.colors.utilityDisabledBackground.copy(alpha = 0.38f), + disabledCheckedTrackColor = TUITheme.colors.utilityDisabledBackground.copy(alpha = 0.06f), + disabledCheckedIconColor = TUITheme.colors.inputBackground.copy(alpha = 0.85f), disabledCheckedBorderColor = Color.Transparent, - disabledUncheckedThumbColor = ColorUtilityDisabledBackground.copy(alpha = 0.38f), - disabledUncheckedTrackColor = ColorUtilityDisabledBackground.copy(alpha = 0.06f), + disabledUncheckedThumbColor = TUITheme.colors.utilityDisabledBackground.copy(alpha = 0.38f), + disabledUncheckedTrackColor = TUITheme.colors.utilityDisabledBackground.copy(alpha = 0.06f), disabledUncheckedBorderColor = Color.Transparent, - disabledUncheckedIconColor = ColorInputBackground.copy(alpha = 0.85f) + disabledUncheckedIconColor = TUITheme.colors.inputBackground.copy(alpha = 0.85f) ) ) } From 5c897d5a0ce8d1f7550f05c54d79c4635c9c5922 Mon Sep 17 00:00:00 2001 From: Raja Jawahar Date: Mon, 29 May 2023 13:22:54 +0530 Subject: [PATCH 096/571] File renaming --- .idea/androidTestResultsUserPreferences.xml | 39 ++++++++ .../{BadgeTest.kt => TUIBadgeTest.kt} | 5 +- .../{ButtonTest.kt => TUIButtonTest.kt} | 3 +- .../{FabTest.kt => TUIFabTest.kt} | 2 +- ...IconButtonTest.kt => TUIIconButtonTest.kt} | 2 +- ...tionRowTest.kt => TUINavigationRowTest.kt} | 2 +- .../{TextRowTest.kt => TUITextRowTest.kt} | 2 +- .../java/com/tarkalabs/uicomponents/Tags.kt | 13 +++ .../uicomponents/components/TUIBadge.kt | 12 ++- .../uicomponents/components/TUIButton.kt | 6 +- .../components/TUIFloatingActionButton.kt | 6 +- .../uicomponents/components/TUIIconButton.kt | 92 ++++++------------- .../components/TUINavigationRows.kt | 7 +- .../uicomponents/components/TUITextRow.kt | 3 +- .../components/TUIToggleSwitch.kt | 66 +++++++------ .../uicomponents/components/TopBar.kt | 85 +++++++++-------- .../uicomponents/models/TarkaIcon.kt | 2 - .../tarkalabs/uicomponents/theme/DarkColor.kt | 16 ++-- .../com/tarkalabs/uicomponents/theme/Theme.kt | 3 +- 19 files changed, 203 insertions(+), 163 deletions(-) rename tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/{BadgeTest.kt => TUIBadgeTest.kt} (92%) rename tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/{ButtonTest.kt => TUIButtonTest.kt} (97%) rename tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/{FabTest.kt => TUIFabTest.kt} (98%) rename tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/{IconButtonTest.kt => TUIIconButtonTest.kt} (97%) rename tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/{NavigationRowTest.kt => TUINavigationRowTest.kt} (98%) rename tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/{TextRowTest.kt => TUITextRowTest.kt} (99%) create mode 100644 tarkaui/src/main/java/com/tarkalabs/uicomponents/Tags.kt diff --git a/.idea/androidTestResultsUserPreferences.xml b/.idea/androidTestResultsUserPreferences.xml index 1fce0808..335609e9 100644 --- a/.idea/androidTestResultsUserPreferences.xml +++ b/.idea/androidTestResultsUserPreferences.xml @@ -29,6 +29,19 @@ + + + + + + + @@ -146,6 +159,19 @@ + + + + + + + @@ -198,6 +224,19 @@ + + + + + + + diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/BadgeTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIBadgeTest.kt similarity index 92% rename from tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/BadgeTest.kt rename to tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIBadgeTest.kt index a87e01ec..5a57c08f 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/BadgeTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIBadgeTest.kt @@ -8,7 +8,7 @@ import com.tarkalabs.uicomponents.components.TUIBadge import org.junit.Rule import org.junit.Test -class BadgeTest { +class TUIBadgeTest { @get:Rule val composeTestRule = createComposeRule() private val TEST_TAG = "TEST_TAG" @@ -16,12 +16,11 @@ class BadgeTest { composeTestRule.setContent { TUIBadge( badgeSize = L, - TestTag = TEST_TAG, + testTag = TEST_TAG, count = 299 ) } composeTestRule.onNodeWithTag(TEST_TAG).assertIsDisplayed() } - } \ No newline at end of file diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/ButtonTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIButtonTest.kt similarity index 97% rename from tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/ButtonTest.kt rename to tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIButtonTest.kt index 04272d6d..45dbbd8b 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/ButtonTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIButtonTest.kt @@ -11,10 +11,9 @@ import org.junit.Test import org.mockito.kotlin.mock import org.mockito.kotlin.verify -class ButtonTest { +class TUIButtonTest { @get:Rule val composable = createComposeRule() - @Test fun button_Displayed() { composable.setContent { TUIButton(label = "Button", onClick = { }, buttonStyle = SECONDARY) diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/FabTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIFabTest.kt similarity index 98% rename from tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/FabTest.kt rename to tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIFabTest.kt index 96bd2a88..b90de4fa 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/FabTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIFabTest.kt @@ -10,7 +10,7 @@ import org.junit.Test import org.mockito.kotlin.mock import org.mockito.kotlin.verify -class FabTest { +class TUIFabTest { @get:Rule val composable = createComposeRule() private val FAB_TAG = "FAB_TAG" diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/IconButtonTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIIconButtonTest.kt similarity index 97% rename from tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/IconButtonTest.kt rename to tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIIconButtonTest.kt index 7806fb6c..b73d31da 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/IconButtonTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUIIconButtonTest.kt @@ -10,7 +10,7 @@ import org.junit.Test import org.mockito.kotlin.mock import org.mockito.kotlin.verify -class IconButtonTest { +class TUIIconButtonTest { @get:Rule val composable = createComposeRule() private val ICON_BUTTON = "ICON_BUTTON" diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/NavigationRowTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUINavigationRowTest.kt similarity index 98% rename from tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/NavigationRowTest.kt rename to tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUINavigationRowTest.kt index 70775a08..7e105845 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/NavigationRowTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUINavigationRowTest.kt @@ -16,7 +16,7 @@ import org.junit.Test import org.mockito.kotlin.mock import org.mockito.kotlin.verify -class NavigationRowTest { +class TUINavigationRowTest { @get:Rule val composable = createComposeRule() private val BADGE_TAG = "BADGE_TAG" diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TextRowTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUITextRowTest.kt similarity index 99% rename from tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TextRowTest.kt rename to tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUITextRowTest.kt index c5566fd3..618e7370 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TextRowTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TUITextRowTest.kt @@ -16,7 +16,7 @@ import org.junit.Test import org.mockito.kotlin.mock import org.mockito.kotlin.verify -class TextRowTest { +class TUITextRowTest { @get:Rule val composable = createComposeRule() @Test fun textRow_Elements_Displayed() { diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/Tags.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/Tags.kt new file mode 100644 index 00000000..58eb969e --- /dev/null +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/Tags.kt @@ -0,0 +1,13 @@ +package com.tarkalabs.uicomponents + +object Tags { + const val TAG_TEXT_ROW = "text_row_item" + const val TAG_TOGGLE_SWITCH = "toggle_switch_item" + const val TAG_ICON_BUTTON = "icon_button_item" + const val TAG_BADGE = "badge_item" + const val TAG_BUTTON = "button_item" + const val TAG_NAVIGATION_ROW_BADGE = "navigation_row_switch" + const val TAG_NAVIGATION_ROW = "navigation_row" + const val TAG_FAB = "floating_action_button_item" + const val TAG_THEME = "theme" +} \ No newline at end of file diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIBadge.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIBadge.kt index b5ece254..a0e0a500 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIBadge.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIBadge.kt @@ -11,6 +11,7 @@ import androidx.compose.ui.platform.testTag import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp +import com.tarkalabs.uicomponents.Tags import com.tarkalabs.uicomponents.components.BadgeSize.L import com.tarkalabs.uicomponents.components.BadgeSize.M import com.tarkalabs.uicomponents.components.BadgeSize.S @@ -26,16 +27,17 @@ enum class BadgeSize(val size: Dp) { * Below TUIBadge() defines a reusable composable function which can be used to create an Badge with various sizes which takes couple of parameters * @param count The Count to be displayed on the badge. * @param badgeSize The height size of the badge. Default is [BadgeSize.M]. - * @param TestTag The test tag for the TUIBadge. + * @param testTag The test tag for the TUIBadge. * * How to use TKButton() composable function * TUIBadge(count = 3,badgeSize = M) * */ @OptIn(ExperimentalMaterial3Api::class) -@Composable fun TUIBadge(count: Int? = null, +@Composable fun TUIBadge( + count: Int? = null, badgeSize: BadgeSize = M, - TestTag : String = "", + testTag: String = Tags.TAG_BADGE, ) { val padding = when (badgeSize) { S -> 0.dp @@ -52,8 +54,8 @@ enum class BadgeSize(val size: Dp) { .padding(padding) .defaultMinSize( minWidth = badgeSize.size, minHeight = badgeSize.size - ). - testTag(TestTag) + ) + .testTag(testTag) ) { if (count != null) Text( diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIButton.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIButton.kt index 83bd472a..7e07980d 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIButton.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIButton.kt @@ -30,11 +30,13 @@ 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.platform.testTag import androidx.compose.ui.res.painterResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp +import com.tarkalabs.uicomponents.Tags import com.tarkalabs.uicomponents.models.TarkaIcon import com.tarkalabs.uicomponents.theme.TUITheme @@ -115,6 +117,7 @@ onClick = {} buttonStyle: ButtonStyle = PRIMARY, leadingIcon: TarkaIcon? = null, trailingIcon: TarkaIcon? = null, + testTag: String = Tags.TAG_BUTTON, onClick: () -> Unit, ) { val buttonColor = when (buttonStyle) { @@ -158,7 +161,8 @@ onClick = {} colors = buttonColor, modifier = Modifier .height(height.size) - .wrapContentWidth(), + .wrapContentWidth() + .testTag(testTag), contentPadding = height.paddingValues(leadingIcon == null, trailingIcon == null), border = if (buttonStyle == OUTLINE) BorderStroke( width = 1.dp, color = MaterialTheme.colorScheme.onSurface diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIFloatingActionButton.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIFloatingActionButton.kt index 48feb8e1..22e55725 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIFloatingActionButton.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIFloatingActionButton.kt @@ -17,6 +17,7 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp +import com.tarkalabs.uicomponents.Tags import com.tarkalabs.uicomponents.components.FloatingActionButtonSize.L import com.tarkalabs.uicomponents.components.FloatingActionButtonSize.R import com.tarkalabs.uicomponents.components.FloatingActionButtonSize.S @@ -44,7 +45,7 @@ enum class FloatingActionButtonSize(val size: Dp) { @Composable fun TUIFloatingActionButton( fabSize: FloatingActionButtonSize = S, icon: TarkaIcon, - testTag : String = "", + testTag: String = Tags.TAG_FAB, onClick: () -> Unit, ) { val iconSize = when (fabSize) { @@ -55,7 +56,8 @@ enum class FloatingActionButtonSize(val size: Dp) { onClick = onClick, containerColor = MaterialTheme.colorScheme.primary, shape = CircleShape, - modifier = Modifier.defaultMinSize(minHeight = fabSize.size, minWidth = fabSize.size) + modifier = Modifier + .defaultMinSize(minHeight = fabSize.size, minWidth = fabSize.size) .testTag(testTag) ) { Icon( diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIIconButton.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIIconButton.kt index 851ae0d7..c7e6a797 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIIconButton.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIIconButton.kt @@ -27,6 +27,7 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp +import com.tarkalabs.uicomponents.Tags import com.tarkalabs.uicomponents.components.IconButtonSize.L import com.tarkalabs.uicomponents.components.IconButtonSize.M import com.tarkalabs.uicomponents.components.IconButtonSize.S @@ -68,9 +69,8 @@ enum class IconButtonStyle { * @param buttonSize The size of the button, which can be one of the values of the IconButtonSize enum. * @param iconButtonStyle The style of the button, which can be one of the values of the IconButtonStyle enum. * @param enabled Whether the button is clickable or not. - * @param badgeCount The count to be displayed as a badge on top of the icon. * @param onIconClick A callback function that is invoked when the button is clicked. - * @param testTag The test tag for the TUIButton. + * @param tag The test tag for the TUIButton. * The function calculates the size of the icon based on the buttonSize parameter and sets the colors of the button * * How to use IconButton() composable function @@ -87,8 +87,7 @@ iconButtonStyle = IconButtonStyle.OUTLINE, buttonSize: IconButtonSize = L, iconButtonStyle: IconButtonStyle = IconButtonStyle.defaultStyle, enabled: Boolean = true, - badgeCount: String? = null, - testTag : String = "", + testTag: String = Tags.TAG_ICON_BUTTON, onIconClick: () -> Unit = {}, ) { var iconButtonColors: IconButtonColors = IconButtonDefaults.iconButtonColors() @@ -145,7 +144,10 @@ iconButtonStyle = IconButtonStyle.OUTLINE, } IconButton( - onClick = onIconClick, modifier = modifier.testTag(testTag), colors = iconButtonColors, enabled = enabled + onClick = onIconClick, + modifier = modifier.testTag(testTag), + colors = iconButtonColors, + enabled = enabled ) { Icon( modifier = iconModifier, @@ -168,34 +170,24 @@ iconButtonStyle = IconButtonStyle.OUTLINE, verticalAlignment = Alignment.CenterVertically ) { TUIIconButton( - icon = TarkaIcons.ChevronRight, - buttonSize = XS, - iconButtonStyle = PRIMARY + icon = TarkaIcons.ChevronRight, buttonSize = XS, iconButtonStyle = PRIMARY ) Spacer(modifier = Modifier.width(20.dp)) TUIIconButton( - icon = TarkaIcons.ChevronRight, - buttonSize = S, - iconButtonStyle = PRIMARY + icon = TarkaIcons.ChevronRight, buttonSize = S, iconButtonStyle = PRIMARY ) Spacer(modifier = Modifier.width(20.dp)) TUIIconButton( - icon = TarkaIcons.ChevronRight, - buttonSize = M, - iconButtonStyle = PRIMARY + icon = TarkaIcons.ChevronRight, buttonSize = M, iconButtonStyle = PRIMARY ) Spacer(modifier = Modifier.width(20.dp)) TUIIconButton( - icon = TarkaIcons.ChevronRight, - buttonSize = L, - iconButtonStyle = PRIMARY + icon = TarkaIcons.ChevronRight, buttonSize = L, iconButtonStyle = PRIMARY ) Spacer(modifier = Modifier.width(20.dp)) TUIIconButton( - icon = TarkaIcons.ChevronRight, - buttonSize = XL, - iconButtonStyle = PRIMARY + icon = TarkaIcons.ChevronRight, buttonSize = XL, iconButtonStyle = PRIMARY ) } @@ -207,34 +199,24 @@ iconButtonStyle = IconButtonStyle.OUTLINE, verticalAlignment = Alignment.CenterVertically ) { TUIIconButton( - icon = TarkaIcons.ChevronRight, - buttonSize = XS, - iconButtonStyle = SECONDARY + icon = TarkaIcons.ChevronRight, buttonSize = XS, iconButtonStyle = SECONDARY ) Spacer(modifier = Modifier.width(20.dp)) TUIIconButton( - icon = TarkaIcons.ChevronRight, - buttonSize = S, - iconButtonStyle = SECONDARY + icon = TarkaIcons.ChevronRight, buttonSize = S, iconButtonStyle = SECONDARY ) Spacer(modifier = Modifier.width(20.dp)) TUIIconButton( - icon = TarkaIcons.ChevronRight, - buttonSize = M, - iconButtonStyle = SECONDARY + icon = TarkaIcons.ChevronRight, buttonSize = M, iconButtonStyle = SECONDARY ) Spacer(modifier = Modifier.width(20.dp)) TUIIconButton( - icon = TarkaIcons.ChevronRight, - buttonSize = L, - iconButtonStyle = SECONDARY + icon = TarkaIcons.ChevronRight, buttonSize = L, iconButtonStyle = SECONDARY ) Spacer(modifier = Modifier.width(20.dp)) TUIIconButton( - icon = TarkaIcons.ChevronRight, - buttonSize = XL, - iconButtonStyle = SECONDARY + icon = TarkaIcons.ChevronRight, buttonSize = XL, iconButtonStyle = SECONDARY ) } @@ -247,34 +229,24 @@ iconButtonStyle = IconButtonStyle.OUTLINE, verticalAlignment = Alignment.CenterVertically ) { TUIIconButton( - icon = TarkaIcons.ChevronRight, - buttonSize = XS, - iconButtonStyle = GHOST + icon = TarkaIcons.ChevronRight, buttonSize = XS, iconButtonStyle = GHOST ) Spacer(modifier = Modifier.width(20.dp)) TUIIconButton( - icon = TarkaIcons.ChevronRight, - buttonSize = S, - iconButtonStyle = GHOST + icon = TarkaIcons.ChevronRight, buttonSize = S, iconButtonStyle = GHOST ) Spacer(modifier = Modifier.width(20.dp)) TUIIconButton( - icon = TarkaIcons.ChevronRight, - buttonSize = M, - iconButtonStyle = GHOST + icon = TarkaIcons.ChevronRight, buttonSize = M, iconButtonStyle = GHOST ) Spacer(modifier = Modifier.width(20.dp)) TUIIconButton( - icon = TarkaIcons.ChevronRight, - buttonSize = L, - iconButtonStyle = GHOST + icon = TarkaIcons.ChevronRight, buttonSize = L, iconButtonStyle = GHOST ) Spacer(modifier = Modifier.width(20.dp)) TUIIconButton( - icon = TarkaIcons.ChevronRight, - buttonSize = XL, - iconButtonStyle = GHOST + icon = TarkaIcons.ChevronRight, buttonSize = XL, iconButtonStyle = GHOST ) } @@ -286,34 +258,24 @@ iconButtonStyle = IconButtonStyle.OUTLINE, verticalAlignment = Alignment.CenterVertically ) { TUIIconButton( - icon = TarkaIcons.ChevronRight, - buttonSize = XS, - iconButtonStyle = OUTLINE + icon = TarkaIcons.ChevronRight, buttonSize = XS, iconButtonStyle = OUTLINE ) Spacer(modifier = Modifier.width(20.dp)) TUIIconButton( - icon = TarkaIcons.ChevronRight, - buttonSize = S, - iconButtonStyle = OUTLINE + icon = TarkaIcons.ChevronRight, buttonSize = S, iconButtonStyle = OUTLINE ) Spacer(modifier = Modifier.width(20.dp)) TUIIconButton( - icon = TarkaIcons.ChevronRight, - buttonSize = M, - iconButtonStyle = OUTLINE + icon = TarkaIcons.ChevronRight, buttonSize = M, iconButtonStyle = OUTLINE ) Spacer(modifier = Modifier.width(20.dp)) TUIIconButton( - icon = TarkaIcons.ChevronRight, - buttonSize = L, - iconButtonStyle = OUTLINE + icon = TarkaIcons.ChevronRight, buttonSize = L, iconButtonStyle = OUTLINE ) Spacer(modifier = Modifier.width(20.dp)) TUIIconButton( - icon = TarkaIcons.ChevronRight, - buttonSize = XL, - iconButtonStyle = OUTLINE + icon = TarkaIcons.ChevronRight, buttonSize = XL, iconButtonStyle = OUTLINE ) } } diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUINavigationRows.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUINavigationRows.kt index 652471fc..8b8892a2 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUINavigationRows.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUINavigationRows.kt @@ -12,6 +12,7 @@ import androidx.compose.ui.platform.testTag import androidx.compose.ui.res.painterResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp +import com.tarkalabs.uicomponents.Tags import com.tarkalabs.uicomponents.models.TarkaIcon import com.tarkalabs.uicomponents.models.TarkaIcons import com.tarkalabs.uicomponents.theme.TUITheme @@ -54,8 +55,8 @@ import com.tarkalabs.uicomponents.theme.TUITheme badgeCount: Int? = null, showRightArrow: Boolean = false, modifier: Modifier = Modifier, - badgeTestTag: String = "", - rowTestTag: String = "", + badgeTestTag: String = Tags.TAG_NAVIGATION_ROW_BADGE, + rowTestTag: String = Tags.TAG_NAVIGATION_ROW, onClick: () -> Unit, ) { Row(modifier = modifier @@ -78,7 +79,7 @@ import com.tarkalabs.uicomponents.theme.TUITheme style = TUITheme.typography.heading7, color = MaterialTheme.colorScheme.onSurface ) - if (badgeCount != null){ + if (badgeCount != null) { Badge( containerColor = MaterialTheme.colorScheme.error, modifier = Modifier diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUITextRow.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUITextRow.kt index 007d7d00..64b39304 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUITextRow.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUITextRow.kt @@ -19,6 +19,7 @@ import androidx.compose.ui.platform.testTag import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.core.R.drawable +import com.tarkalabs.uicomponents.Tags import com.tarkalabs.uicomponents.models.TarkaIcon import com.tarkalabs.uicomponents.theme.TUITheme @@ -73,7 +74,7 @@ import com.tarkalabs.uicomponents.theme.TUITheme onInfoIconClick: () -> Unit = {}, onTextRowClick: () -> Unit = {}, paddingValues: PaddingValues = PaddingValues(), - testTag: String = "" + testTag: String = Tags.TAG_TEXT_ROW ) { Row( modifier diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIToggleSwitch.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIToggleSwitch.kt index 8cdaea1a..9487db23 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIToggleSwitch.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIToggleSwitch.kt @@ -17,9 +17,11 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color +import androidx.compose.ui.platform.testTag import androidx.compose.ui.res.painterResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp +import com.tarkalabs.uicomponents.Tags import com.tarkalabs.uicomponents.models.TarkaIcons import com.tarkalabs.uicomponents.theme.ColorInputBackground import com.tarkalabs.uicomponents.theme.ColorLight @@ -39,38 +41,46 @@ import com.tarkalabs.uicomponents.theme.TUITheme */ @Composable fun TUIToggleSwitch( - state: Boolean, enabled: Boolean = true, onToggleChange: () -> Unit + state: Boolean, enabled: Boolean = true, + testTag: String = Tags.TAG_TOGGLE_SWITCH, + onToggleChange: () -> Unit ) { var switchCheckedState by remember { mutableStateOf(state) } TUITheme { - Switch(checked = switchCheckedState, enabled = enabled, onCheckedChange = { - switchCheckedState = it - onToggleChange() - }, thumbContent = { - Icon( - painter = painterResource(if (switchCheckedState) TarkaIcons.CheckMark.iconRes else TarkaIcons.Dismiss.iconRes), - contentDescription = null, - modifier = Modifier.size(width = 40.dp, height = 24.dp) - ) - }, colors = SwitchDefaults.colors( - checkedThumbColor = ColorLight, - checkedTrackColor = MaterialTheme.colorScheme.primary, - checkedIconColor = MaterialTheme.colorScheme.primary, - checkedBorderColor = ColorLight, - uncheckedThumbColor = MaterialTheme.colorScheme.onSurface, - uncheckedTrackColor = MaterialTheme.colorScheme.surfaceVariant, - uncheckedIconColor = ColorLight, - uncheckedBorderColor = Color.Transparent, + Switch( + modifier = Modifier.testTag(testTag), + checked = switchCheckedState, + enabled = enabled, + onCheckedChange = { + switchCheckedState = it + onToggleChange() + }, + thumbContent = { + Icon( + painter = painterResource(if (switchCheckedState) TarkaIcons.CheckMark.iconRes else TarkaIcons.Dismiss.iconRes), + contentDescription = null, + modifier = Modifier.size(width = 40.dp, height = 24.dp) + ) + }, + colors = SwitchDefaults.colors( + checkedThumbColor = ColorLight, + checkedTrackColor = MaterialTheme.colorScheme.primary, + checkedIconColor = MaterialTheme.colorScheme.primary, + checkedBorderColor = ColorLight, + uncheckedThumbColor = MaterialTheme.colorScheme.onSurface, + uncheckedTrackColor = MaterialTheme.colorScheme.surfaceVariant, + uncheckedIconColor = ColorLight, + uncheckedBorderColor = Color.Transparent, - disabledCheckedThumbColor = ColorUtilityDisabledBackground.copy(alpha = 0.38f), - disabledCheckedTrackColor = ColorUtilityDisabledBackground.copy(alpha = 0.06f), - disabledCheckedIconColor = ColorInputBackground.copy(alpha = 0.85f), - disabledCheckedBorderColor = Color.Transparent, - disabledUncheckedThumbColor = ColorUtilityDisabledBackground.copy(alpha = 0.38f), - disabledUncheckedTrackColor = ColorUtilityDisabledBackground.copy(alpha = 0.06f), - disabledUncheckedBorderColor = Color.Transparent, - disabledUncheckedIconColor = ColorInputBackground.copy(alpha = 0.85f) - ) + disabledCheckedThumbColor = ColorUtilityDisabledBackground.copy(alpha = 0.38f), + disabledCheckedTrackColor = ColorUtilityDisabledBackground.copy(alpha = 0.06f), + disabledCheckedIconColor = ColorInputBackground.copy(alpha = 0.85f), + disabledCheckedBorderColor = Color.Transparent, + disabledUncheckedThumbColor = ColorUtilityDisabledBackground.copy(alpha = 0.38f), + disabledUncheckedTrackColor = ColorUtilityDisabledBackground.copy(alpha = 0.06f), + disabledUncheckedBorderColor = Color.Transparent, + disabledUncheckedIconColor = ColorInputBackground.copy(alpha = 0.85f) + ) ) } } diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TopBar.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TopBar.kt index d09aab25..a20fcd3c 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TopBar.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TopBar.kt @@ -21,7 +21,6 @@ import androidx.compose.ui.res.painterResource import com.tarkalabs.uicomponents.models.TarkaIcon import com.tarkalabs.uicomponents.theme.TUITheme - /** * Displays a customized top app bar with optional navigation icon, search icon, and menu item icons. * @@ -44,26 +43,26 @@ import com.tarkalabs.uicomponents.theme.TUITheme * @param menuItemTwoTestTag The test tag for the second menu item icon. * @param menuItemThreeTestTag The test tag for the third menu item icon. * How to use TopBar() - TopBar( - title = "My App", - navigationIcon = TarkaIcon.Back, // Optional: Pass the navigation icon - searchIcon = TarkaIcon.Search, // Optional: Pass the search icon - menuItemIconOne = TarkaIcon.Menu, // Optional: Pass the first menu item icon - menuItemIconTwo = TarkaIcon.Settings, // Optional: Pass the second menu item icon - menuItemIconThree = TarkaIcon.Notifications, // Optional: Pass the third menu item icon - onNavigationIconClick = { /* Handle navigation icon click */ }, - onFirstMenuItemClicked = { /* Handle first menu item click */ }, - onSecondMenuItemClicked = { /* Handle second menu item click */ }, - onThirdMenuItemClicked = { /* Handle third menu item click */ }, - onSearchQuery = { query -> /* Handle search query */ }, - colors = TopAppBarColors(/* Specify custom colors if needed */), - scrollBehavior = TopAppBarScrollBehavior.ScrollOnAppBarScroll, // Optional: Specify scroll behavior - navigationIconTestTag = "navigation_icon", - searchIconTestTag = "search_icon", // Optional: pass test tag for android ui test - menuItemOneTestTag = "menu_item_1", // Optional: pass test tag for android ui test - menuItemTwoTestTag = "menu_item_2", // Optional: pass test tag for android ui test - menuItemThreeTestTag = "menu_item_3" // Optional: pass test tag for android ui test - ) +TopBar( +title = "My App", +navigationIcon = TarkaIcon.Back, // Optional: Pass the navigation icon +searchIcon = TarkaIcon.Search, // Optional: Pass the search icon +menuItemIconOne = TarkaIcon.Menu, // Optional: Pass the first menu item icon +menuItemIconTwo = TarkaIcon.Settings, // Optional: Pass the second menu item icon +menuItemIconThree = TarkaIcon.Notifications, // Optional: Pass the third menu item icon +onNavigationIconClick = { /* Handle navigation icon click */ }, +onFirstMenuItemClicked = { /* Handle first menu item click */ }, +onSecondMenuItemClicked = { /* Handle second menu item click */ }, +onThirdMenuItemClicked = { /* Handle third menu item click */ }, +onSearchQuery = { query -> /* Handle search query */ }, +colors = TopAppBarColors(/* Specify custom colors if needed */), +scrollBehavior = TopAppBarScrollBehavior.ScrollOnAppBarScroll, // Optional: Specify scroll behavior +navigationIconTestTag = "navigation_icon", +searchIconTestTag = "search_icon", // Optional: pass test tag for android ui test +menuItemOneTestTag = "menu_item_1", // Optional: pass test tag for android ui test +menuItemTwoTestTag = "menu_item_2", // Optional: pass test tag for android ui test +menuItemThreeTestTag = "menu_item_3" // Optional: pass test tag for android ui test +) */ @OptIn(ExperimentalMaterial3Api::class) @Composable fun TopBar( title: String, @@ -81,11 +80,11 @@ import com.tarkalabs.uicomponents.theme.TUITheme containerColor = MaterialTheme.colorScheme.surface ), scrollBehavior: TopAppBarScrollBehavior? = null, - navigationIconTestTag : String = "", - searchIconTestTag : String = "", - menuItemOneTestTag : String = "", - menuItemTwoTestTag : String = "", - menuItemThreeTestTag : String = "", + navigationIconTestTag: String = "", + searchIconTestTag: String = "", + menuItemOneTestTag: String = "", + menuItemTwoTestTag: String = "", + menuItemThreeTestTag: String = "", ) { var showSearchBar by remember { @@ -115,18 +114,24 @@ import com.tarkalabs.uicomponents.theme.TUITheme }, actions = { if (searchIcon != null) { - IconButton(onClick = { - showSearchBar = true - }, - modifier = Modifier.testTag(searchIconTestTag)) { - Icon(painter = painterResource(id = searchIcon.iconRes), - contentDescription = searchIcon.contentDescription) + IconButton( + onClick = { + showSearchBar = true + }, + modifier = Modifier.testTag(searchIconTestTag) + ) { + Icon( + painter = painterResource(id = searchIcon.iconRes), + contentDescription = searchIcon.contentDescription + ) } } if (menuItemIconThree != null) { - IconButton(onClick = onThirdMenuItemClicked, - modifier = Modifier.testTag(menuItemThreeTestTag)) { + IconButton( + onClick = onThirdMenuItemClicked, + modifier = Modifier.testTag(menuItemThreeTestTag) + ) { Icon( painter = painterResource(id = menuItemIconThree.iconRes), contentDescription = "Menu Item three" @@ -135,7 +140,10 @@ import com.tarkalabs.uicomponents.theme.TUITheme } if (menuItemIconTwo != null) { - IconButton(onClick = onSecondMenuItemClicked, modifier = Modifier.testTag(menuItemTwoTestTag)) { + IconButton( + onClick = onSecondMenuItemClicked, + modifier = Modifier.testTag(menuItemTwoTestTag) + ) { Icon( painter = painterResource(id = menuItemIconTwo.iconRes), contentDescription = menuItemIconTwo.contentDescription @@ -144,7 +152,10 @@ import com.tarkalabs.uicomponents.theme.TUITheme } if (menuItemIconOne != null) { - IconButton(onClick = onFirstMenuItemClicked, modifier = Modifier.testTag(menuItemOneTestTag)) { + IconButton( + onClick = onFirstMenuItemClicked, + modifier = Modifier.testTag(menuItemOneTestTag) + ) { Icon( painter = painterResource(id = menuItemIconOne.iconRes), contentDescription = menuItemIconOne.contentDescription @@ -156,7 +167,7 @@ import com.tarkalabs.uicomponents.theme.TUITheme colors = colors, modifier = Modifier.fillMaxWidth(), scrollBehavior = scrollBehavior, - ) + ) } @OptIn(ExperimentalMaterial3Api::class) @Composable fun EamNormalTopBar( diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/models/TarkaIcon.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/models/TarkaIcon.kt index 4a8e2c59..ebbe355a 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/models/TarkaIcon.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/models/TarkaIcon.kt @@ -5,7 +5,6 @@ import com.microsoft.fluent.mobile.icons.R import com.microsoft.fluent.mobile.icons.R.drawable.ic_fluent_arrow_counterclockwise_24_regular import com.microsoft.fluent.mobile.icons.R.drawable.ic_fluent_arrow_export_ltr_24_regular import com.microsoft.fluent.mobile.icons.R.drawable.ic_fluent_arrow_sync_circle_24_regular -import com.microsoft.fluent.mobile.icons.R.drawable.ic_fluent_barcode_scanner_20_filled import com.microsoft.fluent.mobile.icons.R.drawable.ic_fluent_barcode_scanner_24_regular import com.microsoft.fluent.mobile.icons.R.drawable.ic_fluent_checkmark_16_filled import com.microsoft.fluent.mobile.icons.R.drawable.ic_fluent_checkmark_starburst_24_regular @@ -19,7 +18,6 @@ import com.microsoft.fluent.mobile.icons.R.drawable.ic_fluent_dismiss_24_regular import com.microsoft.fluent.mobile.icons.R.drawable.ic_fluent_document_error_24_regular import com.microsoft.fluent.mobile.icons.R.drawable.ic_fluent_document_header_arrow_down_24_regular import com.microsoft.fluent.mobile.icons.R.drawable.ic_fluent_document_text_24_regular -import com.microsoft.fluent.mobile.icons.R.drawable.ic_fluent_local_language_16_filled import com.microsoft.fluent.mobile.icons.R.drawable.ic_fluent_local_language_24_regular import com.microsoft.fluent.mobile.icons.R.drawable.ic_fluent_map_24_regular import com.microsoft.fluent.mobile.icons.R.drawable.ic_fluent_question_circle_24_regular diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/DarkColor.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/DarkColor.kt index 5f1561d9..4f3746bf 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/DarkColor.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/DarkColor.kt @@ -20,16 +20,16 @@ val DarkColorOnAltTertiary = Color(0xFFFFD6FF) val DarkColorSuccess = Color(0xFF55E792) val DarkColorOnSuccess = Color(0xFF003817) -val DarkColorError= Color(0xFFD42136) -val DarkColorOnError= Color(0xFFFFFAFA) -val DarkColorAltError= Color(0x1ACD1D32) +val DarkColorError = Color(0xFFD42136) +val DarkColorOnError = Color(0xFFFFFAFA) +val DarkColorAltError = Color(0x1ACD1D32) -val DarkColorWarning= Color(0xFFFFB938) -val DarkColorOnWarning= Color(0xFF241D0F) -val DarkColorAltWarning= Color(0x1ACD1D32) +val DarkColorWarning = Color(0xFFFFB938) +val DarkColorOnWarning = Color(0xFF241D0F) +val DarkColorAltWarning = Color(0x1ACD1D32) -val DarkColorBackground= Color(0xFF0F1115) -val DarkColorOnBackground= Color(0xFFF0F2F4) +val DarkColorBackground = Color(0xFF0F1115) +val DarkColorOnBackground = Color(0xFFF0F2F4) val DarkColorSurface = Color(0xFF212731) val DarkColorOnSurface = Color(0xFFFCFCFD) diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Theme.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Theme.kt index 075bf6bd..e41ce3e9 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Theme.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Theme.kt @@ -47,7 +47,7 @@ private val LightColorPalette = lightColorScheme( onBackground = LightColorOnBackground, surface = LightColorSurface, onSurface = LightColorOnSurface - ) +) @Composable fun TUITheme( darkTheme: Boolean = isSystemInDarkTheme(), content: @Composable () -> Unit, @@ -63,7 +63,6 @@ private val LightColorPalette = lightColorScheme( } } - object TUITheme { val typography: ExtendedTypography @Composable From a90deee16926f20022c48f6f043456b672379556 Mon Sep 17 00:00:00 2001 From: Charfaoui Younes Date: Mon, 29 May 2023 09:39:49 +0100 Subject: [PATCH 097/571] Fixing the colors alpha, renaming typography --- .../tarkalabs/ui/UIComponentListActivity.kt | 9 +- .../uicomponents/components/TUIBadge.kt | 5 +- .../uicomponents/components/TUIButton.kt | 21 ++- .../components/TUIFloatingActionButton.kt | 4 +- .../uicomponents/components/TUIIconButton.kt | 19 +- .../components/TUINavigationRows.kt | 8 +- .../uicomponents/components/TUITextRow.kt | 5 +- .../components/TUIToggleSwitch.kt | 9 +- .../uicomponents/components/TopBar.kt | 5 +- .../com/tarkalabs/uicomponents/theme/Color.kt | 162 +++++++++--------- .../tarkalabs/uicomponents/theme/DarkColor.kt | 18 +- .../uicomponents/theme/LightColor.kt | 16 +- .../com/tarkalabs/uicomponents/theme/Theme.kt | 10 +- .../com/tarkalabs/uicomponents/theme/Type.kt | 44 ++--- 14 files changed, 162 insertions(+), 173 deletions(-) diff --git a/example/src/main/java/com/tarkalabs/ui/UIComponentListActivity.kt b/example/src/main/java/com/tarkalabs/ui/UIComponentListActivity.kt index 3a967daf..42c1f784 100644 --- a/example/src/main/java/com/tarkalabs/ui/UIComponentListActivity.kt +++ b/example/src/main/java/com/tarkalabs/ui/UIComponentListActivity.kt @@ -3,11 +3,18 @@ package com.tarkalabs.ui import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent +import com.tarkalabs.uicomponents.components.BadgeSize +import com.tarkalabs.uicomponents.components.TUIBadge +import com.tarkalabs.uicomponents.theme.TUITheme class UIComponentListActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContent {} + setContent { + TUITheme { + TUIBadge(count = 2, badgeSize = BadgeSize.M) + } + } } } \ No newline at end of file diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIBadge.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIBadge.kt index 88c61f02..43175d6a 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIBadge.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIBadge.kt @@ -3,7 +3,6 @@ package com.tarkalabs.uicomponents.components import androidx.compose.foundation.layout.defaultMinSize import androidx.compose.foundation.layout.padding import androidx.compose.material3.ExperimentalMaterial3Api -import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier @@ -43,7 +42,7 @@ enum class BadgeSize(val size: Dp) { L -> TUITheme.typography.button7 } androidx.compose.material3.Badge( - containerColor = MaterialTheme.colorScheme.error, + containerColor = TUITheme.colors.error, modifier = Modifier .padding(padding) .defaultMinSize( @@ -54,7 +53,7 @@ enum class BadgeSize(val size: Dp) { if (count != null) Text( text = count.toString(), style = textStyle, - color = MaterialTheme.colorScheme.onTertiary, + color = TUITheme.colors.onTertiary, ) } } diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIButton.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIButton.kt index d05f361c..61f18883 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIButton.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIButton.kt @@ -24,7 +24,6 @@ import androidx.compose.foundation.verticalScroll import androidx.compose.material3.Button import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.Icon -import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment @@ -121,35 +120,35 @@ onClick = {} val buttonColor = when (buttonStyle) { PRIMARY -> { ButtonDefaults.buttonColors( - containerColor = MaterialTheme.colorScheme.primary, - contentColor = MaterialTheme.colorScheme.onPrimary + containerColor = TUITheme.colors.primary, + contentColor = TUITheme.colors.onPrimary ) } SECONDARY -> { ButtonDefaults.buttonColors( - containerColor = MaterialTheme.colorScheme.secondary, - contentColor = MaterialTheme.colorScheme.onSecondary + containerColor = TUITheme.colors.secondary, + contentColor = TUITheme.colors.onSecondary ) } GHOST -> { ButtonDefaults.buttonColors( - containerColor = Color.Transparent, contentColor = MaterialTheme.colorScheme.secondary + containerColor = Color.Transparent, contentColor = TUITheme.colors.secondary ) } ERROR -> { ButtonDefaults.buttonColors( - containerColor = MaterialTheme.colorScheme.error, - contentColor = MaterialTheme.colorScheme.onPrimary, + containerColor = TUITheme.colors.error, + contentColor = TUITheme.colors.onPrimary, ) } OUTLINE -> { ButtonDefaults.buttonColors( - containerColor = MaterialTheme.colorScheme.surface, - contentColor = MaterialTheme.colorScheme.onSurface + containerColor = TUITheme.colors.surface, + contentColor = TUITheme.colors.onSurface ) } } @@ -162,7 +161,7 @@ onClick = {} .wrapContentWidth(), contentPadding = height.paddingValues(leadingIcon == null, trailingIcon == null), border = if (buttonStyle == OUTLINE) BorderStroke( - width = 1.dp, color = MaterialTheme.colorScheme.onSurface + width = 1.dp, color = TUITheme.colors.onSurface ) else null ) { Row( diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIFloatingActionButton.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIFloatingActionButton.kt index 590d9a93..794721a1 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIFloatingActionButton.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIFloatingActionButton.kt @@ -9,7 +9,6 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.shape.CircleShape import androidx.compose.material3.FloatingActionButton import androidx.compose.material3.Icon -import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -22,6 +21,7 @@ import com.tarkalabs.uicomponents.components.FloatingActionButtonSize.R import com.tarkalabs.uicomponents.components.FloatingActionButtonSize.S import com.tarkalabs.uicomponents.models.TarkaIcon import com.tarkalabs.uicomponents.models.TarkaIcons +import com.tarkalabs.uicomponents.theme.TUITheme enum class FloatingActionButtonSize(val size: Dp) { S(40.dp), @@ -49,7 +49,7 @@ enum class FloatingActionButtonSize(val size: Dp) { } FloatingActionButton( onClick = onClick, - containerColor = MaterialTheme.colorScheme.primary, + containerColor = TUITheme.colors.primary, shape = CircleShape, modifier = Modifier.defaultMinSize(minHeight = fabSize.size, minWidth = fabSize.size) ) { diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIIconButton.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIIconButton.kt index 4f65466f..bfa48bf7 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIIconButton.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIIconButton.kt @@ -14,7 +14,6 @@ import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.IconButtonColors import androidx.compose.material3.IconButtonDefaults -import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment @@ -107,30 +106,30 @@ iconButtonStyle = IconButtonStyle.OUTLINE, GHOST -> { iconButtonColors = IconButtonDefaults.iconButtonColors( containerColor = Color.Transparent, - contentColor = MaterialTheme.colorScheme.onSurface, - disabledContentColor = MaterialTheme.colorScheme.onSurface.copy(alpha = 0.38f), + contentColor = TUITheme.colors.onSurface, + disabledContentColor = TUITheme.colors.onSurface.copy(alpha = 0.38f), ) } SECONDARY -> { iconButtonColors = IconButtonDefaults.iconButtonColors( - containerColor = MaterialTheme.colorScheme.secondary, - contentColor = MaterialTheme.colorScheme.onSecondary, + containerColor = TUITheme.colors.secondary, + contentColor = TUITheme.colors.onSecondary, ) } PRIMARY -> { iconButtonColors = IconButtonDefaults.iconButtonColors( - containerColor = MaterialTheme.colorScheme.primary, - contentColor = MaterialTheme.colorScheme.onPrimary, + containerColor = TUITheme.colors.primary, + contentColor = TUITheme.colors.onPrimary, ) } OUTLINE -> { iconButtonColors = IconButtonDefaults.iconButtonColors( - containerColor = MaterialTheme.colorScheme.surface, - contentColor = MaterialTheme.colorScheme.onSurface, - disabledContentColor = MaterialTheme.colorScheme.onSurface.copy(alpha = 0.38f), + containerColor = TUITheme.colors.surface, + contentColor = TUITheme.colors.onSurface, + disabledContentColor = TUITheme.colors.onSurface.copy(alpha = 0.38f), ) modifier = Modifier .border( diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUINavigationRows.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUINavigationRows.kt index 115a0c1b..813d6244 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUINavigationRows.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUINavigationRows.kt @@ -33,7 +33,7 @@ import com.tarkalabs.uicomponents.theme.TUITheme modifier = Modifier.size(24.dp), painter = painterResource(id = leadingIcon.iconRes), contentDescription = null, - tint = MaterialTheme.colorScheme.secondary + tint = TUITheme.colors.secondary ) Text( text = title, @@ -41,10 +41,10 @@ import com.tarkalabs.uicomponents.theme.TUITheme .weight(1f) .padding(horizontal = 20.dp), style = TUITheme.typography.heading7, - color = MaterialTheme.colorScheme.onSurface + color = TUITheme.colors.onSurface ) if (badgeCount != null) Badge( - containerColor = MaterialTheme.colorScheme.error, + containerColor = TUITheme.colors.error, modifier = Modifier .size(18.dp) .align(Alignment.CenterVertically), @@ -52,7 +52,7 @@ import com.tarkalabs.uicomponents.theme.TUITheme Text( text = badgeCount.toString(), style = TUITheme.typography.button8, - color = MaterialTheme.colorScheme.onTertiary, + color = TUITheme.colors.onTertiary, ) } if (showRightArrow) { diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUITextRow.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUITextRow.kt index 759a7bca..2c6183a2 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUITextRow.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUITextRow.kt @@ -12,7 +12,6 @@ import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width import androidx.compose.material3.Icon import androidx.compose.material3.IconButton -import androidx.compose.material3.MaterialTheme import androidx.compose.material3.OutlinedButton import androidx.compose.material3.Text import androidx.compose.runtime.Composable @@ -50,12 +49,12 @@ import com.tarkalabs.uicomponents.theme.TUITheme Text( text = title, style = TUITheme.typography.body8, - color = MaterialTheme.colorScheme.onSurface.copy(alpha = 0.7f) + color = TUITheme.colors.onSurface.copy(alpha = 0.7f) ) Text( text = description, style = TUITheme.typography.body7, - color = MaterialTheme.colorScheme.onSurface + color = TUITheme.colors.onSurface ) } Row(verticalAlignment = Alignment.CenterVertically) { diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIToggleSwitch.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIToggleSwitch.kt index 24e14c5c..267a25a7 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIToggleSwitch.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIToggleSwitch.kt @@ -6,7 +6,6 @@ import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.size import androidx.compose.material3.Icon -import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Switch import androidx.compose.material3.SwitchDefaults import androidx.compose.runtime.Composable @@ -51,11 +50,11 @@ import com.tarkalabs.uicomponents.theme.TUITheme ) }, colors = SwitchDefaults.colors( checkedThumbColor = TUITheme.colors.constantLight, - checkedTrackColor = MaterialTheme.colorScheme.primary, - checkedIconColor = MaterialTheme.colorScheme.primary, + checkedTrackColor = TUITheme.colors.primary, + checkedIconColor = TUITheme.colors.primary, checkedBorderColor = TUITheme.colors.constantLight, - uncheckedThumbColor = MaterialTheme.colorScheme.onSurface, - uncheckedTrackColor = MaterialTheme.colorScheme.surfaceVariant, + uncheckedThumbColor = TUITheme.colors.onSurface, + uncheckedTrackColor = TUITheme.colors.surfaceVariant, uncheckedIconColor = TUITheme.colors.constantLight, uncheckedBorderColor = Color.Transparent, diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TopBar.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TopBar.kt index 94a0cf53..896d9e00 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TopBar.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TopBar.kt @@ -4,7 +4,6 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon import androidx.compose.material3.IconButton -import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.material3.TopAppBar import androidx.compose.material3.TopAppBarColors @@ -33,7 +32,7 @@ import com.tarkalabs.uicomponents.theme.TUITheme onThirdMenuItemClicked: () -> Unit = {}, onSearchQuery: (String) -> Unit = {}, colors: TopAppBarColors = TopAppBarDefaults.topAppBarColors( - containerColor = MaterialTheme.colorScheme.surface + containerColor = TUITheme.colors.surface ), scrollBehavior: TopAppBarScrollBehavior? = null ) { @@ -47,7 +46,7 @@ import com.tarkalabs.uicomponents.theme.TUITheme Text( text = title, style = TUITheme.typography.heading5, - color = MaterialTheme.colorScheme.onSurface + color = TUITheme.colors.onSurface ) }, navigationIcon = { diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Color.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Color.kt index 8c8851ca..041288e3 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Color.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Color.kt @@ -46,90 +46,86 @@ data class TarkaColors( ) val LocalTUIColors = staticCompositionLocalOf { - lightColors() + lightColors } -fun lightColors(): TarkaColors { - return TarkaColors( - primary = LightColorPrimary, - onPrimary = LightColorOnPrimary, - primaryAlt = LightColorAltPrimary, - onPrimaryAlt = LightColorOnAltPrimary, - secondary = LightColorSecondary, - onSecondary = LightColorOnSecondary, - secondaryAlt = LightColorAltSecondary, - onSecondaryAlt = LightColorOnAltSecondary, - tertiary = LightColorTertiary, - onTertiary = LightColorOnTertiary, - tertiaryAlt = LightColorAltTertiary, - onTertiaryAlt = LightColorOnAltTertiary, - success = LightColorSuccess, - onSuccess = LightColorOnSuccess, - onSuccess10 = LightColorSuccess10, - onSuccess20 = LightColorSuccess20, - error = LightColorError, - onError = LightColorOnError, - onError10 = LightColorError10, - warning = LightColorWarning, - onWarning = LightColorOnWarning, - onWarning10 = LightColorWarning10, - background = LightColorBackground, - onBackground = LightColorOnBackground, - utilityOutline = LightColorUtilityOutline, - utilityDisabledContent = LightColorUtilityDisabledContent, - utilityDisabledBackground = LightColorUtilityDisabledBackground, - utilityLink = LightColorUtilityLink, - inputBackground = LightColorInputBackground, - inputText = LightColorInputText, - inputDim = LightColorInputDim, - surface = LightColorSurface, - surface50 = LightColorSurface50, - onSurface = LightColorOnSurface, - surfaceVariant = LightColorSurfaceVariant, - constantLight = ColorLight, - constantDark = ColorDark - ) -} +val lightColors = TarkaColors( + primary = LightColorPrimary, + onPrimary = LightColorOnPrimary, + primaryAlt = LightColorAltPrimary, + onPrimaryAlt = LightColorOnAltPrimary, + secondary = LightColorSecondary, + onSecondary = LightColorOnSecondary, + secondaryAlt = LightColorAltSecondary, + onSecondaryAlt = LightColorOnAltSecondary, + tertiary = LightColorTertiary, + onTertiary = LightColorOnTertiary, + tertiaryAlt = LightColorAltTertiary, + onTertiaryAlt = LightColorOnAltTertiary, + success = LightColorSuccess, + onSuccess = LightColorOnSuccess, + onSuccess10 = LightColorSuccess10, + onSuccess20 = LightColorSuccess20, + error = LightColorError, + onError = LightColorOnError, + onError10 = LightColorError10, + warning = LightColorWarning, + onWarning = LightColorOnWarning, + onWarning10 = LightColorWarning10, + background = LightColorBackground, + onBackground = LightColorOnBackground, + utilityOutline = LightColorUtilityOutline, + utilityDisabledContent = LightColorUtilityDisabledContent, + utilityDisabledBackground = LightColorUtilityDisabledBackground, + utilityLink = LightColorUtilityLink, + inputBackground = LightColorInputBackground, + inputText = LightColorInputText, + inputDim = LightColorInputDim, + surface = LightColorSurface, + surface50 = LightColorSurface50, + onSurface = LightColorOnSurface, + surfaceVariant = LightColorSurfaceVariant, + constantLight = ColorLight, + constantDark = ColorDark +) -fun darkColors(): TarkaColors { - return TarkaColors( - primary = DarkColorPrimary, - onPrimary = DarkColorOnPrimary, - primaryAlt = DarkColorAltPrimary, - onPrimaryAlt = DarkColorOnAltPrimary, - secondary = DarkColorSecondary, - onSecondary = DarkColorOnSecondary, - secondaryAlt = DarkColorAltSecondary, - onSecondaryAlt = DarkColorOnAltSecondary, - tertiary = DarkColorTertiary, - onTertiary = DarkColorOnTertiary, - tertiaryAlt = DarkColorAltTertiary, - onTertiaryAlt = DarkColorOnAltTertiary, - success = DarkColorSuccess, - onSuccess = DarkColorOnSuccess, - onSuccess10 = DarkColorSuccess10, - onSuccess20 = DarkColorSuccess20, - error = DarkColorError, - onError = DarkColorOnError, - onError10 = DarkColorError10, - warning = DarkColorWarning, - onWarning = DarkColorOnWarning, - onWarning10 = DarkColorWarning10, - background = DarkColorBackground, - onBackground = DarkColorOnBackground, - utilityOutline = DarkColorUtilityOutline, - utilityDisabledContent = DarkColorUtilityDisabledContent, - utilityDisabledBackground = DarkColorUtilityDisabledBackground, - utilityLink = DarkColorUtilityLink, - inputBackground = DarkColorInputBackground, - inputText = DarkColorInputText, - inputDim = DarkColorInputDim, - surface = DarkColorSurface, - surface50 = DarkColorSurface50, - onSurface = DarkColorOnSurface, - surfaceVariant = DarkColorSurfaceVariant, - constantLight = ColorLight, - constantDark = ColorDark - ) -} +val darkColors = TarkaColors( + primary = DarkColorPrimary, + onPrimary = DarkColorOnPrimary, + primaryAlt = DarkColorAltPrimary, + onPrimaryAlt = DarkColorOnAltPrimary, + secondary = DarkColorSecondary, + onSecondary = DarkColorOnSecondary, + secondaryAlt = DarkColorAltSecondary, + onSecondaryAlt = DarkColorOnAltSecondary, + tertiary = DarkColorTertiary, + onTertiary = DarkColorOnTertiary, + tertiaryAlt = DarkColorAltTertiary, + onTertiaryAlt = DarkColorOnAltTertiary, + success = DarkColorSuccess, + onSuccess = DarkColorOnSuccess, + onSuccess10 = DarkColorSuccess10, + onSuccess20 = DarkColorSuccess20, + error = DarkColorError, + onError = DarkColorOnError, + onError10 = DarkColorError10, + warning = DarkColorWarning, + onWarning = DarkColorOnWarning, + onWarning10 = DarkColorWarning10, + background = DarkColorBackground, + onBackground = DarkColorOnBackground, + utilityOutline = DarkColorUtilityOutline, + utilityDisabledContent = DarkColorUtilityDisabledContent, + utilityDisabledBackground = DarkColorUtilityDisabledBackground, + utilityLink = DarkColorUtilityLink, + inputBackground = DarkColorInputBackground, + inputText = DarkColorInputText, + inputDim = DarkColorInputDim, + surface = DarkColorSurface, + surface50 = DarkColorSurface50, + onSurface = DarkColorOnSurface, + surfaceVariant = DarkColorSurfaceVariant, + constantLight = ColorLight, + constantDark = ColorDark +) diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/DarkColor.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/DarkColor.kt index e5ef2223..a34b6cd5 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/DarkColor.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/DarkColor.kt @@ -18,17 +18,17 @@ val DarkColorAltTertiary = Color(0xFF532D53) val DarkColorOnAltTertiary = Color(0xFFFFD6FF) val DarkColorSuccess = Color(0xFF55E792) -val DarkColorSuccess10 = DarkColorSuccess.copy(alpha = 10f) -val DarkColorSuccess20 = DarkColorSuccess.copy(alpha = 20f) +val DarkColorSuccess10 = DarkColorSuccess.copy(alpha = 0.10f) +val DarkColorSuccess20 = DarkColorSuccess.copy(alpha = 0.20f) val DarkColorOnSuccess = Color(0xFF003817) val DarkColorError = Color(0xFFD42136) val DarkColorOnError = Color(0xFFFFFAFA) -val DarkColorError10 = DarkColorError.copy(alpha = 10f) +val DarkColorError10 = DarkColorError.copy(alpha = 0.10f) val DarkColorWarning = Color(0xFFFFB938) val DarkColorOnWarning = Color(0xFF241D0F) -val DarkColorWarning10 = DarkColorWarning.copy(alpha = 10f) +val DarkColorWarning10 = DarkColorWarning.copy(alpha = 0.10f) val DarkColorBackground = Color(0xFF0F1115) val DarkColorOnBackground = Color(0xFFF0F2F4) @@ -36,13 +36,13 @@ val DarkColorOnBackground = Color(0xFFF0F2F4) val DarkColorSurface = Color(0xFF212731) val DarkColorOnSurface = Color(0xFFFCFCFD) val DarkColorSurfaceVariant = Color(0xFF2D3543) -val DarkColorSurface50 = DarkColorSurface.copy(alpha = 50f) +val DarkColorSurface50 = DarkColorSurface.copy(alpha = 0.50f) val DarkColorUtilityOutline = Color(0xFF878B92) val DarkColorUtilityLink = Color(0xFF80B0FF) -val DarkColorUtilityDisabledBackground = Color(0XFFFCFCFD).copy(alpha = 12f) -val DarkColorUtilityDisabledContent = Color(0XFFFCFCFD).copy(alpha = 38f) -val DarkColorInputBackground = Color(0XFF0F1115).copy(alpha = 60f) +val DarkColorUtilityDisabledBackground = Color(0XFFFCFCFD).copy(alpha = 0.12f) +val DarkColorUtilityDisabledContent = Color(0XFFFCFCFD).copy(alpha = 0.38f) +val DarkColorInputBackground = Color(0XFF0F1115).copy(alpha = 0.60f) val DarkColorInputText = Color(0XFFFCFCFD) -val DarkColorInputDim = DarkColorInputText.copy(alpha = 70f) +val DarkColorInputDim = DarkColorInputText.copy(alpha = 0.70f) diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/LightColor.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/LightColor.kt index 6f72b736..963c3f8f 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/LightColor.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/LightColor.kt @@ -18,17 +18,17 @@ val LightColorAltTertiary = Color(0xFFF3CEF3) val LightColorOnAltTertiary = Color(0xFF530953) val LightColorSuccess = Color(0xFF148F47) -val LightColorSuccess10 = LightColorSuccess.copy(alpha = 10f) -val LightColorSuccess20 = LightColorSuccess.copy(alpha = 20f) +val LightColorSuccess10 = LightColorSuccess.copy(alpha = 0.10f) +val LightColorSuccess20 = LightColorSuccess.copy(alpha = 0.20f) val LightColorOnSuccess = Color(0xFFF2FDF6) val LightColorError = Color(0xFFCD1D32) val LightColorOnError = Color(0xFFFEFBFB) -val LightColorError10 = LightColorError.copy(alpha = 10f) +val LightColorError10 = LightColorError.copy(alpha = 0.10f) val LightColorWarning = Color(0xFFFFB938) val LightColorOnWarning = Color(0xFF241D0F) -val LightColorWarning10 = LightColorWarning.copy(alpha = 10f) +val LightColorWarning10 = LightColorWarning.copy(alpha = 0.10f) val LightColorBackground = Color(0xFFEAECF0) val LightColorOnBackground = Color(0xFF171B21) @@ -36,15 +36,15 @@ val LightColorOnBackground = Color(0xFF171B21) val LightColorSurface = Color(0xFFF9FAFB) val LightColorOnSurface = Color(0xFF1A1B1F) val LightColorSurfaceVariant = Color(0xFFEBEFF4) -val LightColorSurface50 = LightColorSurface.copy(alpha = 50f) +val LightColorSurface50 = LightColorSurface.copy(alpha = 0.50f) val LightColorUtilityOutline = Color(0xFF878B92) val LightColorUtilityLink = Color(0xFF3381FF) val LightColorUtilityDisabledBackground = Color(0XFF1A1C1F) -val LightColorUtilityDisabledContent = Color(0XFF1A1B1F).copy(alpha = 38f) -val LightColorInputBackground = Color(0XFFEAECF0).copy(alpha = 85f) +val LightColorUtilityDisabledContent = Color(0XFF1A1B1F).copy(alpha = 0.38f) +val LightColorInputBackground = Color(0XFFEAECF0).copy(alpha = 0.85f) val LightColorInputText = Color(0XFF1A1B1F) -val LightColorInputDim = LightColorInputText.copy(alpha = 70f) +val LightColorInputDim = LightColorInputText.copy(alpha = 0.70f) val ColorLight = Color(0xFFFFFFFF) val ColorDark = Color(0xFF000000) \ No newline at end of file diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Theme.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Theme.kt index c3ea8bbc..22fea89d 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Theme.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Theme.kt @@ -9,23 +9,23 @@ import androidx.compose.runtime.CompositionLocalProvider @Composable fun TUITheme( darkTheme: Boolean = isSystemInDarkTheme(), content: @Composable () -> Unit, ) { - val colors = if (darkTheme) darkColors() else lightColors() + val colors = if (darkTheme) darkColors else lightColors CompositionLocalProvider( - LocalExtendedTypography provides extendedTypography, + LocalTUITypography provides extendedTypography, LocalTUIColors provides colors ) { MaterialTheme( - typography = Typography, content = content, shapes = Shapes + content = content, shapes = Shapes ) } } object TUITheme { - val typography: ExtendedTypography + val typography: TarkaTypography @Composable - get() = LocalExtendedTypography.current + get() = LocalTUITypography.current val colors: TarkaColors @Composable get() = LocalTUIColors.current diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Type.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Type.kt index 16c0a82c..a7585084 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Type.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Type.kt @@ -1,6 +1,5 @@ package com.tarkalabs.uicomponents.theme -import androidx.compose.material3.Typography import androidx.compose.runtime.Immutable import androidx.compose.runtime.staticCompositionLocalOf import androidx.compose.ui.text.TextStyle @@ -10,14 +9,7 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.sp import com.tarkalabs.uicomponents.R -// Set of Material typography styles to start with -val Typography = Typography( - bodySmall = TextStyle( - fontFamily = FontFamily.Default, fontWeight = FontWeight.Normal, fontSize = 16.sp - ), -) - -val EamFontFamily = FontFamily( +val InterFontFamily = FontFamily( Font(R.font.inter_regular, FontWeight.Normal), Font(R.font.inter_light, FontWeight.Light), Font(R.font.inter_semibold, FontWeight.SemiBold), @@ -25,7 +17,7 @@ val EamFontFamily = FontFamily( ) @Immutable -data class ExtendedTypography( +data class TarkaTypography( val heading1: TextStyle, val heading2: TextStyle, val heading3: TextStyle, @@ -42,51 +34,51 @@ data class ExtendedTypography( val button8: TextStyle, ) -val LocalExtendedTypography = staticCompositionLocalOf { +val LocalTUITypography = staticCompositionLocalOf { extendedTypography } -val extendedTypography = ExtendedTypography( +val extendedTypography = TarkaTypography( heading1 = TextStyle( - fontFamily = EamFontFamily, fontWeight = FontWeight.Bold, fontSize = 30.sp, + fontFamily = InterFontFamily, fontWeight = FontWeight.Bold, fontSize = 30.sp, ), heading2 = TextStyle( - fontFamily = EamFontFamily, fontWeight = FontWeight.Bold, fontSize = 24.sp + fontFamily = InterFontFamily, fontWeight = FontWeight.Bold, fontSize = 24.sp ), heading3 = TextStyle( - fontFamily = EamFontFamily, fontWeight = FontWeight.Bold, fontSize = 22.sp + fontFamily = InterFontFamily, fontWeight = FontWeight.Bold, fontSize = 22.sp ), heading4 = TextStyle( - fontFamily = EamFontFamily, fontWeight = FontWeight.Bold, fontSize = 20.sp + fontFamily = InterFontFamily, fontWeight = FontWeight.Bold, fontSize = 20.sp ), heading5 = TextStyle( - fontFamily = EamFontFamily, fontWeight = FontWeight.SemiBold, fontSize = 18.sp + fontFamily = InterFontFamily, fontWeight = FontWeight.SemiBold, fontSize = 18.sp ), heading6 = TextStyle( - fontFamily = EamFontFamily, fontWeight = FontWeight.SemiBold, fontSize = 16.sp + fontFamily = InterFontFamily, fontWeight = FontWeight.SemiBold, fontSize = 16.sp ), heading7 = TextStyle( - fontFamily = EamFontFamily, fontWeight = FontWeight.SemiBold, fontSize = 14.sp + fontFamily = InterFontFamily, fontWeight = FontWeight.SemiBold, fontSize = 14.sp ), body5 = TextStyle( - fontFamily = EamFontFamily, fontWeight = FontWeight.Normal, fontSize = 18.sp + fontFamily = InterFontFamily, fontWeight = FontWeight.Normal, fontSize = 18.sp ), body6 = TextStyle( - fontFamily = EamFontFamily, fontWeight = FontWeight.Normal, fontSize = 16.sp + fontFamily = InterFontFamily, fontWeight = FontWeight.Normal, fontSize = 16.sp ), body7 = TextStyle( - fontFamily = EamFontFamily, fontWeight = FontWeight.Normal, fontSize = 14.sp + fontFamily = InterFontFamily, fontWeight = FontWeight.Normal, fontSize = 14.sp ), body8 = TextStyle( - fontFamily = EamFontFamily, fontWeight = FontWeight.Normal, fontSize = 12.sp + fontFamily = InterFontFamily, fontWeight = FontWeight.Normal, fontSize = 12.sp ), button6 = TextStyle( - fontFamily = EamFontFamily, fontWeight = FontWeight.SemiBold, fontSize = 16.sp + fontFamily = InterFontFamily, fontWeight = FontWeight.SemiBold, fontSize = 16.sp ), button7 = TextStyle( - fontFamily = EamFontFamily, fontWeight = FontWeight.SemiBold, fontSize = 14.sp + fontFamily = InterFontFamily, fontWeight = FontWeight.SemiBold, fontSize = 14.sp ), button8 = TextStyle( - fontFamily = EamFontFamily, fontWeight = FontWeight.SemiBold, fontSize = 12.sp + fontFamily = InterFontFamily, fontWeight = FontWeight.SemiBold, fontSize = 12.sp ), ) From b8cd1ac2da5ee0bc77a46a083c0cd35f41f2afe7 Mon Sep 17 00:00:00 2001 From: Charfaoui Younes Date: Mon, 29 May 2023 10:13:55 +0100 Subject: [PATCH 098/571] Renaming the Typography, adding name parameter in the tests --- .../uicomponents/screenshots/ComposeScreenshotComparator.kt | 4 ++-- .../src/main/java/com/tarkalabs/uicomponents/theme/Color.kt | 6 +++--- .../src/main/java/com/tarkalabs/uicomponents/theme/Theme.kt | 4 ++-- .../src/main/java/com/tarkalabs/uicomponents/theme/Type.kt | 4 ++-- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/ComposeScreenshotComparator.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/ComposeScreenshotComparator.kt index 5cbc9811..0dd23b5d 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/ComposeScreenshotComparator.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/ComposeScreenshotComparator.kt @@ -9,11 +9,11 @@ open class ComposeScreenshotComparator : ScreenshotTest { @get:Rule val composeRule = createComposeRule() - protected fun compareScreenshotFor(composableToTest: @Composable () -> Unit) { + protected fun compareScreenshotFor(imageName: String? = null, composableToTest: @Composable () -> Unit) { composeRule.setContent { composableToTest() } - compareScreenshot(composeRule) + compareScreenshot(composeRule, imageName) } } \ No newline at end of file diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Color.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Color.kt index 041288e3..8fee574e 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Color.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Color.kt @@ -5,7 +5,7 @@ import androidx.compose.runtime.staticCompositionLocalOf import androidx.compose.ui.graphics.Color @Immutable -data class TarkaColors( +open class TUIColors( val primary: Color, val onPrimary: Color, val primaryAlt: Color, @@ -49,7 +49,7 @@ val LocalTUIColors = staticCompositionLocalOf { lightColors } -val lightColors = TarkaColors( +val lightColors = TUIColors( primary = LightColorPrimary, onPrimary = LightColorOnPrimary, primaryAlt = LightColorAltPrimary, @@ -89,7 +89,7 @@ val lightColors = TarkaColors( constantDark = ColorDark ) -val darkColors = TarkaColors( +val darkColors = TUIColors( primary = DarkColorPrimary, onPrimary = DarkColorOnPrimary, primaryAlt = DarkColorAltPrimary, diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Theme.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Theme.kt index 22fea89d..e95476ba 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Theme.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Theme.kt @@ -23,10 +23,10 @@ import androidx.compose.runtime.CompositionLocalProvider object TUITheme { - val typography: TarkaTypography + val typography: TUITypography @Composable get() = LocalTUITypography.current - val colors: TarkaColors + val colors: TUIColors @Composable get() = LocalTUIColors.current } \ No newline at end of file diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Type.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Type.kt index a7585084..8cb43d3a 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Type.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Type.kt @@ -17,7 +17,7 @@ val InterFontFamily = FontFamily( ) @Immutable -data class TarkaTypography( +data class TUITypography( val heading1: TextStyle, val heading2: TextStyle, val heading3: TextStyle, @@ -38,7 +38,7 @@ val LocalTUITypography = staticCompositionLocalOf { extendedTypography } -val extendedTypography = TarkaTypography( +val extendedTypography = TUITypography( heading1 = TextStyle( fontFamily = InterFontFamily, fontWeight = FontWeight.Bold, fontSize = 30.sp, ), From a62ce01d32e7c4b59ee8a7e0b29389368687f145 Mon Sep 17 00:00:00 2001 From: Raja Jawahar Date: Mon, 29 May 2023 16:35:27 +0530 Subject: [PATCH 099/571] File renaming --- ...geScreenShotTest_test_badge_with_count.png | Bin 0 -> 1620 bytes ...reenShotTest_test_badge_with_out_count.png | Bin 0 -> 836 bytes ...UIButtonScreenShotTest_errorButtonTest.png | Bin 0 -> 6032 bytes ...UIButtonScreenShotTest_ghostButtonTest.png | Bin 0 -> 5096 bytes ...ButtonScreenShotTest_outlineButtonTest.png | Bin 0 -> 9445 bytes ...ButtonScreenShotTest_primaryButtonTest.png | Bin 0 -> 8035 bytes ...ttonScreenShotTest_secondaryButtonTest.png | Bin 0 -> 9646 bytes ...creenShotTest_test_fab_with_large_size.png | Bin 0 -> 12722 bytes ...eenShotTest_test_fab_with_regular_size.png | Bin 0 -> 6700 bytes ...creenShotTest_test_fab_with_small_size.png | Bin 0 -> 6521 bytes ...t_unchecked_state_with_disabled_status.png | Bin 0 -> 2771 bytes ...onButtonScreenShotTest_ghostIconButton.png | Bin 0 -> 446 bytes ...ButtonScreenShotTest_outlineIconButton.png | Bin 0 -> 2220 bytes ...ButtonScreenShotTest_primaryIconButton.png | Bin 0 -> 1355 bytes ...ttonScreenShotTest_secondaryIconButton.png | Bin 0 -> 1339 bytes ...est_checked_state_with_disabled_status.png | Bin 0 -> 2792 bytes ...itchScreenShotTest_test_checked_status.png | Bin 0 -> 4451 bytes ...t_unchecked_state_with_disabled_status.png | Bin 0 -> 2771 bytes ...chScreenShotTest_test_unchecked_status.png | Bin 0 -> 2657 bytes ...ScreenShotTest_renderTopAppBarTextOnly.png | Bin 0 -> 7444 bytes ...enShotTest_renderTopAppBarTextWithIcon.png | Bin 0 -> 7659 bytes .../com/tarkalabs/uicomponents/theme/Color.kt | 148 +++++++++--------- .../tarkalabs/uicomponents/theme/DarkColor.kt | 48 ------ .../uicomponents/theme/LightColor.kt | 50 ------ 24 files changed, 74 insertions(+), 172 deletions(-) create mode 100644 tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIBadgeScreenShotTest_test_badge_with_count.png create mode 100644 tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIBadgeScreenShotTest_test_badge_with_out_count.png create mode 100644 tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIButtonScreenShotTest_errorButtonTest.png create mode 100644 tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIButtonScreenShotTest_ghostButtonTest.png create mode 100644 tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIButtonScreenShotTest_outlineButtonTest.png create mode 100644 tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIButtonScreenShotTest_primaryButtonTest.png create mode 100644 tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIButtonScreenShotTest_secondaryButtonTest.png create mode 100644 tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIFloatingActionButtonScreenShotTest_test_fab_with_large_size.png create mode 100644 tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIFloatingActionButtonScreenShotTest_test_fab_with_regular_size.png create mode 100644 tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIFloatingActionButtonScreenShotTest_test_fab_with_small_size.png create mode 100644 tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIFloatingActionButtonScreenShotTest_test_unchecked_state_with_disabled_status.png create mode 100644 tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIIconButtonScreenShotTest_ghostIconButton.png create mode 100644 tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIIconButtonScreenShotTest_outlineIconButton.png create mode 100644 tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIIconButtonScreenShotTest_primaryIconButton.png create mode 100644 tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIIconButtonScreenShotTest_secondaryIconButton.png create mode 100644 tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIToggleSwitchScreenShotTest_test_checked_state_with_disabled_status.png create mode 100644 tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIToggleSwitchScreenShotTest_test_checked_status.png create mode 100644 tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIToggleSwitchScreenShotTest_test_unchecked_state_with_disabled_status.png create mode 100644 tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIToggleSwitchScreenShotTest_test_unchecked_status.png create mode 100644 tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUITopBarScreenShotTest_renderTopAppBarTextOnly.png create mode 100644 tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUITopBarScreenShotTest_renderTopAppBarTextWithIcon.png delete mode 100644 tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/DarkColor.kt delete mode 100644 tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/LightColor.kt diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIBadgeScreenShotTest_test_badge_with_count.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIBadgeScreenShotTest_test_badge_with_count.png new file mode 100644 index 0000000000000000000000000000000000000000..64268ec563d9ce294757e19a9878ed63b5e94818 GIT binary patch literal 1620 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 literal 0 HcmV?d00001 diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIButtonScreenShotTest_ghostButtonTest.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIButtonScreenShotTest_ghostButtonTest.png new file mode 100644 index 0000000000000000000000000000000000000000..40a286f8fd4c35b5f584ba6a0519de815ab8e05c GIT binary patch literal 5096 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 YJheaHtI4uZ;yIdVEBoE!0f3a|5n>) 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 literal 0 HcmV?d00001 diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIFloatingActionButtonScreenShotTest_test_fab_with_regular_size.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIFloatingActionButtonScreenShotTest_test_fab_with_regular_size.png new file mode 100644 index 0000000000000000000000000000000000000000..854a613527a93b6bcaf7a902f72eac96e17fcede GIT binary patch literal 6700 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 Zeg|_UqJ9A;3$XwI002ovPDHLkV1kWGGYJ3y literal 0 HcmV?d00001 diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIIconButtonScreenShotTest_ghostIconButton.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIIconButtonScreenShotTest_ghostIconButton.png new file mode 100644 index 0000000000000000000000000000000000000000..49e1657565d5f72a1018d912ff9849cf51ce339b GIT binary patch literal 446 zcmV;v0YUzWP)p8RGv ze*(U}zH1E{>}4O?eey14%7JuCqd_-cn?iR%{hTf;RUSy!4g0%r;+;y<^qUjI+|{Tg zNm@TN>#M&@IQ8*M5^RM7HVcPurw~o2Q2)P)_#yNCzG<-h=Wt zCcKf}Y*DsD=v)Z=Hr*?#yI}C1|Bmd&FOu~8y{7z?#Sg9eW((u$R0QJ(5mub2(BpSJ zogm9HcrbS~ohqveJ}(z|-tEX>!BJIN!sB8APv)kA1xH!L-e4$UBtbz9BTGL@7-^(; zVXNg5=Cc|9eaeTe)@%3M(6CW9-_WqpP840(kQ?;q$0Xz)6n?#&&n_%J%xPo0*$kS5 zYD|!Q5j`FbgGaj>6SNPsSE<-Qq$ny78Hy4_f}#eIpz@+11(BeNJdf{nKEx?}^2a1W o2})3c5|p3>B`84&N>H8p0uGF%ugtJcvH$=807*qoM6N<$g2^$;zW@LL literal 0 HcmV?d00001 diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIIconButtonScreenShotTest_outlineIconButton.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIIconButtonScreenShotTest_outlineIconButton.png new file mode 100644 index 0000000000000000000000000000000000000000..668c3250a0c6b1ee76faf860073b6ac31368443b GIT binary patch literal 2220 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 N002ovPDHLkV1g%vlV|_{ literal 0 HcmV?d00001 diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIIconButtonScreenShotTest_secondaryIconButton.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIIconButtonScreenShotTest_secondaryIconButton.png new file mode 100644 index 0000000000000000000000000000000000000000..eacd476a402732a423cae8a8120f60882be4c188 GIT binary patch literal 1339 zcmV-B1;qM^P)J7{~uNiECrEDRnwE>9)FR--xz_7CPtXT1Q72V_OS_e(A5ziJEpt8(_b!+ofg3=pefFhE^7M73* zGK*VIFa8-EhkeAa@FN`r9WY1V56_8L7;aw}T|++k8(YmL?A~02eU&95pdoW8y#18x_zKQPEp4Xgl4#+JXf-w6^r~edHDKLr>d2ZLDA*~Pbdk9=9;I^|D}3qXHX?3 zBU?-H2BMtOqE|7fP2$4p@4I8G0!W6cC@owyKr+-e^M+LeBty|I%y!ELO_m?Lfrvw1 zB<|f(tO?XdNB43Ak~m~2diL{et5fwse!Ax1x|}Bt8Hz&iptT$=HkYb{XfX>{64_52 zaa&}EcUe@2;wiFUE)hNj!xX7K5ViUQfEI89O#t+PIPqZ*(8d?%~G2#D-bI(D$=sU~`?PY;W~ zywsf)p-3S|9$N4m#ZqoWH#mK4H_kQNSG0IgQAm|T89~Js4?36E*w)Xrk5M0@vYlAv zRDqJp{ho><{CH!K%glpj3e;HBIz^VrKs3NRuT-JF+RPqFY7vqYYBZOVraoye5|>kj xC?x5TBpsQf2VTo5CR7AyJw(fgf@K^%{U4AZLe^{RF7yBZ002ovPDHLkV1lTdd$|Ar literal 0 HcmV?d00001 diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIToggleSwitchScreenShotTest_test_checked_state_with_disabled_status.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIToggleSwitchScreenShotTest_test_checked_state_with_disabled_status.png new file mode 100644 index 0000000000000000000000000000000000000000..3b82b6c36444f70a638656de0cc99c52c5f52a68 GIT binary patch literal 2792 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 literal 0 HcmV?d00001 diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIToggleSwitchScreenShotTest_test_unchecked_state_with_disabled_status.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIToggleSwitchScreenShotTest_test_unchecked_state_with_disabled_status.png new file mode 100644 index 0000000000000000000000000000000000000000..4059624922a670f6b236a70253c146d32c20be30 GIT binary patch literal 2771 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 Zeg|_UqJ9A;3$XwI002ovPDHLkV1kWGGYJ3y literal 0 HcmV?d00001 diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIToggleSwitchScreenShotTest_test_unchecked_status.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIToggleSwitchScreenShotTest_test_unchecked_status.png new file mode 100644 index 0000000000000000000000000000000000000000..258d84a00a5a5f3920f21db16189c32927faa982 GIT binary patch literal 2657 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 P00000NkvXXu0mjf5}(|P literal 0 HcmV?d00001 diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUITopBarScreenShotTest_renderTopAppBarTextOnly.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUITopBarScreenShotTest_renderTopAppBarTextOnly.png new file mode 100644 index 0000000000000000000000000000000000000000..d57d0acef15e46c8d1885b577a55ce89a3f80fee GIT binary patch literal 7444 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 Yu9#DODMUsLV7)9lnuZ#ck6yg}FYQ%i{{R30 literal 0 HcmV?d00001 diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUITopBarScreenShotTest_renderTopAppBarTextWithIcon.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUITopBarScreenShotTest_renderTopAppBarTextWithIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..2d2b0103a9f8a0711d9b5d2a43f83b74289438aa GIT binary patch literal 7659 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 literal 0 HcmV?d00001 diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Color.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Color.kt index 8fee574e..45d29d62 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Color.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Color.kt @@ -50,82 +50,82 @@ val LocalTUIColors = staticCompositionLocalOf { } val lightColors = TUIColors( - primary = LightColorPrimary, - onPrimary = LightColorOnPrimary, - primaryAlt = LightColorAltPrimary, - onPrimaryAlt = LightColorOnAltPrimary, - secondary = LightColorSecondary, - onSecondary = LightColorOnSecondary, - secondaryAlt = LightColorAltSecondary, - onSecondaryAlt = LightColorOnAltSecondary, - tertiary = LightColorTertiary, - onTertiary = LightColorOnTertiary, - tertiaryAlt = LightColorAltTertiary, - onTertiaryAlt = LightColorOnAltTertiary, - success = LightColorSuccess, - onSuccess = LightColorOnSuccess, - onSuccess10 = LightColorSuccess10, - onSuccess20 = LightColorSuccess20, - error = LightColorError, - onError = LightColorOnError, - onError10 = LightColorError10, - warning = LightColorWarning, - onWarning = LightColorOnWarning, - onWarning10 = LightColorWarning10, - background = LightColorBackground, - onBackground = LightColorOnBackground, - utilityOutline = LightColorUtilityOutline, - utilityDisabledContent = LightColorUtilityDisabledContent, - utilityDisabledBackground = LightColorUtilityDisabledBackground, - utilityLink = LightColorUtilityLink, - inputBackground = LightColorInputBackground, - inputText = LightColorInputText, - inputDim = LightColorInputDim, - surface = LightColorSurface, - surface50 = LightColorSurface50, - onSurface = LightColorOnSurface, - surfaceVariant = LightColorSurfaceVariant, - constantLight = ColorLight, - constantDark = ColorDark + primary = Color(0xFF0052D6), + onPrimary = Color(0xFFF5F9FF), + primaryAlt = Color(0xFFD5E2F6), + onPrimaryAlt = Color(0xFF002766), + secondary = Color(0xFF4D80B3), + onSecondary = Color(0xFFF0F7FF), + secondaryAlt = Color(0xFFD2DEE9), + onSecondaryAlt = Color(0xFF003366), + tertiary = Color(0xFF924F92), + onTertiary = Color(0xFFFFF5FF), + tertiaryAlt = Color(0xFFF3CEF3), + onTertiaryAlt = Color(0xFF530953), + success = Color(0xFF148F47), + onSuccess = Color(0xFFF2FDF6), + onSuccess10 = Color(0xFF148F47).copy(alpha = 0.10f), + onSuccess20 = Color(0xFF148F47).copy(alpha = 0.20f), + error = Color(0xFFCD1D32), + onError = Color(0xFFFEFBFB), + onError10 = Color(0xFFCD1D32).copy(alpha = 0.10f), + warning = Color(0xFFFFB938), + onWarning = Color(0xFF241D0F), + onWarning10 = Color(0xFF241D0F).copy(alpha = 0.10f), + background = Color(0xFFECECEC), + onBackground = Color(0xFF171B21), + utilityOutline = Color(0xFF878B92), + utilityDisabledContent = Color(0XFF1A1B1F).copy(alpha = 0.38f), + utilityDisabledBackground = Color(0XFF1A1B1F).copy(alpha = 0.06f), + utilityLink = Color(0xFF3381FF), + inputBackground = Color(0XFFEAECF0).copy(alpha = 0.85f), + inputText = Color(0XFF1A1B1F), + inputDim = Color(0XFF1A1B1F).copy(alpha = 0.70f), + surface = Color(0xFFF9FAFB), + surface50 = Color(0xFFF9FAFB).copy(alpha = 0.50f), + onSurface = Color(0xFF1A1B1F), + surfaceVariant = Color(0xFFEBEFF4), + constantLight = Color(0xFFFFFFFF), + constantDark = Color(0xFF000000) ) val darkColors = TUIColors( - primary = DarkColorPrimary, - onPrimary = DarkColorOnPrimary, - primaryAlt = DarkColorAltPrimary, - onPrimaryAlt = DarkColorOnAltPrimary, - secondary = DarkColorSecondary, - onSecondary = DarkColorOnSecondary, - secondaryAlt = DarkColorAltSecondary, - onSecondaryAlt = DarkColorOnAltSecondary, - tertiary = DarkColorTertiary, - onTertiary = DarkColorOnTertiary, - tertiaryAlt = DarkColorAltTertiary, - onTertiaryAlt = DarkColorOnAltTertiary, - success = DarkColorSuccess, - onSuccess = DarkColorOnSuccess, - onSuccess10 = DarkColorSuccess10, - onSuccess20 = DarkColorSuccess20, - error = DarkColorError, - onError = DarkColorOnError, - onError10 = DarkColorError10, - warning = DarkColorWarning, - onWarning = DarkColorOnWarning, - onWarning10 = DarkColorWarning10, - background = DarkColorBackground, - onBackground = DarkColorOnBackground, - utilityOutline = DarkColorUtilityOutline, - utilityDisabledContent = DarkColorUtilityDisabledContent, - utilityDisabledBackground = DarkColorUtilityDisabledBackground, - utilityLink = DarkColorUtilityLink, - inputBackground = DarkColorInputBackground, - inputText = DarkColorInputText, - inputDim = DarkColorInputDim, - surface = DarkColorSurface, - surface50 = DarkColorSurface50, - onSurface = DarkColorOnSurface, - surfaceVariant = DarkColorSurfaceVariant, - constantLight = ColorLight, - constantDark = ColorDark + primary = Color(0xFF5294FF), + onPrimary = Color(0xFFFAFCFF), + primaryAlt = Color(0xFF293B56), + onPrimaryAlt = Color(0xFFD6E6FF), + secondary = Color(0xFFA8CCF0), + onSecondary = Color(0xFF002B57), + secondaryAlt = Color(0xFF294056), + onSecondaryAlt = Color(0xFFD6EBFF), + tertiary = Color(0xFFE6B3E6), + onTertiary = Color(0xFF5C0A5C), + tertiaryAlt = Color(0xFF532D53), + onTertiaryAlt = Color(0xFFFFD6FF), + success = Color(0xFF55E792), + onSuccess = Color(0xFF003817), + onSuccess10 = Color(0xFF003817).copy(alpha = 0.10f), + onSuccess20 = Color(0xFF003817).copy(alpha = 0.20f), + error = Color(0xFFD42136), + onError = Color(0xFFFFFAFA), + onError10 = Color(0xFFFFFAFA).copy(alpha = 0.10f), + warning = Color(0xFFFFB938), + onWarning = Color(0xFF241D0F), + onWarning10 = Color(0xFF241D0F).copy(alpha = 0.10f), + background = Color(0xFF0F1115), + onBackground = Color(0xFFF0F2F4), + utilityOutline = Color(0xFF878B92), + utilityDisabledContent = Color(0XFFFCFCFD).copy(alpha = 0.38f), + utilityDisabledBackground = Color(0XFFFCFCFD).copy(alpha = 0.12f), + utilityLink = Color(0xFF80B0FF), + inputBackground = Color(0XFF0F1115).copy(alpha = 0.60f), + inputText = Color(0XFFFCFCFD), + inputDim = Color(0XFFFCFCFD).copy(alpha = 0.70f), + surface = Color(0xFF212731), + surface50 = Color(0xFF212731).copy(alpha = 0.50f), + onSurface = Color(0xFFFCFCFD), + surfaceVariant = Color(0xFF2D3543), + constantLight = Color(0xFFFFFFFF), + constantDark = Color(0xFF000000) ) diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/DarkColor.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/DarkColor.kt deleted file mode 100644 index a34b6cd5..00000000 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/DarkColor.kt +++ /dev/null @@ -1,48 +0,0 @@ -package com.tarkalabs.uicomponents.theme - -import androidx.compose.ui.graphics.Color - -val DarkColorPrimary = Color(0xFF5294FF) -val DarkColorOnPrimary = Color(0xFFFAFCFF) -val DarkColorAltPrimary = Color(0xFF293B56) -val DarkColorOnAltPrimary = Color(0xFFD6E6FF) - -val DarkColorSecondary = Color(0xFFA8CCF0) -val DarkColorOnSecondary = Color(0xFF002B57) -val DarkColorAltSecondary = Color(0xFF294056) -val DarkColorOnAltSecondary = Color(0xFFD6EBFF) - -val DarkColorTertiary = Color(0xFFE6B3E6) -val DarkColorOnTertiary = Color(0xFF5C0A5C) -val DarkColorAltTertiary = Color(0xFF532D53) -val DarkColorOnAltTertiary = Color(0xFFFFD6FF) - -val DarkColorSuccess = Color(0xFF55E792) -val DarkColorSuccess10 = DarkColorSuccess.copy(alpha = 0.10f) -val DarkColorSuccess20 = DarkColorSuccess.copy(alpha = 0.20f) -val DarkColorOnSuccess = Color(0xFF003817) - -val DarkColorError = Color(0xFFD42136) -val DarkColorOnError = Color(0xFFFFFAFA) -val DarkColorError10 = DarkColorError.copy(alpha = 0.10f) - -val DarkColorWarning = Color(0xFFFFB938) -val DarkColorOnWarning = Color(0xFF241D0F) -val DarkColorWarning10 = DarkColorWarning.copy(alpha = 0.10f) - -val DarkColorBackground = Color(0xFF0F1115) -val DarkColorOnBackground = Color(0xFFF0F2F4) - -val DarkColorSurface = Color(0xFF212731) -val DarkColorOnSurface = Color(0xFFFCFCFD) -val DarkColorSurfaceVariant = Color(0xFF2D3543) -val DarkColorSurface50 = DarkColorSurface.copy(alpha = 0.50f) - -val DarkColorUtilityOutline = Color(0xFF878B92) -val DarkColorUtilityLink = Color(0xFF80B0FF) -val DarkColorUtilityDisabledBackground = Color(0XFFFCFCFD).copy(alpha = 0.12f) -val DarkColorUtilityDisabledContent = Color(0XFFFCFCFD).copy(alpha = 0.38f) -val DarkColorInputBackground = Color(0XFF0F1115).copy(alpha = 0.60f) -val DarkColorInputText = Color(0XFFFCFCFD) -val DarkColorInputDim = DarkColorInputText.copy(alpha = 0.70f) - diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/LightColor.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/LightColor.kt deleted file mode 100644 index 963c3f8f..00000000 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/LightColor.kt +++ /dev/null @@ -1,50 +0,0 @@ -package com.tarkalabs.uicomponents.theme - -import androidx.compose.ui.graphics.Color - -val LightColorPrimary = Color(0xFF0052D6) -val LightColorOnPrimary = Color(0xFFF5F9FF) -val LightColorAltPrimary = Color(0xFFD5E2F6) -val LightColorOnAltPrimary = Color(0xFF002766) - -val LightColorSecondary = Color(0xFF4D80B3) -val LightColorOnSecondary = Color(0xFFF0F7FF) -val LightColorAltSecondary = Color(0xFFD2DEE9) -val LightColorOnAltSecondary = Color(0xFF003366) - -val LightColorTertiary = Color(0xFF924F92) -val LightColorOnTertiary = Color(0xFFFFF5FF) -val LightColorAltTertiary = Color(0xFFF3CEF3) -val LightColorOnAltTertiary = Color(0xFF530953) - -val LightColorSuccess = Color(0xFF148F47) -val LightColorSuccess10 = LightColorSuccess.copy(alpha = 0.10f) -val LightColorSuccess20 = LightColorSuccess.copy(alpha = 0.20f) -val LightColorOnSuccess = Color(0xFFF2FDF6) - -val LightColorError = Color(0xFFCD1D32) -val LightColorOnError = Color(0xFFFEFBFB) -val LightColorError10 = LightColorError.copy(alpha = 0.10f) - -val LightColorWarning = Color(0xFFFFB938) -val LightColorOnWarning = Color(0xFF241D0F) -val LightColorWarning10 = LightColorWarning.copy(alpha = 0.10f) - -val LightColorBackground = Color(0xFFEAECF0) -val LightColorOnBackground = Color(0xFF171B21) - -val LightColorSurface = Color(0xFFF9FAFB) -val LightColorOnSurface = Color(0xFF1A1B1F) -val LightColorSurfaceVariant = Color(0xFFEBEFF4) -val LightColorSurface50 = LightColorSurface.copy(alpha = 0.50f) - -val LightColorUtilityOutline = Color(0xFF878B92) -val LightColorUtilityLink = Color(0xFF3381FF) -val LightColorUtilityDisabledBackground = Color(0XFF1A1C1F) -val LightColorUtilityDisabledContent = Color(0XFF1A1B1F).copy(alpha = 0.38f) -val LightColorInputBackground = Color(0XFFEAECF0).copy(alpha = 0.85f) -val LightColorInputText = Color(0XFF1A1B1F) -val LightColorInputDim = LightColorInputText.copy(alpha = 0.70f) - -val ColorLight = Color(0xFFFFFFFF) -val ColorDark = Color(0xFF000000) \ No newline at end of file From 474973c2d20c88f97abdc752c90394fbe2648b9e Mon Sep 17 00:00:00 2001 From: Raja Jawahar Date: Tue, 30 May 2023 13:12:35 +0530 Subject: [PATCH 100/571] Minor correction in ToggleSwitch Color --- .../tarkalabs/uicomponents/components/TUIToggleSwitch.kt | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIToggleSwitch.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIToggleSwitch.kt index 267a25a7..f6f52ac7 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIToggleSwitch.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIToggleSwitch.kt @@ -52,17 +52,16 @@ import com.tarkalabs.uicomponents.theme.TUITheme checkedThumbColor = TUITheme.colors.constantLight, checkedTrackColor = TUITheme.colors.primary, checkedIconColor = TUITheme.colors.primary, - checkedBorderColor = TUITheme.colors.constantLight, + checkedBorderColor = TUITheme.colors.primary, uncheckedThumbColor = TUITheme.colors.onSurface, uncheckedTrackColor = TUITheme.colors.surfaceVariant, uncheckedIconColor = TUITheme.colors.constantLight, uncheckedBorderColor = Color.Transparent, - - disabledCheckedThumbColor = TUITheme.colors.utilityDisabledBackground.copy(alpha = 0.38f), + disabledCheckedThumbColor = TUITheme.colors.utilityDisabledContent.copy(alpha = 0.38f), disabledCheckedTrackColor = TUITheme.colors.utilityDisabledBackground.copy(alpha = 0.06f), disabledCheckedIconColor = TUITheme.colors.inputBackground.copy(alpha = 0.85f), disabledCheckedBorderColor = Color.Transparent, - disabledUncheckedThumbColor = TUITheme.colors.utilityDisabledBackground.copy(alpha = 0.38f), + disabledUncheckedThumbColor = TUITheme.colors.utilityDisabledContent.copy(alpha = 0.38f), disabledUncheckedTrackColor = TUITheme.colors.utilityDisabledBackground.copy(alpha = 0.06f), disabledUncheckedBorderColor = Color.Transparent, disabledUncheckedIconColor = TUITheme.colors.inputBackground.copy(alpha = 0.85f) From 24a4a610c3588249746d5fea79a323c32502eeb3 Mon Sep 17 00:00:00 2001 From: Younes Charfaoui Date: Tue, 30 May 2023 15:35:09 +0100 Subject: [PATCH 101/571] Adding new screenshots --- ...geScreenShotTest_test_badge_with_count.png | Bin 1627 -> 0 bytes ...reenShotTest_test_badge_with_out_count.png | Bin 812 -> 0 bytes ...UIButtonScreenShotTest_errorButtonTest.png | Bin 6001 -> 0 bytes ...UIButtonScreenShotTest_ghostButtonTest.png | Bin 5192 -> 0 bytes ...ButtonScreenShotTest_outlineButtonTest.png | Bin 9608 -> 0 bytes ...ButtonScreenShotTest_primaryButtonTest.png | Bin 7967 -> 0 bytes ...ttonScreenShotTest_secondaryButtonTest.png | Bin 9809 -> 0 bytes ...creenShotTest_test_fab_with_large_size.png | Bin 12885 -> 0 bytes ...eenShotTest_test_fab_with_regular_size.png | Bin 6802 -> 0 bytes ...creenShotTest_test_fab_with_small_size.png | Bin 6620 -> 0 bytes ...t_unchecked_state_with_disabled_status.png | Bin 2773 -> 0 bytes ...onButtonScreenShotTest_ghostIconButton.png | Bin 430 -> 0 bytes ...ButtonScreenShotTest_outlineIconButton.png | Bin 2212 -> 0 bytes ...ButtonScreenShotTest_primaryIconButton.png | Bin 1346 -> 0 bytes ...ttonScreenShotTest_secondaryIconButton.png | Bin 1337 -> 0 bytes ...est_checked_state_with_disabled_status.png | Bin 2799 -> 0 bytes ...itchScreenShotTest_test_checked_status.png | Bin 4451 -> 0 bytes ...t_unchecked_state_with_disabled_status.png | Bin 2773 -> 0 bytes ...chScreenShotTest_test_unchecked_status.png | Bin 3077 -> 0 bytes ...ScreenShotTest_renderTopAppBarTextOnly.png | Bin 7754 -> 0 bytes ...enShotTest_renderTopAppBarTextWithIcon.png | Bin 7954 -> 0 bytes ...geScreenShotTest_test_badge_with_count.png | Bin 1620 -> 1624 bytes ...reenShotTest_test_badge_with_out_count.png | Bin 836 -> 788 bytes ...UIButtonScreenShotTest_errorButtonTest.png | Bin 6032 -> 6338 bytes ...UIButtonScreenShotTest_ghostButtonTest.png | Bin 5096 -> 5261 bytes ...ButtonScreenShotTest_outlineButtonTest.png | Bin 9445 -> 9723 bytes ...ButtonScreenShotTest_primaryButtonTest.png | Bin 8035 -> 8328 bytes ...ttonScreenShotTest_secondaryButtonTest.png | Bin 9646 -> 10065 bytes ...creenShotTest_test_fab_with_large_size.png | Bin 12722 -> 11617 bytes ...eenShotTest_test_fab_with_regular_size.png | Bin 6700 -> 6481 bytes ...creenShotTest_test_fab_with_small_size.png | Bin 6521 -> 6101 bytes ...t_unchecked_state_with_disabled_status.png | Bin 2771 -> 2892 bytes ...onButtonScreenShotTest_ghostIconButton.png | Bin 446 -> 466 bytes ...ButtonScreenShotTest_outlineIconButton.png | Bin 2220 -> 2192 bytes ...ButtonScreenShotTest_primaryIconButton.png | Bin 1355 -> 1378 bytes ...ttonScreenShotTest_secondaryIconButton.png | Bin 1339 -> 1344 bytes ...est_checked_state_with_disabled_status.png | Bin 2792 -> 3143 bytes ...itchScreenShotTest_test_checked_status.png | Bin 4451 -> 3626 bytes ...t_unchecked_state_with_disabled_status.png | Bin 2771 -> 2892 bytes ...chScreenShotTest_test_unchecked_status.png | Bin 2657 -> 2773 bytes ...ScreenShotTest_renderTopAppBarTextOnly.png | Bin 7444 -> 7765 bytes ...enShotTest_renderTopAppBarTextWithIcon.png | Bin 7659 -> 8031 bytes 42 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIBadgeScreenShotTest_test_badge_with_count.png delete mode 100644 tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIBadgeScreenShotTest_test_badge_with_out_count.png delete mode 100644 tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIButtonScreenShotTest_errorButtonTest.png delete mode 100644 tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIButtonScreenShotTest_ghostButtonTest.png delete mode 100644 tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIButtonScreenShotTest_outlineButtonTest.png delete mode 100644 tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIButtonScreenShotTest_primaryButtonTest.png delete mode 100644 tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIButtonScreenShotTest_secondaryButtonTest.png delete mode 100644 tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIFloatingActionButtonScreenShotTest_test_fab_with_large_size.png delete mode 100644 tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIFloatingActionButtonScreenShotTest_test_fab_with_regular_size.png delete mode 100644 tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIFloatingActionButtonScreenShotTest_test_fab_with_small_size.png delete mode 100644 tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIFloatingActionButtonScreenShotTest_test_unchecked_state_with_disabled_status.png delete mode 100644 tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIIconButtonScreenShotTest_ghostIconButton.png delete mode 100644 tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIIconButtonScreenShotTest_outlineIconButton.png delete mode 100644 tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIIconButtonScreenShotTest_primaryIconButton.png delete mode 100644 tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIIconButtonScreenShotTest_secondaryIconButton.png delete mode 100644 tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIToggleSwitchScreenShotTest_test_checked_state_with_disabled_status.png delete mode 100644 tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIToggleSwitchScreenShotTest_test_checked_status.png delete mode 100644 tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIToggleSwitchScreenShotTest_test_unchecked_state_with_disabled_status.png delete mode 100644 tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIToggleSwitchScreenShotTest_test_unchecked_status.png delete mode 100644 tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUITopBarScreenShotTest_renderTopAppBarTextOnly.png delete mode 100644 tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUITopBarScreenShotTest_renderTopAppBarTextWithIcon.png diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIBadgeScreenShotTest_test_badge_with_count.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIBadgeScreenShotTest_test_badge_with_count.png deleted file mode 100644 index 80f6a3db04752914ce94ba435109992f9a79d022..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1627 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 diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIButtonScreenShotTest_ghostButtonTest.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIButtonScreenShotTest_ghostButtonTest.png deleted file mode 100644 index c967cbb9b1ce40d9e7b1d0958cb7f05241a502d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5192 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 QutHLnSC^}m`4skl09qyPNdN!< diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIButtonScreenShotTest_primaryButtonTest.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIButtonScreenShotTest_primaryButtonTest.png deleted file mode 100644 index a91ad935392b550127ecb57eb3b89d566e9ac609..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7967 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

+9CdI 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 mwo4NP(zp0>%{T&egj?Ee5Bko95! diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIFloatingActionButtonScreenShotTest_test_fab_with_regular_size.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIFloatingActionButtonScreenShotTest_test_fab_with_regular_size.png deleted file mode 100644 index 7d0f1fa85c3beaa27b638902aa2935dd92a31c3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6802 zcmV;D8g1o?P)q8D_ z-n_vhFnw_D>D#w^$hE82DFp@l%l@H!?|{lLf{1u8>Ux^&ed#q-j^(d+zBliEw)d~4 zuq>*4J%1lG@R`!jXa74jNzs3I3Xp$UxG+vxBl?vG7k{Qe{+CnzQ-Em%_) z{~BU%M#6w;+FOQ!<(Ua&W|_#&HIb8-f!zG%$S=x7VNnK(%CeBKuXDc2fk6m=O^9=j z?Fcd4V{XU?ossj zjLrB4u?81Ew*@?yu=qA+6Au`V{kmeCP^A?)D6h&vMRg8V)a4_QaLHq^dub@d5kxXv z(jiDN?-~*!fpbWbk|gSyg(j70CQP*v`Av&fB#&Msi9jVIRn)PsiV^DKp0`*lQb8?P z26c(!5R5edrQQvp=x7q+w&BQ{hG6Dn=kjH`AR=-T^qpI=mY5n8CXCipBFk>hWU2tSO>ClmSJU6 z5mv7+M&pJOK`LLV3_%#fBa=)js9{kKA7omUdN>MY8io<86fzn7--PMZ$PZ~zsuOzO zWs655M{Jz1M%_Ok(s|;k5YT$#9Q(x8D1PWnv2=DX*j7cL+mNLJ%ta3l&yY zB90)Dr!-JK9CgTRQRj0;M<;OUbPql~(}OCGYi(g10OgI()`ad(Bk(Y|PM{)OUF89;qjc*{NM)5@Q$mWwoe$V58FvK9f0#W~m zbjU%J5bJCf{|t6)S(ZyGir&rhNnOv>b0I~2~{Cp zuL{B-JA{D}{yf9&z2}jLZC$sAappv)9nS9hKl;++P$bUTzdUSPx2X)<_g15-KA(3+ zJZmD`hoC{1(-89sd$S>w>0eCTwx^<3O02*5k>&HBP$3a1$nhb}1e|Z(E z8wvvLVDTPc@~}r@JUWdb4o&(?ZU#Rz6v`x{E&C(Slt+!7d9mDk%@m2Lk7ul%y>oox za2q~2(yrMtN8D~6#D9G69Cjb9$39!BzzO9fJegQId)2VZxkbON5n*vi44=sCJX2DC zB$*-+)}%ZUwE}8H!)nysF@mH2cT1>|#{BTRU$vn1`T!2Twgwf|c@a^A2qMXZTF8)R z&U7dw`JRg05EWj?8Bg<6$dZ)lyxrYB^2SZkQ`A^EmHOAeKZ6&)(u6I$R&c_2y}h`7 zG7*V-o$S0RGdHOs#rPv7p(Jt;hN;<;sxPTugbgaA$f%n3W<)-G6x~#1CuEYnH`6^5!kw zqKg1O`@yHY&THH5YVM;9!-@@kGwIn!8FF(by|vj8$@5De9q+*Lw_9~9E+YK$_0M?8 z@y`9VE}>}hULMrswK$F;lsO+F1&y|+N~eC)f%kuTTesdK#E~~|@HX3Zpe~7ratS33 zsVT>CsR5~WHoDiAlt^J!I(=LdX|dzz&zpH2)XwK>rzO-(LY$Nu0DRx1CL%$j)ybk> z?nqUo^B;8Cp-mGhRTOGjhJo#Ssul0V<^=GXDPn{=Vbl4iK$r_3%jzT-tp&r|l?%Q0 zH`t3-!KK!h0Y0632Py*Bxkp2*dy87K>vNb^W$dSDk+RN ze|Q<+{LW?+m1H}4!x$eGAMTvW6f-Ks$zI7Vm2*iH?zz4DlV%JLPUsd%<;3Q|IDY$!>7mRu2FDLuEtZ|D+|r2;kw@g3Vk9r|jMFyu~wT_VD4 zhvJ;-nSwnxNV7zIHFA1#Y-7`oJ~`E+TVV;|%^H5on??$44e+r}xrd1{}kInnz_TZe5NAc^Qw<6hU zI~u7A)~@gV?{#j-EsKaD7jI39s0il~%MAM@DvH}=0(lB`;&8j|lZN$OU&3Iip5yP_ z!ZU|fxkNHz!d<|CQ^?b6)pUU3mF#^-%Md<1+M(}u8sPnRTd;avF=|#8szh?boS$Lx z6PTtwtg z&lHhMED&c=u?mY&Cbbg43Z(@;uzk|_{V9EC(-7lhliWYO_~j-+q&PEfN>0kRR8pAh z=^DZL54!bTO=FyXzn#y+W0O0B>J-W|QAL%g67o(T@6vZu11FBO;?-}ik5ngbT?5l! zrrG)9_1@TpovlN-dcIHJNex{3xEoLIt3gdeLD)O_RRjJsCB8-g_0|fYID7JrzKa?H zr|g~`TY5TDoxo?OSW1q`8;9%Z9L2Q@{rV1S2z+{`8@mtGp`s=)vS(+~P@T8MrRu^d zZMrqWU<-{M`s!nm>SQX}Zp&E`kmZ#we$=b)oJI&|Pjuj!&o_v?lQNtllZn-9vJiLa z<6d1Apb-hii}N3L;pqeQ?g)ufnaPe#)h}`1jmu~6>bs^9iwmc^uR$6&7@2y zVC-tSeh+;;_w^mqhy`1!=jPQutXf;bUwi(^lqXa&PF?#%=an?3$ECA9HkpbQBX0VO zcCi(?EnL4ipzoB%w77Dv8!vsW2?=Q(az&YLTpCcGj-;Ux2R873^?WbZZ7z34PON}3 z-MpezNn_^t?9yGV-CX93m?Yq4z}@k=Th|8l9nzRFu77&h9heh~eK`kglEB!=WJ>-} zCFMD|+dZON_Ys37w^=o2ePfa1nY^k2wwPwBq3Q7o{P|z*Lv~IEP9AN>5B~9_ZsA9a zTi5zgzoyX1Gg)q>Kq^jOdj6HQoJb72o?C^ZZ(YIdn|g5iQKIGgfS8cNla}mp?d(Cs zsfH|!}+0~j4ikCkBeq{#YC_E)?0JHw^9(o*O{n={uzwup z$j}4b@|sZd23x+{98J+m0ZpjIg^?kfO!r4MnKYs14_3ZpPUv-)G@%v%_wU{@N4x=f69a zlK0x0viv7uE=7!`SWQtX*Ff>IUFRA1OOs4L`Tl9XUu+eatbi_vwp;yp{rexM?7ikI z$FZj!PE9RMHnEZX#TGWW`3{hY5$U^seK@6+$w(M5&1Hs7CY>I5R77GEAC?-C7#NRC z_5^9Y#MKiK2! z&78bty45w2=8fEZn@oB6noOEV^GAN+a+^#=dP=n>()>|Sk_oe*c)4bPCepl7T$%;5 zs8o|_A;4zyrYn&cN-DBpCQJiGWtq_P=N1;}M5I!iNbCvYCVNytX@w@!e8K9F-um$; ze9fq97w_N)-#eK$E1{HEPRIF>_E00L!9Bq0D!bc9qo9dMXwkC1U1TYi6qAmv=EvdC)Eh{Et z<*r$Lfz%sm<53n>FLqS{H{U$Wu?O`MSg2~qO*t|#@}z3b^io0H>H=4xi2Epd`=EAJ z9!?+A&*asZ9oSly?z0P>8gP~#sH)FFR znE^NMIhk-yDm&agv9nZ@NkibteN{q@JOU|UPDxs_jfXsT5k+N9E*dx5>hy^wRJvpR z)-qJr7jU8B98toY zoi^?$#V4nF^&L%9Y}-?Xit1cJAijYpAx>n#`3t5*R#=@F!=8M$0#`5eLoYy|epsGm zV)wy1mltYo$@5LVXJY3lL|VWi7FQ>yXJ_zP1}yKi!zR>kf7zk$Zkl25=jxD?yG*E$ zAW|Sb;CLoCyg8umMTSEtSD_fEHtj4&^W}RfS0}D9cd*F<+xJ#Gs$}@-fT%F%8gNb_ z_a9lE)Z7z$f9HV}`04kr>${vLc=qK6G5)5gkfKVGXL14@Bz1zCz+~ffcBrE^$yU_n zV*4`{dg4JEVD}5PsIJd1Q37NBu15_)PT?=p;G)qEP3pOy5Wvs@1bhE{x8>bRlyPjo$8m_GIaObF0S!Fi%y;Or^Z?);Wzr=9xwbiJs&T|bnk-W1J zs9#c5Nt%S|b4-X0b;s(cCBhwJ6QvGIAKzYz-mWoSS+In#c~>R2JiS6mPI3|%9$}1F zRq~aI`XnMy57>uUmL&#)9mS(uyPkcyhOg_S(*;W*4Umt|eQC84+Jx$WsG%;9Us632 z5pF3aj{3gIl_>kj;-xFkf3X%n{kIz!(N8%@S>zRD;H9rMiF}f;OhzP$BU-q$png`eP_8$rL0CDwF4zR6-HC%jPSS zxIhYbfoSI>GiCqeWykG(O+y}D_;MZI`=3_bGAV{v{ ziAvHHAMRxT#3v$1xq+s~i!nYnh2y_y*DaJHc;U5GSiia4A1X1_q@-7#l+1L?rxj(Q z?zl=^xhha$yEVfTgR!9qDqiv^m2uf zOt`94DkI~FEo_Dv1@ywxm?0B|D=o!$qeflzqX*9c9SOO5j(z zm-qYcwf#{O)@?3}2x*2gfa{f*L=!1GyoHp>H{nvKlL;0~KEY9|SVFniG;J*AGeF<_ zX^T#5{vN;+l7HA}cmE3|H8O-R^4iTHYQ`HRiZmp)Qzm&P*B`}%I+<)i!o(7a`n#Hy zd3fzl*5Jq+t$OI?5rPeoeEtvCps+YA9M)ta$wMcEMEas+;mtST#FZH0EM5@|b*f?| z%RvPQ#mZLAFodql!C-T!zZ1;ZR% z0>LLzIP4`Ml&ele^z!_)0d;F)h+771*%$7Ar50tCSvdBKHeC<(5Wt$}g;!Vc3V>j5 z%?oATtRt_Tf`J_NSlXsCvl;D0wgi;jB&qGma!Kqj=eByzv?^A|~nrs|@yIogo zE+DFHJ8|F(t58v$Gjk#(>AB6sCj|_+S*XG)}*90!!i@k@v$6!^^Eq=cej0(&JZ zmPP%r=YE#A@(Q&H_tbM$sB6r}$@e;Kb3UwDF-x#|?R|&pc=5kV9wLg_{3=N!FjTT| zL{b*}qM(Qmc`<~7+~W%yG6Z}So21|j)mVy3Rn_IepQu*E5Hw1zS3K zx2;6m_N)+U6WQfAjL1Y}xcnBgB2R2;KqgUgLP1p}H-(@U{gUXgN1b9i@Bi=zmBC5I z6l~M3ax`r$vcp~%E_|rhHi*NPrz?3_%gN1Jg75>C7him4G(sf4Xk7U61VQK#_EQ>&c3<=FR9E!J->#hKsU!L?8H z6B9hF-CT;No~`13Qw)C?YB8Hw2{7P|yc}W_k;oj06yceoNi;2?B<6^4mqesIS_zdh z+|T0S&iicFxKsA1*K8d8N&`0SEW##LOH1fmYZUq#h(BAVr`D?4aRWs zqh4J4xHm2GQ|uN#v7?+PAIqz9`TY$lkW3&Ez6|!)NJ5~8LnMVvvnG@XbKwxEWHdnn z+T?XlDgPR_v18uz0~Ph=Vs#exby;;b_OGbJ&gU!f>6t!UIoF52CHTbilJYF9-&Tsp zx0gGsk9Z^chB~q@8*DFBDPe6+8SS|fDdd@EOelBVaAozBU?x4_r$X`03)!wI50Z*c z0=1kl$jASfNw?4EUBkEw0p1welEyx zM-Ae-_nx6Ph#by>d%r4jI)l9sM2huHAwmVn!#xh2nV(9kQbDnDNyQ90JHdK=GC}$9 z4F5jZZ>r^kP~2we;wi$7(%A&*y3uwMYS7Y{))!h1rd z@7_9t$c;HVQ3Cf+BRGt;KP`a=JU8j-c`AOj z;q?Fwp=LZxG9_f9<__i5t}fuKpm|FMO-)*STKhoXI0pMCFnrJ6h8|#S_yO*ZPGS81 zBpysyn6$66rl?R=BSB!A29{+ccm_H%+eCJ*iQN1Q;M1&07*qoM6N<$f?G;0 A=l}o! diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIFloatingActionButtonScreenShotTest_test_fab_with_small_size.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIFloatingActionButtonScreenShotTest_test_fab_with_small_size.png deleted file mode 100644 index c83c2abb6883ff98ba3133d070142c0fafec0d44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6620 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 bqJ;hrJOHA-RhB}u00000NkvXXu0mjfX9ZlK diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIIconButtonScreenShotTest_ghostIconButton.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIIconButtonScreenShotTest_ghostIconButton.png deleted file mode 100644 index e704e45b3ff3df7bd1a310249f4df90fbdacf833..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 430 zcmV;f0a5;mP)LmrxcEc1NM!>H&cjhrqKM~N4!w@lbr|0IfwGIs9WLToskYa#`p|sxR~(H z^k$2)8A9hm;J0*dsAQK8H4{c?e) zG=;RiqsdfNRnRmIyq->Eu;8fU;Q-IOox7=E!BG}rF_bWpK|u{8n|_oq(vd!e<#`U< z&4&M;8p4XAaPNG>7FoWbVT+w8rZAriTF!nxqpoY0C41T^%hKy4)JuYFyq(Y9N4s7U z6lz!L*g&KxDi9fp5=4Tc29cm%_Ipwg2`bC7`2Nm^IEBkGNl=0kl%ND9C_xEIP=ewX YSHT3GrB^ExA^-pY07*qoM6N<$g2#Hr00000 diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIIconButtonScreenShotTest_outlineIconButton.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIIconButtonScreenShotTest_outlineIconButton.png deleted file mode 100644 index 0ce4fc4a42255381a1e938fd00969f06c7e5b988..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2212 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 Ef(1a2O8@`> diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIIconButtonScreenShotTest_secondaryIconButton.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIIconButtonScreenShotTest_secondaryIconButton.png deleted file mode 100644 index da93454161a88eb5e572c7bc46ae88dac91635b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1337 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 diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIToggleSwitchScreenShotTest_test_unchecked_state_with_disabled_status.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIToggleSwitchScreenShotTest_test_unchecked_state_with_disabled_status.png deleted file mode 100644 index f324ef9d0c76c7e0906993b95119d78e14a155af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2773 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 bqJ;hrJOHA-RhB}u00000NkvXXu0mjfX9ZlK diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIToggleSwitchScreenShotTest_test_unchecked_status.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUIToggleSwitchScreenShotTest_test_unchecked_status.png deleted file mode 100644 index a613fa8dbfe011ed9b0721fc2fa1602f6c9611ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3077 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 T=H03t00000NkvXXu0mjflZnd> diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUITopBarScreenShotTest_renderTopAppBarTextOnly.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUITopBarScreenShotTest_renderTopAppBarTextOnly.png deleted file mode 100644 index d3a6d23ebfb699fe82aaa6f314c3bc8642a8ab08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7754 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 Ca1`$V diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUITopBarScreenShotTest_renderTopAppBarTextWithIcon.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.TUITopBarScreenShotTest_renderTopAppBarTextWithIcon.png deleted file mode 100644 index d2b525b0539f1e8efacea28e610b65aa22a1efe5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7954 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 O00000V-q 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 literal 6032 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 diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIButtonScreenShotTest_ghostButtonTest.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIButtonScreenShotTest_ghostButtonTest.png index 40a286f8fd4c35b5f584ba6a0519de815ab8e05c..647b4444f7fd13f3668d590eb90212a85fbe6648 100644 GIT binary patch literal 5261 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 Kp1>d3h5rXW4ljTJ literal 5096 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 literal 9445 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 literal 12722 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 diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIFloatingActionButtonScreenShotTest_test_fab_with_regular_size.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIFloatingActionButtonScreenShotTest_test_fab_with_regular_size.png index 854a613527a93b6bcaf7a902f72eac96e17fcede..095b20d3d87ae04d59e84ddfff7d0f316e0c35e0 100644 GIT binary patch literal 6481 zcmV-X8LsAuP)nNkl4f?yOcJl1%|HCYq0#_Qwi>TaUZXg+?-nq*@% z8{Kt{iDx1)f)N)HMFkZ^2!enphl-*osK_w$x@)_-UcIX7u72}on8&=MexFbC&Uw7) z{?6}zR8==wwQ3CoC}{Yvye(d|zz-x}qKU`qd(_WLdp-yP?RoKP*#n(H5`Yc6b7VvZbz3TuO4`}ZZbZ7_c z)t;cs9t2(Y1oqvNV81R7dUPS^)zv}oy&Vw3ek%GWx=)C>PjcUdr!7Us&U`ZEBx|Z0)Uo!hX3@-LI22&8w{7!yzLl&>UOR;!efTbG)G-Oqn+%yAd zRW*dW>+O&D_SDiKg0L=h!;yVl9D1OGvHe_(>gyz+leZ+XH4ival)FjTO8}bdx@oZp1&0fTx-MT=}9I{gg@~T4@<-dnF$2>nB>7y^DFi9xr52~ z$3wYvE~?~QG|I1LEb%e(%>bLfpn4Kj!D4?XvqIozEp0%z&W$*Al!xhK+%V5`BX<}3 zk?jfz6frMo|ck?Lx?%c=iQkpBZaxc7x@v>i9p#o32tFmbS_>~FEJ^*mWUF0zVEcehf*rZ^fk zCi14ghf z3y#d-0rxSh0y#wR;t-B^xQ0Jko&wo}a~ck7mHtMf*-fC!XKxkCX1Udtvk9`5FI0B=$wj zkTuuE*y{qGbjX7Id*-k9@!RKpys^GE9jqz6^#R3I4>#Zs3w-?ZabZXulri=j)rwS) zQoApddht?N_NUS-OLKd|+!ITKO5|VCxp=5#_ut*@+PhZ>KS+FelFC#7;WuMolMl_fP+kn$FatHIdmkB7+x zYXjWzbS@7g*1>i~zkIeaEE;@Ve{vnh56t9_OOPuZWJpyTy@dd44cNT2Mr?W$HraqR zk3Gr|sV4dCzIZHd@0^{*?_LNjA+4z89|Sn>xAnMml8j z)hQzjG%5zzgoHvZj;6wBF#vjnUNnWq~O_8TQP3uHPyl>7P5Gl6krJlW825u0$lsJkA-WgJ?d?w2VZW) z+RXueabA0L?#y;v z5Vp|=c)JBQFTELCc*v*_Wbtsx#^|nk#8)OATD7${ZlUh2c{8QW$o_Hq56Z9Z0xVt@FT{7*f8{w?6l!&(ovB131qg;5x?cwVM%4=wa@^It7w z<*sWUsmG2+iVKdcYY}Y4^w$ib6RF95b0B;06(6_Gw2)Pbe)Q*^(F(7NCKL}_A+X}l zd4-Drv#S;3WEQf@(@isWM#~6QXA?tLCfJ&juX%+k%{XwyK=#C98!ju|+4jhge9p#3 z64=1JnBOKri~cP-U-Q%ovry8nPw!C&#pT8Za&NGSe^umcojL%=56|Qm2)V94<)5{z z#GrgJ`I=XFwYa_*BpyE1jrGZ{e$+x%ExPRY^?2k51Y-`&K!?f6%tHf*7|I)v?ymv+d7N@}b`P5D|PM>C%!1&J}tw1zC3=Ckl!dr+!XFR$^# z0--({h?kY9S{x8(UzsE!d-OFQ55H;$$g5p!AbxO92j`8iQ;GvOf36dC zx>$kshAA)8SB3NGJ^Eldo3wb-lNPdC5u0K(qPL6Tz4=sr?r3_xRw#sedQ(>In?aeV zNVRD{?D<=svK3~n>Bmp(#1ogh`Fu@p=90vU`B-}c3AoZ0^NLkVch2^)bfewzwWc@L z`M7=NPF#0VyWBGl*vY6&Av9ivdhw81Xm%{SUGPqT`{vu7UaPuiZUZJ9?Bd9SG6g~? zNzc)QtHp}~wP(g2|9rO1%W7S>J+%`vulAG>N(-J+Ov};ILZ&DN*z{Z700*J){4f@yP_5bUUCh9sr%1PQxM>;xz^3BxbA$W0n-lgFknBTjC;#7 zQ^pGet&b+oKW19&Yaz3W>ld>daMy)yZnS_G1}aagt9j`ST3HahxGKOi%k7S}(lztV zEY2L8#j!(VVGz}#hIWS+PyY3DlX2L7_kwjZE3RDn+|PxSD4^@rrED z&RQ1WjSY5(TAB6wdp@3gqYUIR{zPIH>> zYMu^PptU#HnW0x~vOChM>2^m`uI8z3CfrTH_QzN4PP8gc54_ZvaJ5|aFF=dC8Heq~ z)qx$)v?^L`9CY4Fa|N1j*v3zu#~wbu$nHF==INmYjrj^x^wb1b`BhLNT(bLY6kzU3 zyW^~yr)QUEvG!vh1A92Ji^GMECWe^=Z0!DD-n2W-s%84q>y5bXByMNw3I9AfzA48# zpIT~nm{rR(V{tYFO@>S%ZH6s_ZSG2T0WW(#S*w=mqir+{p^Z3xxNLRgih)3Lv}cxE z$gFlv>{zF~=4GR=cRbEz9EPK1Dl6hEJ_w``ii!n{_m+T@zd7 zKKt)koIHwOH=c!0PcXfLd`JIShbGZIt^y%yR<4w<5(8@py*ZQ~|%2+20ol7=W zQGT}l1ACOqK#ShX%4(agT@H@6b)|%ii8&injlssI zdFMhWu=-=`Xsxb}`}69z#$kJVQw}ut&)QF_tWjGIzfOk`v_q~BGvXWc=W7hM)gR?R z+pvY5P1~`KRtohwjjuaf{BJc28!HIbeUgQ@eoGY&JC)O~#EJm6u(5`nZQZ97-UnN& z@HZ>BGdM)f7TzwdP1x9J^KWvz1nCdbhV_ zyLB|1vz1n#eieeY^=s>BHfJlXKHnaK_GP`TI&IEYT5a1Ag0_99bu^o^l~&v90k6KX zMshSZIdbhEfW|Vce(E{_4PR6(Y&$~6yavAp9F2`PF1)-vAuA*XTi;WGeGaSW!@-tu zdVV!t(kbp}+up7`$nsA7dc}jr81qn#iaXjqV}Z_tIB=CDHv6MW7TS2O!-=c<9BuLw zd@aG&GK6jIgUK9?L3Z>5d=^NBi!tV9+$sbut?FdcsmpCjHLEz&AY(3E1*-E1ygf2N z)m5IA(i&utiR!XSA!A~Uc^%qS_`>1lIGTm5P1Lbn2wJE1K-DcyBNno9Qs+Iw(Ai~= z8mKxgWNoUh9YfIe-m?mSGh!htC+)LW2wJzjXa!}@73^p=3K>)PP9bRfb+(RXAuFwV zb`3$>zl+V$EM%os?{9>l_4!5>UW=1h$jV6v?Bj%>?M+bU0#!AOqa6Nr*tn{N40T=z z+P*FyRPW!7oqwZ>3W9R@RjPbgsaPGjw1{Yf!U{y96 zH$YzRI_GEvqx*)bO$VSVPmy4?+x3l(Bn+J{cxnb2I+?2-H6XyuWscoTR=cc;gLn}j zjLhQ?*pmT{9!Nvb>`t=Ubxj)VMdqb|#vx<3lLlw2Z`{+WP1+h$hs&^;F9rl`8P~z& z!2$lZ+=fr9mg}1#WEodN7UgJ;O*@3Und6Ai>2OD5u(1n| z@$l(`P4C|PrM*b3RrA%oGr^Q$8Hj-ZQEYlLj&et1FHRdlasSH}G^^%o`e@lZ6Kv(% z8>*u@4#g>l1R-d4r&%>$XN>itkjXY_V9F4bfGh|I`t3__?7 zn+usvWMHC~mLGx=F;x@?XN(C#&|JIstcun-hkJ>T84H~x44o1(b~|C9j}g5nmc4IX z&8lgQ>g(W`!EV0Ntb-#*gIhfG;uA`hLX z4il)5F#t~(PVxH%6e~Znu4a`kHeLIa(VkKONT#&VslT9Bp#&F>3vm4m>uOf%`lpF< zT$6`Pl7P*V1R~~Yyb5Km_ShndB^#})StWJo0S-uSKJDTiw1e&XH;3&Q` zA;4u1Sy!`4>IaiEd4m#eCYGUTgX-))yLgA$)kwYqojN4Ivn%XiyOk6h)0{X+pQWLX zaVj|)w>vc9Y6O=aLqpK)&b5-dVrp@2ri4zaxSCplB6^MGYW?;NaOp%J_q4yxqap>iPJ` z@d56C#TEv&sP7%)Vf;WZKg6WxXJ$9k+8e6WaZkN4;Lu%hT!6(J>^NwxX;dEv*G|hA zt4g(58+Wt3qp=q$rBGWPdb#Q-5OVmgKOw+5_u3FzOS);gJ_4X_>M5M!ZkC^q#vvm) z$m9pBvpR&EQR+nR8`3ktzfbe=(^(d_TF@=0XE3anrzQWU{LJKLxzGuiPbfwcAyh0h z;M`H1btuK^j{`im$mVO+tnk^?dnU9(8D~?8#{7Z*ThEOLO^OSA|r5dHU^)w$B-S6Uq ztroUw5<6}Ce|$^r{wHT=i0RrUz+yvC@tA6cMGQ|l8fkpgpj#*4XQv1F?gOq}qQ znVO@ieKZaZRcw$HfX$D7#&whKb@tc*e)#(B&sf+hNk2Np!};U&&VPKE$((~F;fjNo z>S+8SO?5btqlq!lxXwL1fa?UIv)M3ODNc6&crO8$?EE8jns%X(sW_TG?4-Jzd~B*n z1z-XAnU`U7w)URQ*(xC?JN;142$+COI-1$Jn(U+TI7{=nR=T^z9gY_YV#So>m|>5d&+;_i541`|6{|+? z`?inkpKxqbw@k#Fv0l`|NP{dsBcrLj%p`5Oo$6#}*mSVsBL@ODR*kZp&2`13IJu4N z6X1c1ecUj^wZm0yta1Gb?l{{+_s(uAU}=yQ%FCL_(ezNM!^S_*R2U>-Bl(<-&G6t~ zMEz1E8bP@CLW$9pT`{(=x`XKIRridOp?^WQidt9X44U@LSomO%@6& zY&2IOkX)aQD*vIJ{lQ+lVOoHJ-2?n|mW6G1>gMTU7KRh+lbIniRhZ4m%M$Gk9X44U z2-s9NONUJkS0$UeBv+kE{Xv3_Rb{b|6_b}W z89L*z#Q`hqY)HVSLML)Iwz`TpKRd_)N28Th2TT!ES@QgzVXY@vL55rc{S9HlzA3_6y-vD?G@1$g8VivN0n;_i9Y z-F8KnALrn*HvdZiMlAY8?S z$<~G}QFS&2Te9_G8lr+S@EV`5mUK4(p86brUOql?1lu@p55GpRw8q;ZtX*;bH~|=9 zr&>2xl=41MXzFz-ATw5-ErreGYNobFn!E8KEULJiqX5Ul>a;@`aKKAz0{m$)!Q8iN z3%JQc2+khsMAyQUi9XSieibhDWIe^ewW}?RqC#gHY$7x!VM7x|0-C5yrMpSUM0KjJ zoEN|axy8#ooE|lh;=NA;Jh_Bm<}!lKUsfkv-8%uNj3k&o#)(c7C7?2e#xxh(m1I8+ zvgX3)6>_mc)o6OLpo3M&)ns@j3S{c0em)0|uQ%nd_wPn=)l`Zrr%*iqHo__un6r|g zAzRsSMc2C=O7P8L1jh}P;ZfcaZRjX1|0*UAi%*y+1!P4P1I>X=1;0U zENn7|BMB!f>~4iZY4ZQlo4rB45zHZjHm=G~-4H~dGv)vqZDMl3(v84d9|9}FZS}_l zYd=BB;bTw@=ms3z9T?n`V0bSQRgUsZn<`xTY1CEN;$boVd}}27rGTvHhHbIEw&u87 zJe;PDtqO@IFRxHt<+V6;0y0M%_7Y)uRA1H}pxXbx{!@w#p8+3yPOxbkqQYX!SBS#y zm-WE*oj`pfzt+5;n}os^f3fS&x6c3_+X0>016{)Kx6htHx4nQKT?l%01^Vnw(06a5 rg((438bE1|r5^NR0c)#J8Q1><6>z#er|6-}00000NkvXXu0mjfs3NyY literal 6700 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 bf!O~8;xn-|%2rZf00000NkvXXu0mjfPyJWv literal 6521 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 Zeg|_UqJ9A;3$XwI002ovPDHLkV1kWGGYJ3y diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIIconButtonScreenShotTest_ghostIconButton.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIIconButtonScreenShotTest_ghostIconButton.png index 49e1657565d5f72a1018d912ff9849cf51ce339b..8ec43474522c259a1cf26a2d1600bd884772f0a3 100644 GIT binary patch literal 466 zcmV;@0WJQCP)3$T>D3C%rYJKeZLpX%CS^9 z7hxSvjoM+{^mrcY8M6=PdES@gn3W4hkK}${DR)?ACr+oPA9a$<@(B6&z8y!|iR88e zdL{>ivve#8M`KCJ5$>Pk%Cdy2svwFY_i&rdD?F`Mu$a#vj$^lQlgSn2c@FpKLw5>_ z;|q6iK@dQeWgvu*z*N0^z$H?GC<{suj3n?GM3O)%6J$sUqOF$u1h01qs<)7#JBYd! z1f$OcMS{{n^nDJqgGM%StPUDGpmfet|dS z#L#dGG#*E8enSbvu=|;~=+hqI2uC==5sq+#BOKufM>vPC55_>d`#I-qWB>pF07*qo IM6N<$g63n<+yDRo literal 446 zcmV;v0YUzWP)p8RGv ze*(U}zH1E{>}4O?eey14%7JuCqd_-cn?iR%{hTf;RUSy!4g0%r;+;y<^qUjI+|{Tg zNm@TN>#M&@IQ8*M5^RM7HVcPurw~o2Q2)P)_#yNCzG<-h=Wt zCcKf}Y*DsD=v)Z=Hr*?#yI}C1|Bmd&FOu~8y{7z?#Sg9eW((u$R0QJ(5mub2(BpSJ zogm9HcrbS~ohqveJ}(z|-tEX>!BJIN!sB8APv)kA1xH!L-e4$UBtbz9BTGL@7-^(; zVXNg5=Cc|9eaeTe)@%3M(6CW9-_WqpP840(kQ?;q$0Xz)6n?#&&n_%J%xPo0*$kS5 zYD|!Q5j`FbgGaj>6SNPsSE<-Qq$ny78Hy4_f}#eIpz@+11(BeNJdf{nKEx?}^2a1W o2})3c5|p3>B`84&N>H8p0uGF%ugtJcvH$=807*qoM6N<$g2^$;zW@LL diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIIconButtonScreenShotTest_outlineIconButton.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIIconButtonScreenShotTest_outlineIconButton.png index 668c3250a0c6b1ee76faf860073b6ac31368443b..e9802e676c527d934aa462b443de75efe9186d40 100644 GIT binary patch literal 2192 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 literal 1355 zcmV-R1+@B!P)_reXF9})xzpbvcs($D;sL6ig}M9~Nk!oP;aNgv4HiRAJIapte<=o{uS z_%DyYoqmi?1TpCozy}2wbsUNdIg~Ec;ZBz%?E}o#R7)&l6H1CQ z2Q=vQ`Wc)I{Em#;eZqr|Zg2Re&XBP&Jr@GvCMcDj|1=cirPK4s3f&&*GI0@DDn-|Ro#^Dsl z4meKpLEnDLi^IJ>G}n~ixyQ_NgW@>x4RAv0aU`m#!-f67coGjR4dwI-*tFM$-!Jgk zS!bOK6c_59g5x|DFF?0`1hhf+;DcX11i=h!e+BTG;%%YziN^v|cKBNyj0;vCF z6#ZBE2zSc@QApi`JZg41(D9lb6?Q`^sK~@LbI;)pqW)6?@@Ew!R%B0|XxG6v$`bZi z3>5VcCvnl;2GQmEulTd-a^kB5ql*IdZ>H}|{n>%a{r5iV1aePri{FIZE# zAMmx9O!u7fl2?)REpPO&Zx+V~540L-qDyCSb&2 zkX`Te`DslWscrcOKW?kU58Eo3fDwmbCNpc-5J5b({W4Q93F?oFH#BX8HJAj|e}&iF z*I9x|P?sEjCXp!?Y|Fk8e0kEX4b+G`z$}+Uf_>h&Sh}Y+m;^Q9W4kP?HJAj&2iUJQ z$AYPupd~1yp34eY^lFI8?zgaz6U%qDP)jQdq+nq&>G4YIRaGOQ1XXU)Go3@pK(u)9 z_}dp%5A71vU3LS`G00W1Ks2Vb$W;>5gSQ)T?5uBI04Y$9+KY1b~i zJE)GdsKS$p>?e+>C9+qaELI(grO19IP{^W%z>QVK_~JzVt^aKdEo8<)k=|Kr!MA6; zdA0PsNOU=}J1V3{ihOcMtrd;C$MOb>?6pPg-Y48&e14T#I^>ZL`XZzzB%! zN_OlZ0blFLyK&3cYvE)Svy9DA!AukUqcHF!`^NHm5rf{F|t zbbM`Vr;BMGTNFw&u~AMHC^_6$FDu0Rhulmm52_R>vD(r(MV3iJ)IdwU6%AEI`0V(k zCN4>?Mzx$=`lLNc%v97Mxg>2#(vdmZ@Vc2`LP3D$Lo|J`-Nebv{{at;Lh#r3((M2M N002ovPDHLkV1g%vlV|_{ diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIIconButtonScreenShotTest_secondaryIconButton.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIIconButtonScreenShotTest_secondaryIconButton.png index eacd476a402732a423cae8a8120f60882be4c188..13457618c2ff8a12aad4566795f45bf9519e5387 100644 GIT binary patch literal 1344 zcmV-G1;6@P`%P6@lg7H%DbmclIMQc7u|u+{UN@b)tLmfqgecK_r+%iHiizdo1q zoO52)$cQBX1Q1|9L%$ylX*8OA1|$*1hEu8H`=>6CA9wz9W76rtJ(m}A?7e&0kCnA` z+&I!}edd<}HP1=vwifL;0`R2xe0Sfvhn_CAepnjl{TaMKeUgQHLjg_{(f(ef-5lIQ-ui(hZp6HCMtG+UZ(R6o#kWc;`?9YFPnFz;p7Ik}mg-I&t#%VP5S- zcuP(btXO?nF^3yn*X5bZ$@ z=X9?Kt70NO$l(^3{X!>MQ6A)QKL5J#E<%I{IUL{g$$-d%$A9X>@eez>2Ni*%z57f6 z7H!MNN3XZ>*Wa)XMv<`87HHsESrZOMAz5S8aWKVluB^B~C|o$0l07GfGw2F2HMcAX zOcUX;9;N5G-Q`6>7OCX1PZSQtO>lJyo}Q$`W5RmN$E(V6zIe#OZ7vm69(-r#kTvDn%9no9bd`9k>2Yxx`xG!$}k2^2$2C>mJQouy;Gm+)mlvGL||w9)rk6KmzM* zs*2q>#{*bgsKJSgLs^l7lw%Z%`?q?6D3M;RlC?CaE{$fiic(di;t?&!l7^Ft3_T7( zPdj8{9;A8f;c}lgxbS(ft-*kwd#ysc8EUDh^9Y}y6@!yH8G34f4%g`nT8W06x_fGZ zrCu?qm3S(m8`GdOXgaDT$W(HYa*CiR$7$J;iv9-)?nID{c(Eq{0000 CiJH>@ literal 1339 zcmV-B1;qM^P)J7{~uNiECrEDRnwE>9)FR--xz_7CPtXT1Q72V_OS_e(A5ziJEpt8(_b!+ofg3=pefFhE^7M73* zGK*VIFa8-EhkeAa@FN`r9WY1V56_8L7;aw}T|++k8(YmL?A~02eU&95pdoW8y#18x_zKQPEp4Xgl4#+JXf-w6^r~edHDKLr>d2ZLDA*~Pbdk9=9;I^|D}3qXHX?3 zBU?-H2BMtOqE|7fP2$4p@4I8G0!W6cC@owyKr+-e^M+LeBty|I%y!ELO_m?Lfrvw1 zB<|f(tO?XdNB43Ak~m~2diL{et5fwse!Ax1x|}Bt8Hz&iptT$=HkYb{XfX>{64_52 zaa&}EcUe@2;wiFUE)hNj!xX7K5ViUQfEI89O#t+PIPqZ*(8d?%~G2#D-bI(D$=sU~`?PY;W~ zywsf)p-3S|9$N4m#ZqoWH#mK4H_kQNSG0IgQAm|T89~Js4?36E*w)Xrk5M0@vYlAv zRDqJp{ho><{CH!K%glpj3e;HBIz^VrKs3NRuT-JF+RPqFY7vqYYBZOVraoye5|>kj xC?x5TBpsQf2VTo5CR7AyJw(fgf@K^%{U4AZLe^{RF7yBZ002ovPDHLkV1lTdd$|Ar diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIToggleSwitchScreenShotTest_test_checked_state_with_disabled_status.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIToggleSwitchScreenShotTest_test_checked_state_with_disabled_status.png index 3b82b6c36444f70a638656de0cc99c52c5f52a68..df07dbd505d21eb0f9ea46709acd290cc0901f1e 100644 GIT binary patch literal 3143 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 literal 2792 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 literal 4451 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 diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIToggleSwitchScreenShotTest_test_unchecked_state_with_disabled_status.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIToggleSwitchScreenShotTest_test_unchecked_state_with_disabled_status.png index 4059624922a670f6b236a70253c146d32c20be30..614dad5bf7e30030d01ca8ac36920d401c819b5d 100644 GIT binary patch literal 2892 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 Zeg|_UqJ9A;3$XwI002ovPDHLkV1kWGGYJ3y diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIToggleSwitchScreenShotTest_test_unchecked_status.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIToggleSwitchScreenShotTest_test_unchecked_status.png index 258d84a00a5a5f3920f21db16189c32927faa982..0a1471ca1f38f00c263d1f6a440887e5f9073b0d 100644 GIT binary patch literal 2773 zcmV;`3M%!9P)z4P4H_X}1QP}pfD19ALZZOJ5QRh}5lI9lL1GLc1lbI@KunAV zPzeh_6HrNDqqyLa2u27a!)!nvn;AC31_E8qU)|MRT~pOnw_dk;`2W~WN1LJUt*_5H z_tv@R7=3;HmWU*5R>2%#J~NC^tOiayb$> z6y*yK!J%To16R~=M~?gQi*x9*C=WcPQpsg`3yzu(ugje~ zcjWHiUAcGfKY94@q5YXrqejWtu}{mmj&U+!!UUNzWr|FF_Boj`V}?94c{0gRaAQ() zW4XbTHaLHrJ}swz|4q)GIU~1k-wyr!g9i_WUIQ{XI3RsjuQvU^i4!Nv+%c|ktgx|PKE zgeOLXjYKobFNzxwf4XIhT)OmkVJ8VtU+e3W9Xoe2p!T`%W=Q;FhQ&E?ywzV9FG}~O zjfHSiVFKK%SG^}ayLQWqvu2SRx5o*If6P{YI8K~%{@giPzwSeOFQ#1t$k(oUU-s<% zO6GKRksMe2Q!;{6UClJz6)aA>f#V3*jBEe;n{R1>BDycre|4qqt`OtERe8bb>Y8J3 z+}*r+t5B2D+1V+RIw#86bLX1?!Wi}+_>M7<+XD^p;FnNl2AL~WAvpHNIHyjYkm=K> z+3z=O?3Tlaj}~G=R;*YiU+nI&-(R`XD~n!T+~mSAmLCosA~_!S6$($B)KM(Qy{oFZ zbGz!`K+et54bY0^4R9b_Bd+!A*>g=nG{(ebd~^Kk1<3SsSt`N?px-{uty{z0lx~3B z7ANdlF{ars&E`g;iwm#oGMhi3W_9q$0XxTjLW~1f<-J+D015(U!-np_cno8kzhEIB zWz=Jz=AGwecobJycvjVFFUJ8yH$Z{lAPzfnwB-^WW8D177Mh+KA0^ky%XE{aVs-Fz zJjz2(-2i!G9Jj@31&$+(5h)#f8sA{V@WP`S>maQns&oMq*W&n%b^DIbX?kj$IJ?db z%cEd+u&1M%kCQh*tzsM%a3G9z%?E3__v3J4xGayV%R&ZV9OVU2S{BDU=8rdSB0MhF zRfk7KNF9xCT1pF`EG0sDZztPR+Mv9c>Pa9dp1{ zR~??{@eWRMW}&zMU99?rTV&KtcAF1|-2Nk*UJd+i)stQ}iXDQ496$2iWazjO~ zB7ma{Aj|<(gU3+t45$H!Qf|7yL5$OC6_y7;m;=g{k`YxX9_g(Cm^wHSpH=As2y;Ni zuso|ZI!O@vipY;v7GabX_wp6R|pg=Zi9P6|=x&Xr1DbH$4C1^%v z^)%o~J0B+xfG~E-b7B;k@KGy)Apsnf)svi{$SNNvOMozDCcjtZoL4tR)Y~hgBtNRE z>xgl50faGAK9}%p&vR8-0E98J zHqUUE)dY{~stZE*7&HM1st%^}ltUT-b&MZxkCAF#W%4`Y*%ZY)|cBqIAYTe6muBz1CRb+UK+AoURs1`Q|-D8T<8ryMGY>nL-oG5oY(zz|H zzAPhtZ*|-xbdNz3kSP5svJ{?G;gJJ(j)UWzQpC?jKJ-_vowBIJyeQl(bdNz^40<`J zwjW3;q*dVQI3IGhHWFop2v_OEsO<->_y9q;d1wNHUJfY9kIL#vi-HHbr;ZLg0}#M6 zAdUczq2^kYORS^;kP}d&96w&Dtd0WNsB@h3SPzcJ;FJTB)tPgg9XPSzNfRJPxXI3q zMxA4nt3}mO6pus=K$LPrMJ}hX63U#QS_O&@;Osb#0OKSl4&>3oFHX~aTSJ*A@} zv_!c>Q=9)Rm3bZJ>a!Bd-V>_Oowc>4$sHc|stf}IJhmmGOG^zHqxJ>Od&9)kF<3j| zHyUl0X_4Yt81D&A8R_s0`_@R~B%)P+RmpOIvYt>t>OYNY4M5$n6bhaon51TzsA9|H z6i|eRB0Ln~p$HE}5gv;0P=tpfJQU%fD8fS#9*Xc#gomOC4@Gz=!b1@rittbr;h_i* b)eia}TYbJecJ3gM00000NkvXXu0mjfwnY~H literal 2657 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 P00000NkvXXu0mjf5}(|P diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUITopBarScreenShotTest_renderTopAppBarTextOnly.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUITopBarScreenShotTest_renderTopAppBarTextOnly.png index d57d0acef15e46c8d1885b577a55ce89a3f80fee..b825341d80b023f50c8d5f36e3e30588c7bbd5b1 100644 GIT binary patch literal 7765 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 NGgTdx^2gS%{|6o6^fUkf literal 7444 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 Yu9#DODMUsLV7)9lnuZ#ck6yg}FYQ%i{{R30 diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUITopBarScreenShotTest_renderTopAppBarTextWithIcon.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUITopBarScreenShotTest_renderTopAppBarTextWithIcon.png index 2d2b0103a9f8a0711d9b5d2a43f83b74289438aa..39ee99abcb9089d8a7ef1a55181867aedc969659 100644 GIT binary patch literal 8031 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 literal 7659 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 From 93011137b347d010a758a6d8aa305f1a1ecdd1af Mon Sep 17 00:00:00 2001 From: AskNilesh Date: Wed, 31 May 2023 09:57:30 +0530 Subject: [PATCH 102/571] - Removed test from Topbar and used content description as test tag --- .../com/tarkalabs/uicomponents/TopBarTest.kt | 8 ++------ .../uicomponents/components/TopBar.kt | 19 +++++++------------ 2 files changed, 9 insertions(+), 18 deletions(-) diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TopBarTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TopBarTest.kt index 404f1338..1726a96d 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TopBarTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TopBarTest.kt @@ -16,7 +16,6 @@ import org.mockito.kotlin.verify class TopBarTest { @get:Rule val composeTestRule = createComposeRule() - private val NAVIGATION_ICON_TAG = "NAVIGATION_ICON_TAG" private val SEARCH_ICON_TAG = "SEARCH_ICON_TAG" private val MENU_ONE_ICON_TAG = "MENU_ONE_ICON_TAG" private val MENU_TWO_ICON_TAG = "MENU_TWO_ICON_TAG" @@ -31,7 +30,6 @@ class TopBarTest { menuItemIconOne = TarkaIcons.ChevronRight, menuItemIconTwo = TarkaIcons.ChevronRight, menuItemIconThree = TarkaIcons.ChevronRight, - navigationIconTestTag = NAVIGATION_ICON_TAG, searchIconTestTag = SEARCH_ICON_TAG, menuItemOneTestTag = MENU_ONE_ICON_TAG, menuItemTwoTestTag = MENU_TWO_ICON_TAG, @@ -40,7 +38,7 @@ class TopBarTest { } composeTestRule.onNodeWithText("title").assertIsDisplayed() - composeTestRule.onNodeWithTag(NAVIGATION_ICON_TAG).assertIsDisplayed() + composeTestRule.onNodeWithTag(TarkaIcons.ChevronRight.contentDescription).assertIsDisplayed() composeTestRule.onNodeWithTag(SEARCH_ICON_TAG).assertIsDisplayed() composeTestRule.onNodeWithTag(MENU_ONE_ICON_TAG).assertIsDisplayed() composeTestRule.onNodeWithTag(MENU_TWO_ICON_TAG).assertIsDisplayed() @@ -53,7 +51,6 @@ class TopBarTest { title = "title", navigationIcon = TarkaIcons.ChevronRight, searchIcon = TarkaIcons.Search, - navigationIconTestTag = NAVIGATION_ICON_TAG, searchIconTestTag = SEARCH_ICON_TAG, ) @@ -78,7 +75,6 @@ class TopBarTest { menuItemIconTwo = TarkaIcons.ChevronRight, menuItemIconThree = TarkaIcons.ChevronRight, - navigationIconTestTag = NAVIGATION_ICON_TAG, searchIconTestTag = SEARCH_ICON_TAG, menuItemOneTestTag = MENU_ONE_ICON_TAG, @@ -91,7 +87,7 @@ class TopBarTest { ) } - composeTestRule.onNodeWithTag(NAVIGATION_ICON_TAG).performClick() + composeTestRule.onNodeWithTag(TarkaIcons.ChevronRight.contentDescription).performClick() composeTestRule.onNodeWithTag(MENU_ONE_ICON_TAG).performClick() composeTestRule.onNodeWithTag(MENU_TWO_ICON_TAG).performClick() composeTestRule.onNodeWithTag(MENU_THREE_ICON_TAG).performClick() diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TopBar.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TopBar.kt index d275d9d4..51a145ee 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TopBar.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TopBar.kt @@ -17,6 +17,7 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.platform.testTag import androidx.compose.ui.res.painterResource +import com.tarkalabs.uicomponents.components.IconButtonStyle.GHOST import com.tarkalabs.uicomponents.models.TarkaIcon import com.tarkalabs.uicomponents.theme.TUITheme @@ -36,7 +37,6 @@ import com.tarkalabs.uicomponents.theme.TUITheme * @param onSearchQuery The callback function to be called when a search query is entered. * @param colors The colors to be applied to the top app bar. * @param scrollBehavior The scroll behavior to be applied to the top app bar. - * @param navigationIconTestTag The test tag for the navigation icon. * @param searchIconTestTag The test tag for the search icon. * @param menuItemOneTestTag The test tag for the first menu item icon. * @param menuItemTwoTestTag The test tag for the second menu item icon. @@ -56,7 +56,6 @@ onThirdMenuItemClicked = { /* Handle third menu item click */ }, onSearchQuery = { query -> /* Handle search query */ }, colors = TopAppBarColors(/* Specify custom colors if needed */), scrollBehavior = TopAppBarScrollBehavior.ScrollOnAppBarScroll, // Optional: Specify scroll behavior -navigationIconTestTag = "navigation_icon", searchIconTestTag = "search_icon", // Optional: pass test tag for android ui test menuItemOneTestTag = "menu_item_1", // Optional: pass test tag for android ui test menuItemTwoTestTag = "menu_item_2", // Optional: pass test tag for android ui test @@ -79,7 +78,6 @@ menuItemThreeTestTag = "menu_item_3" // Optional: pass test tag for android ui t containerColor = TUITheme.colors.surface ), scrollBehavior: TopAppBarScrollBehavior? = null, - navigationIconTestTag: String = "", searchIconTestTag: String = "", menuItemOneTestTag: String = "", menuItemTwoTestTag: String = "", @@ -100,15 +98,12 @@ menuItemThreeTestTag = "menu_item_3" // Optional: pass test tag for android ui t }, navigationIcon = { if (navigationIcon != null) { - IconButton( - onClick = onNavigationIconClick, - modifier = Modifier.testTag(navigationIconTestTag) - ) { - Icon( - painter = painterResource(id = navigationIcon.iconRes), - contentDescription = "Back arrow" - ) - } + TUIIconButton( + onIconClick = onNavigationIconClick, + icon = navigationIcon, + testTag = navigationIcon.contentDescription, + iconButtonStyle = GHOST + ) } }, actions = { From b79322c28fd8238c2bf27ae5ee5efb25ad479e71 Mon Sep 17 00:00:00 2001 From: AskNilesh Date: Wed, 31 May 2023 13:34:14 +0530 Subject: [PATCH 103/571] - Update Topbar UI --- .../tarkalabs/ui/UIComponentListActivity.kt | 15 +++- .../com/tarkalabs/uicomponents/TopBarTest.kt | 49 ++++-------- .../uicomponents/components/TopBar.kt | 78 ++++++------------- 3 files changed, 52 insertions(+), 90 deletions(-) diff --git a/example/src/main/java/com/tarkalabs/ui/UIComponentListActivity.kt b/example/src/main/java/com/tarkalabs/ui/UIComponentListActivity.kt index 42c1f784..7d2cc693 100644 --- a/example/src/main/java/com/tarkalabs/ui/UIComponentListActivity.kt +++ b/example/src/main/java/com/tarkalabs/ui/UIComponentListActivity.kt @@ -3,17 +3,26 @@ package com.tarkalabs.ui import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent -import com.tarkalabs.uicomponents.components.BadgeSize -import com.tarkalabs.uicomponents.components.TUIBadge +import androidx.compose.material3.ExperimentalMaterial3Api +import com.tarkalabs.uicomponents.components.TopBar +import com.tarkalabs.uicomponents.models.TarkaIcons import com.tarkalabs.uicomponents.theme.TUITheme class UIComponentListActivity : ComponentActivity() { + @OptIn(ExperimentalMaterial3Api::class) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { TUITheme { - TUIBadge(count = 2, badgeSize = BadgeSize.M) + TopBar( + title = "Setting Screen", + navigationIcon = TarkaIcons.ChevronRight, + onNavigationIconClick = {}, + menuItemIconOne = TarkaIcons.ChevronRight, + menuItemIconTwo = TarkaIcons.Copy, + menuItemIconThree = TarkaIcons.Delete + ) } } } diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TopBarTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TopBarTest.kt index 1726a96d..b213784c 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TopBarTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TopBarTest.kt @@ -16,33 +16,24 @@ import org.mockito.kotlin.verify class TopBarTest { @get:Rule val composeTestRule = createComposeRule() - private val SEARCH_ICON_TAG = "SEARCH_ICON_TAG" - private val MENU_ONE_ICON_TAG = "MENU_ONE_ICON_TAG" - private val MENU_TWO_ICON_TAG = "MENU_TWO_ICON_TAG" - private val MENU_THREE_ICON_TAG = "MENU_THREE_ICON_TAG" - @OptIn(ExperimentalMaterial3Api::class) @Test fun visibilityTest() { composeTestRule.setContent { TopBar( title = "title", navigationIcon = TarkaIcons.ChevronRight, searchIcon = TarkaIcons.Search, - menuItemIconOne = TarkaIcons.ChevronRight, - menuItemIconTwo = TarkaIcons.ChevronRight, - menuItemIconThree = TarkaIcons.ChevronRight, - searchIconTestTag = SEARCH_ICON_TAG, - menuItemOneTestTag = MENU_ONE_ICON_TAG, - menuItemTwoTestTag = MENU_TWO_ICON_TAG, - menuItemThreeTestTag = MENU_THREE_ICON_TAG, + menuItemIconOne = TarkaIcons.CheckMark, + menuItemIconTwo = TarkaIcons.Delete, + menuItemIconThree = TarkaIcons.ArrowCounterClockWise, ) } composeTestRule.onNodeWithText("title").assertIsDisplayed() composeTestRule.onNodeWithTag(TarkaIcons.ChevronRight.contentDescription).assertIsDisplayed() - composeTestRule.onNodeWithTag(SEARCH_ICON_TAG).assertIsDisplayed() - composeTestRule.onNodeWithTag(MENU_ONE_ICON_TAG).assertIsDisplayed() - composeTestRule.onNodeWithTag(MENU_TWO_ICON_TAG).assertIsDisplayed() - composeTestRule.onNodeWithTag(MENU_THREE_ICON_TAG).assertIsDisplayed() + composeTestRule.onNodeWithTag(TarkaIcons.CheckMark.contentDescription).assertIsDisplayed() + composeTestRule.onNodeWithTag(TarkaIcons.Delete.contentDescription).assertIsDisplayed() + composeTestRule.onNodeWithTag(TarkaIcons.ArrowCounterClockWise.contentDescription).assertIsDisplayed() + composeTestRule.onNodeWithTag(TarkaIcons.Search.contentDescription).assertIsDisplayed() } @OptIn(ExperimentalMaterial3Api::class) @Test fun topBarSearchIconDisplayed() { @@ -50,13 +41,10 @@ class TopBarTest { TopBar( title = "title", navigationIcon = TarkaIcons.ChevronRight, - searchIcon = TarkaIcons.Search, - searchIconTestTag = SEARCH_ICON_TAG, - - ) + searchIcon = TarkaIcons.Search,) } - composeTestRule.onNodeWithTag(SEARCH_ICON_TAG).assertIsDisplayed() + composeTestRule.onNodeWithTag(TarkaIcons.ChevronRight.contentDescription).assertIsDisplayed() } @OptIn(ExperimentalMaterial3Api::class) @Test fun clickEventTest() { @@ -70,16 +58,9 @@ class TopBarTest { title = "title", navigationIcon = TarkaIcons.ChevronRight, searchIcon = TarkaIcons.Search, - - menuItemIconOne = TarkaIcons.ChevronRight, - menuItemIconTwo = TarkaIcons.ChevronRight, - menuItemIconThree = TarkaIcons.ChevronRight, - - searchIconTestTag = SEARCH_ICON_TAG, - - menuItemOneTestTag = MENU_ONE_ICON_TAG, - menuItemTwoTestTag = MENU_TWO_ICON_TAG, - menuItemThreeTestTag = MENU_THREE_ICON_TAG, + menuItemIconOne = TarkaIcons.Copy, + menuItemIconTwo = TarkaIcons.Delete, + menuItemIconThree = TarkaIcons.ArrowExport, onNavigationIconClick = onNavigationIconClick, onFirstMenuItemClicked = onFirstMenuItemClicked, onSecondMenuItemClicked = onSecondMenuItemClicked, @@ -88,9 +69,9 @@ class TopBarTest { } composeTestRule.onNodeWithTag(TarkaIcons.ChevronRight.contentDescription).performClick() - composeTestRule.onNodeWithTag(MENU_ONE_ICON_TAG).performClick() - composeTestRule.onNodeWithTag(MENU_TWO_ICON_TAG).performClick() - composeTestRule.onNodeWithTag(MENU_THREE_ICON_TAG).performClick() + composeTestRule.onNodeWithTag( TarkaIcons.Copy.contentDescription).performClick() + composeTestRule.onNodeWithTag( TarkaIcons.Delete.contentDescription).performClick() + composeTestRule.onNodeWithTag(TarkaIcons.ArrowExport.contentDescription).performClick() verify(onNavigationIconClick).invoke() verify(onFirstMenuItemClicked).invoke() diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TopBar.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TopBar.kt index 51a145ee..bd9402b3 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TopBar.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TopBar.kt @@ -2,8 +2,6 @@ package com.tarkalabs.uicomponents.components import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.material3.ExperimentalMaterial3Api -import androidx.compose.material3.Icon -import androidx.compose.material3.IconButton import androidx.compose.material3.Text import androidx.compose.material3.TopAppBar import androidx.compose.material3.TopAppBarColors @@ -15,8 +13,6 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier -import androidx.compose.ui.platform.testTag -import androidx.compose.ui.res.painterResource import com.tarkalabs.uicomponents.components.IconButtonStyle.GHOST import com.tarkalabs.uicomponents.models.TarkaIcon import com.tarkalabs.uicomponents.theme.TUITheme @@ -37,10 +33,6 @@ import com.tarkalabs.uicomponents.theme.TUITheme * @param onSearchQuery The callback function to be called when a search query is entered. * @param colors The colors to be applied to the top app bar. * @param scrollBehavior The scroll behavior to be applied to the top app bar. - * @param searchIconTestTag The test tag for the search icon. - * @param menuItemOneTestTag The test tag for the first menu item icon. - * @param menuItemTwoTestTag The test tag for the second menu item icon. - * @param menuItemThreeTestTag The test tag for the third menu item icon. * How to use TopBar() TopBar( title = "My App", @@ -56,10 +48,6 @@ onThirdMenuItemClicked = { /* Handle third menu item click */ }, onSearchQuery = { query -> /* Handle search query */ }, colors = TopAppBarColors(/* Specify custom colors if needed */), scrollBehavior = TopAppBarScrollBehavior.ScrollOnAppBarScroll, // Optional: Specify scroll behavior -searchIconTestTag = "search_icon", // Optional: pass test tag for android ui test -menuItemOneTestTag = "menu_item_1", // Optional: pass test tag for android ui test -menuItemTwoTestTag = "menu_item_2", // Optional: pass test tag for android ui test -menuItemThreeTestTag = "menu_item_3" // Optional: pass test tag for android ui test ) */ @OptIn(ExperimentalMaterial3Api::class) @Composable fun TopBar( @@ -78,10 +66,6 @@ menuItemThreeTestTag = "menu_item_3" // Optional: pass test tag for android ui t containerColor = TUITheme.colors.surface ), scrollBehavior: TopAppBarScrollBehavior? = null, - searchIconTestTag: String = "", - menuItemOneTestTag: String = "", - menuItemTwoTestTag: String = "", - menuItemThreeTestTag: String = "", ) { var showSearchBar by remember { @@ -108,53 +92,41 @@ menuItemThreeTestTag = "menu_item_3" // Optional: pass test tag for android ui t }, actions = { if (searchIcon != null) { - IconButton( - onClick = { + TUIIconButton( + icon = searchIcon, + testTag = searchIcon.contentDescription, + iconButtonStyle = GHOST, onIconClick = { showSearchBar = true - }, - modifier = Modifier.testTag(searchIconTestTag) - ) { - Icon( - painter = painterResource(id = searchIcon.iconRes), - contentDescription = searchIcon.contentDescription - ) - } + } + ) } if (menuItemIconThree != null) { - IconButton( - onClick = onThirdMenuItemClicked, - modifier = Modifier.testTag(menuItemThreeTestTag) - ) { - Icon( - painter = painterResource(id = menuItemIconThree.iconRes), - contentDescription = "Menu Item three" - ) - } + TUIIconButton( + icon = menuItemIconThree, + testTag = menuItemIconThree.contentDescription, + iconButtonStyle = GHOST, + onIconClick = onThirdMenuItemClicked + ) + } if (menuItemIconTwo != null) { - IconButton( - onClick = onSecondMenuItemClicked, - modifier = Modifier.testTag(menuItemTwoTestTag) - ) { - Icon( - painter = painterResource(id = menuItemIconTwo.iconRes), - contentDescription = menuItemIconTwo.contentDescription - ) - } + TUIIconButton( + onIconClick = onSecondMenuItemClicked, + icon = menuItemIconTwo, + testTag = menuItemIconTwo.contentDescription, + iconButtonStyle = GHOST, + ) } if (menuItemIconOne != null) { - IconButton( - onClick = onFirstMenuItemClicked, - modifier = Modifier.testTag(menuItemOneTestTag) - ) { - Icon( - painter = painterResource(id = menuItemIconOne.iconRes), - contentDescription = menuItemIconOne.contentDescription - ) - } + TUIIconButton( + onIconClick = onFirstMenuItemClicked, + testTag = menuItemIconOne.contentDescription, + icon = menuItemIconOne, + iconButtonStyle = GHOST, + ) } }, From 7a1cd2f391fcb1e49abafaa2b03c2406a569b75c Mon Sep 17 00:00:00 2001 From: Raja Jawahar Date: Wed, 31 May 2023 14:34:19 +0530 Subject: [PATCH 104/571] Version bumped to 0.2-alpha --- tarkaui/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tarkaui/build.gradle.kts b/tarkaui/build.gradle.kts index 63d13855..9b562ca1 100644 --- a/tarkaui/build.gradle.kts +++ b/tarkaui/build.gradle.kts @@ -63,7 +63,7 @@ publishing { run { groupId = "com.tarkalabs" artifactId = getLibraryArtifactId() - version = "0.1-alpha" + version = "0.2-alpha" artifact("$buildDir/outputs/aar/${getLibraryArtifactId()}-release.aar") } } From 174c9f5026c0c9b01c888df9d6d63ba377f0dd0c Mon Sep 17 00:00:00 2001 From: AskNilesh Date: Wed, 31 May 2023 17:29:14 +0530 Subject: [PATCH 105/571] - Fixed color code issue --- .../src/main/java/com/tarkalabs/uicomponents/theme/Color.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Color.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Color.kt index 45d29d62..5edac577 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Color.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Color.kt @@ -64,11 +64,11 @@ val lightColors = TUIColors( onTertiaryAlt = Color(0xFF530953), success = Color(0xFF148F47), onSuccess = Color(0xFFF2FDF6), - onSuccess10 = Color(0xFF148F47).copy(alpha = 0.10f), - onSuccess20 = Color(0xFF148F47).copy(alpha = 0.20f), + onSuccess10 = Color(0xFFF2FDF6).copy(alpha = 0.10f), + onSuccess20 = Color(0xFFF2FDF6).copy(alpha = 0.20f), error = Color(0xFFCD1D32), onError = Color(0xFFFEFBFB), - onError10 = Color(0xFFCD1D32).copy(alpha = 0.10f), + onError10 = Color(0xFFFEFBFB).copy(alpha = 0.10f), warning = Color(0xFFFFB938), onWarning = Color(0xFF241D0F), onWarning10 = Color(0xFF241D0F).copy(alpha = 0.10f), From 595e098dd9da9a93bffb7f4c9ae33094afd4f001 Mon Sep 17 00:00:00 2001 From: AskNilesh Date: Wed, 31 May 2023 17:59:59 +0530 Subject: [PATCH 106/571] - Color name renaming --- .../com/tarkalabs/uicomponents/theme/Color.kt | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Color.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Color.kt index 5edac577..8fac877b 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Color.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/theme/Color.kt @@ -20,14 +20,14 @@ open class TUIColors( val onTertiaryAlt: Color, val success: Color, val onSuccess: Color, - val onSuccess10: Color, - val onSuccess20: Color, + val success10: Color, + val success20: Color, val error: Color, val onError: Color, - val onError10: Color, + val error10: Color, val warning: Color, val onWarning: Color, - val onWarning10: Color, + val warning10: Color, val background: Color, val onBackground: Color, val utilityOutline: Color, @@ -64,14 +64,14 @@ val lightColors = TUIColors( onTertiaryAlt = Color(0xFF530953), success = Color(0xFF148F47), onSuccess = Color(0xFFF2FDF6), - onSuccess10 = Color(0xFFF2FDF6).copy(alpha = 0.10f), - onSuccess20 = Color(0xFFF2FDF6).copy(alpha = 0.20f), + success10 = Color(0xFFF2FDF6).copy(alpha = 0.10f), + success20 = Color(0xFFF2FDF6).copy(alpha = 0.20f), error = Color(0xFFCD1D32), onError = Color(0xFFFEFBFB), - onError10 = Color(0xFFFEFBFB).copy(alpha = 0.10f), + error10 = Color(0xFFFEFBFB).copy(alpha = 0.10f), warning = Color(0xFFFFB938), onWarning = Color(0xFF241D0F), - onWarning10 = Color(0xFF241D0F).copy(alpha = 0.10f), + warning10 = Color(0xFF241D0F).copy(alpha = 0.10f), background = Color(0xFFECECEC), onBackground = Color(0xFF171B21), utilityOutline = Color(0xFF878B92), @@ -104,14 +104,14 @@ val darkColors = TUIColors( onTertiaryAlt = Color(0xFFFFD6FF), success = Color(0xFF55E792), onSuccess = Color(0xFF003817), - onSuccess10 = Color(0xFF003817).copy(alpha = 0.10f), - onSuccess20 = Color(0xFF003817).copy(alpha = 0.20f), + success10 = Color(0xFF003817).copy(alpha = 0.10f), + success20 = Color(0xFF003817).copy(alpha = 0.20f), error = Color(0xFFD42136), onError = Color(0xFFFFFAFA), - onError10 = Color(0xFFFFFAFA).copy(alpha = 0.10f), + error10 = Color(0xFFFFFAFA).copy(alpha = 0.10f), warning = Color(0xFFFFB938), onWarning = Color(0xFF241D0F), - onWarning10 = Color(0xFF241D0F).copy(alpha = 0.10f), + warning10 = Color(0xFF241D0F).copy(alpha = 0.10f), background = Color(0xFF0F1115), onBackground = Color(0xFFF0F2F4), utilityOutline = Color(0xFF878B92), From f08d1bf92de8325f62ac0e9acac540d35f776d75 Mon Sep 17 00:00:00 2001 From: Raja Jawahar Date: Wed, 31 May 2023 19:22:57 +0530 Subject: [PATCH 107/571] Code optimisation --- .../TUIFloatingActionButtonScreenShotTest.kt | 3 -- .../uicomponents/components/TUIBadge.kt | 4 +- .../components/TUIFloatingActionButton.kt | 3 +- .../uicomponents/components/TUIIconButton.kt | 11 ++-- .../uicomponents/components/TUITextRow.kt | 5 +- .../components/TUIToggleSwitch.kt | 54 ++++++++++--------- 6 files changed, 38 insertions(+), 42 deletions(-) diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIFloatingActionButtonScreenShotTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIFloatingActionButtonScreenShotTest.kt index 51b91412..8ad184a8 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIFloatingActionButtonScreenShotTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIFloatingActionButtonScreenShotTest.kt @@ -1,14 +1,11 @@ package com.tarkalabs.uicomponents.screenshots -import androidx.compose.ui.test.junit4.createComposeRule -import com.karumi.shot.ScreenshotTest import com.tarkalabs.uicomponents.components.FloatingActionButtonSize.L import com.tarkalabs.uicomponents.components.FloatingActionButtonSize.R import com.tarkalabs.uicomponents.components.FloatingActionButtonSize.S import com.tarkalabs.uicomponents.components.TUIFloatingActionButton import com.tarkalabs.uicomponents.components.TUIToggleSwitch import com.tarkalabs.uicomponents.models.TarkaIcons -import org.junit.Rule import org.junit.Test import org.junit.runner.RunWith import org.junit.runners.JUnit4 diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIBadge.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIBadge.kt index c1053ac5..92eddad4 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIBadge.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIBadge.kt @@ -28,7 +28,7 @@ enum class BadgeSize(val size: Dp) { * @param badgeSize The height size of the badge. Default is [BadgeSize.M]. * @param testTag The test tag for the TUIBadge. * - * How to use TKButton() composable function + * How to use TUIBadge() composable function * TUIBadge(count = 3,badgeSize = M) * */ @@ -66,5 +66,5 @@ enum class BadgeSize(val size: Dp) { } @Preview(showBackground = true) @Composable fun BadgePreview() { - TUIBadge(count = 4440440, badgeSize = M) + TUIBadge(count = 40, badgeSize = M) } diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIFloatingActionButton.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIFloatingActionButton.kt index 36c9e751..6d945aa4 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIFloatingActionButton.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIFloatingActionButton.kt @@ -32,7 +32,7 @@ enum class FloatingActionButtonSize(val size: Dp) { /** * Below TUIFloatingActionButton() defines a reusable composable function which can be used to create an FAB with various styles and sizes which takes several parameters such as - * @param fabSize The size of the FAB. Default is [FloatingActionButtonSize.M]. + * @param fabSize The size of the FAB. Default is [FloatingActionButtonSize.S]. * @param icon The icon of the button. It should be TarkIcon * @param onClick The callback function to be executed when the button is clicked. * @param testTag The test tag for the TUIFloatingActionButton. @@ -55,6 +55,7 @@ enum class FloatingActionButtonSize(val size: Dp) { FloatingActionButton( onClick = onClick, containerColor = TUITheme.colors.primary, + contentColor = TUITheme.colors.onPrimary, shape = CircleShape, modifier = Modifier .defaultMinSize(minHeight = fabSize.size, minWidth = fabSize.size) diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIIconButton.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIIconButton.kt index 99b5db49..618f0a68 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIIconButton.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIIconButton.kt @@ -68,16 +68,14 @@ enum class IconButtonStyle { * @param iconButtonStyle The style of the button, which can be one of the values of the IconButtonStyle enum. * @param enabled Whether the button is clickable or not. * @param onIconClick A callback function that is invoked when the button is clicked. - * @param tag The test tag for the TUIButton. + * @param testTag The test tag for the TUIButton. * The function calculates the size of the icon based on the buttonSize parameter and sets the colors of the button * * How to use IconButton() composable function * -IconButton( -icon = TarkaIcons.ChevronRight, -buttonSize = IconButtonSize.XS, -iconButtonStyle = IconButtonStyle.OUTLINE, -) + * IconButton(icon = TarkaIcons.ChevronRight, + * buttonSize = IconButtonSize.XS, + * iconButtonStyle = IconButtonStyle.OUTLINE) * */ @Composable fun TUIIconButton( @@ -99,6 +97,7 @@ iconButtonStyle = IconButtonStyle.OUTLINE, XS, S, M -> Modifier .height(12.dp) .width(12.dp) + L, XL -> Modifier .size(24.dp) .size(24.dp) diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUITextRow.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUITextRow.kt index 037655bd..5865ca0c 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUITextRow.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUITextRow.kt @@ -9,9 +9,6 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width -import androidx.compose.material3.Icon -import androidx.compose.material3.IconButton -import androidx.compose.material3.MaterialTheme import androidx.compose.material3.OutlinedButton import androidx.compose.material3.Text import androidx.compose.runtime.Composable @@ -42,7 +39,7 @@ import com.tarkalabs.uicomponents.theme.TUITheme * @param onInfoIconClick: The callback function when the info icon is clicked. * @param onTextRowClick: The callback function when the text row is clicked. * @param paddingValues: The padding values to apply to the row. - * @param iconOneTestTag: The test tag for the first icon. + * @param testTag: The test tag for the first icon. * * The TUITextRow composable function creates a row that represents a text item in a UI. * It handles click events and provides callback functions for customization. The row displays diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIToggleSwitch.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIToggleSwitch.kt index 28aba507..004c9d05 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIToggleSwitch.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIToggleSwitch.kt @@ -46,36 +46,38 @@ import com.tarkalabs.uicomponents.theme.TUITheme Switch( modifier = Modifier.testTag(testTag), checked = switchCheckedState, enabled = enabled, onCheckedChange = { - switchCheckedState = it - onToggleChange() - }, thumbContent = { - Icon( - painter = painterResource(if (switchCheckedState) TarkaIcons.CheckMark.iconRes else TarkaIcons.Dismiss.iconRes), - contentDescription = null, - modifier = Modifier.size(width = 40.dp, height = 24.dp) - ) - }, colors = SwitchDefaults.colors( - checkedThumbColor = TUITheme.colors.constantLight, - checkedTrackColor = TUITheme.colors.primary, - checkedIconColor = TUITheme.colors.primary, - checkedBorderColor = TUITheme.colors.primary, - uncheckedThumbColor = TUITheme.colors.onSurface, - uncheckedTrackColor = TUITheme.colors.surfaceVariant, - uncheckedIconColor = TUITheme.colors.constantLight, - uncheckedBorderColor = Color.Transparent, - disabledCheckedThumbColor = TUITheme.colors.utilityDisabledContent.copy(alpha = 0.38f), - disabledCheckedTrackColor = TUITheme.colors.utilityDisabledBackground.copy(alpha = 0.06f), - disabledCheckedIconColor = TUITheme.colors.inputBackground.copy(alpha = 0.85f), - disabledCheckedBorderColor = Color.Transparent, - disabledUncheckedThumbColor = TUITheme.colors.utilityDisabledContent.copy(alpha = 0.38f), - disabledUncheckedTrackColor = TUITheme.colors.utilityDisabledBackground.copy(alpha = 0.06f), - disabledUncheckedBorderColor = Color.Transparent, - disabledUncheckedIconColor = TUITheme.colors.inputBackground.copy(alpha = 0.85f) - ) + switchCheckedState = it + onToggleChange() + }, thumbContent = { + Icon( + painter = painterResource(if (switchCheckedState) TarkaIcons.CheckMark.iconRes else TarkaIcons.Dismiss.iconRes), + contentDescription = null, + modifier = Modifier.size(width = 40.dp, height = 24.dp) + ) + }, colors = getSwitchDefaultColors() ) } } +@Composable private fun getSwitchDefaultColors() = SwitchDefaults.colors( + checkedThumbColor = TUITheme.colors.constantLight, + checkedTrackColor = TUITheme.colors.primary, + checkedIconColor = TUITheme.colors.primary, + checkedBorderColor = TUITheme.colors.primary, + uncheckedThumbColor = TUITheme.colors.onSurface, + uncheckedTrackColor = TUITheme.colors.surfaceVariant, + uncheckedIconColor = TUITheme.colors.constantLight, + uncheckedBorderColor = Color.Transparent, + disabledCheckedThumbColor = TUITheme.colors.utilityDisabledContent.copy(alpha = 0.38f), + disabledCheckedTrackColor = TUITheme.colors.utilityDisabledBackground.copy(alpha = 0.06f), + disabledCheckedIconColor = TUITheme.colors.inputBackground.copy(alpha = 0.85f), + disabledCheckedBorderColor = Color.Transparent, + disabledUncheckedThumbColor = TUITheme.colors.utilityDisabledContent.copy(alpha = 0.38f), + disabledUncheckedTrackColor = TUITheme.colors.utilityDisabledBackground.copy(alpha = 0.06f), + disabledUncheckedBorderColor = Color.Transparent, + disabledUncheckedIconColor = TUITheme.colors.inputBackground.copy(alpha = 0.85f) +) + @Preview(showBackground = true) @Composable fun TUIToggleSwitchPreview() { TUITheme { Box(modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center) { From 8b6704ea7b4d94c57e1fb8184cec71009fe9ec9b Mon Sep 17 00:00:00 2001 From: Younes Charfaoui Date: Wed, 31 May 2023 17:46:40 +0100 Subject: [PATCH 108/571] Adding new screenshopts --- ...creenShotTest_test_fab_with_large_size.png | Bin 11617 -> 11870 bytes ...eenShotTest_test_fab_with_regular_size.png | Bin 6481 -> 6650 bytes ...creenShotTest_test_fab_with_small_size.png | Bin 6101 -> 6352 bytes ...enShotTest_renderTopAppBarTextWithIcon.png | Bin 8031 -> 7968 bytes .../TUIFloatingActionButtonScreenShotTest.kt | 4 ---- 5 files changed, 4 deletions(-) diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIFloatingActionButtonScreenShotTest_test_fab_with_large_size.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIFloatingActionButtonScreenShotTest_test_fab_with_large_size.png index 6858ba87113a79d7f5adbc7e37c69f9fc3a83a93..628e6e70516f0464b969863cc264798fe4633314 100644 GIT binary patch literal 11870 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 diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIFloatingActionButtonScreenShotTest_test_fab_with_regular_size.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIFloatingActionButtonScreenShotTest_test_fab_with_regular_size.png index 095b20d3d87ae04d59e84ddfff7d0f316e0c35e0..3c76112602a03c66a39f056ad28827f20e99f036 100644 GIT binary patch literal 6650 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 diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIFloatingActionButtonScreenShotTest_test_fab_with_small_size.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIFloatingActionButtonScreenShotTest_test_fab_with_small_size.png index 3db1b4767ffbf6bccb9ad1f31e77ad9b293bd565..14caf8f05e55197202b9359a4f4734d1360a7fcd 100644 GIT binary patch literal 6352 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 bf!O~8;xn-|%2rZf00000NkvXXu0mjfPyJWv diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUITopBarScreenShotTest_renderTopAppBarTextWithIcon.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUITopBarScreenShotTest_renderTopAppBarTextWithIcon.png index 39ee99abcb9089d8a7ef1a55181867aedc969659..02bc4bfad8dddffb2c13c1859400e5c7b94d8ff5 100644 GIT binary patch literal 7968 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­fvESk}K_Ym+C0boW-j3|~_#Rsu( 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 literal 8031 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 diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIFloatingActionButtonScreenShotTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIFloatingActionButtonScreenShotTest.kt index 8ad184a8..8c93218c 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIFloatingActionButtonScreenShotTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIFloatingActionButtonScreenShotTest.kt @@ -24,8 +24,4 @@ class TUIFloatingActionButtonScreenShotTest : ComposeScreenshotComparator() { @Test fun test_fab_with_regular_size() = compareScreenshotFor { TUIFloatingActionButton(fabSize = R, icon = TarkaIcons.ArrowExport, onClick = {}) } - - @Test fun test_unchecked_state_with_disabled_status() = compareScreenshotFor { - TUIToggleSwitch(state = false, enabled = false, onToggleChange = {}) - } } \ No newline at end of file From 5f63ceef00779f8999f69a9f1abc0b83f8d4f70f Mon Sep 17 00:00:00 2001 From: Raja Jawahar Date: Wed, 31 May 2023 22:40:53 +0530 Subject: [PATCH 109/571] Function name renaming --- .../java/com/tarkalabs/uicomponents/TopBarTest.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TopBarTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TopBarTest.kt index b213784c..21fec1cd 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TopBarTest.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/TopBarTest.kt @@ -16,7 +16,7 @@ import org.mockito.kotlin.verify class TopBarTest { @get:Rule val composeTestRule = createComposeRule() - @OptIn(ExperimentalMaterial3Api::class) @Test fun visibilityTest() { + @OptIn(ExperimentalMaterial3Api::class) @Test fun topBar_Item_Displayed() { composeTestRule.setContent { TopBar( title = "title", @@ -36,7 +36,7 @@ class TopBarTest { composeTestRule.onNodeWithTag(TarkaIcons.Search.contentDescription).assertIsDisplayed() } - @OptIn(ExperimentalMaterial3Api::class) @Test fun topBarSearchIconDisplayed() { + @OptIn(ExperimentalMaterial3Api::class) @Test fun topBar_SearchIcon_Displayed() { composeTestRule.setContent { TopBar( title = "title", @@ -47,7 +47,7 @@ class TopBarTest { composeTestRule.onNodeWithTag(TarkaIcons.ChevronRight.contentDescription).assertIsDisplayed() } - @OptIn(ExperimentalMaterial3Api::class) @Test fun clickEventTest() { + @OptIn(ExperimentalMaterial3Api::class) @Test fun topBar_All_Icons_Click_Events_Trigged() { val onNavigationIconClick: () -> Unit = mock() val onFirstMenuItemClicked: () -> Unit = mock() val onSecondMenuItemClicked: () -> Unit = mock() From cb0cac9aff654fd5ed1e0e48eec7a1eddbf61980 Mon Sep 17 00:00:00 2001 From: Raja Jawahar Date: Thu, 1 Jun 2023 12:29:24 +0530 Subject: [PATCH 110/571] Color tint added for NavigationRows --- .../tarkalabs/uicomponents/components/TUINavigationRows.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUINavigationRows.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUINavigationRows.kt index 12220207..03151645 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUINavigationRows.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUINavigationRows.kt @@ -15,6 +15,7 @@ import androidx.compose.ui.unit.dp import com.tarkalabs.uicomponents.Tags import com.tarkalabs.uicomponents.models.TarkaIcon import com.tarkalabs.uicomponents.models.TarkaIcons +import com.tarkalabs.uicomponents.theme.TUIColors import com.tarkalabs.uicomponents.theme.TUITheme // TODO: 5/2/2023 use dimensions instead of hard coded things @@ -96,7 +97,8 @@ import com.tarkalabs.uicomponents.theme.TUITheme if (showRightArrow) { Icon( painter = painterResource(id = TarkaIcons.ChevronRight.iconRes), - contentDescription = TarkaIcons.ChevronRight.contentDescription + contentDescription = TarkaIcons.ChevronRight.contentDescription, + tint = TUITheme.colors.utilityOutline ) } } From 53fa2490ec80be71a0c0542220464d1c24d867e4 Mon Sep 17 00:00:00 2001 From: Raja Jawahar Date: Thu, 1 Jun 2023 12:34:49 +0530 Subject: [PATCH 111/571] Version bumped to 0.3-alphs --- tarkaui/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tarkaui/build.gradle.kts b/tarkaui/build.gradle.kts index 9b562ca1..2eaeaa20 100644 --- a/tarkaui/build.gradle.kts +++ b/tarkaui/build.gradle.kts @@ -63,7 +63,7 @@ publishing { run { groupId = "com.tarkalabs" artifactId = getLibraryArtifactId() - version = "0.2-alpha" + version = "0.3-alpha" artifact("$buildDir/outputs/aar/${getLibraryArtifactId()}-release.aar") } } From 190deefc7789f148b671055d3010507ba4b440a4 Mon Sep 17 00:00:00 2001 From: Raja Jawahar Date: Thu, 1 Jun 2023 13:01:12 +0530 Subject: [PATCH 112/571] InfoIconbutton replaced with Icon --- .../uicomponents/components/TUITextRow.kt | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUITextRow.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUITextRow.kt index 5865ca0c..c4e5dce8 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUITextRow.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUITextRow.kt @@ -9,17 +9,20 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width +import androidx.compose.material3.Icon import androidx.compose.material3.OutlinedButton import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.testTag +import androidx.compose.ui.res.painterResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.core.R.drawable import com.tarkalabs.uicomponents.Tags import com.tarkalabs.uicomponents.models.TarkaIcon +import com.tarkalabs.uicomponents.models.TarkaIcons import com.tarkalabs.uicomponents.theme.TUITheme /** @@ -75,12 +78,11 @@ import com.tarkalabs.uicomponents.theme.TUITheme paddingValues: PaddingValues = PaddingValues(), testTag: String = Tags.TAG_TEXT_ROW ) { - Row( - modifier - .clickable { onTextRowClick() } - .defaultMinSize(minHeight = 40.dp) - .padding(paddingValues) - .testTag(testTag), + Row(modifier + .clickable { onTextRowClick() } + .defaultMinSize(minHeight = 40.dp) + .padding(paddingValues) + .testTag(testTag), verticalAlignment = Alignment.CenterVertically) { Column(Modifier.weight(1f)) { Text( @@ -118,12 +120,11 @@ import com.tarkalabs.uicomponents.theme.TUITheme } } if (infoIcon != null) { - TUIIconButton( - icon = infoIcon, - onIconClick = onInfoIconClick, - iconButtonStyle = IconButtonStyle.GHOST, - testTag = infoIcon.contentDescription - + Icon( + painter = painterResource(id = infoIcon.iconRes), + contentDescription = infoIcon.contentDescription, + tint = TUITheme.colors.utilityOutline, + modifier = Modifier.clickable(onClick = onInfoIconClick) ) } } From e051daad2e2bc1f5f0548bb9c44ebecdfe49588f Mon Sep 17 00:00:00 2001 From: Raja Jawahar Date: Thu, 1 Jun 2023 13:02:26 +0530 Subject: [PATCH 113/571] Version bumped to 0.4-alpha --- tarkaui/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tarkaui/build.gradle.kts b/tarkaui/build.gradle.kts index 9b562ca1..51980eed 100644 --- a/tarkaui/build.gradle.kts +++ b/tarkaui/build.gradle.kts @@ -63,7 +63,7 @@ publishing { run { groupId = "com.tarkalabs" artifactId = getLibraryArtifactId() - version = "0.2-alpha" + version = "0.4-alpha" artifact("$buildDir/outputs/aar/${getLibraryArtifactId()}-release.aar") } } From 4c63e11d1f9e360e8990b9c503242f8edea2e8c0 Mon Sep 17 00:00:00 2001 From: Younes Charfaoui Date: Thu, 1 Jun 2023 21:07:30 +0100 Subject: [PATCH 114/571] Fixing the badge component by removing padding and adding colors --- .../tarkalabs/uicomponents/components/TUIBadge.kt | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIBadge.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIBadge.kt index 92eddad4..ded5e2ac 100644 --- a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIBadge.kt +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIBadge.kt @@ -6,6 +6,7 @@ import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.testTag import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp @@ -34,11 +35,13 @@ enum class BadgeSize(val size: Dp) { */ @OptIn(ExperimentalMaterial3Api::class) @Composable fun TUIBadge( + modifier: Modifier = Modifier, count: Int? = null, badgeSize: BadgeSize = M, testTag: String = Tags.TAG_BADGE, + color: Color = TUITheme.colors.error ) { - val padding = when (badgeSize) { + when (badgeSize) { S -> 0.dp M -> 4.dp L -> 8.dp @@ -48,14 +51,10 @@ enum class BadgeSize(val size: Dp) { L -> TUITheme.typography.button7 } androidx.compose.material3.Badge( - containerColor = TUITheme.colors.error, - modifier = Modifier - .padding(padding) - .defaultMinSize( - minWidth = badgeSize.size, minHeight = badgeSize.size - ) + containerColor = color, + modifier = modifier + .defaultMinSize(minWidth = badgeSize.size, minHeight = badgeSize.size) .testTag(testTag) - ) { if (count != null) Text( text = count.toString(), From 0a33c732b1ca8b07c4fa6acb456fcaaf32568257 Mon Sep 17 00:00:00 2001 From: Younes Charfaoui Date: Thu, 1 Jun 2023 21:07:53 +0100 Subject: [PATCH 115/571] Adding asset folder for test images --- tarkaui/build.gradle.kts | 3 +++ .../uicomponents/assets/avatarTest.webp | Bin 0 -> 23438 bytes 2 files changed, 3 insertions(+) create mode 100644 tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/assets/avatarTest.webp diff --git a/tarkaui/build.gradle.kts b/tarkaui/build.gradle.kts index 51980eed..024cbfc3 100644 --- a/tarkaui/build.gradle.kts +++ b/tarkaui/build.gradle.kts @@ -53,6 +53,9 @@ android { testOptions { emulatorSnapshots.maxSnapshotsForTestFailures = 10 } + sourceSets { + getByName("androidTest").assets.srcDir("$projectDir/src/androidTest/java/com/tarkalabs/uicomponents/assets") + } } fun getLibraryArtifactId() = "tarkaui" diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/assets/avatarTest.webp b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/assets/avatarTest.webp new file mode 100644 index 0000000000000000000000000000000000000000..653223270a887d375decaf3ba11248219cb633ab GIT binary patch literal 23438 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 B9}fTk literal 0 HcmV?d00001 From 7025c7821b0a4363efa3830eb7cd8efc5f50ed47 Mon Sep 17 00:00:00 2001 From: Younes Charfaoui Date: Thu, 1 Jun 2023 21:40:38 +0100 Subject: [PATCH 116/571] Added compose base test for adding extra usufel fields --- .../tarkalabs/uicomponents/utils/ComposeBaseTest.kt | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/utils/ComposeBaseTest.kt diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/utils/ComposeBaseTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/utils/ComposeBaseTest.kt new file mode 100644 index 00000000..79322725 --- /dev/null +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/utils/ComposeBaseTest.kt @@ -0,0 +1,13 @@ +package com.tarkalabs.uicomponents.utils + +import androidx.compose.ui.test.junit4.createComposeRule +import androidx.test.platform.app.InstrumentationRegistry +import org.junit.Rule + +open class ComposeBaseTest { + + @get:Rule val composeRule = createComposeRule() + + val context = InstrumentationRegistry.getInstrumentation().context + val assetManager = context.assets +} From 7220bcd05257e5e44b50f6c6c2009bfcae4d633a Mon Sep 17 00:00:00 2001 From: Younes Charfaoui Date: Thu, 1 Jun 2023 21:41:30 +0100 Subject: [PATCH 117/571] Adding darktheme parameter for the screenshot comparator, adding the TUI Theme as part of the enclosing theme --- .../screenshots/ComposeScreenshotComparator.kt | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/ComposeScreenshotComparator.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/ComposeScreenshotComparator.kt index 0dd23b5d..40da9f82 100644 --- a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/ComposeScreenshotComparator.kt +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/ComposeScreenshotComparator.kt @@ -1,19 +1,18 @@ package com.tarkalabs.uicomponents.screenshots import androidx.compose.runtime.Composable -import androidx.compose.ui.test.junit4.createComposeRule import com.karumi.shot.ScreenshotTest -import org.junit.Rule +import com.tarkalabs.uicomponents.theme.TUITheme +import com.tarkalabs.uicomponents.utils.ComposeBaseTest -open class ComposeScreenshotComparator : ScreenshotTest { +open class ComposeScreenshotComparator : ComposeBaseTest(), ScreenshotTest { - @get:Rule val composeRule = createComposeRule() - - protected fun compareScreenshotFor(imageName: String? = null, composableToTest: @Composable () -> Unit) { + protected fun compareScreenshotFor(darkTheme: Boolean = false, imageName: String? = null, composableToTest: @Composable () -> Unit) { composeRule.setContent { - composableToTest() + TUITheme(darkTheme = darkTheme) { + composableToTest() + } } compareScreenshot(composeRule, imageName) } - } \ No newline at end of file From 68efe8c23e2002d371faa87d9d37462a2ae9fa31 Mon Sep 17 00:00:00 2001 From: Younes Charfaoui Date: Thu, 1 Jun 2023 21:42:00 +0100 Subject: [PATCH 118/571] Completing the TUIAvatar --- .../screenshots/TUIAvatarScreenshotTest.kt | 73 ++++++++++++ .../uicomponents/components/TUIAvatar.kt | 107 ++++++++++++++++++ 2 files changed, 180 insertions(+) create mode 100644 tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIAvatarScreenshotTest.kt create mode 100644 tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIAvatar.kt diff --git a/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIAvatarScreenshotTest.kt b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIAvatarScreenshotTest.kt new file mode 100644 index 00000000..e485f509 --- /dev/null +++ b/tarkaui/src/androidTest/java/com/tarkalabs/uicomponents/screenshots/TUIAvatarScreenshotTest.kt @@ -0,0 +1,73 @@ +@file:OptIn(ExperimentalMaterial3Api::class) + +package com.tarkalabs.uicomponents.screenshots + +import org.junit.runners.Parameterized; +import org.junit.runners.Parameterized.Parameters; + +import android.graphics.BitmapFactory +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.ui.graphics.asImageBitmap +import com.tarkalabs.uicomponents.R.drawable +import com.tarkalabs.uicomponents.components.AvatarSize +import com.tarkalabs.uicomponents.components.TUIAvatar +import com.tarkalabs.uicomponents.components.TopBar +import com.tarkalabs.uicomponents.models.TarkaIcon +import com.tarkalabs.uicomponents.models.TarkaIcons +import org.junit.Test +import org.junit.runner.RunWith +import org.junit.runners.JUnit4 + +@OptIn(ExperimentalMaterial3Api::class) +@RunWith(Parameterized::class) +class TUIAvatarScreenshotTest( + private val testName: String, + private val avatarSize: AvatarSize, + private val showBadge: Boolean, + private val darkTheme: Boolean +) : ComposeScreenshotComparator() { + + companion object { + @JvmStatic + @Parameterized.Parameters + fun data(): Collection> { + val showBadgesValues = listOf(true, false) + val avatarSizes = AvatarSize.values() + val darkThemeValues = listOf(true, false) + + val testData = ArrayList>() + for (avatarSize in avatarSizes) { + for (showBadge in showBadgesValues) { + for (darkTheme in darkThemeValues) { + val testName = + "AvatarSize_${avatarSize.name}_showBadge_${showBadge}_darkTheme_${darkTheme}" + testData.add(arrayOf(testName, avatarSize, showBadge, darkTheme)) + } + } + } + return testData + } + } + + @Test fun test_avatar_with_image(){ + val bitmap = BitmapFactory.decodeStream(assetManager.open("avatarTest.webp")) + + compareScreenshotFor(darkTheme = darkTheme, imageName = "_testAvatarWithImage_$testName") { + TUIAvatar(imageBitmap = bitmap.asImageBitmap(), avatarSize = avatarSize, showBadge = showBadge) + } + } + + @Test fun test_avatar_with_text(){ + val text = "AB" + compareScreenshotFor(darkTheme = darkTheme, imageName = "_testAvatarWithText_$testName") { + TUIAvatar(text = text, avatarSize = avatarSize, showBadge = showBadge) + } + } + + @Test fun test_avatar_with_icon(){ + val icon = TarkaIcons.DismissFilled + compareScreenshotFor(darkTheme = darkTheme, imageName = "_testAvatarWithIcon_$testName") { + TUIAvatar(icon = icon, avatarSize = avatarSize, showBadge = showBadge) + } + } +} \ No newline at end of file diff --git a/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIAvatar.kt b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIAvatar.kt new file mode 100644 index 00000000..08f7d1eb --- /dev/null +++ b/tarkaui/src/main/java/com/tarkalabs/uicomponents/components/TUIAvatar.kt @@ -0,0 +1,107 @@ +package com.tarkalabs.uicomponents.components + +import androidx.compose.foundation.Image +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.shape.CircleShape +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.clip +import androidx.compose.ui.graphics.ImageBitmap +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.unit.Dp +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import com.tarkalabs.uicomponents.components.AvatarSize.L +import com.tarkalabs.uicomponents.components.AvatarSize.M +import com.tarkalabs.uicomponents.components.AvatarSize.S +import com.tarkalabs.uicomponents.components.AvatarSize.XL +import com.tarkalabs.uicomponents.components.AvatarSize.XS +import com.tarkalabs.uicomponents.components.AvatarSize.XXL +import com.tarkalabs.uicomponents.models.TarkaIcon +import com.tarkalabs.uicomponents.theme.TUITheme + +enum class AvatarSize(val size: Dp) { + XS(24.dp), + S(32.dp), + M(48.dp), + L(64.dp), + XL(80.dp), + XXL(96.dp) +} + +@Composable +fun TUIAvatar( + modifier: Modifier = Modifier, + imageBitmap: ImageBitmap? = null, + icon: TarkaIcon? = null, + text: String? = null, + avatarSize: AvatarSize = L, + showBadge: Boolean = false +) { + Box( + modifier = modifier.size(avatarSize.size), + contentAlignment = Alignment.Center + ) { + Box( + modifier = modifier + .size(avatarSize.size) + .clip(CircleShape) + .background(TUITheme.colors.tertiary), + contentAlignment = Alignment.Center + ) { + if (imageBitmap != null) { + Image(bitmap = imageBitmap, contentDescription = "Avatar Image") + } else if (!text.isNullOrEmpty()) { + val typography = typographyFor(avatarSize) + Text(text = text.take(2), color = TUITheme.colors.onTertiary, style = typography) + } else if (icon != null) { + val iconSize = iconSizeFor(avatarSize) + Icon( + modifier = Modifier.size(iconSize), + painter = painterResource(id = icon.iconRes), + contentDescription = icon.contentDescription, + tint = TUITheme.colors.onTertiary + ) + } + } + if (showBadge) { + val badgeSize = badgeSizeFor(avatarSize) + TUIBadge( + modifier = Modifier.align(Alignment.BottomEnd), + badgeSize = badgeSize, + color = TUITheme.colors.success + ) + } + } +} + +@Composable +private fun badgeSizeFor(avatarSize: AvatarSize) = + when (avatarSize) { + XS, M, S -> BadgeSize.S + L -> BadgeSize.M + XXL, XL -> BadgeSize.L + } + +@Composable +private fun iconSizeFor(size: AvatarSize) = when (size) { + XS, S -> 16.dp + L, M -> 24.dp + XXL, XL -> 32.dp +} + +@Composable +private fun typographyFor(size: AvatarSize) = when (size) { + XS -> TUITheme.typography.heading7.copy(fontSize = 12.sp) + S -> TUITheme.typography.heading7 + M -> TUITheme.typography.heading6 + L -> TUITheme.typography.heading5 + XL -> TUITheme.typography.heading4 + XXL -> TUITheme.typography.heading3 +} + From b66756096418e0ddf066c6c9e1c42f7d32dea3d8 Mon Sep 17 00:00:00 2001 From: AskNilesh Date: Fri, 2 Jun 2023 10:07:12 +0530 Subject: [PATCH 119/571] - Added another parameter in TUINavigationRow to display status gor zebra scanner --- .idea/androidTestResultsUserPreferences.xml | 26 +++++++++++++++++++ .../components/TUINavigationRows.kt | 9 +++++-- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/.idea/androidTestResultsUserPreferences.xml b/.idea/androidTestResultsUserPreferences.xml index 335609e9..dafa0e75 100644 --- a/.idea/androidTestResultsUserPreferences.xml +++ b/.idea/androidTestResultsUserPreferences.xml @@ -3,6 +3,19 @@ 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%0Df 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 P00000NkvXXu0mjfRp;WA literal 0 HcmV?d00001 diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIAvatarScreenshotTest__testAvatarWithImage_AvatarSize_L_showBadge_true_darkTheme_false.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIAvatarScreenshotTest__testAvatarWithImage_AvatarSize_L_showBadge_true_darkTheme_false.png new file mode 100644 index 0000000000000000000000000000000000000000..c33dff2d73d2af768c40446576a5f311607ad194 GIT binary patch literal 31850 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 dc$-M&4NB38Sc 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

&!AR!v0N_TIxU98U<%9J3ZEXN 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 literal 0 HcmV?d00001 diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIAvatarScreenshotTest__testAvatarWithImage_AvatarSize_M_showBadge_false_darkTheme_false.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIAvatarScreenshotTest__testAvatarWithImage_AvatarSize_M_showBadge_false_darkTheme_false.png new file mode 100644 index 0000000000000000000000000000000000000000..ff96d2c2c1b0ac491bb5bfb68530b5510763a7f4 GIT binary patch literal 20993 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 z

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 M07*qoM6N<$f`mn)5&!@I literal 0 HcmV?d00001 diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIAvatarScreenshotTest__testAvatarWithImage_AvatarSize_M_showBadge_true_darkTheme_false.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIAvatarScreenshotTest__testAvatarWithImage_AvatarSize_M_showBadge_true_darkTheme_false.png new file mode 100644 index 0000000000000000000000000000000000000000..10db34a4c81401e9f6fd8b5f81fcc07410e9ce6b GIT binary patch literal 20802 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 RLV5rI002ovPDHLkV1jGFD!Bjv literal 0 HcmV?d00001 diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIAvatarScreenshotTest__testAvatarWithImage_AvatarSize_M_showBadge_true_darkTheme_true.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIAvatarScreenshotTest__testAvatarWithImage_AvatarSize_M_showBadge_true_darkTheme_true.png new file mode 100644 index 0000000000000000000000000000000000000000..3c3c8c94539dd7bedffbb46e7aaa756d4532fc89 GIT binary patch literal 20720 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 literal 0 HcmV?d00001 diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIAvatarScreenshotTest__testAvatarWithImage_AvatarSize_S_showBadge_false_darkTheme_false.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIAvatarScreenshotTest__testAvatarWithImage_AvatarSize_S_showBadge_false_darkTheme_false.png new file mode 100644 index 0000000000000000000000000000000000000000..51f8ad49f71f0eb688c110c01021918d118aaa60 GIT binary patch literal 11332 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�~4x;_a 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 Hu0mjf)Aj=w literal 0 HcmV?d00001 diff --git a/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIAvatarScreenshotTest__testAvatarWithImage_AvatarSize_XS_showBadge_true_darkTheme_false.png b/tarkaui/screenshots/debug/com.tarkalabs.uicomponents.screenshots.TUIAvatarScreenshotTest__testAvatarWithImage_AvatarSize_XS_showBadge_true_darkTheme_false.png new file mode 100644 index 0000000000000000000000000000000000000000..0d666e7aee926e118757e02c0c1d2dd1a7560414 GIT binary patch literal 6329 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 vxU$4W6|N_6D$Q9Wcb;CR}0S6cGhzcA~M-S@g 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

lXVg_q180x1>q?PT`I}kGh&+bJehbik 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

lXVg_q180x1>q?PT`I}kGh&+bJehbik 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