Skip to content

Commit bf9de35

Browse files
committed
feat: Add lottie animation when we upload files
1 parent c3c2242 commit bf9de35

File tree

8 files changed

+20
-11
lines changed

8 files changed

+20
-11
lines changed

app/src/main/java/com/infomaniak/swisstransfer/ui/screen/newtransfer/upload/UploadProgressAdType.kt

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,37 +17,37 @@
1717
*/
1818
package com.infomaniak.swisstransfer.ui.screen.newtransfer.upload
1919

20+
import androidx.annotation.RawRes
2021
import androidx.annotation.StringRes
2122
import androidx.compose.runtime.Composable
2223
import androidx.compose.ui.res.stringResource
2324
import androidx.compose.ui.text.AnnotatedString
2425
import com.infomaniak.swisstransfer.R
25-
import com.infomaniak.swisstransfer.ui.images.AppImages
26-
import com.infomaniak.swisstransfer.ui.images.ThemedImage
27-
import com.infomaniak.swisstransfer.ui.images.illus.uploadAd.MetallicSafe
28-
import com.infomaniak.swisstransfer.ui.images.illus.uploadAd.MountainGondola
29-
import com.infomaniak.swisstransfer.ui.images.illus.uploadAd.SwissWithFlag
3026
import com.infomaniak.swisstransfer.ui.utils.TextUtils
3127

3228
enum class UploadProgressAdType(
3329
@StringRes private val descriptionTemplate: Int,
3430
@StringRes private val descriptionAccentuatedPart: Int,
35-
val illustration: ThemedImage,
31+
@RawRes val illustration: Int,
32+
val shouldReverseOnRepeat: Boolean,
3633
) {
3734
INDEPENDENCE(
3835
R.string.uploadProgressDescriptionTemplateIndependence,
3936
R.string.uploadProgressDescriptionArgumentIndependence,
40-
AppImages.AppIllus.SwissWithFlag,
37+
R.raw.swiss_with_flag,
38+
true,
4139
),
4240
ENERGY(
4341
R.string.uploadProgressDescriptionTemplateEnergy,
4442
R.string.uploadProgressDescriptionArgumentEnergy,
45-
AppImages.AppIllus.MountainGondola,
43+
R.raw.mountain_gondola,
44+
false,
4645
),
4746
CONFIDENTIALITY(
4847
R.string.uploadProgressDescriptionTemplateConfidentiality,
4948
R.string.uploadProgressDescriptionArgumentConfidentiality,
50-
AppImages.AppIllus.MetallicSafe,
49+
R.raw.metallic_safe,
50+
false,
5151
);
5252

5353
@Composable

app/src/main/java/com/infomaniak/swisstransfer/ui/screen/newtransfer/upload/components/AdHeader.kt

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
*/
1818
package com.infomaniak.swisstransfer.ui.screen.newtransfer.upload.components
1919

20-
import androidx.compose.foundation.Image
2120
import androidx.compose.foundation.layout.*
2221
import androidx.compose.foundation.rememberScrollState
2322
import androidx.compose.foundation.verticalScroll
@@ -28,6 +27,10 @@ import androidx.compose.runtime.saveable.rememberSaveable
2827
import androidx.compose.ui.Alignment
2928
import androidx.compose.ui.Modifier
3029
import androidx.compose.ui.text.style.TextAlign
30+
import com.airbnb.lottie.compose.LottieAnimation
31+
import com.airbnb.lottie.compose.LottieCompositionSpec
32+
import com.airbnb.lottie.compose.LottieConstants
33+
import com.airbnb.lottie.compose.rememberLottieComposition
3134
import com.infomaniak.swisstransfer.R
3235
import com.infomaniak.swisstransfer.ui.components.HighlightedText
3336
import com.infomaniak.swisstransfer.ui.screen.newtransfer.upload.UploadProgressAdType
@@ -45,6 +48,7 @@ fun ColumnScope.AdHeader(adScreenType: UploadProgressAdType) {
4548
.verticalScroll(rememberScrollState()),
4649
horizontalAlignment = Alignment.CenterHorizontally,
4750
) {
51+
val composition by rememberLottieComposition(LottieCompositionSpec.RawRes(adScreenType.illustration))
4852
var isHighlighted by rememberSaveable { mutableStateOf(false) }
4953
LaunchedEffect(Unit) { isHighlighted = true }
5054

@@ -68,7 +72,12 @@ fun ColumnScope.AdHeader(adScreenType: UploadProgressAdType) {
6872

6973
WeightOneSpacer(minHeight = Margin.Medium)
7074

71-
Image(imageVector = adScreenType.illustration.image(), contentDescription = null)
75+
LottieAnimation(
76+
composition,
77+
isPlaying = true,
78+
reverseOnRepeat = adScreenType.shouldReverseOnRepeat,
79+
iterations = LottieConstants.IterateForever,
80+
)
7281

7382
WeightOneSpacer(minHeight = Margin.Medium)
7483
}
2.41 KB
Binary file not shown.
Binary file not shown.
Binary file not shown.
1.87 KB
Binary file not shown.
4.17 KB
Binary file not shown.
1.92 KB
Binary file not shown.

0 commit comments

Comments
 (0)