Commits:
9 changed files:
Changes:
mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/HomeFragment.kt
| ... |
... |
@@ -185,6 +185,8 @@ import org.mozilla.fenix.wallpapers.Wallpaper |
|
185
|
185
|
import java.lang.ref.WeakReference
|
|
186
|
186
|
import org.mozilla.fenix.ipprotection.store.Surface as IPProtectionSurface
|
|
187
|
187
|
|
|
|
188
|
+import org.mozilla.fenix.ext.openToBrowser
|
|
|
189
|
+import org.mozilla.fenix.tor.TorCampaignViewModel
|
|
188
|
190
|
import org.mozilla.fenix.tor.TorHomePage
|
|
189
|
191
|
import org.mozilla.fenix.tor.UrlQuickLoadViewModel
|
|
190
|
192
|
|
| ... |
... |
@@ -200,6 +202,7 @@ class HomeFragment : Fragment(), UserInteractionHandler { |
|
200
|
202
|
|
|
201
|
203
|
private val homeViewModel: HomeScreenViewModel by activityViewModels()
|
|
202
|
204
|
private val urlQuickLoadViewModel: UrlQuickLoadViewModel by activityViewModels()
|
|
|
205
|
+ private val torCampaignViewModel: TorCampaignViewModel by activityViewModels()
|
|
203
|
206
|
|
|
204
|
207
|
private val snackbarHostState = SnackbarHostState()
|
|
205
|
208
|
|
| ... |
... |
@@ -593,7 +596,18 @@ class HomeFragment : Fragment(), UserInteractionHandler { |
|
593
|
596
|
},
|
|
594
|
597
|
containerColor = Color.Transparent,
|
|
595
|
598
|
) { innerPadding ->
|
|
596
|
|
- TorHomePage(innerPadding = innerPadding)
|
|
|
599
|
+ TorHomePage(
|
|
|
600
|
+ innerPadding = innerPadding,
|
|
|
601
|
+ shouldInitiallyShowPromo = torCampaignViewModel.shouldInitiallyShowPromo,
|
|
|
602
|
+ onClicked = {
|
|
|
603
|
+ findNavController().openToBrowser()
|
|
|
604
|
+ requireContext().components.useCases.fenixBrowserUseCases.loadUrlOrSearch(
|
|
|
605
|
+ // from https://gitlab.torproject.org/tpo/applications/tor-browser/-/work_items/45217#note_3464207
|
|
|
606
|
+ "https://donate.torproject.org/yec2026-tor-browser-android",
|
|
|
607
|
+ newTab = true,
|
|
|
608
|
+ )
|
|
|
609
|
+ },
|
|
|
610
|
+ )
|
|
597
|
611
|
}
|
|
598
|
612
|
}
|
|
599
|
613
|
}
|
mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/CampaignCompose.kt
|
|
1
|
+package org.mozilla.fenix.tor
|
|
|
2
|
+
|
|
|
3
|
+import androidx.annotation.DrawableRes
|
|
|
4
|
+import androidx.compose.foundation.Image
|
|
|
5
|
+import androidx.compose.foundation.background
|
|
|
6
|
+import androidx.compose.foundation.layout.Arrangement
|
|
|
7
|
+import androidx.compose.foundation.layout.Box
|
|
|
8
|
+import androidx.compose.foundation.layout.BoxWithConstraints
|
|
|
9
|
+import androidx.compose.foundation.layout.Column
|
|
|
10
|
+import androidx.compose.foundation.layout.PaddingValues
|
|
|
11
|
+import androidx.compose.foundation.layout.Row
|
|
|
12
|
+import androidx.compose.foundation.layout.Spacer
|
|
|
13
|
+import androidx.compose.foundation.layout.fillMaxHeight
|
|
|
14
|
+import androidx.compose.foundation.layout.fillMaxWidth
|
|
|
15
|
+import androidx.compose.foundation.layout.padding
|
|
|
16
|
+import androidx.compose.foundation.layout.size
|
|
|
17
|
+import androidx.compose.foundation.layout.wrapContentHeight
|
|
|
18
|
+import androidx.compose.foundation.shape.RoundedCornerShape
|
|
|
19
|
+import androidx.compose.material3.Button
|
|
|
20
|
+import androidx.compose.material3.ButtonDefaults
|
|
|
21
|
+import androidx.compose.material3.Icon
|
|
|
22
|
+import androidx.compose.material3.IconButton
|
|
|
23
|
+import androidx.compose.material3.Text
|
|
|
24
|
+import androidx.compose.runtime.Composable
|
|
|
25
|
+import androidx.compose.runtime.MutableState
|
|
|
26
|
+import androidx.compose.runtime.mutableStateOf
|
|
|
27
|
+import androidx.compose.ui.Alignment
|
|
|
28
|
+import androidx.compose.ui.Modifier
|
|
|
29
|
+import androidx.compose.ui.res.colorResource
|
|
|
30
|
+import androidx.compose.ui.res.painterResource
|
|
|
31
|
+import androidx.compose.ui.res.stringResource
|
|
|
32
|
+import androidx.compose.ui.text.AnnotatedString
|
|
|
33
|
+import androidx.compose.ui.text.TextStyle
|
|
|
34
|
+import androidx.compose.ui.text.font.FontFamily
|
|
|
35
|
+import androidx.compose.ui.text.font.FontWeight
|
|
|
36
|
+import androidx.compose.ui.text.fromHtml
|
|
|
37
|
+import androidx.compose.ui.text.style.TextAlign
|
|
|
38
|
+import androidx.compose.ui.tooling.preview.Preview
|
|
|
39
|
+import androidx.compose.ui.unit.Dp
|
|
|
40
|
+import androidx.compose.ui.unit.dp
|
|
|
41
|
+import androidx.compose.ui.unit.sp
|
|
|
42
|
+import mozilla.components.ui.colors.PhotonColors
|
|
|
43
|
+import org.mozilla.fenix.R
|
|
|
44
|
+
|
|
|
45
|
+
|
|
|
46
|
+private val alternateLayoutThreshHold = 500.dp
|
|
|
47
|
+
|
|
|
48
|
+@Composable
|
|
|
49
|
+@CampaignComposePreview
|
|
|
50
|
+fun CampaignBox(
|
|
|
51
|
+ shouldShowPromo: MutableState<Boolean> = mutableStateOf(true),
|
|
|
52
|
+ onDonateButtonClicked: () -> Unit = {},
|
|
|
53
|
+ ) {
|
|
|
54
|
+ BoxWithConstraints(
|
|
|
55
|
+ contentAlignment = Alignment.Center,
|
|
|
56
|
+ modifier = Modifier
|
|
|
57
|
+ .fillMaxWidth()
|
|
|
58
|
+ .fillMaxHeight(),
|
|
|
59
|
+ ) {
|
|
|
60
|
+ val alternateLayout = this.maxWidth >= alternateLayoutThreshHold
|
|
|
61
|
+
|
|
|
62
|
+ CampaignLayout(
|
|
|
63
|
+ alternateLayout,
|
|
|
64
|
+ maxWidth = this.maxWidth,
|
|
|
65
|
+ shouldShowPromo,
|
|
|
66
|
+ onDonateButtonClicked = onDonateButtonClicked,
|
|
|
67
|
+ )
|
|
|
68
|
+ }
|
|
|
69
|
+}
|
|
|
70
|
+
|
|
|
71
|
+@Composable
|
|
|
72
|
+private fun CampaignLayout(
|
|
|
73
|
+ alternateLayout: Boolean,
|
|
|
74
|
+ maxWidth: Dp,
|
|
|
75
|
+ shouldShowPromo: MutableState<Boolean>,
|
|
|
76
|
+ onDonateButtonClicked: () -> Unit,
|
|
|
77
|
+) {
|
|
|
78
|
+ Column(
|
|
|
79
|
+ modifier = Modifier
|
|
|
80
|
+ .fillMaxWidth(getVariableWidth(maxWidth))
|
|
|
81
|
+ .wrapContentHeight(),
|
|
|
82
|
+ horizontalAlignment = Alignment.CenterHorizontally,
|
|
|
83
|
+ ) {
|
|
|
84
|
+ PurpleBox(
|
|
|
85
|
+ alternateLayout,
|
|
|
86
|
+ shouldShowPromo,
|
|
|
87
|
+ onDonateButtonClicked = onDonateButtonClicked,
|
|
|
88
|
+ )
|
|
|
89
|
+ Spacer(Modifier.size(8.dp))
|
|
|
90
|
+ Text(
|
|
|
91
|
+ text = stringResource(R.string.no_donation_required_yec),
|
|
|
92
|
+ style = TextStyle(
|
|
|
93
|
+ fontSize = 12.5.sp,
|
|
|
94
|
+ lineHeight = 18.75.sp,
|
|
|
95
|
+ fontFamily = FontFamily.SansSerif,
|
|
|
96
|
+ fontWeight = FontWeight(400),
|
|
|
97
|
+ color = PhotonColors.LightGrey05,
|
|
|
98
|
+ textAlign = TextAlign.Center,
|
|
|
99
|
+ ),
|
|
|
100
|
+ )
|
|
|
101
|
+ }
|
|
|
102
|
+}
|
|
|
103
|
+
|
|
|
104
|
+private fun getVariableWidth(width: Dp): Float =
|
|
|
105
|
+ (alternateLayoutThreshHold / width).coerceIn(0.80f, 1.0f)
|
|
|
106
|
+
|
|
|
107
|
+@Composable
|
|
|
108
|
+private fun PurpleBox(
|
|
|
109
|
+ alternateLayout: Boolean,
|
|
|
110
|
+ shouldShowPromo: MutableState<Boolean>,
|
|
|
111
|
+ onDonateButtonClicked: () -> Unit,
|
|
|
112
|
+) {
|
|
|
113
|
+ Box(
|
|
|
114
|
+ modifier = Modifier.background(
|
|
|
115
|
+ colorResource(mozilla.components.ui.colors.R.color.photonViolet90),
|
|
|
116
|
+ shape = RoundedCornerShape(8.dp),
|
|
|
117
|
+ ),
|
|
|
118
|
+ ) {
|
|
|
119
|
+ Row(
|
|
|
120
|
+ modifier = Modifier
|
|
|
121
|
+ .fillMaxWidth()
|
|
|
122
|
+ .wrapContentHeight(),
|
|
|
123
|
+ horizontalArrangement = Arrangement.End,
|
|
|
124
|
+ ) {
|
|
|
125
|
+ ExitIcon(shouldShowPromo)
|
|
|
126
|
+ }
|
|
|
127
|
+ DynamicCampaignContent(
|
|
|
128
|
+ alternateLayout, onDonateButtonClicked = onDonateButtonClicked,
|
|
|
129
|
+ )
|
|
|
130
|
+ }
|
|
|
131
|
+}
|
|
|
132
|
+
|
|
|
133
|
+@Composable
|
|
|
134
|
+private fun ExitIcon(shouldShowYec: MutableState<Boolean>) {
|
|
|
135
|
+ IconButton(
|
|
|
136
|
+ onClick = {
|
|
|
137
|
+ shouldShowYec.value = false
|
|
|
138
|
+ },
|
|
|
139
|
+ ) {
|
|
|
140
|
+ Icon(
|
|
|
141
|
+ painter = painterResource(id = mozilla.components.ui.icons.R.drawable.mozac_ic_cross_20),
|
|
|
142
|
+ tint = PhotonColors.White,
|
|
|
143
|
+ contentDescription = stringResource(R.string.close_yec_button_description),
|
|
|
144
|
+ )
|
|
|
145
|
+ }
|
|
|
146
|
+}
|
|
|
147
|
+
|
|
|
148
|
+
|
|
|
149
|
+@Composable
|
|
|
150
|
+private fun DynamicCampaignContent(
|
|
|
151
|
+ alternateLayout: Boolean,
|
|
|
152
|
+ onDonateButtonClicked: () -> Unit,
|
|
|
153
|
+) {
|
|
|
154
|
+ @Composable
|
|
|
155
|
+ fun Icon(shouldShow: Boolean, @DrawableRes drawable: Int) {
|
|
|
156
|
+ if (shouldShow) {
|
|
|
157
|
+ Image(
|
|
|
158
|
+ painterResource(drawable),
|
|
|
159
|
+ contentDescription = null,
|
|
|
160
|
+ alignment = Alignment.Center,
|
|
|
161
|
+ )
|
|
|
162
|
+ }
|
|
|
163
|
+ }
|
|
|
164
|
+ Row(
|
|
|
165
|
+ modifier = Modifier
|
|
|
166
|
+ .padding(start = 16.dp, top = if (alternateLayout) 24.dp else 32.dp, end = 16.dp, bottom = 24.dp)
|
|
|
167
|
+ .fillMaxWidth(),
|
|
|
168
|
+ verticalAlignment = Alignment.CenterVertically,
|
|
|
169
|
+ ) {
|
|
|
170
|
+ Column(
|
|
|
171
|
+ modifier = Modifier.fillMaxWidth(),
|
|
|
172
|
+ horizontalAlignment = if (alternateLayout) Alignment.Start else Alignment.CenterHorizontally,
|
|
|
173
|
+ ) {
|
|
|
174
|
+ Icon(shouldShow = !alternateLayout, R.drawable.bulb_illo_yec)
|
|
|
175
|
+ Spacer(Modifier.size (if (alternateLayout) 0.dp else 16.dp))
|
|
|
176
|
+ Row(verticalAlignment = Alignment.CenterVertically) {
|
|
|
177
|
+ Icon(shouldShow = alternateLayout, R.drawable.circled_lighning_yec)
|
|
|
178
|
+ Spacer(Modifier.size(if (alternateLayout) 8.dp else 0.dp))
|
|
|
179
|
+ TitleText()
|
|
|
180
|
+ }
|
|
|
181
|
+ Spacer(Modifier.size(8.dp))
|
|
|
182
|
+ MainText()
|
|
|
183
|
+ Spacer(Modifier.size(if (alternateLayout) 16.dp else 24.dp))
|
|
|
184
|
+ Row(
|
|
|
185
|
+ horizontalArrangement = if (alternateLayout) Arrangement.Start else Arrangement.Center,
|
|
|
186
|
+ modifier = Modifier.fillMaxWidth(),
|
|
|
187
|
+ ) {
|
|
|
188
|
+ DonateButton(onDonateButtonClicked = onDonateButtonClicked, alternateLayout)
|
|
|
189
|
+ }
|
|
|
190
|
+ }
|
|
|
191
|
+ }
|
|
|
192
|
+}
|
|
|
193
|
+
|
|
|
194
|
+
|
|
|
195
|
+@Composable
|
|
|
196
|
+private fun TitleText() {
|
|
|
197
|
+ Text(
|
|
|
198
|
+ text = stringResource(R.string.yec26_tor_powered_by_you),
|
|
|
199
|
+ style = TextStyle(
|
|
|
200
|
+ fontSize = 24.sp,
|
|
|
201
|
+ lineHeight = 32.sp,
|
|
|
202
|
+ fontWeight = FontWeight(400),
|
|
|
203
|
+ color = PhotonColors.White,
|
|
|
204
|
+ textAlign = TextAlign.Center,
|
|
|
205
|
+ letterSpacing = 0.18.sp,
|
|
|
206
|
+ ),
|
|
|
207
|
+ )
|
|
|
208
|
+}
|
|
|
209
|
+
|
|
|
210
|
+
|
|
|
211
|
+@Composable
|
|
|
212
|
+private fun MainText() {
|
|
|
213
|
+ Column {
|
|
|
214
|
+ Text(
|
|
|
215
|
+ AnnotatedString.fromHtml(
|
|
|
216
|
+ // Relevant documentation on HTML markup for android https://developer.android.com/guide/topics/resources/string-resource?utm_source=android-studio-app&utm_medium=app#StylingWithHTML
|
|
|
217
|
+ stringResource(
|
|
|
218
|
+ R.string.yec26_call_to_action,
|
|
|
219
|
+ ),
|
|
|
220
|
+ ), style = TextStyle(
|
|
|
221
|
+ fontSize = 14.sp,
|
|
|
222
|
+ lineHeight = 20.sp,
|
|
|
223
|
+ color = PhotonColors.White,
|
|
|
224
|
+ fontWeight = FontWeight(400),
|
|
|
225
|
+ letterSpacing = 0.25.sp,
|
|
|
226
|
+ )
|
|
|
227
|
+ )
|
|
|
228
|
+ }
|
|
|
229
|
+}
|
|
|
230
|
+
|
|
|
231
|
+@Composable
|
|
|
232
|
+private fun DonateButton(onDonateButtonClicked: () -> Unit, alternateLayout: Boolean) {
|
|
|
233
|
+ Button(
|
|
|
234
|
+ onClick = onDonateButtonClicked,
|
|
|
235
|
+ colors = ButtonDefaults.buttonColors(
|
|
|
236
|
+ colorResource(mozilla.components.ui.colors.R.color.photonViolet60),
|
|
|
237
|
+ ),
|
|
|
238
|
+ shape = RoundedCornerShape(4.dp),
|
|
|
239
|
+ contentPadding = PaddingValues(horizontal = 16.dp),
|
|
|
240
|
+ modifier = if (alternateLayout) Modifier.fillMaxWidth() else Modifier.fillMaxWidth()
|
|
|
241
|
+ ) {
|
|
|
242
|
+ Text(
|
|
|
243
|
+ text = stringResource(R.string.donate_now_yec),
|
|
|
244
|
+ textAlign = TextAlign.Center,
|
|
|
245
|
+ fontSize = 16.sp,
|
|
|
246
|
+ fontWeight = FontWeight.SemiBold,
|
|
|
247
|
+ color = PhotonColors.LightGrey05,
|
|
|
248
|
+ )
|
|
|
249
|
+ Spacer(
|
|
|
250
|
+ Modifier.size(8.dp),
|
|
|
251
|
+ )
|
|
|
252
|
+ Image(
|
|
|
253
|
+ painterResource(R.drawable.heart),
|
|
|
254
|
+ contentDescription = null,
|
|
|
255
|
+ )
|
|
|
256
|
+ }
|
|
|
257
|
+}
|
|
|
258
|
+
|
|
|
259
|
+
|
|
|
260
|
+
|
|
|
261
|
+@Preview(
|
|
|
262
|
+ name = "Small Window",
|
|
|
263
|
+ widthDp = 400,
|
|
|
264
|
+)
|
|
|
265
|
+@Preview(
|
|
|
266
|
+ name = "Medium Window",
|
|
|
267
|
+ widthDp = 700,
|
|
|
268
|
+)
|
|
|
269
|
+@Preview(
|
|
|
270
|
+ name = "Large Window",
|
|
|
271
|
+ widthDp = 1000,
|
|
|
272
|
+)
|
|
|
273
|
+@Preview(
|
|
|
274
|
+ name = "RTL Small Window",
|
|
|
275
|
+ locale = "ar",
|
|
|
276
|
+ widthDp = 400,
|
|
|
277
|
+)
|
|
|
278
|
+@Preview(
|
|
|
279
|
+ name = "RTL Large Window",
|
|
|
280
|
+ locale = "ar",
|
|
|
281
|
+ widthDp = 1000
|
|
|
282
|
+)
|
|
|
283
|
+annotation class CampaignComposePreview |
mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorCampaignViewModel.kt
|
|
1
|
+package org.mozilla.fenix.tor
|
|
|
2
|
+
|
|
|
3
|
+import android.annotation.SuppressLint
|
|
|
4
|
+import android.app.Application
|
|
|
5
|
+import android.util.Log
|
|
|
6
|
+import androidx.compose.runtime.MutableState
|
|
|
7
|
+import androidx.compose.runtime.mutableStateOf
|
|
|
8
|
+import androidx.lifecycle.AndroidViewModel
|
|
|
9
|
+import java.text.SimpleDateFormat
|
|
|
10
|
+import java.util.Date
|
|
|
11
|
+
|
|
|
12
|
+class TorCampaignViewModel(application: Application) : AndroidViewModel(application) {
|
|
|
13
|
+
|
|
|
14
|
+ val shouldInitiallyShowPromo: MutableState<Boolean> by lazy {
|
|
|
15
|
+ mutableStateOf(shouldInitiallyShowPromo())
|
|
|
16
|
+ }
|
|
|
17
|
+
|
|
|
18
|
+ @SuppressLint("SimpleDateFormat")
|
|
|
19
|
+ fun shouldInitiallyShowPromo(): Boolean {
|
|
|
20
|
+ val dateFormat = SimpleDateFormat("yyyy-MM-dd-hh-zzz")
|
|
|
21
|
+ // From https://gitlab.torproject.org/tpo/applications/tor-browser/-/work_items/45217#note_3462659
|
|
|
22
|
+ val startDate = dateFormat.parse("2026-10-13-08-UTC")
|
|
|
23
|
+ // From https://gitlab.torproject.org/tpo/applications/tor-browser/-/work_items/45217#note_3463954
|
|
|
24
|
+ val endDate = dateFormat.parse("2027-01-05-00-UTC")
|
|
|
25
|
+ val currentDate = Date()
|
|
|
26
|
+
|
|
|
27
|
+ if (currentDate.before(startDate) || currentDate.after(endDate)) {
|
|
|
28
|
+ return false
|
|
|
29
|
+ }
|
|
|
30
|
+ Log.d(
|
|
|
31
|
+ "TorCampaignViewModel",
|
|
|
32
|
+ "org.mozilla.fenix.BuildConfig.BUILD_TYPE = ${org.mozilla.fenix.BuildConfig.BUILD_TYPE}"
|
|
|
33
|
+ )
|
|
|
34
|
+ return (org.mozilla.fenix.BuildConfig.BUILD_TYPE == "release") || (org.mozilla.fenix.BuildConfig.BUILD_TYPE == "debug")
|
|
|
35
|
+ }
|
|
|
36
|
+
|
|
|
37
|
+} |
mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tor/TorHomePage.kt
| ... |
... |
@@ -33,6 +33,13 @@ import androidx.compose.ui.unit.sp |
|
33
|
33
|
import mozilla.components.compose.base.annotation.FlexibleWindowLightDarkPreview
|
|
34
|
34
|
import org.mozilla.fenix.R
|
|
35
|
35
|
|
|
|
36
|
+import android.annotation.SuppressLint
|
|
|
37
|
+import androidx.compose.foundation.layout.Box
|
|
|
38
|
+import androidx.compose.runtime.MutableState
|
|
|
39
|
+import androidx.compose.runtime.mutableStateOf
|
|
|
40
|
+import androidx.compose.runtime.saveable.rememberSaveable
|
|
|
41
|
+import androidx.compose.ui.tooling.preview.Preview
|
|
|
42
|
+
|
|
36
|
43
|
class PaddingValuesParameterProvider : PreviewParameterProvider<PaddingValues> {
|
|
37
|
44
|
override val values = sequenceOf(
|
|
38
|
45
|
PaddingValues(top = 60.dp),
|
| ... |
... |
@@ -44,7 +51,15 @@ class PaddingValuesParameterProvider : PreviewParameterProvider<PaddingValues> { |
|
44
|
51
|
@FlexibleWindowLightDarkPreview
|
|
45
|
52
|
fun TorHomePage(
|
|
46
|
53
|
@PreviewParameter(PaddingValuesParameterProvider::class) innerPadding: PaddingValues,
|
|
|
54
|
+ shouldInitiallyShowPromo: MutableState<Boolean> = mutableStateOf(true),
|
|
|
55
|
+ onClicked: () -> Unit = {},
|
|
47
|
56
|
) {
|
|
|
57
|
+ // Will persist across a single session, but not multiple sessions.
|
|
|
58
|
+ // Tapping the close button 'X' will hide the promo for the duration of the session
|
|
|
59
|
+ val shouldShowPromo = rememberSaveable {
|
|
|
60
|
+ shouldInitiallyShowPromo
|
|
|
61
|
+ }
|
|
|
62
|
+
|
|
48
|
63
|
Column(
|
|
49
|
64
|
modifier = Modifier
|
|
50
|
65
|
.fillMaxSize()
|
| ... |
... |
@@ -70,7 +85,7 @@ fun TorHomePage( |
|
70
|
85
|
) {
|
|
71
|
86
|
Spacer(modifier = Modifier.size(17.dp))
|
|
72
|
87
|
Row(
|
|
73
|
|
- modifier = Modifier.fillMaxWidth(), verticalAlignment = Alignment.CenterVertically,
|
|
|
88
|
+ modifier = Modifier.fillMaxWidth().padding(bottom = 10.dp), verticalAlignment = Alignment.CenterVertically,
|
|
74
|
89
|
) {
|
|
75
|
90
|
Image(
|
|
76
|
91
|
painter = painterResource(R.drawable.tor_browser_app_icon),
|
| ... |
... |
@@ -88,30 +103,73 @@ fun TorHomePage( |
|
88
|
103
|
)
|
|
89
|
104
|
}
|
|
90
|
105
|
Spacer(Modifier.weight(1f))
|
|
91
|
|
- Text(
|
|
92
|
|
- // Moved from the commit 5bb3cc6b93346dabd8d46677fae7f86a8f8a4fc2
|
|
93
|
|
- // "[android] Modify UI/UX", and the file HomeFragment.
|
|
94
|
|
- // Splits by full stops or commas and puts the parts in different lines.
|
|
95
|
|
- // Ignoring separators at the end of the string, it is expected
|
|
96
|
|
- // that there are at most two parts (e.g. "Explore. Privately.").
|
|
97
|
|
- text = stringResource(R.string.tor_explore_privately).replace(
|
|
|
106
|
+ if (shouldShowPromo.value) {
|
|
|
107
|
+ CampaignBox(
|
|
|
108
|
+ shouldShowPromo,
|
|
|
109
|
+ onDonateButtonClicked = onClicked,
|
|
|
110
|
+ )
|
|
|
111
|
+ Spacer(Modifier.weight(1f))
|
|
|
112
|
+ } else {
|
|
|
113
|
+ Text(
|
|
|
114
|
+ // Moved from the commit 5bb3cc6b93346dabd8d46677fae7f86a8f8a4fc2
|
|
|
115
|
+ // "[android] Modify UI/UX", and the file HomeFragment.
|
|
|
116
|
+ // Splits by full stops or commas and puts the parts in different lines.
|
|
|
117
|
+ // Ignoring separators at the end of the string, it is expected
|
|
|
118
|
+ // that there are at most two parts (e.g. "Explore. Privately.").
|
|
|
119
|
+ text = stringResource(R.string.tor_explore_privately).replace(
|
|
98
|
120
|
" *([.,。।]) *".toRegex(),
|
|
99
|
121
|
"$1\n",
|
|
100
|
122
|
).trim(),
|
|
101
|
|
- style = TextStyle(
|
|
102
|
|
- color = Color(color = 0xDEFFFFFF),
|
|
103
|
|
- fontSize = 40.sp,
|
|
104
|
|
- textAlign = TextAlign.Start,
|
|
105
|
|
- ),
|
|
106
|
|
- modifier = Modifier.align(Alignment.CenterHorizontally),
|
|
107
|
|
- )
|
|
108
|
|
- Spacer(Modifier.weight(1f))
|
|
109
|
|
- Image(
|
|
110
|
|
- painter = painterResource(
|
|
111
|
|
- id = R.drawable.ic_onion_pattern,
|
|
112
|
|
- ),
|
|
113
|
|
- contentDescription = null, Modifier.fillMaxWidth(),
|
|
114
|
|
- )
|
|
|
123
|
+ style = TextStyle(
|
|
|
124
|
+ color = Color(color = 0xDEFFFFFF),
|
|
|
125
|
+ fontSize = 40.sp,
|
|
|
126
|
+ textAlign = TextAlign.Start,
|
|
|
127
|
+ ),
|
|
|
128
|
+ modifier = Modifier.align(Alignment.CenterHorizontally),
|
|
|
129
|
+ )
|
|
|
130
|
+ }
|
|
|
131
|
+ if (!shouldShowPromo.value) {
|
|
|
132
|
+ Spacer(Modifier.weight(1f))
|
|
|
133
|
+ Image(
|
|
|
134
|
+ painter = painterResource(
|
|
|
135
|
+ id = R.drawable.ic_onion_pattern,
|
|
|
136
|
+ ),
|
|
|
137
|
+ contentDescription = null, Modifier.fillMaxWidth(),
|
|
|
138
|
+ )
|
|
|
139
|
+ }
|
|
115
|
140
|
}
|
|
116
|
141
|
Spacer(modifier = Modifier.size(17.dp))
|
|
117
|
142
|
}
|
|
|
143
|
+
|
|
|
144
|
+@SuppressLint("UnrememberedMutableState")
|
|
|
145
|
+@Composable
|
|
|
146
|
+@Preview
|
|
|
147
|
+/**
|
|
|
148
|
+ * Relevant documentation
|
|
|
149
|
+ * https://developer.android.com/develop/ui/compose/tooling/previews#preview-viewmodel
|
|
|
150
|
+ */
|
|
|
151
|
+private fun TorHomePagePreview(
|
|
|
152
|
+ @PreviewParameter(
|
|
|
153
|
+ BooleanPreviewParameterProvider ::class,
|
|
|
154
|
+ ) shouldShowPromo: Boolean,
|
|
|
155
|
+) {
|
|
|
156
|
+ Box(
|
|
|
157
|
+ contentAlignment = Alignment.TopStart,
|
|
|
158
|
+ modifier = Modifier.fillMaxSize(),
|
|
|
159
|
+ ) {
|
|
|
160
|
+ TorHomePage(
|
|
|
161
|
+ // restricted vertically so will not follow contentAlignment
|
|
|
162
|
+ shouldInitiallyShowPromo = mutableStateOf( shouldShowPromo),
|
|
|
163
|
+ innerPadding = PaddingValues(0.dp),
|
|
|
164
|
+ onClicked = {},
|
|
|
165
|
+ )
|
|
|
166
|
+ }
|
|
|
167
|
+}
|
|
|
168
|
+
|
|
|
169
|
+private class BooleanPreviewParameterProvider :
|
|
|
170
|
+ PreviewParameterProvider<Boolean> {
|
|
|
171
|
+ override val values: Sequence<Boolean>
|
|
|
172
|
+ get() = sequenceOf(
|
|
|
173
|
+ true, false
|
|
|
174
|
+ )
|
|
|
175
|
+} |
mobile/android/fenix/app/src/main/res/drawable/bulb_illo_yec.xml
|
|
1
|
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
|
|
2
|
+ android:width="126dp"
|
|
|
3
|
+ android:height="184dp"
|
|
|
4
|
+ android:viewportWidth="126"
|
|
|
5
|
+ android:viewportHeight="184">
|
|
|
6
|
+ <path
|
|
|
7
|
+ android:pathData="M19.7,73.13a49.65,49.97 0,1 0,99.29 0a49.65,49.97 0,1 0,-99.29 0z"
|
|
|
8
|
+ android:fillColor="#6757E0"/>
|
|
|
9
|
+ <path
|
|
|
10
|
+ android:pathData="M40.23,157.53C40.43,156.58 41.41,156 42.33,156.3C48.3,158.22 54.67,158.51 60.79,157.14L60.96,157.1C62.16,156.83 63.23,157.93 62.92,159.14L57.33,181.27C57.19,181.84 56.81,182.35 56.25,182.62C52.83,184.26 47.81,184.92 37.17,181.35C36.16,181.01 35.57,179.96 35.79,178.92L40.23,157.53Z"
|
|
|
11
|
+ android:fillColor="#6757E0"/>
|
|
|
12
|
+ <path
|
|
|
13
|
+ android:pathData="M59.5,129.87C60.59,125.86 69.88,125.85 74.34,133.26C76.94,138.01 73.23,142.23 71.61,143.59C71.58,143.61 71.64,143.56 71.61,143.59C68.61,146.1 66.44,146.76 64.99,147.52C69.21,146.04 71.55,144.86 75.51,144.25C81.31,143.35 86.38,143.44 88.83,145.39C90.15,146.74 89.52,149 88.08,149.42C86.64,149.84 84.41,149.89 78.07,149.66C75.87,149.58 71.82,149.85 68.45,151.08C71.78,151.05 84.63,152.28 84.66,156.49C84.66,156.94 84.55,157.36 84.33,157.74C84.32,157.76 84.31,157.78 84.3,157.8C84.3,157.8 84.3,157.81 84.29,157.81L84.29,157.82C82.74,160.41 75.29,157.53 72.13,156.58C69.77,155.87 68.25,155.67 65.79,155.5C68.24,155.54 81.63,160.65 79.77,165.86C79.72,166.01 79.65,166.16 79.57,166.3C76.95,169.33 69.97,165.18 62.24,157.93C56.2,159.41 44.97,158.07 41.84,156.51C41.84,156.51 38.37,152.92 36.52,150.21C34.91,147.85 31.45,143.85 30.26,139.9C29.66,137.94 30.24,135.85 31.6,134.32C33.82,131.83 37.88,128.51 42.76,127.02C49.11,125.08 53.43,130.74 46.54,133.67C39.65,136.6 38.34,136.55 39.65,139.68C40.97,142.8 48.77,144.61 52.52,144.37C63.89,144.45 68.84,137.25 65.09,134.97C60.52,133.06 58.91,132.06 59.5,129.87Z"
|
|
|
14
|
+ android:fillColor="#EDB6FF"/>
|
|
|
15
|
+ <path
|
|
|
16
|
+ android:pathData="M42.35,129.44L43.16,132.04C43.35,132.63 43.97,132.98 44.55,132.77C46.43,132.08 48.74,130.71 47.89,128.9C47.04,127.09 44.62,127.47 42.96,128.09C42.42,128.29 42.18,128.89 42.35,129.44Z"
|
|
|
17
|
+ android:fillColor="#6757E0"/>
|
|
|
18
|
+ <path
|
|
|
19
|
+ android:pathData="M67.02,130.68L66.04,132.46C65.77,132.96 65.17,133.19 64.64,132.96C62.86,132.15 60.68,130.7 61.76,129.28C62.79,127.94 65,128.47 66.56,129.17C67.13,129.43 67.32,130.13 67.02,130.68Z"
|
|
|
20
|
+ android:fillColor="#6757E0"/>
|
|
|
21
|
+ <path
|
|
|
22
|
+ android:pathData="M54.16,170.41C53.61,173.97 47.92,176.04 47.68,176.13C47.62,176.15 47.55,176.16 47.48,176.15C47.42,176.13 47.35,176.11 47.3,176.07C47.09,175.91 42.28,172.22 42.82,168.66C42.95,167.83 43.41,167.08 44.08,166.57C44.76,166.07 45.61,165.87 46.44,165.99C47.49,166.15 48.33,166.75 48.79,167.6C49.47,166.92 50.46,166.61 51.5,166.77C52.33,166.9 53.08,167.36 53.58,168.04C54.08,168.72 54.28,169.57 54.16,170.41Z"
|
|
|
23
|
+ android:fillColor="#B3E54E"/>
|
|
|
24
|
+ <path
|
|
|
25
|
+ android:pathData="M68.07,45.9C81.97,45.9 93.25,57.83 93.25,72.54C93.25,82.29 88.3,90.81 80.92,95.46C79.64,96.27 78.76,97.64 78.76,99.16V102.02C78.76,104.23 76.98,106.02 74.78,106.02H61.35C59.15,106.02 57.37,104.23 57.37,102.02V99.16C57.37,97.64 56.49,96.27 55.21,95.46C47.83,90.81 42.88,82.29 42.88,72.54C42.88,57.83 54.16,45.9 68.07,45.9Z"
|
|
|
26
|
+ android:fillColor="#EDB6FF"/>
|
|
|
27
|
+ <path
|
|
|
28
|
+ android:pathData="M79.18,70.66C82.81,70.66 85.75,73.62 85.75,77.27V78.41C85.75,80.47 84.9,82.44 83.41,83.84L76.91,89.95C75.6,91.18 74.86,92.9 74.86,94.69V105.79C74.86,107.61 73.39,109.09 71.58,109.09C69.77,109.09 68.3,107.61 68.3,105.79V94.82C68.3,92.96 67.5,91.18 66.1,89.95L59.22,83.87C57.62,82.46 56.71,80.42 56.71,78.28V77.74C56.71,73.83 59.85,70.66 63.74,70.66C66.02,70.66 68.15,71.77 69.47,73.64L71.58,76.63L73.82,73.44C75.06,71.7 77.05,70.66 79.18,70.66ZM79.18,71.6C77.36,71.6 75.64,72.49 74.59,73.99L72.15,77.44L74.05,80.14C74.59,80.9 74.75,81.88 74.49,82.78C73.63,85.75 69.4,85.75 68.62,82.72C68.39,81.85 68.56,80.91 69.08,80.17L71.01,77.44L68.71,74.19C67.57,72.57 65.71,71.6 63.74,71.6C60.37,71.6 57.64,74.35 57.64,77.74V78.28C57.64,80.15 58.44,81.93 59.84,83.16L66.72,89.24C68.32,90.65 69.23,92.68 69.23,94.82V105.79C69.23,107.09 70.28,108.15 71.58,108.15C72.88,108.15 73.93,107.09 73.93,105.79V94.69C73.93,92.63 74.77,90.67 76.27,89.26L82.77,83.15C84.07,81.93 84.81,80.21 84.81,78.41V77.27C84.81,74.14 82.29,71.6 79.18,71.6ZM69.84,80.72C69.48,81.23 69.37,81.88 69.52,82.49C70.06,84.55 72.99,84.59 73.59,82.51C73.77,81.89 73.66,81.21 73.29,80.68L71.58,78.26L69.84,80.72Z"
|
|
|
29
|
+ android:fillColor="#6757E0"
|
|
|
30
|
+ android:fillType="evenOdd"/>
|
|
|
31
|
+ <path
|
|
|
32
|
+ android:pathData="M60.51,52.98V57.88L61.84,56.52L62.42,57.11L61.13,58.42L64.9,58.43L64.9,59.26L61.07,59.25L62.42,60.61L61.84,61.2L60.51,59.85V64.76H59.69V59.89L58.4,61.2L57.82,60.61L59.17,59.24L55.3,59.23L55.3,58.4L59.11,58.41L57.82,57.11L58.4,56.52L59.69,57.84V52.98L60.51,52.98Z"
|
|
|
33
|
+ android:fillColor="#6757E0"/>
|
|
|
34
|
+ <path
|
|
|
35
|
+ android:pathData="M96.16,100.6C96.24,100.48 96.39,100.44 96.52,100.5L109.39,106.96C109.5,107.01 109.56,107.12 109.55,107.23C109.54,107.35 109.46,107.44 109.35,107.48L104.42,108.89L108.95,113.02C109.05,113.11 109.07,113.27 108.99,113.38C108.91,113.5 108.76,113.54 108.64,113.48L97.87,108.07C97.76,108.01 97.7,107.9 97.71,107.79C97.73,107.67 97.81,107.57 97.92,107.54L102.83,106.34L96.22,100.97C96.11,100.88 96.08,100.72 96.16,100.6Z"
|
|
|
36
|
+ android:fillColor="#FBF1FE"/>
|
|
|
37
|
+ <path
|
|
|
38
|
+ android:pathData="M39.02,89.13C39.18,89.05 39.37,89.11 39.47,89.26C39.57,89.41 39.53,89.61 39.39,89.72L30.08,97.26L37.25,98C37.39,98.03 37.5,98.15 37.52,98.3C37.53,98.45 37.46,98.59 37.32,98.66L23.77,105.46C23.61,105.54 23.42,105.49 23.32,105.35C23.22,105.2 23.24,105 23.37,104.88L27.62,100.14L22.87,97.91C22.73,97.87 22.63,97.75 22.62,97.6C22.61,97.46 22.68,97.32 22.81,97.26L39.02,89.13Z"
|
|
|
39
|
+ android:fillColor="#FBF1FE"/>
|
|
|
40
|
+ <path
|
|
|
41
|
+ android:pathData="M123.13,68.64C123.27,68.65 123.4,68.74 123.45,68.88C123.5,69.02 123.45,69.17 123.34,69.26L119.35,73.55L125.75,75.82C125.92,75.87 126.03,76.04 126,76.22C125.96,76.39 125.81,76.52 125.64,76.51L110.49,75.95C110.34,75.94 110.21,75.84 110.17,75.7C110.12,75.56 110.17,75.41 110.29,75.32L115.29,71.37L104.93,68.68C104.76,68.63 104.65,68.46 104.67,68.28C104.7,68.1 104.85,67.97 105.03,67.98L123.13,68.64Z"
|
|
|
42
|
+ android:fillColor="#FBF1FE"/>
|
|
|
43
|
+ <path
|
|
|
44
|
+ android:pathData="M7.86,58.04C8.01,57.84 8.26,57.75 8.5,57.82L38.09,66.06C38.38,66.14 38.57,66.43 38.52,66.74C38.47,67.04 38.2,67.25 37.9,67.24L20.25,66.62L25.86,75.22C26,75.43 26,75.7 25.85,75.9C25.71,76.11 25.45,76.2 25.21,76.13L0.44,69.25C0.15,69.17 -0.03,68.89 0.01,68.59C0.05,68.3 0.3,68.07 0.6,68.07L13.64,68.04L7.83,58.71C7.7,58.51 7.71,58.24 7.86,58.04Z"
|
|
|
45
|
+ android:fillColor="#FBF1FE"/>
|
|
|
46
|
+ <path
|
|
|
47
|
+ android:pathData="M110.83,22.61C111,22.43 111.26,22.37 111.5,22.46C111.73,22.55 111.89,22.77 111.89,23.03L111.88,34.23L123.15,27.18C123.41,27.02 123.75,27.08 123.94,27.31C124.14,27.55 124.13,27.89 123.92,28.11L106.23,47.48C106.06,47.67 105.79,47.73 105.55,47.64C105.32,47.54 105.17,47.3 105.18,47.05L104.25,37.8L90.51,46.68C90.25,46.86 89.91,46.82 89.7,46.59C89.5,46.35 89.5,46 89.71,45.77L110.83,22.61Z"
|
|
|
48
|
+ android:fillColor="#FBF1FE"/>
|
|
|
49
|
+ <path
|
|
|
50
|
+ android:pathData="M36.24,30.56C36.35,30.52 36.47,30.55 36.55,30.64L46.29,41.31C46.38,41.42 46.38,41.58 46.29,41.69C46.2,41.79 46.04,41.81 45.92,41.73L38.95,36.82L39.16,41.9C39.16,42.02 39.09,42.12 38.98,42.17C38.88,42.21 38.75,42.19 38.67,42.1L30.52,33.17C30.42,33.07 30.42,32.91 30.51,32.8C30.6,32.69 30.75,32.67 30.87,32.74L36.07,35.99L36.07,30.83C36.07,30.71 36.14,30.61 36.24,30.56Z"
|
|
|
51
|
+ android:fillColor="#FBF1FE"/>
|
|
|
52
|
+ <path
|
|
|
53
|
+ android:pathData="M83.38,1.04C84.06,0.76 84.56,1.58 84.05,2.11C78.47,8 74.32,14.25 72.02,22.25C71.92,22.6 72.3,22.8 72.52,22.51C74.31,20.1 77.19,15.8 86.33,12.8C86.67,12.69 86.93,13.09 86.7,13.36C79.51,21.75 77.82,24.26 75.49,28.84C74.51,30.77 73.27,35.53 74.85,39.68C75.09,40.3 74.62,41.04 73.95,41C72.53,40.9 70.85,40.81 69.71,40.79C68.46,40.77 67.03,40.69 65.59,40.74C64.86,40.76 64.19,40.3 63.98,39.6C61.22,30.2 61.21,27.1 62.76,20.66C65.24,10.34 76.85,3.68 83.38,1.04Z"
|
|
|
54
|
+ android:fillColor="#B3E54E"/>
|
|
|
55
|
+ <path
|
|
|
56
|
+ android:pathData="M84.89,0.1C85.64,-0.17 86.37,0.14 86.74,0.73C87.11,1.33 87.07,2.14 86.52,2.72C81.98,7.51 78.42,12.51 76.05,18.5C76.35,18.18 76.67,17.86 77.04,17.53C78.98,15.81 82.11,13.93 87.8,11.87L87.82,11.86C89.09,11.45 90.02,12.97 89.19,13.93C82.03,22.3 80.39,24.75 78.11,29.23C77.67,30.09 77.14,31.65 76.92,33.5C76.7,35.35 76.79,37.41 77.51,39.3C77.75,39.93 77.63,40.59 77.3,41.08C76.98,41.56 76.39,41.95 75.67,41.89C74.26,41.79 72.6,41.71 71.49,41.69C70.22,41.67 69.1,41.61 67.83,41.65C66.68,41.69 65.57,40.95 65.28,39.75C63.13,31.02 63.31,24.71 64.54,20.4C66,15.3 69.43,10.9 73.27,7.47C77.12,4.02 81.45,1.48 84.81,0.12L84.89,0.1ZM85.84,2.07C86.35,1.54 85.85,0.72 85.16,1C78.63,3.64 68.22,10.93 65.44,20.66L65.38,20.86C64.26,24.96 64.09,31.03 66.19,39.53C66.37,40.26 67.05,40.73 67.8,40.71C69.1,40.67 70.28,40.73 71.5,40.75C72.63,40.77 74.32,40.86 75.74,40.96C76.38,41 76.85,40.31 76.66,39.7L76.64,39.64C75.05,35.49 76.29,30.73 77.27,28.8C79.61,24.22 81.3,21.71 88.48,13.32C88.71,13.05 88.45,12.65 88.11,12.76C76.85,16.83 76.1,20.06 74.3,22.47C74.08,22.76 73.7,22.56 73.8,22.21C76.07,14.33 80.13,8.15 85.58,2.35L85.84,2.07Z"
|
|
|
57
|
+ android:fillColor="#FBF1FE"/>
|
|
|
58
|
+ <path
|
|
|
59
|
+ android:pathData="M50.16,138.72C51.38,135.7 53.42,135.16 54.35,135.29C56.45,135.77 56.78,138.34 56.65,140.14C56.61,140.68 56.13,141.08 55.59,141.09L55.21,141.1C53.6,141.14 52,140.74 50.62,139.96C50.19,139.71 49.97,139.2 50.16,138.72Z"
|
|
|
60
|
+ android:fillColor="#FBF1FE"/>
|
|
|
61
|
+ <path
|
|
|
62
|
+ android:pathData="M54.26,133.01C54.76,133.02 55.15,133.43 55.15,133.92C55.14,134.42 54.74,134.82 54.24,134.82C53.75,134.81 53.35,134.41 53.36,133.91C53.36,133.41 53.76,133.01 54.26,133.01Z"
|
|
|
63
|
+ android:fillColor="#FBF1FE"/>
|
|
|
64
|
+ <path
|
|
|
65
|
+ android:pathData="M53.4,130.79C53.89,130.79 54.29,131.2 54.29,131.7C54.28,132.19 53.88,132.59 53.38,132.59C52.89,132.59 52.49,132.18 52.49,131.68C52.5,131.18 52.9,130.78 53.4,130.79Z"
|
|
|
66
|
+ android:fillColor="#FBF1FE"/>
|
|
|
67
|
+ <path
|
|
|
68
|
+ android:pathData="M52.76,128.56C53.25,128.56 53.65,128.97 53.65,129.47C53.64,129.97 53.24,130.37 52.74,130.36C52.25,130.36 51.85,129.95 51.85,129.45C51.86,128.95 52.26,128.55 52.76,128.56Z"
|
|
|
69
|
+ android:fillColor="#FBF1FE"/>
|
|
|
70
|
+ <path
|
|
|
71
|
+ android:pathData="M53.44,126.34C53.93,126.35 54.33,126.75 54.33,127.25C54.32,127.75 53.92,128.15 53.42,128.15C52.93,128.14 52.53,127.74 52.54,127.24C52.54,126.74 52.94,126.34 53.44,126.34Z"
|
|
|
72
|
+ android:fillColor="#FBF1FE"/>
|
|
|
73
|
+ <path
|
|
|
74
|
+ android:pathData="M54.78,124.33C55.28,124.34 55.68,124.74 55.67,125.24C55.67,125.74 55.26,126.14 54.77,126.14C54.27,126.13 53.87,125.72 53.88,125.23C53.88,124.73 54.29,124.33 54.78,124.33Z"
|
|
|
75
|
+ android:fillColor="#FBF1FE"/>
|
|
|
76
|
+ <path
|
|
|
77
|
+ android:pathData="M55.91,122.12C56.4,122.12 56.8,122.53 56.8,123.03C56.79,123.53 56.39,123.93 55.89,123.92C55.4,123.92 55,123.51 55,123.01C55.01,122.51 55.41,122.11 55.91,122.12Z"
|
|
|
78
|
+ android:fillColor="#FBF1FE"/>
|
|
|
79
|
+ <path
|
|
|
80
|
+ android:pathData="M56.37,119.9C56.86,119.9 57.26,120.31 57.26,120.81C57.25,121.31 56.85,121.71 56.35,121.71C55.86,121.7 55.46,121.29 55.46,120.79C55.47,120.3 55.87,119.9 56.37,119.9Z"
|
|
|
81
|
+ android:fillColor="#FBF1FE"/>
|
|
|
82
|
+ <path
|
|
|
83
|
+ android:pathData="M55.29,117.67C55.78,117.67 56.18,118.08 56.17,118.58C56.17,119.08 55.77,119.48 55.27,119.47C54.78,119.47 54.38,119.06 54.38,118.57C54.39,118.07 54.79,117.67 55.29,117.67Z"
|
|
|
84
|
+ android:fillColor="#FBF1FE"/>
|
|
|
85
|
+ <path
|
|
|
86
|
+ android:pathData="M53.54,115.64C54.03,115.64 54.43,116.05 54.43,116.55C54.42,117.04 54.02,117.45 53.52,117.44C53.03,117.44 52.63,117.03 52.64,116.53C52.64,116.03 53.04,115.63 53.54,115.64Z"
|
|
|
87
|
+ android:fillColor="#FBF1FE"/>
|
|
|
88
|
+ <path
|
|
|
89
|
+ android:pathData="M70.99,45.9C85.61,45.9 97.46,57.83 97.46,72.54C97.46,82.31 92.25,90.84 84.47,95.48L84.35,95.56C83.09,96.36 82.24,97.71 82.24,99.22V102.02C82.24,103.46 81.47,104.73 80.33,105.44C80.92,105.82 81.3,106.49 81.3,107.24C81.3,108.08 80.82,108.81 80.13,109.17C80.82,109.53 81.3,110.25 81.3,111.09C81.3,111.93 80.82,112.66 80.13,113.02C80.82,113.38 81.3,114.11 81.3,114.94C81.3,116.14 80.34,117.11 79.15,117.11H62.6C61.41,117.11 60.45,116.14 60.45,114.94C60.45,114.11 60.93,113.38 61.63,113.02C60.93,112.66 60.45,111.93 60.45,111.09C60.45,110.25 60.93,109.53 61.63,109.17C60.93,108.81 60.45,108.08 60.45,107.24C60.45,106.44 60.89,105.74 61.54,105.36C60.46,104.65 59.75,103.42 59.75,102.02V99.22C59.75,97.71 58.9,96.36 57.64,95.56L57.52,95.48C49.74,90.84 44.52,82.3 44.52,72.54C44.52,57.83 56.38,45.9 70.99,45.9ZM70.99,46.85C56.89,46.85 45.46,58.35 45.46,72.54C45.46,81.96 50.49,90.19 57.99,94.67C59.56,95.6 60.69,97.28 60.69,99.22V102.02C60.69,103.71 62.05,105.08 63.73,105.08H78.26C79.94,105.08 81.3,103.71 81.3,102.02V99.22C81.3,97.28 82.43,95.6 83.99,94.67C91.5,90.19 96.53,81.96 96.53,72.54C96.53,58.35 85.1,46.85 70.99,46.85Z"
|
|
|
90
|
+ android:fillColor="#FBF1FE"
|
|
|
91
|
+ android:fillType="evenOdd"/>
|
|
|
92
|
+ <path
|
|
|
93
|
+ android:pathData="M52.9,113.21C53.4,113.21 53.79,113.62 53.79,114.12C53.79,114.62 53.38,115.02 52.89,115.01C52.39,115.01 51.99,114.6 52,114.1C52,113.6 52.41,113.2 52.9,113.21Z"
|
|
|
94
|
+ android:fillColor="#FBF1FE"/>
|
|
|
95
|
+ <path
|
|
|
96
|
+ android:pathData="M53.14,110.99C53.64,110.99 54.03,111.4 54.03,111.9C54.03,112.4 53.62,112.8 53.13,112.79C52.63,112.79 52.23,112.38 52.24,111.88C52.24,111.38 52.65,110.98 53.14,110.99Z"
|
|
|
97
|
+ android:fillColor="#FBF1FE"/>
|
|
|
98
|
+ <path
|
|
|
99
|
+ android:pathData="M54.71,108.78C55.2,108.78 55.6,109.19 55.6,109.69C55.59,110.19 55.19,110.59 54.69,110.58C54.2,110.58 53.8,110.17 53.8,109.67C53.81,109.17 54.21,108.77 54.71,108.78Z"
|
|
|
100
|
+ android:fillColor="#FBF1FE"/>
|
|
|
101
|
+ <path
|
|
|
102
|
+ android:pathData="M57.04,107.82C57.53,107.82 57.93,108.23 57.93,108.73C57.92,109.23 57.52,109.63 57.02,109.62C56.53,109.62 56.13,109.21 56.13,108.71C56.14,108.21 56.54,107.81 57.04,107.82Z"
|
|
|
103
|
+ android:fillColor="#FBF1FE"/>
|
|
|
104
|
+ <path
|
|
|
105
|
+ android:pathData="M59.3,107.47C59.79,107.48 60.19,107.88 60.19,108.38C60.18,108.88 59.78,109.28 59.28,109.28C58.79,109.27 58.39,108.87 58.39,108.37C58.4,107.87 58.8,107.47 59.3,107.47Z"
|
|
|
106
|
+ android:fillColor="#FBF1FE"/>
|
|
|
107
|
+</vector> |
mobile/android/fenix/app/src/main/res/drawable/circled_lighning_yec.xml
|
|
1
|
+<vector xmlns:android="http://schemas.android.com/apk/res/android" android:autoMirrored="false" android:height="34dp" android:viewportHeight="34" android:viewportWidth="34" android:width="34dp">
|
|
|
2
|
+
|
|
|
3
|
+ <path android:fillAlpha="0.25" android:fillColor="#000000" android:pathData="M17,0L17,0A17,17 0,0 1,34 17L34,17A17,17 0,0 1,17 34L17,34A17,17 0,0 1,0 17L0,17A17,17 0,0 1,17 0z"/>
|
|
|
4
|
+
|
|
|
5
|
+ <path android:fillColor="#FFAC33" android:pathData="M24.469,15.825C24.396,15.63 24.209,15.5 24,15.5H17.962L21.445,8.729C21.555,8.516 21.498,8.255 21.309,8.108C21.219,8.035 21.109,8 21,8C20.883,8 20.767,8.041 20.674,8.122L17,11.294L9.674,17.622C9.516,17.758 9.459,17.979 9.532,18.174C9.605,18.369 9.791,18.5 10,18.5H16.038L12.555,25.271C12.446,25.484 12.502,25.744 12.691,25.892C12.781,25.965 12.891,26 13,26C13.116,26 13.233,25.959 13.326,25.878L17,22.706L24.326,16.378C24.485,16.242 24.542,16.021 24.469,15.825Z"/>
|
|
|
6
|
+
|
|
|
7
|
+</vector> |
mobile/android/fenix/app/src/main/res/drawable/globe_chain_burst_yec.xml
|
|
1
|
+<vector xmlns:android="http://schemas.android.com/apk/res/android" android:autoMirrored="true" android:height="124dp" android:viewportHeight="124" android:viewportWidth="160" android:width="160dp">
|
|
|
2
|
+
|
|
|
3
|
+ <path android:fillColor="#B6E368" android:pathData="M79.97,86.16C65.19,89.07 56.28,80.34 53.67,75.61L34.02,84.97L55.14,84.24L42.62,106.51L63.16,91.39L61.15,117.92L73.64,93L84.86,111.85L79.98,86.16H79.97Z"/>
|
|
|
4
|
+
|
|
|
5
|
+ <path android:fillColor="#B6E368" android:pathData="M72.38,32.02C87.13,28.91 96.16,37.52 98.83,42.21L118.35,32.58L97.24,33.6L109.46,11.17L89.13,26.57L90.78,0L78.63,25.09L67.15,6.4L72.38,32.02Z"/>
|
|
|
6
|
+
|
|
|
7
|
+ <path android:fillAlpha="0.8" android:fillColor="#C272FF" android:fillType="evenOdd" android:pathData="M82.86,42.77H84.19V44.18H82.79V42.84H80.14V44.18H81.46V45.52H82.79V48.27H84.19V51.09H82.79V48.34H81.4V45.59H80.06V44.18H78.74V42.84H77.34V53.77H84.19V51.09H85.59V53.77H89.58V55.18H92.31V56.59H89.51V55.18H85.6V67.44H89.58V66.1H92.38V67.44H93.71V68.85H92.38V70.26H91.05V71.67H89.65V73.01H88.25V74.35H86.99V75.76H85.6V74.35H86.86V72.94H88.25V71.6H89.65V70.26H90.98V68.85H92.31V67.51H89.58V68.85H85.6V71.67H84.2V74.42H82.8V75.76H85.6V77.17H81.4V74.35H82.8V71.6H84.19V68.85H77.34V77.17H81.4V78.43H71.88V77.17H67.76V75.76H66.43V74.35H65.1V73.01H63.7V71.67H62.38V70.26H63.78V71.6H65.1V72.94H66.5V74.35H67.83V75.76H70.56V74.42H69.16V71.67H67.83V68.85H63.7V67.51H60.98V68.85H59.58V67.44H58.25V55.18H59.65V67.44H60.98V66.1H63.78V67.44H67.83V55.18H63.78V56.59H60.98V55.18H59.65V52.36H60.98V49.61H62.38V48.27H63.78V46.93H65.1V45.59H66.43V44.18H69.23V45.59H66.5V47H65.17V48.34H63.77V49.68H62.37V52.43H61.04V55.18H63.7V53.77H67.83V51.09H69.22V53.77H75.94V42.84H74.68V44.18H73.28V42.84H70.62V44.18H69.22V42.77H70.55V41.43H82.86V42.77V42.77ZM69.22,71.59H70.55V74.34H71.95V77.16H75.94V68.84H69.23V71.59H69.22ZM77.34,67.44H84.19V55.17H77.34V67.44ZM69.22,67.44H75.94V55.17H69.22V67.44Z" android:strokeAlpha="0.8"/>
|
|
|
8
|
+
|
|
|
9
|
+ <path android:fillAlpha="0.8" android:fillColor="#C272FF" android:pathData="M62.37,70.25H60.98V68.84H62.37V70.25Z" android:strokeAlpha="0.8"/>
|
|
|
10
|
+
|
|
|
11
|
+ <path android:fillAlpha="0.8" android:fillColor="#C272FF" android:pathData="M95.1,67.44H93.7V55.17H95.1V67.44Z" android:strokeAlpha="0.8"/>
|
|
|
12
|
+
|
|
|
13
|
+ <path android:fillAlpha="0.8" android:fillColor="#C272FF" android:pathData="M86.99,45.58H88.25V46.92H89.64V48.26H90.97V49.6H92.37V52.35H93.7V55.17H92.3V52.42H90.97V49.67H89.58V48.33H88.25V46.99H86.85V45.58H84.19V44.17H86.99V45.58V45.58Z" android:strokeAlpha="0.8"/>
|
|
|
14
|
+
|
|
|
15
|
+ <path android:fillAlpha="0.8" android:fillColor="#C272FF" android:pathData="M73.28,45.58H71.95V48.33H70.62V51.08H69.22V48.26H70.55V45.51H71.88V44.17H73.28V45.58Z" android:strokeAlpha="0.8"/>
|
|
|
16
|
+
|
|
|
17
|
+ <path android:fillAlpha="0.8" android:fillColor="#00000000" android:pathData="M84.19,44.18V42.77H82.86V41.43H70.55V42.77H69.22V44.18M84.19,44.18H82.79V42.84H80.14V44.18H81.46V45.52H82.79V48.27H84.19V51.09M84.19,44.18V45.59H86.85V47H88.25V48.34H89.58V49.68H90.97V52.43H92.3V55.18M84.19,44.18H86.99V45.59H88.25V46.93H89.64V48.27H90.97V49.61H92.37V52.35H93.7V55.17M69.22,44.18H66.43V45.59H65.1V46.93H63.77V48.27H62.37V49.61H60.98V52.35H59.65V55.17M69.22,44.18V45.59H66.5V47H65.17V48.34H63.77V49.68H62.37V52.43H61.04V55.18H63.7V53.77H67.82V51.09H69.22M69.22,44.18H70.62V42.84H73.28V44.18M93.7,55.17H95.1V67.44H93.7M93.7,55.17V67.44M84.19,51.08H82.79V48.33H81.4V45.58H80.06V44.17H78.74V42.84H77.34V53.76H84.19V51.08H84.19ZM84.19,51.08H85.59V53.76H89.58V55.17H92.3M93.7,67.44H92.37V66.1H89.58V67.44H85.59V55.17H89.5V56.58H92.3V55.17H93.7M93.7,67.44V68.85H92.37V70.26H91.04V71.67H89.64V73.01H88.25V74.35H86.99V75.76H85.59M85.59,75.75V74.34H86.85V72.93H88.25V71.59H89.64V70.25H90.97V68.84H92.3V67.5H89.58V68.84H85.59V71.66H84.19V74.41H82.79V75.75H85.59V75.75ZM85.59,75.75V77.16H81.39M81.39,77.16V74.34H82.79V71.59H84.19V68.84H77.33V77.16H81.39H81.39ZM81.39,77.16V78.43H71.88V77.16H67.75V75.75H66.43V74.34H65.1V73H63.7V71.66H62.37V70.25M62.37,70.25H63.77V71.59H65.1V72.93H66.5V74.34H67.83V75.75H70.55V74.41H69.16V71.66H67.83V68.85H63.7V67.51H60.97V68.85M62.37,70.25H60.98V68.84H62.37V70.25ZM60.97,68.84H59.57V67.43H58.25V55.17H59.65M59.65,55.17V67.44H60.98V66.1H63.77V67.44H67.83V55.17H63.77V56.58H60.98V55.17H59.65ZM69.22,51.08V53.76H75.93V42.84H74.68V44.17H73.28M69.22,51.08H70.62V48.33H71.95V45.58H73.28V44.17H71.88V45.51H70.55V48.26H69.22V51.08ZM69.22,71.59H70.55V74.34H71.95V77.16H75.94V68.84H69.23V71.59H69.22ZM77.34,67.44H84.19V55.17H77.34V67.44ZM69.22,67.44H75.93V55.17H69.22V67.44Z" android:strokeAlpha="0.8" android:strokeColor="#C272FF" android:strokeWidth="0.23451"/>
|
|
|
18
|
+
|
|
|
19
|
+ <path android:fillColor="#ffffff" android:pathData="M53.84,42.78H56.64L54.84,40.42L58.14,39.7L55.15,36.24L57.62,36.17L57.73,35.5L41.11,29.32C40.64,29.14 40.17,29 39.7,28.88L31.58,7.75C29.81,3.15 25.32,0.06 20.41,0.06C18.94,0.06 17.49,0.33 16.11,0.87L7.65,4.16C1.5,6.55 -1.57,13.54 0.81,19.73L12.4,49.92C14.17,54.53 18.66,57.62 23.56,57.62C24.22,57.62 24.87,57.57 25.51,57.46C26.74,58.58 28.17,59.46 29.77,60.05L46.5,66.27L44.54,62.76H48.38L47.08,59.56H51.23L49.53,56.39L38.61,52.33C42.24,49.92 44.27,45.7 43.94,41.38L56.68,46.11L53.84,42.78ZM49.04,56.96L50.07,58.86H46.04L47.35,62.07H43.36L44.97,64.96L30.01,59.4C26.89,58.24 24.41,55.93 23.03,52.89C21.64,49.86 21.52,46.48 22.67,43.35L24.89,37.34C25.95,34.46 27.98,32.2 30.46,30.8L33.78,39.46C33.55,39.74 33.36,40.07 33.23,40.44L31.01,46.45C30.68,47.35 30.72,48.31 31.11,49.17C31.5,50.04 32.21,50.7 33.1,51.03L49.04,56.96ZM21.23,46.86C21.17,46.76 21.12,46.65 21.08,46.54L9.48,16.35C9.13,15.45 9.36,14.68 9.53,14.31C9.7,13.93 10.11,13.24 11.01,12.89L19.46,9.6C19.78,9.48 20.1,9.42 20.41,9.42C21.32,9.42 22.44,9.95 22.9,11.14L30.21,30.15C27.54,31.61 25.37,34.02 24.24,37.1L22.02,43.11C21.57,44.33 21.3,45.6 21.23,46.86ZM33.88,40.68C33.93,40.52 34,40.38 34.08,40.24L34.5,41.32C34.85,42.23 34.62,42.99 34.45,43.37H34.45C34.28,43.75 33.88,44.43 32.98,44.78L32.26,45.06L33.88,40.68ZM37.79,52.02L33.34,50.37C32.62,50.11 32.06,49.58 31.74,48.88C31.42,48.19 31.39,47.41 31.66,46.7L31.94,45.93L33.23,45.43C34.36,45 34.87,44.13 35.08,43.65C35.29,43.17 35.58,42.21 35.14,41.07L34.58,39.61V39.59L34.35,39.01L34.32,38.91L31.07,30.48L31.06,30.46L30.85,29.91L30.82,29.82L23.55,10.88C22.97,9.39 21.56,8.72 20.41,8.72C20.01,8.72 19.61,8.8 19.21,8.95L10.76,12.24C9.63,12.68 9.11,13.55 8.9,14.02C8.69,14.5 8.4,15.47 8.84,16.61L20.43,46.8C20.61,47.27 20.88,47.67 21.2,47.97C21.24,49.75 21.64,51.52 22.4,53.18C23.03,54.56 23.87,55.79 24.88,56.85C24.44,56.9 24,56.93 23.56,56.93C18.94,56.93 14.71,54.01 13.04,49.67L1.45,19.48C-0.79,13.65 2.1,7.07 7.9,4.81L16.35,1.52C17.66,1.01 19.03,0.75 20.41,0.75C25.04,0.75 29.26,3.67 30.93,8.01L38.88,28.7L38.91,28.78L39.16,29.43L39.18,29.47L42.53,38.2C42.8,38.9 42.99,39.61 43.11,40.33C43.12,40.35 43.13,40.37 43.13,40.4C43.17,40.61 43.2,40.83 43.22,41.05C43.22,41.07 43.22,41.09 43.22,41.11C43.68,45.46 41.58,49.76 37.79,52.02ZM43.86,40.6C43.74,39.71 43.51,38.81 43.18,37.94L40.01,29.69C40.29,29.77 40.58,29.86 40.87,29.97L55.81,35.53L53.67,35.59L56.85,39.27L53.63,39.97L55.24,42.09H52.33L54.41,44.53L43.86,40.6Z"/>
|
|
|
20
|
+
|
|
|
21
|
+ <path android:fillColor="#ffffff" android:pathData="M157.76,99.65L136.71,69.02C134.41,65.69 130.67,63.66 126.65,63.57C125.48,62.52 124.09,61.66 122.51,61.08L107.43,55.47L107.36,55.44L103.68,55.55L106.41,58.69L102.99,59.44L105.06,62.15H102.4L104.54,64.66L115.19,68.62L112.76,70.31C109.62,72.5 107.78,75.86 107.41,79.41L97.62,75.77L99.32,78.92H94.98L96.29,82.12H92.65L94.1,84.72L111.42,91.16C111.59,91.22 111.75,91.28 111.92,91.33L130.63,118.54C132.98,121.96 136.85,124 140.98,124C143.54,124 146.01,123.22 148.12,121.75L154.58,117.26C157.34,115.33 159.19,112.44 159.79,109.12C160.4,105.79 159.68,102.43 157.76,99.65ZM104.95,64.06L103.91,62.85H106.46L104.21,59.89L107.7,59.13L105.17,56.2L107.25,56.14L122.27,61.73C123.5,62.19 124.62,62.82 125.59,63.59C123.31,63.73 121.12,64.49 119.22,65.82L115.89,68.13L104.95,64.06ZM111.65,90.5L111.25,90.35L94.58,84.15L93.84,82.82H97.32L96.01,79.61H100.48L99.1,77.06L107.36,80.13L108.04,80.38L114.5,82.79C115.37,83.11 116.28,83.1 117.1,82.82C117.32,82.75 117.54,82.65 117.74,82.53C118.53,82.1 119.17,81.39 119.5,80.48L120.95,76.56L124.77,73.9C125.25,73.57 125.79,73.39 126.36,73.39C126.8,73.39 127.92,73.51 128.68,74.61L129.76,76.19C129.69,76.47 129.61,76.75 129.51,77.02L127.19,83.33L127.08,83.63C126.11,86.07 124.45,88.03 122.42,89.34C122.23,89.47 122.03,89.59 121.83,89.7C119.04,91.29 115.64,91.75 112.36,90.74C112.13,90.67 111.89,90.59 111.65,90.5ZM117.15,80.21C117.22,79.78 117.48,78.97 118.31,78.39L119.95,77.26L118.85,80.24C118.57,81 118.04,81.58 117.38,81.94C117.04,81.24 117.08,80.57 117.15,80.21ZM130.06,77.56L130.17,77.25C130.2,77.14 130.24,77.04 130.27,76.93L149.73,105.24C150.31,106.08 150.27,106.93 150.19,107.36C150.11,107.79 149.85,108.6 149.02,109.18L142.57,113.67C142.09,114.01 141.55,114.17 140.98,114.17C140.53,114.17 139.41,114.06 138.66,112.95L122.82,89.91C124.96,88.52 126.7,86.46 127.72,83.89L130.06,77.56ZM159.11,108.99C158.54,112.14 156.79,114.87 154.18,116.68L147.73,121.18C145.73,122.57 143.4,123.3 140.98,123.3C137.07,123.3 133.42,121.38 131.2,118.15L112.97,91.63C113.95,91.86 114.94,91.97 115.91,91.97C118.15,91.97 120.32,91.38 122.23,90.28L138.09,113.35C139.03,114.72 140.42,114.87 140.98,114.87C141.7,114.87 142.36,114.66 142.96,114.25L149.42,109.75C150.45,109.03 150.77,108.02 150.87,107.48C150.96,106.95 151.02,105.89 150.3,104.85L130.51,76.06L129.97,75.26L129.25,74.22C128.3,72.84 126.91,72.7 126.36,72.7H126.36C125.64,72.7 124.97,72.91 124.38,73.32L121.37,75.42L120.37,76.11L117.92,77.82C116.88,78.54 116.56,79.55 116.46,80.08C116.39,80.53 116.33,81.34 116.74,82.2C116.1,82.39 115.41,82.38 114.74,82.13L108.08,79.66C108.39,76.25 110.14,72.99 113.15,70.89L115.99,68.91L116.68,68.43L119.61,66.39C121.6,65 123.94,64.27 126.36,64.27H126.37C126.72,64.27 127.07,64.28 127.41,64.31C130.91,64.62 134.12,66.48 136.13,69.42L157.19,100.05C159,102.68 159.68,105.85 159.11,108.99Z"/>
|
|
|
22
|
+
|
|
|
23
|
+ <path android:fillColor="#C272FF" android:pathData="M26.73,77.81L30.91,77.83L30.91,79.04L26.73,79.03V84.32H25.51V79.03L21.2,79.02L21.2,77.8L25.51,77.81V72.54H26.73V77.81Z"/>
|
|
|
24
|
+
|
|
|
25
|
+ <path android:fillColor="#C272FF" android:pathData="M132.82,37.87L137,37.88L137,39.08L132.82,39.07V44.31H131.6V39.07L127.29,39.06L127.29,37.85L131.6,37.86V32.65H132.82V37.87Z"/>
|
|
|
26
|
+
|
|
|
27
|
+ <path android:fillColor="#C272FF" android:pathData="M20.17,99.2C20.17,98.79 19.84,98.46 19.43,98.46C19.02,98.46 18.69,98.79 18.69,99.2C18.69,99.62 19.02,99.95 19.43,99.95V101.17C18.36,101.17 17.49,100.29 17.49,99.2C17.49,98.12 18.36,97.24 19.43,97.24C20.51,97.24 21.38,98.12 21.38,99.2C21.38,100.29 20.51,101.17 19.43,101.17V99.95C19.84,99.95 20.17,99.62 20.17,99.2Z"/>
|
|
|
28
|
+
|
|
|
29
|
+ <path android:fillColor="#C272FF" android:pathData="M116.28,43.22C117.35,43.22 118.22,44.1 118.22,45.18C118.22,46.27 117.35,47.15 116.28,47.15C115.2,47.15 114.33,46.27 114.33,45.18C114.33,44.1 115.2,43.22 116.28,43.22Z"/>
|
|
|
30
|
+
|
|
|
31
|
+ <path android:fillColor="#C272FF" android:pathData="M134.74,51.08C135.81,51.08 136.68,51.96 136.68,53.04C136.68,54.12 135.81,55 134.74,55C133.66,55 132.79,54.12 132.79,53.04C132.79,51.96 133.66,51.08 134.74,51.08Z"/>
|
|
|
32
|
+
|
|
|
33
|
+ <path android:fillColor="#C272FF" android:pathData="M32.81,91.67C32.81,91.26 32.47,90.93 32.06,90.93C31.66,90.93 31.32,91.26 31.32,91.67C31.32,92.09 31.66,92.42 32.06,92.42V93.64C30.99,93.64 30.12,92.76 30.12,91.67C30.12,90.59 30.99,89.71 32.06,89.71C33.14,89.71 34.01,90.59 34.01,91.67C34.01,92.76 33.14,93.64 32.06,93.64V92.42C32.47,92.42 32.81,92.09 32.81,91.67Z"/>
|
|
|
34
|
+
|
|
|
35
|
+</vector> |
mobile/android/fenix/app/src/main/res/drawable/heart.xml
|
|
1
|
+<vector xmlns:android="http://schemas.android.com/apk/res/android" android:autoMirrored="true" android:height="16dp" android:viewportHeight="16" android:viewportWidth="16" android:width="16dp">
|
|
|
2
|
+
|
|
|
3
|
+ <path android:fillColor="#FBFBFE" android:pathData="M8,6C8,6 8,2 11.5,2C15,2 15,5 15,6C15,10.5 8,15 8,15V6Z"/>
|
|
|
4
|
+
|
|
|
5
|
+ <path android:fillColor="#FBFBFE" android:pathData="M8,6C8,6 8,2 4.5,2C1,2 1,5 1,6C1,10.5 8,15 8,15L9,9L8,6Z"/>
|
|
|
6
|
+
|
|
|
7
|
+</vector> |
mobile/android/fenix/app/src/main/res/drawable/yec_lightning.xml
|
|
1
|
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
|
|
2
|
+ android:width="18dp"
|
|
|
3
|
+ android:height="18dp"
|
|
|
4
|
+ android:viewportWidth="18"
|
|
|
5
|
+ android:viewportHeight="18">
|
|
|
6
|
+ <path
|
|
|
7
|
+ android:pathData="M16.469,7.826C16.396,7.63 16.209,7.5 16,7.5H9.963L13.445,0.729C13.554,0.516 13.498,0.255 13.309,0.108C13.219,0.036 13.109,0 13,0C12.884,0 12.767,0.041 12.674,0.122L9,3.294L1.674,9.622C1.516,9.758 1.459,9.979 1.532,10.174C1.605,10.37 1.791,10.5 2,10.5H8.038L4.555,17.271C4.446,17.484 4.502,17.744 4.691,17.892C4.782,17.965 4.891,18 5,18C5.117,18 5.233,17.959 5.327,17.878L9,14.706L16.326,8.378C16.485,8.242 16.542,8.021 16.469,7.826Z"
|
|
|
8
|
+ android:fillColor="#FFAC33"/>
|
|
|
9
|
+</vector> |
|