From c0e5abe128bf7ec478a9082b89ad6bce20c28e01 Mon Sep 17 00:00:00 2001 From: Mahdi Abolfazli Date: Tue, 17 Feb 2026 14:26:00 +0100 Subject: [PATCH 1/2] feat(capture-sdk): Add color keys per element in xml PP-2078 --- bank-sdk/example-app/src/main/res/values/colors.xml | 3 +++ capture-sdk/sdk/src/main/res/layout/gc_fragment_camera.xml | 2 +- capture-sdk/sdk/src/main/res/values/element_colors.xml | 6 ++++++ 3 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 capture-sdk/sdk/src/main/res/values/element_colors.xml diff --git a/bank-sdk/example-app/src/main/res/values/colors.xml b/bank-sdk/example-app/src/main/res/values/colors.xml index d28d9f100f..2b3128b98b 100644 --- a/bank-sdk/example-app/src/main/res/values/colors.xml +++ b/bank-sdk/example-app/src/main/res/values/colors.xml @@ -1,5 +1,8 @@ + + #006ECF + @color/gc_light_01 @color/gc_light_02 @color/gc_light_03 diff --git a/capture-sdk/sdk/src/main/res/layout/gc_fragment_camera.xml b/capture-sdk/sdk/src/main/res/layout/gc_fragment_camera.xml index 3e9d8648a7..dcb458caad 100644 --- a/capture-sdk/sdk/src/main/res/layout/gc_fragment_camera.xml +++ b/capture-sdk/sdk/src/main/res/layout/gc_fragment_camera.xml @@ -76,7 +76,7 @@ android:layout_marginBottom="@dimen/gc_large" android:paddingTop="@dimen/gc_large" android:text="@string/gc_camera_info_label_invoice_and_qr" - android:textColor="@color/gc_light_01" + android:textColor="@color/gc_camera_title_color" app:layout_constraintBottom_toTopOf="@id/gc_button_camera_trigger" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" /> diff --git a/capture-sdk/sdk/src/main/res/values/element_colors.xml b/capture-sdk/sdk/src/main/res/values/element_colors.xml new file mode 100644 index 0000000000..e1b345d9b9 --- /dev/null +++ b/capture-sdk/sdk/src/main/res/values/element_colors.xml @@ -0,0 +1,6 @@ + + + + @color/gc_light_01 + + From 76943d8e9f80b080e29f3416af15ce5d7a6b719a Mon Sep 17 00:00:00 2001 From: Mahdi Abolfazli Date: Tue, 17 Feb 2026 15:38:42 +0100 Subject: [PATCH 2/2] feat(bank-sdk): Add color element to Compose elements PP-2078 --- .../src/main/res/values/colors.xml | 1 + .../colors/section/SkontoSectionColors.kt | 2 +- .../android/capture/ui/theme/GiniTheme.kt | 7 +++++-- .../colors/GiniColorElementsPrimitives.kt | 21 +++++++++++++++++++ .../ui/theme/colors/GiniColorPalette.kt | 18 ++++++++++++++-- .../src/main/res/values/element_colors.xml | 1 + 6 files changed, 45 insertions(+), 5 deletions(-) create mode 100644 capture-sdk/sdk/src/main/java/net/gini/android/capture/ui/theme/colors/GiniColorElementsPrimitives.kt diff --git a/bank-sdk/example-app/src/main/res/values/colors.xml b/bank-sdk/example-app/src/main/res/values/colors.xml index 2b3128b98b..596d694c3e 100644 --- a/bank-sdk/example-app/src/main/res/values/colors.xml +++ b/bank-sdk/example-app/src/main/res/values/colors.xml @@ -2,6 +2,7 @@ #006ECF + #006ECF @color/gc_light_01 @color/gc_light_02 diff --git a/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/skonto/colors/section/SkontoSectionColors.kt b/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/skonto/colors/section/SkontoSectionColors.kt index 9462fae50d..5a9b53c71d 100644 --- a/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/skonto/colors/section/SkontoSectionColors.kt +++ b/bank-sdk/sdk/src/main/java/net/gini/android/bank/sdk/capture/skonto/colors/section/SkontoSectionColors.kt @@ -24,7 +24,7 @@ data class SkontoSectionColors( @Composable fun colors( - titleTextColor: Color = GiniTheme.colorScheme.text.primary, + titleTextColor: Color = GiniTheme.colorScheme.skontoSection.skontoSectionTitleTextColor, switchColors: GiniSwitchColors = GiniSwitchColors.colors(), cardBackgroundColor: Color = GiniTheme.colorScheme.card.container, enabledHintTextColor: Color = GiniTheme.colorScheme.text.success, diff --git a/capture-sdk/sdk/src/main/java/net/gini/android/capture/ui/theme/GiniTheme.kt b/capture-sdk/sdk/src/main/java/net/gini/android/capture/ui/theme/GiniTheme.kt index 65f75fb360..67c6c8054a 100644 --- a/capture-sdk/sdk/src/main/java/net/gini/android/capture/ui/theme/GiniTheme.kt +++ b/capture-sdk/sdk/src/main/java/net/gini/android/capture/ui/theme/GiniTheme.kt @@ -9,6 +9,7 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.staticCompositionLocalOf import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.unit.dp +import net.gini.android.capture.ui.theme.colors.GiniColorElementsPrimitives import net.gini.android.capture.ui.theme.colors.GiniColorPrimitives import net.gini.android.capture.ui.theme.colors.GiniColorScheme import net.gini.android.capture.ui.theme.colors.giniDarkColorScheme @@ -31,11 +32,13 @@ fun GiniTheme( val context = LocalContext.current val giniPrimitives = remember { GiniColorPrimitives.buildColorPrimitivesBasedOnResources(context) } + val giniElementPrimitives = + remember { GiniColorElementsPrimitives.buildColorPrimitivesBasedOnResources(context) } val colors = if (darkMode) { - giniDarkColorScheme(giniPrimitives) + giniDarkColorScheme(giniPrimitives, giniElementPrimitives) } else { - giniLightColorScheme(giniPrimitives) + giniLightColorScheme(giniPrimitives, giniElementPrimitives) } val typography = extractGiniTypography() diff --git a/capture-sdk/sdk/src/main/java/net/gini/android/capture/ui/theme/colors/GiniColorElementsPrimitives.kt b/capture-sdk/sdk/src/main/java/net/gini/android/capture/ui/theme/colors/GiniColorElementsPrimitives.kt new file mode 100644 index 0000000000..b83883b6f8 --- /dev/null +++ b/capture-sdk/sdk/src/main/java/net/gini/android/capture/ui/theme/colors/GiniColorElementsPrimitives.kt @@ -0,0 +1,21 @@ +package net.gini.android.capture.ui.theme.colors + +import android.content.Context +import androidx.compose.ui.graphics.Color +import net.gini.android.capture.R + +data class GiniColorElementsPrimitives( + val skontoSectionTitleTextColor: Color = Color(0xFF161616), + +) { + companion object { + /** + * Bridge between old way of defining colors by overridden resources and Compose + * + * This function will define color primitives based on resources value at res/colors.xml + */ + internal fun buildColorPrimitivesBasedOnResources(context: Context) = GiniColorElementsPrimitives( + skontoSectionTitleTextColor = Color(context.getColor(R.color.skonto_section_title_text_color)), + ) + } +} \ No newline at end of file diff --git a/capture-sdk/sdk/src/main/java/net/gini/android/capture/ui/theme/colors/GiniColorPalette.kt b/capture-sdk/sdk/src/main/java/net/gini/android/capture/ui/theme/colors/GiniColorPalette.kt index e71fa63d1d..e34fa53655 100644 --- a/capture-sdk/sdk/src/main/java/net/gini/android/capture/ui/theme/colors/GiniColorPalette.kt +++ b/capture-sdk/sdk/src/main/java/net/gini/android/capture/ui/theme/colors/GiniColorPalette.kt @@ -30,6 +30,8 @@ data class GiniColorScheme( val checkbox: Checkbox = Checkbox(), val contextMenu: ContextMenu = ContextMenu(), val logo: Logo = Logo(), + val skontoSection: SkontoSection = SkontoSection() + ) { @Immutable @@ -234,6 +236,10 @@ data class GiniColorScheme( val contentOutlined: Color = Color.Unspecified, ) } + @Immutable + data class SkontoSection( + val skontoSectionTitleTextColor: Color = Color.Unspecified, + ) @Immutable data class Logo( @@ -245,7 +251,8 @@ data class GiniColorScheme( * Created a light color scheme based on primitives. */ internal fun giniLightColorScheme( - giniColorPrimitives: GiniColorPrimitives = GiniColorPrimitives() + giniColorPrimitives: GiniColorPrimitives = GiniColorPrimitives(), + giniColorElementsPrimitives: GiniColorElementsPrimitives = GiniColorElementsPrimitives() ) = with(giniColorPrimitives) { GiniColorScheme( background = GiniColorScheme.Background(primary = light02), @@ -373,6 +380,9 @@ internal fun giniLightColorScheme( ), logo = GiniColorScheme.Logo( tint = accent01 + ), + skontoSection = GiniColorScheme.SkontoSection( + skontoSectionTitleTextColor = giniColorElementsPrimitives.skontoSectionTitleTextColor ) ) } @@ -381,7 +391,8 @@ internal fun giniLightColorScheme( * Created a dark color scheme based on primitives. */ internal fun giniDarkColorScheme( - giniColorPrimitives: GiniColorPrimitives = GiniColorPrimitives() + giniColorPrimitives: GiniColorPrimitives = GiniColorPrimitives(), + giniColorElementsPrimitives: GiniColorElementsPrimitives = GiniColorElementsPrimitives() ) = with(giniColorPrimitives) { GiniColorScheme( background = GiniColorScheme.Background(primary = dark01), @@ -513,6 +524,9 @@ internal fun giniDarkColorScheme( ), logo = GiniColorScheme.Logo( tint = accent01 + ), + skontoSection = GiniColorScheme.SkontoSection( + skontoSectionTitleTextColor = giniColorElementsPrimitives.skontoSectionTitleTextColor ) ) } diff --git a/capture-sdk/sdk/src/main/res/values/element_colors.xml b/capture-sdk/sdk/src/main/res/values/element_colors.xml index e1b345d9b9..9b312ed341 100644 --- a/capture-sdk/sdk/src/main/res/values/element_colors.xml +++ b/capture-sdk/sdk/src/main/res/values/element_colors.xml @@ -2,5 +2,6 @@ @color/gc_light_01 + @color/gc_dark_02