From d8b1a41f560a40ffec47e5998f99d22ea558b229 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Thu, 2 Jul 2026 14:45:22 +0200 Subject: [PATCH 1/3] Create dedicated package for visual list and add Figma link. --- .../analytics/impl/AnalyticsOptInView.kt | 18 ++++----- .../fullscreen/FullscreenAnnouncementView.kt | 18 ++++----- .../logout/impl/AccountDeactivationView.kt | 14 +++---- .../impl/reset/root/ResetIdentityRootView.kt | 12 +++--- .../features/signedout/impl/SignedOutView.kt | 18 ++++----- .../visuallist/VisualList.kt} | 40 ++++++++----------- .../visuallist/VisualListItem.kt} | 37 +++++++++-------- .../visuallist/VisualListItemData.kt | 19 +++++++++ 8 files changed, 95 insertions(+), 81 deletions(-) rename libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/{atomic/organisms/InfoListOrganism.kt => components/visuallist/VisualList.kt} (75%) rename libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/{atomic/molecules/InfoListItemMolecule.kt => components/visuallist/VisualListItem.kt} (74%) create mode 100644 libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/visuallist/VisualListItemData.kt diff --git a/features/analytics/impl/src/main/kotlin/io/element/android/features/analytics/impl/AnalyticsOptInView.kt b/features/analytics/impl/src/main/kotlin/io/element/android/features/analytics/impl/AnalyticsOptInView.kt index 4fc9ce5c6b..80071241ba 100644 --- a/features/analytics/impl/src/main/kotlin/io/element/android/features/analytics/impl/AnalyticsOptInView.kt +++ b/features/analytics/impl/src/main/kotlin/io/element/android/features/analytics/impl/AnalyticsOptInView.kt @@ -31,12 +31,12 @@ import io.element.android.compound.tokens.generated.CompoundIcons import io.element.android.features.analytics.api.AnalyticsOptInEvents import io.element.android.libraries.designsystem.atomic.molecules.ButtonColumnMolecule import io.element.android.libraries.designsystem.atomic.molecules.IconTitleSubtitleMolecule -import io.element.android.libraries.designsystem.atomic.organisms.InfoListItem -import io.element.android.libraries.designsystem.atomic.organisms.InfoListOrganism import io.element.android.libraries.designsystem.atomic.pages.HeaderFooterPage import io.element.android.libraries.designsystem.background.OnboardingBackground import io.element.android.libraries.designsystem.components.BigIcon import io.element.android.libraries.designsystem.components.ClickableLinkText +import io.element.android.libraries.designsystem.components.visuallist.VisualList +import io.element.android.libraries.designsystem.components.visuallist.VisualListItemData import io.element.android.libraries.designsystem.preview.ElementPreview import io.element.android.libraries.designsystem.preview.PreviewsDayNight import io.element.android.libraries.designsystem.text.buildAnnotatedStringWithStyledPart @@ -65,9 +65,9 @@ fun AnalyticsOptInView( BackHandler(onBack = ::onDeclineTerms) HeaderFooterPage( modifier = modifier - .fillMaxSize() - .systemBarsPadding() - .imePadding(), + .fillMaxSize() + .systemBarsPadding() + .imePadding(), background = { OnboardingBackground() }, header = { AnalyticsOptInHeader(state, onClickTerms) }, content = { AnalyticsOptInContent() }, @@ -129,17 +129,17 @@ private fun AnalyticsOptInContent() { verticalBias = -0.4f ) ) { - InfoListOrganism( + VisualList( items = persistentListOf( - InfoListItem( + VisualListItemData( message = stringResource(id = R.string.screen_analytics_prompt_data_usage), iconVector = CompoundIcons.CheckCircle(), ), - InfoListItem( + VisualListItemData( message = stringResource(id = R.string.screen_analytics_prompt_third_party_sharing), iconVector = CompoundIcons.CheckCircle(), ), - InfoListItem( + VisualListItemData( message = stringResource(id = R.string.screen_analytics_prompt_settings), iconVector = CompoundIcons.CheckCircle(), ), diff --git a/features/announcement/impl/src/main/kotlin/io/element/android/features/announcement/impl/fullscreen/FullscreenAnnouncementView.kt b/features/announcement/impl/src/main/kotlin/io/element/android/features/announcement/impl/fullscreen/FullscreenAnnouncementView.kt index c544fd4914..d396f1b8b6 100644 --- a/features/announcement/impl/src/main/kotlin/io/element/android/features/announcement/impl/fullscreen/FullscreenAnnouncementView.kt +++ b/features/announcement/impl/src/main/kotlin/io/element/android/features/announcement/impl/fullscreen/FullscreenAnnouncementView.kt @@ -36,10 +36,10 @@ import io.element.android.features.announcement.impl.AnnouncementState import io.element.android.features.announcement.impl.AnnouncementStateProvider import io.element.android.libraries.designsystem.atomic.molecules.ButtonColumnMolecule import io.element.android.libraries.designsystem.atomic.molecules.IconTitleSubtitleMolecule -import io.element.android.libraries.designsystem.atomic.organisms.InfoListItem -import io.element.android.libraries.designsystem.atomic.organisms.InfoListOrganism import io.element.android.libraries.designsystem.atomic.pages.HeaderFooterPage import io.element.android.libraries.designsystem.components.BigIcon +import io.element.android.libraries.designsystem.components.visuallist.VisualList +import io.element.android.libraries.designsystem.components.visuallist.VisualListItemData import io.element.android.libraries.designsystem.preview.ElementPreview import io.element.android.libraries.designsystem.preview.PreviewsDayNight import io.element.android.libraries.designsystem.theme.components.Button @@ -134,7 +134,7 @@ private fun FullscreenAnnouncementContent( Column( modifier = modifier.fillMaxSize(), ) { - InfoListOrganism( + VisualList( modifier = Modifier.fillMaxWidth(), items = announcement.items(), textStyle = ElementTheme.typography.fontBodyLgMedium, @@ -186,25 +186,25 @@ private fun Announcement.Fullscreen.icon() = when (this) { } @Composable -private fun Announcement.Fullscreen.items(): ImmutableList = when (this) { +private fun Announcement.Fullscreen.items(): ImmutableList = when (this) { Announcement.Fullscreen.Space -> persistentListOf( - InfoListItem( + VisualListItemData( message = "View spaces you\'ve created or joined", iconVector = CompoundIcons.VisibilityOn(), ), - InfoListItem( + VisualListItemData( message = "Accept or decline invites to spaces", iconVector = CompoundIcons.Email(), ), - InfoListItem( + VisualListItemData( message = "Discover any rooms you can join in your spaces", iconVector = CompoundIcons.Search(), ), - InfoListItem( + VisualListItemData( message = "Join public spaces", iconVector = CompoundIcons.Explore(), ), - InfoListItem( + VisualListItemData( message = "Leave any spaces you’ve joined", iconVector = CompoundIcons.Leave(), ), diff --git a/features/deactivation/impl/src/main/kotlin/io/element/android/features/logout/impl/AccountDeactivationView.kt b/features/deactivation/impl/src/main/kotlin/io/element/android/features/logout/impl/AccountDeactivationView.kt index c942d2df72..738046b3a3 100644 --- a/features/deactivation/impl/src/main/kotlin/io/element/android/features/logout/impl/AccountDeactivationView.kt +++ b/features/deactivation/impl/src/main/kotlin/io/element/android/features/logout/impl/AccountDeactivationView.kt @@ -48,11 +48,11 @@ import io.element.android.compound.tokens.generated.CompoundIcons import io.element.android.features.deactivation.impl.R import io.element.android.features.logout.impl.ui.AccountDeactivationActionDialog import io.element.android.libraries.architecture.AsyncAction -import io.element.android.libraries.designsystem.atomic.organisms.InfoListItem -import io.element.android.libraries.designsystem.atomic.organisms.InfoListOrganism import io.element.android.libraries.designsystem.components.button.BackButton import io.element.android.libraries.designsystem.components.form.textFieldState import io.element.android.libraries.designsystem.components.list.SwitchListItem +import io.element.android.libraries.designsystem.components.visuallist.VisualList +import io.element.android.libraries.designsystem.components.visuallist.VisualListItemData import io.element.android.libraries.designsystem.modifiers.onTabOrEnterKeyFocusNext import io.element.android.libraries.designsystem.preview.ElementPreview import io.element.android.libraries.designsystem.preview.PreviewsDayNight @@ -175,9 +175,9 @@ private fun Content( style = ElementTheme.typography.fontBodyMdRegular, color = ElementTheme.colors.textSecondary, ) - InfoListOrganism( + VisualList( items = persistentListOf( - InfoListItem( + VisualListItemData( message = buildAnnotatedStringWithStyledPart( R.string.screen_deactivate_account_list_item_1, R.string.screen_deactivate_account_list_item_1_bold_part, @@ -194,7 +194,7 @@ private fun Content( ) }, ), - InfoListItem( + VisualListItemData( message = stringResource(R.string.screen_deactivate_account_list_item_2), iconComposable = { Icon( @@ -205,7 +205,7 @@ private fun Content( ) }, ), - InfoListItem( + VisualListItemData( message = stringResource(R.string.screen_deactivate_account_list_item_3), iconComposable = { Icon( @@ -216,7 +216,7 @@ private fun Content( ) }, ), - InfoListItem( + VisualListItemData( message = stringResource(R.string.screen_deactivate_account_list_item_4), iconComposable = { Icon( diff --git a/features/securebackup/impl/src/main/kotlin/io/element/android/features/securebackup/impl/reset/root/ResetIdentityRootView.kt b/features/securebackup/impl/src/main/kotlin/io/element/android/features/securebackup/impl/reset/root/ResetIdentityRootView.kt index 97c82f446d..7ac8dbe4cf 100644 --- a/features/securebackup/impl/src/main/kotlin/io/element/android/features/securebackup/impl/reset/root/ResetIdentityRootView.kt +++ b/features/securebackup/impl/src/main/kotlin/io/element/android/features/securebackup/impl/reset/root/ResetIdentityRootView.kt @@ -22,11 +22,11 @@ import androidx.compose.ui.unit.dp import io.element.android.compound.theme.ElementTheme import io.element.android.compound.tokens.generated.CompoundIcons import io.element.android.features.securebackup.impl.R -import io.element.android.libraries.designsystem.atomic.organisms.InfoListItem -import io.element.android.libraries.designsystem.atomic.organisms.InfoListOrganism import io.element.android.libraries.designsystem.atomic.pages.FlowStepPage import io.element.android.libraries.designsystem.components.BigIcon import io.element.android.libraries.designsystem.components.dialogs.ConfirmationDialog +import io.element.android.libraries.designsystem.components.visuallist.VisualList +import io.element.android.libraries.designsystem.components.visuallist.VisualListItemData import io.element.android.libraries.designsystem.preview.ElementPreview import io.element.android.libraries.designsystem.preview.PreviewsDayNight import io.element.android.libraries.designsystem.theme.components.Button @@ -79,10 +79,10 @@ private fun Content() { modifier = Modifier.padding(top = 8.dp, bottom = 40.dp), verticalArrangement = Arrangement.spacedBy(24.dp), ) { - InfoListOrganism( + VisualList( modifier = Modifier.fillMaxWidth(), items = persistentListOf( - InfoListItem( + VisualListItemData( message = stringResource(R.string.screen_encryption_reset_bullet_1), iconComposable = { Icon( @@ -93,7 +93,7 @@ private fun Content() { ) }, ), - InfoListItem( + VisualListItemData( message = stringResource(R.string.screen_encryption_reset_bullet_2), iconComposable = { Icon( @@ -104,7 +104,7 @@ private fun Content() { ) }, ), - InfoListItem( + VisualListItemData( message = stringResource(R.string.screen_encryption_reset_bullet_3), iconComposable = { Icon( diff --git a/features/signedout/impl/src/main/kotlin/io/element/android/features/signedout/impl/SignedOutView.kt b/features/signedout/impl/src/main/kotlin/io/element/android/features/signedout/impl/SignedOutView.kt index f89b36e4d4..8268e127f6 100644 --- a/features/signedout/impl/src/main/kotlin/io/element/android/features/signedout/impl/SignedOutView.kt +++ b/features/signedout/impl/src/main/kotlin/io/element/android/features/signedout/impl/SignedOutView.kt @@ -25,10 +25,10 @@ import io.element.android.compound.theme.ElementTheme import io.element.android.compound.tokens.generated.CompoundIcons import io.element.android.libraries.designsystem.atomic.molecules.ButtonColumnMolecule import io.element.android.libraries.designsystem.atomic.molecules.IconTitleSubtitleMolecule -import io.element.android.libraries.designsystem.atomic.organisms.InfoListItem -import io.element.android.libraries.designsystem.atomic.organisms.InfoListOrganism import io.element.android.libraries.designsystem.atomic.pages.HeaderFooterPage import io.element.android.libraries.designsystem.components.BigIcon +import io.element.android.libraries.designsystem.components.visuallist.VisualList +import io.element.android.libraries.designsystem.components.visuallist.VisualListItemData import io.element.android.libraries.designsystem.preview.ElementPreview import io.element.android.libraries.designsystem.preview.PreviewsDayNight import io.element.android.libraries.designsystem.theme.components.Button @@ -43,9 +43,9 @@ fun SignedOutView( BackHandler(onBack = { state.eventSink(SignedOutEvents.SignInAgain) }) HeaderFooterPage( modifier = modifier - .fillMaxSize() - .systemBarsPadding() - .imePadding(), + .fillMaxSize() + .systemBarsPadding() + .imePadding(), header = { SignedOutHeader(state) }, content = { SignedOutContent() }, footer = { @@ -75,17 +75,17 @@ private fun SignedOutContent() { verticalBias = -0.4f ) ) { - InfoListOrganism( + VisualList( items = persistentListOf( - InfoListItem( + VisualListItemData( message = stringResource(id = R.string.screen_signed_out_reason_1), iconVector = CompoundIcons.Lock(), ), - InfoListItem( + VisualListItemData( message = stringResource(id = R.string.screen_signed_out_reason_2), iconVector = CompoundIcons.Devices(), ), - InfoListItem( + VisualListItemData( message = stringResource(id = R.string.screen_signed_out_reason_3), iconVector = CompoundIcons.Block(), ), diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/atomic/organisms/InfoListOrganism.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/visuallist/VisualList.kt similarity index 75% rename from libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/atomic/organisms/InfoListOrganism.kt rename to libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/visuallist/VisualList.kt index f52ee2512f..65141df014 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/atomic/organisms/InfoListOrganism.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/visuallist/VisualList.kt @@ -6,9 +6,8 @@ * Please see LICENSE files in the repository root for full details. */ -package io.element.android.libraries.designsystem.atomic.organisms +package io.element.android.libraries.designsystem.components.visuallist -import androidx.annotation.DrawableRes import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.size @@ -17,14 +16,11 @@ import androidx.compose.material3.LocalTextStyle import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color -import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.text.AnnotatedString import androidx.compose.ui.text.TextStyle import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import io.element.android.compound.theme.ElementTheme -import io.element.android.libraries.designsystem.atomic.molecules.InfoListItemMolecule -import io.element.android.libraries.designsystem.atomic.molecules.InfoListItemPosition import io.element.android.libraries.designsystem.preview.ElementPreview import io.element.android.libraries.designsystem.preview.PreviewsDayNight import io.element.android.libraries.designsystem.theme.components.Icon @@ -32,9 +28,12 @@ import io.element.android.libraries.designsystem.theme.components.Text import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.persistentListOf +/** + * Ref: https://www.figma.com/design/G1xy0HDZKJf5TCRFmKb5d5/Compound-Android-Components?node-id=2001-140 + */ @Composable -fun InfoListOrganism( - items: ImmutableList, +fun VisualList( + items: ImmutableList, modifier: Modifier = Modifier, backgroundColor: Color = ElementTheme.colors.bgSubtleSecondary, iconTint: Color = LocalContentColor.current, @@ -49,12 +48,12 @@ fun InfoListOrganism( ) { for ((index, item) in items.withIndex()) { val position = when { - items.size == 1 -> InfoListItemPosition.Single - index == 0 -> InfoListItemPosition.Top - index == items.size - 1 -> InfoListItemPosition.Bottom - else -> InfoListItemPosition.Middle + items.size == 1 -> VisualListItemPosition.Single + index == 0 -> VisualListItemPosition.Top + index == items.size - 1 -> VisualListItemPosition.Bottom + else -> VisualListItemPosition.Middle } - InfoListItemMolecule( + VisualListItem( message = { if (item.message is AnnotatedString) { Text( @@ -96,22 +95,15 @@ fun InfoListOrganism( } } -data class InfoListItem( - val message: CharSequence, - @DrawableRes val iconId: Int? = null, - val iconVector: ImageVector? = null, - val iconComposable: @Composable () -> Unit = {}, -) - @PreviewsDayNight @Composable -internal fun InfoListOrganismPreview() = ElementPreview { +internal fun VisualListPreview() = ElementPreview { val items = persistentListOf( - InfoListItem(message = "A top item"), - InfoListItem(message = "A middle item"), - InfoListItem(message = "A bottom item"), + VisualListItemData(message = "A top item"), + VisualListItemData(message = "A middle item"), + VisualListItemData(message = "A bottom item"), ) - InfoListOrganism( + VisualList( items = items, ) } diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/atomic/molecules/InfoListItemMolecule.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/visuallist/VisualListItem.kt similarity index 74% rename from libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/atomic/molecules/InfoListItemMolecule.kt rename to libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/visuallist/VisualListItem.kt index 46d8029c89..276fb1522e 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/atomic/molecules/InfoListItemMolecule.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/visuallist/VisualListItem.kt @@ -6,7 +6,7 @@ * Please see LICENSE files in the repository root for full details. */ -package io.element.android.libraries.designsystem.atomic.molecules +package io.element.android.libraries.designsystem.components.visuallist import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement @@ -27,10 +27,13 @@ import io.element.android.libraries.designsystem.preview.PreviewsDayNight import io.element.android.libraries.designsystem.theme.components.Icon import io.element.android.libraries.designsystem.theme.components.Text +/** + * Ref: https://www.figma.com/design/G1xy0HDZKJf5TCRFmKb5d5/Compound-Android-Components?node-id=2001-159 + */ @Composable -fun InfoListItemMolecule( +fun VisualListItem( message: @Composable () -> Unit, - position: InfoListItemPosition, + position: VisualListItemPosition, backgroundColor: Color, modifier: Modifier = Modifier, icon: @Composable () -> Unit = {}, @@ -38,10 +41,10 @@ fun InfoListItemMolecule( val radius = 14.dp val backgroundShape = remember(position) { when (position) { - InfoListItemPosition.Single -> RoundedCornerShape(radius) - InfoListItemPosition.Top -> RoundedCornerShape(topStart = radius, topEnd = radius) - InfoListItemPosition.Middle -> RoundedCornerShape(0.dp) - InfoListItemPosition.Bottom -> RoundedCornerShape(bottomStart = radius, bottomEnd = radius) + VisualListItemPosition.Single -> RoundedCornerShape(radius) + VisualListItemPosition.Top -> RoundedCornerShape(topStart = radius, topEnd = radius) + VisualListItemPosition.Middle -> RoundedCornerShape(0.dp) + VisualListItemPosition.Bottom -> RoundedCornerShape(bottomStart = radius, bottomEnd = radius) } } Row( @@ -61,42 +64,42 @@ fun InfoListItemMolecule( @PreviewsDayNight @Composable -internal fun InfoListItemMoleculePreview() { +internal fun VisualListItemPreview() { ElementPreview { val color = ElementTheme.colors.bgSubtleSecondary Column( modifier = Modifier.padding(10.dp), verticalArrangement = Arrangement.spacedBy(8.dp), ) { - InfoListItemMolecule( + VisualListItem( message = { Text("A single item") }, icon = { Icon(imageVector = CompoundIcons.InfoSolid(), contentDescription = null) }, - position = InfoListItemPosition.Single, + position = VisualListItemPosition.Single, backgroundColor = color, ) - InfoListItemMolecule( + VisualListItem( message = { Text("A top item") }, icon = { Icon(imageVector = CompoundIcons.InfoSolid(), contentDescription = null) }, - position = InfoListItemPosition.Top, + position = VisualListItemPosition.Top, backgroundColor = color, ) - InfoListItemMolecule( + VisualListItem( message = { Text("A middle item") }, icon = { Icon(imageVector = CompoundIcons.InfoSolid(), contentDescription = null) }, - position = InfoListItemPosition.Middle, + position = VisualListItemPosition.Middle, backgroundColor = color, ) - InfoListItemMolecule( + VisualListItem( message = { Text("A bottom item") }, icon = { Icon(imageVector = CompoundIcons.InfoSolid(), contentDescription = null) }, - position = InfoListItemPosition.Bottom, + position = VisualListItemPosition.Bottom, backgroundColor = color, ) } } } -enum class InfoListItemPosition { +enum class VisualListItemPosition { Top, Middle, Bottom, diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/visuallist/VisualListItemData.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/visuallist/VisualListItemData.kt new file mode 100644 index 0000000000..ace971ac61 --- /dev/null +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/visuallist/VisualListItemData.kt @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2026 Element Creations Ltd. + * + * SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial. + * Please see LICENSE files in the repository root for full details. + */ + +package io.element.android.libraries.designsystem.components.visuallist + +import androidx.annotation.DrawableRes +import androidx.compose.runtime.Composable +import androidx.compose.ui.graphics.vector.ImageVector + +data class VisualListItemData( + val message: CharSequence, + @DrawableRes val iconId: Int? = null, + val iconVector: ImageVector? = null, + val iconComposable: @Composable () -> Unit = {}, +) From f35546b473adac1313b1c14ea70591dff916f490 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Thu, 2 Jul 2026 14:57:11 +0200 Subject: [PATCH 2/3] Change text style of VisualList. Ref: https://www.figma.com/design/G1xy0HDZKJf5TCRFmKb5d5/Compound-Android-Components?node-id=2001-140 --- .../features/analytics/impl/AnalyticsOptInView.kt | 7 +++---- .../impl/fullscreen/FullscreenAnnouncementView.kt | 2 -- .../android/features/signedout/impl/SignedOutView.kt | 9 +++------ .../designsystem/components/visuallist/VisualList.kt | 6 ++---- 4 files changed, 8 insertions(+), 16 deletions(-) diff --git a/features/analytics/impl/src/main/kotlin/io/element/android/features/analytics/impl/AnalyticsOptInView.kt b/features/analytics/impl/src/main/kotlin/io/element/android/features/analytics/impl/AnalyticsOptInView.kt index 80071241ba..c05edd825c 100644 --- a/features/analytics/impl/src/main/kotlin/io/element/android/features/analytics/impl/AnalyticsOptInView.kt +++ b/features/analytics/impl/src/main/kotlin/io/element/android/features/analytics/impl/AnalyticsOptInView.kt @@ -65,9 +65,9 @@ fun AnalyticsOptInView( BackHandler(onBack = ::onDeclineTerms) HeaderFooterPage( modifier = modifier - .fillMaxSize() - .systemBarsPadding() - .imePadding(), + .fillMaxSize() + .systemBarsPadding() + .imePadding(), background = { OnboardingBackground() }, header = { AnalyticsOptInHeader(state, onClickTerms) }, content = { AnalyticsOptInContent() }, @@ -144,7 +144,6 @@ private fun AnalyticsOptInContent() { iconVector = CompoundIcons.CheckCircle(), ), ), - textStyle = ElementTheme.typography.fontBodyLgMedium, iconTint = ElementTheme.colors.iconSuccessPrimary, ) } diff --git a/features/announcement/impl/src/main/kotlin/io/element/android/features/announcement/impl/fullscreen/FullscreenAnnouncementView.kt b/features/announcement/impl/src/main/kotlin/io/element/android/features/announcement/impl/fullscreen/FullscreenAnnouncementView.kt index d396f1b8b6..5f7778900b 100644 --- a/features/announcement/impl/src/main/kotlin/io/element/android/features/announcement/impl/fullscreen/FullscreenAnnouncementView.kt +++ b/features/announcement/impl/src/main/kotlin/io/element/android/features/announcement/impl/fullscreen/FullscreenAnnouncementView.kt @@ -137,8 +137,6 @@ private fun FullscreenAnnouncementContent( VisualList( modifier = Modifier.fillMaxWidth(), items = announcement.items(), - textStyle = ElementTheme.typography.fontBodyLgMedium, - iconTint = ElementTheme.colors.iconSecondary, iconSize = 24.dp ) announcement.notice()?.let { notice -> diff --git a/features/signedout/impl/src/main/kotlin/io/element/android/features/signedout/impl/SignedOutView.kt b/features/signedout/impl/src/main/kotlin/io/element/android/features/signedout/impl/SignedOutView.kt index 8268e127f6..41a99713e7 100644 --- a/features/signedout/impl/src/main/kotlin/io/element/android/features/signedout/impl/SignedOutView.kt +++ b/features/signedout/impl/src/main/kotlin/io/element/android/features/signedout/impl/SignedOutView.kt @@ -21,7 +21,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.compose.ui.unit.dp -import io.element.android.compound.theme.ElementTheme import io.element.android.compound.tokens.generated.CompoundIcons import io.element.android.libraries.designsystem.atomic.molecules.ButtonColumnMolecule import io.element.android.libraries.designsystem.atomic.molecules.IconTitleSubtitleMolecule @@ -43,9 +42,9 @@ fun SignedOutView( BackHandler(onBack = { state.eventSink(SignedOutEvents.SignInAgain) }) HeaderFooterPage( modifier = modifier - .fillMaxSize() - .systemBarsPadding() - .imePadding(), + .fillMaxSize() + .systemBarsPadding() + .imePadding(), header = { SignedOutHeader(state) }, content = { SignedOutContent() }, footer = { @@ -90,8 +89,6 @@ private fun SignedOutContent() { iconVector = CompoundIcons.Block(), ), ), - textStyle = ElementTheme.typography.fontBodyMdMedium, - iconTint = ElementTheme.colors.iconSecondary, ) } } diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/visuallist/VisualList.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/visuallist/VisualList.kt index 65141df014..0b5e63dcbe 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/visuallist/VisualList.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/visuallist/VisualList.kt @@ -11,8 +11,6 @@ package io.element.android.libraries.designsystem.components.visuallist import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.size -import androidx.compose.material3.LocalContentColor -import androidx.compose.material3.LocalTextStyle import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color @@ -36,9 +34,9 @@ fun VisualList( items: ImmutableList, modifier: Modifier = Modifier, backgroundColor: Color = ElementTheme.colors.bgSubtleSecondary, - iconTint: Color = LocalContentColor.current, + iconTint: Color = ElementTheme.colors.iconSecondary, iconSize: Dp = 20.dp, - textStyle: TextStyle = LocalTextStyle.current, + textStyle: TextStyle = ElementTheme.typography.fontBodyMdMedium, textColor: Color = ElementTheme.colors.textPrimary, verticalArrangement: Arrangement.Vertical = Arrangement.spacedBy(4.dp), ) { From 7015172df1a643f4dca226857c2658fed83be7c3 Mon Sep 17 00:00:00 2001 From: ElementBot Date: Thu, 2 Jul 2026 13:12:22 +0000 Subject: [PATCH 3/3] Update screenshots --- .../features.analytics.impl_AnalyticsOptInView_Day_0_en.png | 4 ++-- .../features.analytics.impl_AnalyticsOptInView_Day_1_en.png | 4 ++-- .../features.analytics.impl_AnalyticsOptInView_Night_0_en.png | 4 ++-- .../features.analytics.impl_AnalyticsOptInView_Night_1_en.png | 4 ++-- ...nt.impl.fullscreen_FullscreenAnnouncementView_Day_1_en.png | 4 ++-- ....impl.fullscreen_FullscreenAnnouncementView_Night_1_en.png | 4 ++-- ...ebackup.impl.reset.root_ResetIdentityRootView_Day_0_en.png | 4 ++-- ...ebackup.impl.reset.root_ResetIdentityRootView_Day_1_en.png | 4 ++-- ...ackup.impl.reset.root_ResetIdentityRootView_Night_0_en.png | 4 ++-- ...ackup.impl.reset.root_ResetIdentityRootView_Night_1_en.png | 4 ++-- ...esignsystem.atomic.organisms_InfoListOrganism_Day_0_en.png | 3 --- ...ignsystem.atomic.organisms_InfoListOrganism_Night_0_en.png | 3 --- ...nsystem.components.visuallist_VisualListItem_Day_0_en.png} | 0 ...ystem.components.visuallist_VisualListItem_Night_0_en.png} | 0 ...designsystem.components.visuallist_VisualList_Day_0_en.png | 3 +++ ...signsystem.components.visuallist_VisualList_Night_0_en.png | 3 +++ 16 files changed, 26 insertions(+), 26 deletions(-) delete mode 100644 tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.organisms_InfoListOrganism_Day_0_en.png delete mode 100644 tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.organisms_InfoListOrganism_Night_0_en.png rename tests/uitests/src/test/snapshots/images/{libraries.designsystem.atomic.molecules_InfoListItemMolecule_Day_0_en.png => libraries.designsystem.components.visuallist_VisualListItem_Day_0_en.png} (100%) rename tests/uitests/src/test/snapshots/images/{libraries.designsystem.atomic.molecules_InfoListItemMolecule_Night_0_en.png => libraries.designsystem.components.visuallist_VisualListItem_Night_0_en.png} (100%) create mode 100644 tests/uitests/src/test/snapshots/images/libraries.designsystem.components.visuallist_VisualList_Day_0_en.png create mode 100644 tests/uitests/src/test/snapshots/images/libraries.designsystem.components.visuallist_VisualList_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/features.analytics.impl_AnalyticsOptInView_Day_0_en.png b/tests/uitests/src/test/snapshots/images/features.analytics.impl_AnalyticsOptInView_Day_0_en.png index cf887d2057..de47dcabf4 100644 --- a/tests/uitests/src/test/snapshots/images/features.analytics.impl_AnalyticsOptInView_Day_0_en.png +++ b/tests/uitests/src/test/snapshots/images/features.analytics.impl_AnalyticsOptInView_Day_0_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:44caa90be72f8ff87f5e7c9a4fa7ff18254e09e0ff8086b6cd69c6c4827f3b1a -size 82510 +oid sha256:58f84b7eb0039b81f7bf1a879042095ecbd99412d48cdd8072df1486ca9d78a5 +size 81677 diff --git a/tests/uitests/src/test/snapshots/images/features.analytics.impl_AnalyticsOptInView_Day_1_en.png b/tests/uitests/src/test/snapshots/images/features.analytics.impl_AnalyticsOptInView_Day_1_en.png index e4710507e8..7329a2e799 100644 --- a/tests/uitests/src/test/snapshots/images/features.analytics.impl_AnalyticsOptInView_Day_1_en.png +++ b/tests/uitests/src/test/snapshots/images/features.analytics.impl_AnalyticsOptInView_Day_1_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5657c3ce5c5928c082fde832939637cb6201d8299d31360df160a37ed70eab90 -size 81391 +oid sha256:e7f402ad83c4032217f22048b59de363ab1a1a19c1c4fb81ec8fd3402698c4d8 +size 79607 diff --git a/tests/uitests/src/test/snapshots/images/features.analytics.impl_AnalyticsOptInView_Night_0_en.png b/tests/uitests/src/test/snapshots/images/features.analytics.impl_AnalyticsOptInView_Night_0_en.png index b241662e21..7419f8df30 100644 --- a/tests/uitests/src/test/snapshots/images/features.analytics.impl_AnalyticsOptInView_Night_0_en.png +++ b/tests/uitests/src/test/snapshots/images/features.analytics.impl_AnalyticsOptInView_Night_0_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d6cbfa0e9218e49009e13af0d2ebffc826770f17745b6b22c18a6650bc817391 -size 75776 +oid sha256:08c97bcb1ad81d7aab93c619bebaac4ec9ca860b2e71ae2648ebfab41cbdeca8 +size 74832 diff --git a/tests/uitests/src/test/snapshots/images/features.analytics.impl_AnalyticsOptInView_Night_1_en.png b/tests/uitests/src/test/snapshots/images/features.analytics.impl_AnalyticsOptInView_Night_1_en.png index 9533025b72..b15f5ca22e 100644 --- a/tests/uitests/src/test/snapshots/images/features.analytics.impl_AnalyticsOptInView_Night_1_en.png +++ b/tests/uitests/src/test/snapshots/images/features.analytics.impl_AnalyticsOptInView_Night_1_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2a1cbb9cd3f47cfb7710cf50718e9987e2479d61b006e45a4d8fd005b963df93 -size 73987 +oid sha256:fa8c26e98e9cefb8e33902615f5b18c1931e0816d4a047715ef6cad2229b10dc +size 72245 diff --git a/tests/uitests/src/test/snapshots/images/features.announcement.impl.fullscreen_FullscreenAnnouncementView_Day_1_en.png b/tests/uitests/src/test/snapshots/images/features.announcement.impl.fullscreen_FullscreenAnnouncementView_Day_1_en.png index d8b961c49b..05fa99ba62 100644 --- a/tests/uitests/src/test/snapshots/images/features.announcement.impl.fullscreen_FullscreenAnnouncementView_Day_1_en.png +++ b/tests/uitests/src/test/snapshots/images/features.announcement.impl.fullscreen_FullscreenAnnouncementView_Day_1_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:219cb8f4e6eb3231b70758b3e749ea035ef46178520e7133659d378f8399f153 -size 59974 +oid sha256:33e4ea9bc6269d6ac5ce7ff6a76cdd1011e0f3dff96b920714b7f97d1aa1bf12 +size 62540 diff --git a/tests/uitests/src/test/snapshots/images/features.announcement.impl.fullscreen_FullscreenAnnouncementView_Night_1_en.png b/tests/uitests/src/test/snapshots/images/features.announcement.impl.fullscreen_FullscreenAnnouncementView_Night_1_en.png index d0a711bd4c..77cac5fc57 100644 --- a/tests/uitests/src/test/snapshots/images/features.announcement.impl.fullscreen_FullscreenAnnouncementView_Night_1_en.png +++ b/tests/uitests/src/test/snapshots/images/features.announcement.impl.fullscreen_FullscreenAnnouncementView_Night_1_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:71085b7d41122d58311cfac1b0660d36b76b364253e0a5053456ad4a1a91c3dc -size 58788 +oid sha256:4e0406e368a19e1bc445b70c3b14128ed7c8bc02bd0e5da9c53611714e627a05 +size 61706 diff --git a/tests/uitests/src/test/snapshots/images/features.securebackup.impl.reset.root_ResetIdentityRootView_Day_0_en.png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.reset.root_ResetIdentityRootView_Day_0_en.png index 92bb8a2f0b..cfdc2465c2 100644 --- a/tests/uitests/src/test/snapshots/images/features.securebackup.impl.reset.root_ResetIdentityRootView_Day_0_en.png +++ b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.reset.root_ResetIdentityRootView_Day_0_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:14b54f69d324aceef11b754a3b66def948a22697cda3e7584303b3a9e45c536f -size 64169 +oid sha256:7db669adacaceb7521c6c29a6ffc4b5a96bcfe6de12b36ca37bb944a76999048 +size 70989 diff --git a/tests/uitests/src/test/snapshots/images/features.securebackup.impl.reset.root_ResetIdentityRootView_Day_1_en.png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.reset.root_ResetIdentityRootView_Day_1_en.png index 16bb3b6d16..8d8f25cb28 100644 --- a/tests/uitests/src/test/snapshots/images/features.securebackup.impl.reset.root_ResetIdentityRootView_Day_1_en.png +++ b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.reset.root_ResetIdentityRootView_Day_1_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:af9848cd44308df46cf42f3ed812f26e61740d52500b66b979cc03c378110524 -size 56130 +oid sha256:f241e93ac7db5568ec81fbfc23d2aaa8d1a6defa3280f3340b845ed7b554704d +size 57897 diff --git a/tests/uitests/src/test/snapshots/images/features.securebackup.impl.reset.root_ResetIdentityRootView_Night_0_en.png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.reset.root_ResetIdentityRootView_Night_0_en.png index 5a91d81f33..860275a09b 100644 --- a/tests/uitests/src/test/snapshots/images/features.securebackup.impl.reset.root_ResetIdentityRootView_Night_0_en.png +++ b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.reset.root_ResetIdentityRootView_Night_0_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:286b10d2c7cdaaf08373479de879b72dc674d4de1ecb62976ec6fcc53dc72289 -size 62825 +oid sha256:feb4a95d94bd3eb666a75ab9abbd314a2aaffbabf58ef6e48e400ad9fab1b147 +size 69123 diff --git a/tests/uitests/src/test/snapshots/images/features.securebackup.impl.reset.root_ResetIdentityRootView_Night_1_en.png b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.reset.root_ResetIdentityRootView_Night_1_en.png index e417c8c9cd..e387e49f85 100644 --- a/tests/uitests/src/test/snapshots/images/features.securebackup.impl.reset.root_ResetIdentityRootView_Night_1_en.png +++ b/tests/uitests/src/test/snapshots/images/features.securebackup.impl.reset.root_ResetIdentityRootView_Night_1_en.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c064561c817ee9b305fe9064d976aa80f4047f8ea5e0cf74f0b186d370f2edaa -size 54045 +oid sha256:e73307fb019a9ca043ece75bd5f34e0198e86e5caf3a82c2e1517e2d121ffda5 +size 55756 diff --git a/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.organisms_InfoListOrganism_Day_0_en.png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.organisms_InfoListOrganism_Day_0_en.png deleted file mode 100644 index 39c95115b8..0000000000 --- a/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.organisms_InfoListOrganism_Day_0_en.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e7d9d8fed9ba46489e2e079fd8999bd0b4716192c68f4be9a109b998ee5c2f15 -size 11185 diff --git a/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.organisms_InfoListOrganism_Night_0_en.png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.organisms_InfoListOrganism_Night_0_en.png deleted file mode 100644 index 549d8acbf1..0000000000 --- a/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.organisms_InfoListOrganism_Night_0_en.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:32284987439f0a1dd25daddc666348b48eb842ccf3c58d3be22f4c7973bc507f -size 11014 diff --git a/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.molecules_InfoListItemMolecule_Day_0_en.png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.visuallist_VisualListItem_Day_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.molecules_InfoListItemMolecule_Day_0_en.png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.visuallist_VisualListItem_Day_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.molecules_InfoListItemMolecule_Night_0_en.png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.visuallist_VisualListItem_Night_0_en.png similarity index 100% rename from tests/uitests/src/test/snapshots/images/libraries.designsystem.atomic.molecules_InfoListItemMolecule_Night_0_en.png rename to tests/uitests/src/test/snapshots/images/libraries.designsystem.components.visuallist_VisualListItem_Night_0_en.png diff --git a/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.visuallist_VisualList_Day_0_en.png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.visuallist_VisualList_Day_0_en.png new file mode 100644 index 0000000000..ddbaaaee08 --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.visuallist_VisualList_Day_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aa84713e216a9f9f153470d94886024b3ddead8aa0ccb5ca851cbac590ee2e6d +size 10341 diff --git a/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.visuallist_VisualList_Night_0_en.png b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.visuallist_VisualList_Night_0_en.png new file mode 100644 index 0000000000..3a2b980e3e --- /dev/null +++ b/tests/uitests/src/test/snapshots/images/libraries.designsystem.components.visuallist_VisualList_Night_0_en.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dd517f2b15ead6246fc42538a85663d7339c3d441e562b71be6016a9c2debe8f +size 10207