Skip to content

Commit 170df26

Browse files
committed
code review.
1 parent 55f1d35 commit 170df26

File tree

4 files changed

+48
-96
lines changed

4 files changed

+48
-96
lines changed

compose-loading/src/main/java/com/commandiron/compose_loading/RotatingPlane.kt

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import androidx.compose.ui.graphics.Shape
1515
import androidx.compose.ui.graphics.graphicsLayer
1616
import androidx.compose.ui.unit.DpSize
1717
import androidx.compose.ui.unit.dp
18+
import com.commandiron.compose_loading.transition.EaseInOut
1819
import com.commandiron.compose_loading.transition.fractionTransition
1920

2021
@Composable
@@ -34,16 +35,18 @@ fun RotatingPlane(
3435
targetValue = 180f,
3536
durationMillis = durationMillis / 2,
3637
delayMillis = durationMillis / 2 + delayMillis,
37-
repeatMode = RepeatMode.Reverse
38+
repeatMode = RepeatMode.Restart,
39+
easing = EaseInOut
3840
)
3941

4042
val rotationXValue = transition.fractionTransition(
4143
initialValue = 0f,
42-
targetValue = 180f,
44+
targetValue = -180f,
4345
durationMillis = durationMillis / 2,
4446
delayMillis = durationMillis / 2 + delayMillis,
4547
offsetMillis = durationMillis / 2 + delayMillis,
46-
repeatMode = RepeatMode.Reverse
48+
repeatMode = RepeatMode.Restart,
49+
easing = EaseInOut
4750
)
4851

4952
Box(

compose-loading/src/main/java/com/commandiron/compose_loading/WanderingCubes.kt

Lines changed: 29 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@ import androidx.compose.ui.graphics.Color
1515
import androidx.compose.ui.unit.DpSize
1616
import androidx.compose.ui.unit.dp
1717
import com.commandiron.compose_loading.transition.EaseInOut
18-
import com.commandiron.compose_loading.transition.fractionTransition
19-
import com.commandiron.compose_loading.transition.fractionTransitionDelayAtFirst
2018

2119
@Composable
2220
fun WanderingCubes(
@@ -29,56 +27,38 @@ fun WanderingCubes(
2927

3028
val durationPerFraction = durationMillis / 4
3129

32-
val x1Multiplier = transition.fractionTransition(
33-
initialValue = 0f,
34-
targetValue = 1f,
35-
durationMillis = durationPerFraction,
36-
delayMillis = durationMillis / 8,
37-
repeatMode = RepeatMode.Reverse,
38-
easing = EaseInOut
39-
)
40-
val y1Multiplier = transition.fractionTransition(
41-
initialValue = 0f,
42-
targetValue = 1f,
43-
durationMillis = durationPerFraction,
44-
delayMillis = durationMillis / 8,
45-
offsetMillis = durationPerFraction,
46-
repeatMode = RepeatMode.Reverse,
47-
easing = EaseInOut
48-
)
49-
val x2Multiplier = transition.fractionTransition(
30+
val x1Multiplier = transition.wanderingCubesTransition(
5031
initialValue = 1f,
5132
targetValue = 0f,
52-
durationMillis = durationPerFraction,
53-
delayMillis = durationMillis / 8,
54-
repeatMode = RepeatMode.Reverse,
55-
easing = EaseInOut
33+
durationMillisPerFraction = durationPerFraction
5634
)
57-
val y2Multiplier = transition.fractionTransition(
35+
val y1Multiplier = transition.wanderingCubesTransition(
5836
initialValue = 1f,
5937
targetValue = 0f,
60-
durationMillis = durationPerFraction,
61-
delayMillis = durationMillis / 8,
62-
offsetMillis = durationPerFraction,
63-
repeatMode = RepeatMode.Reverse,
64-
easing = EaseInOut
38+
durationMillisPerFraction = durationPerFraction,
39+
offsetMillis = durationPerFraction
40+
)
41+
val x2Multiplier = transition.wanderingCubesTransition(
42+
initialValue = 0f,
43+
targetValue = 1f,
44+
durationMillisPerFraction = durationPerFraction
45+
)
46+
val y2Multiplier = transition.wanderingCubesTransition(
47+
initialValue = 0f,
48+
targetValue = 1f,
49+
durationMillisPerFraction = durationPerFraction,
50+
offsetMillis = durationPerFraction
6551
)
6652

67-
val rectHeightMultiplier = transition.fractionTransitionDelayAtFirst(
68-
initialValue = 1f,
69-
targetValue = 2f,
70-
durationMillis = durationPerFraction,
71-
delayMillis = durationPerFraction / 2,
72-
repeatMode = RepeatMode.Reverse,
73-
easing = LinearEasing
53+
val rectHeightMultiplier = transition.wanderingCubesTransition(
54+
initialValue = 2f,
55+
targetValue = 1f,
56+
durationMillisPerFraction = durationPerFraction / 2
7457
)
75-
val rectWidthMultiplier = transition.fractionTransitionDelayAtFirst(
76-
initialValue = 1f,
77-
targetValue = 2f,
78-
durationMillis = durationPerFraction,
79-
delayMillis = durationPerFraction / 2,
80-
repeatMode = RepeatMode.Reverse,
81-
easing = LinearEasing
58+
val rectWidthMultiplier = transition.wanderingCubesTransition(
59+
initialValue = 2f,
60+
targetValue = 1f,
61+
durationMillisPerFraction = durationPerFraction / 2
8262
)
8363

8464
Box(
@@ -91,6 +71,8 @@ fun WanderingCubes(
9171

9272
val rectWidth = width / 6
9373
val rectHeight = height / 6
74+
val defaultRectSize = Size(rectWidth, rectHeight)
75+
9476
val rectSize = Size(
9577
width = rectWidth * rectWidthMultiplier.value,
9678
height = rectHeight * rectHeightMultiplier.value
@@ -111,20 +93,20 @@ fun WanderingCubes(
11193
val y2 = y2Multiplier.value * effectiveHeight
11294
drawRect(
11395
color = color,
114-
size = Size(rectWidth, rectHeight),
96+
size = rectSize,
11597
topLeft = Offset(x2,y2)
11698
)
11799
}
118100
}
119101
}
120102

121103
@Composable
122-
internal fun InfiniteTransition.offsetMultiplierTransition(
104+
internal fun InfiniteTransition.wanderingCubesTransition(
123105
initialValue: Float,
124106
targetValue: Float,
125107
durationMillisPerFraction: Int,
126108
offsetMillis: Int = 0,
127-
easing: Easing = FastOutSlowInEasing
109+
easing: Easing = EaseInOut
128110
): State<Float> {
129111
return animateFloat(
130112
initialValue = initialValue,
@@ -142,30 +124,4 @@ internal fun InfiniteTransition.offsetMultiplierTransition(
142124
StartOffset(offsetMillis)
143125
)
144126
)
145-
}
146-
147-
@Composable
148-
internal fun InfiniteTransition.sizeMultiplierTransition(
149-
initialValue: Float,
150-
targetValue: Float,
151-
durationMillisPerFraction: Int,
152-
offsetMillis: Int = 0,
153-
easing: Easing = FastOutSlowInEasing
154-
): State<Float> {
155-
return animateFloat(
156-
initialValue = initialValue,
157-
targetValue = targetValue,
158-
animationSpec = infiniteRepeatable(
159-
animation = keyframes {
160-
this.durationMillis = durationMillisPerFraction * 4
161-
initialValue at 0 with easing
162-
targetValue at durationMillisPerFraction with easing
163-
initialValue at durationMillisPerFraction * 2 with easing
164-
targetValue at durationMillisPerFraction * 3 with easing
165-
initialValue at durationMillisPerFraction * 4 with easing
166-
},
167-
RepeatMode.Restart,
168-
StartOffset(offsetMillis)
169-
)
170-
)
171127
}

compose-loading/src/main/java/com/commandiron/compose_loading/Wave.kt

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import androidx.compose.ui.unit.Dp
1414
import androidx.compose.ui.unit.dp
1515
import com.commandiron.compose_loading.transition.EaseInOut
1616
import com.commandiron.compose_loading.transition.fractionTransition
17-
import com.commandiron.compose_loading.transition.fractionTransitionDelayAtFirst
1817

1918
@Composable
2019
fun Wave(
@@ -27,15 +26,15 @@ fun Wave(
2726
) {
2827
val transition = rememberInfiniteTransition()
2928

30-
val aspectRatio1 = transition.fractionTransitionDelayAtFirst(
29+
val aspectRatio1 = transition.fractionTransition(
3130
initialValue = 0.25f,
3231
targetValue = 0.1f,
3332
durationMillis = durationMillis / 5,
3433
delayMillis = delayMillis,
3534
repeatMode = RepeatMode.Reverse,
3635
easing = EaseInOut
3736
)
38-
val aspectRatio2 = transition.fractionTransitionDelayAtFirst(
37+
val aspectRatio2 = transition.fractionTransition(
3938
initialValue = 0.25f,
4039
targetValue = 0.1f,
4140
durationMillis = durationMillis / 5,
@@ -44,7 +43,7 @@ fun Wave(
4443
repeatMode = RepeatMode.Reverse,
4544
easing = EaseInOut
4645
)
47-
val aspectRatio3 = transition.fractionTransitionDelayAtFirst(
46+
val aspectRatio3 = transition.fractionTransition(
4847
initialValue = 0.25f,
4948
targetValue = 0.1f,
5049
durationMillis = durationMillis / 5,
@@ -53,7 +52,7 @@ fun Wave(
5352
repeatMode = RepeatMode.Reverse,
5453
easing = EaseInOut
5554
)
56-
val aspectRatio4 = transition.fractionTransitionDelayAtFirst(
55+
val aspectRatio4 = transition.fractionTransition(
5756
initialValue = 0.25f,
5857
targetValue = 0.1f,
5958
durationMillis = durationMillis / 5,
@@ -62,7 +61,7 @@ fun Wave(
6261
repeatMode = RepeatMode.Reverse,
6362
easing = EaseInOut
6463
)
65-
val aspectRatio5 = transition.fractionTransitionDelayAtFirst(
64+
val aspectRatio5 = transition.fractionTransition(
6665
initialValue = 0.25f,
6766
targetValue = 0.1f,
6867
durationMillis = durationMillis / 5,

compose-loading/src/main/java/com/commandiron/compose_loading/transition/Transition.kt

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ internal fun InfiniteTransition.fractionTransition(
2121
targetValue = targetValue,
2222
animationSpec = infiniteRepeatable(
2323
animation = keyframes {
24-
this.durationMillis = durationMillis + delayMillis
24+
this.durationMillis = durationMillis
2525
this.delayMillis = delayMillis
2626
initialValue at 0 with easing
2727
when(fraction){
@@ -52,10 +52,10 @@ internal fun InfiniteTransition.fractionTransition(
5252
}
5353

5454
@Composable
55-
internal fun InfiniteTransition.fractionTransitionDelayAtFirst(
55+
internal fun InfiniteTransition.fractionTransitionToInitial(
5656
initialValue: Float,
5757
targetValue: Float,
58-
@IntRange(from = 1, to = 4) fraction: Int = 1,
58+
@IntRange(from = 2, to = 4) fraction: Int = 2,
5959
durationMillis: Int,
6060
delayMillis: Int = 0,
6161
offsetMillis: Int = 0,
@@ -67,30 +67,24 @@ internal fun InfiniteTransition.fractionTransitionDelayAtFirst(
6767
targetValue = targetValue,
6868
animationSpec = infiniteRepeatable(
6969
animation = keyframes {
70-
this.durationMillis = durationMillis + delayMillis
70+
this.durationMillis = durationMillis
71+
this.delayMillis = delayMillis
7172
initialValue at 0 with easing
7273
when(fraction){
73-
1 ->{
74-
initialValue at delayMillis with easing
75-
targetValue at durationMillis + delayMillis with easing
76-
}
7774
2 ->{
78-
initialValue at delayMillis with easing
7975
targetValue / fraction at durationMillis / fraction with easing
80-
targetValue at durationMillis + delayMillis with easing
76+
initialValue at durationMillis with easing
8177
}
8278
3 ->{
83-
initialValue at delayMillis with easing
8479
targetValue / fraction at durationMillis / fraction with easing
8580
targetValue / fraction * 2 at durationMillis / fraction * 2 with easing
86-
targetValue at durationMillis + delayMillis with easing
81+
initialValue at durationMillis with easing
8782
}
8883
4 ->{
89-
initialValue at delayMillis with easing
9084
targetValue / fraction at durationMillis / fraction with easing
9185
targetValue / fraction * 2 at durationMillis / fraction * 2 with easing
9286
targetValue / fraction * 3 at durationMillis / fraction * 3 with easing
93-
targetValue at durationMillis + delayMillis with easing
87+
initialValue at durationMillis with easing
9488
}
9589
}
9690
},

0 commit comments

Comments
 (0)