17
17
package io.element.android.features.analytics.impl
18
18
19
19
import androidx.activity.compose.BackHandler
20
- import androidx.compose.foundation.background
21
20
import androidx.compose.foundation.layout.Box
22
21
import androidx.compose.foundation.layout.Column
23
22
import androidx.compose.foundation.layout.fillMaxSize
24
23
import androidx.compose.foundation.layout.fillMaxWidth
25
24
import androidx.compose.foundation.layout.imePadding
26
25
import androidx.compose.foundation.layout.padding
27
- import androidx.compose.foundation.layout.size
28
26
import androidx.compose.foundation.layout.systemBarsPadding
29
- import androidx.compose.foundation.shape.CircleShape
30
27
import androidx.compose.foundation.text.ClickableText
31
- import androidx.compose.material.icons.Icons
32
- import androidx.compose.material.icons.filled.Poll
33
28
import androidx.compose.material3.MaterialTheme
34
29
import androidx.compose.runtime.Composable
35
30
import androidx.compose.ui.Alignment
@@ -45,18 +40,18 @@ import io.element.android.compound.theme.ElementTheme
45
40
import io.element.android.compound.tokens.generated.CompoundIcons
46
41
import io.element.android.features.analytics.api.AnalyticsOptInEvents
47
42
import io.element.android.libraries.designsystem.atomic.molecules.ButtonColumnMolecule
48
- import io.element.android.libraries.designsystem.atomic.molecules.IconTitleSubtitleMolecule
49
43
import io.element.android.libraries.designsystem.atomic.organisms.InfoListItem
50
44
import io.element.android.libraries.designsystem.atomic.organisms.InfoListOrganism
51
45
import io.element.android.libraries.designsystem.atomic.pages.HeaderFooterPage
46
+ import io.element.android.libraries.designsystem.components.BigIcon
47
+ import io.element.android.libraries.designsystem.components.OnboardingBackground
48
+ import io.element.android.libraries.designsystem.components.PageTitle
52
49
import io.element.android.libraries.designsystem.preview.ElementPreview
53
50
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
54
51
import io.element.android.libraries.designsystem.text.buildAnnotatedStringWithStyledPart
55
52
import io.element.android.libraries.designsystem.theme.components.Button
56
53
import io.element.android.libraries.designsystem.theme.components.ButtonSize
57
- import io.element.android.libraries.designsystem.theme.components.Icon
58
54
import io.element.android.libraries.designsystem.theme.components.TextButton
59
- import io.element.android.libraries.designsystem.theme.temporaryColorBgSpecial
60
55
import io.element.android.libraries.ui.strings.CommonStrings
61
56
import kotlinx.collections.immutable.persistentListOf
62
57
@@ -82,6 +77,7 @@ fun AnalyticsOptInView(
82
77
.fillMaxSize()
83
78
.systemBarsPadding()
84
79
.imePadding(),
80
+ background = { OnboardingBackground () },
85
81
header = { AnalyticsOptInHeader (state, onClickTerms) },
86
82
content = { AnalyticsOptInContent () },
87
83
footer = {
@@ -103,11 +99,11 @@ private fun AnalyticsOptInHeader(
103
99
Column (
104
100
horizontalAlignment = Alignment .CenterHorizontally ,
105
101
) {
106
- IconTitleSubtitleMolecule (
102
+ PageTitle (
107
103
modifier = Modifier .padding(top = 60 .dp, bottom = 12 .dp),
108
104
title = stringResource(id = R .string.screen_analytics_prompt_title, state.applicationName),
109
- subTitle = stringResource(id = R .string.screen_analytics_prompt_help_us_improve),
110
- iconImageVector = Icons . Filled . Poll
105
+ subtitle = stringResource(id = R .string.screen_analytics_prompt_help_us_improve),
106
+ iconStyle = BigIcon . Style . Default ( CompoundIcons . Chart ())
111
107
)
112
108
val text = buildAnnotatedStringWithStyledPart(
113
109
R .string.screen_analytics_prompt_read_terms,
@@ -136,19 +132,6 @@ private fun AnalyticsOptInHeader(
136
132
}
137
133
}
138
134
139
- @Composable
140
- private fun CheckIcon () {
141
- Icon (
142
- modifier = Modifier
143
- .size(20 .dp)
144
- .background(color = MaterialTheme .colorScheme.background, shape = CircleShape )
145
- .padding(2 .dp),
146
- imageVector = CompoundIcons .Check (),
147
- contentDescription = null ,
148
- tint = ElementTheme .colors.textActionAccent,
149
- )
150
- }
151
-
152
135
@Composable
153
136
private fun AnalyticsOptInContent () {
154
137
Box (
@@ -162,20 +145,20 @@ private fun AnalyticsOptInContent() {
162
145
items = persistentListOf(
163
146
InfoListItem (
164
147
message = stringResource(id = R .string.screen_analytics_prompt_data_usage),
165
- iconComposable = { CheckIcon () } ,
148
+ iconVector = CompoundIcons . CheckCircle () ,
166
149
),
167
150
InfoListItem (
168
151
message = stringResource(id = R .string.screen_analytics_prompt_third_party_sharing),
169
- iconComposable = { CheckIcon () } ,
152
+ iconVector = CompoundIcons . CheckCircle () ,
170
153
),
171
154
InfoListItem (
172
155
message = stringResource(id = R .string.screen_analytics_prompt_settings),
173
- iconComposable = { CheckIcon () } ,
156
+ iconVector = CompoundIcons . CheckCircle () ,
174
157
),
175
158
),
176
- textStyle = ElementTheme .typography.fontBodyMdMedium ,
177
- iconTint = ElementTheme .colors.textPrimary ,
178
- backgroundColor = ElementTheme .colors.temporaryColorBgSpecial
159
+ textStyle = ElementTheme .typography.fontBodyLgMedium ,
160
+ iconTint = ElementTheme .colors.iconSuccessPrimary ,
161
+ backgroundColor = ElementTheme .colors.bgActionSecondaryHovered,
179
162
)
180
163
}
181
164
}
0 commit comments