Skip to content

Commit 1a303ed

Browse files
Бубляев Алексей ВячеславовичБубляев Алексей Вячеславович
authored andcommitted
Pull request #23: Flamingo 0.0.12 + Theater
Merge in ~18384547/flamingo-android from feature/flamingo-theater to develop * commit '6859313460ea4aa9345db75a9feb03b2fa849520': @task Flamingo version 0.0.12 [FLAMINGO-36] @task added widgetcardgroup demo [FLAMINGO] @task added textfield demo [FLAMINGO] @task fixed icon Button demo [FLAMINGO] @task added Theater demos to Buttons [FLAMINGO]
2 parents ecbbc64 + 6859313 commit 1a303ed

File tree

26 files changed

+1698
-66
lines changed

26 files changed

+1698
-66
lines changed

flamingo-playground/src/main/java/com/flamingo/playground/components/button/Theater.kt

Lines changed: 414 additions & 0 deletions
Large diffs are not rendered by default.

flamingo-playground/src/main/java/com/flamingo/playground/components/CheckboxStatesPlayroom.kt renamed to flamingo-playground/src/main/java/com/flamingo/playground/components/checkbox/CheckboxStatesPlayroom.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.flamingo.playground.components
1+
package com.flamingo.playground.components.checkbox
22

33
import android.os.Bundle
44
import android.view.View
Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
1+
package com.flamingo.playground.components.checkbox
2+
3+
import androidx.compose.runtime.Composable
4+
import androidx.compose.runtime.getValue
5+
import androidx.compose.runtime.mutableStateOf
6+
import androidx.compose.runtime.setValue
7+
import androidx.compose.ui.unit.Density
8+
import com.flamingo.components.CheckBoxState
9+
import com.flamingo.components.Checkbox
10+
import com.flamingo.playground.theater.Director
11+
import com.flamingo.playground.theater.EndScreenActor
12+
import com.flamingo.playground.theater.FlamingoStage
13+
import com.flamingo.playground.theater.goToEndScreen
14+
import com.flamingo.playground.theater.hideEndScreenActor
15+
import com.theater.Actor
16+
import com.theater.ActorScope
17+
import com.theater.Backstage
18+
import com.theater.Plot
19+
import com.theater.TheaterPackage
20+
import com.theater.TheaterPlay
21+
import kotlinx.coroutines.delay
22+
23+
private class CheckboxActor : Actor {
24+
25+
var checked: Boolean by mutableStateOf(false)
26+
var disabled: Boolean by mutableStateOf(false)
27+
var state: CheckBoxState by mutableStateOf(CheckBoxState.DEFAULT)
28+
29+
@Composable
30+
override fun ActorScope.Actor() {
31+
Checkbox(
32+
checked = checked,
33+
onCheckedChange = { checked = it },
34+
disabled = disabled,
35+
state = state
36+
)
37+
}
38+
}
39+
40+
class TheaterPkg : TheaterPackage {
41+
override val play: TheaterPlay<*, *> = TheaterPlay(
42+
stage = FlamingoStage(),
43+
leadActor = CheckboxActor(),
44+
cast = listOf(
45+
EndScreenActor(Director.AlekseyBublyaev),
46+
),
47+
sizeConfig = TheaterPlay.SizeConfig(density = Density(4f)),
48+
plot = checkboxPlot,
49+
backstages = listOf(
50+
Backstage(name = "Checkbox", actor = CheckboxActor()),
51+
Backstage(name = "End screen", actor = EndScreenActor(Director.AlekseyBublyaev)),
52+
)
53+
)
54+
}
55+
56+
private val checkboxPlot = Plot<CheckboxActor, FlamingoStage> {
57+
hideEndScreenActor()
58+
59+
delay(1000)
60+
61+
layer0.animateTo(
62+
rotationX = 0f,
63+
rotationY = -42f,
64+
scaleX = 4.4f,
65+
scaleY = 4.4f,
66+
translationX = 0f,
67+
translationY = 0f,
68+
)
69+
70+
leadActor.checked = true
71+
delay(1000)
72+
leadActor.checked = false
73+
delay(1000)
74+
leadActor.checked = true
75+
delay(1000)
76+
leadActor.checked = false
77+
delay(1000)
78+
leadActor.disabled = true
79+
delay(1000)
80+
leadActor.disabled = false
81+
delay(1000)
82+
leadActor.checked = true
83+
delay(1000)
84+
leadActor.disabled = true
85+
delay(1000)
86+
leadActor.disabled = false
87+
delay(1000)
88+
89+
90+
parallel({
91+
leadActor.state = CheckBoxState.MINUS
92+
delay(500)
93+
leadActor.state = CheckBoxState.DEFAULT
94+
delay(500)
95+
leadActor.state = CheckBoxState.MINUS
96+
}, {
97+
layer0.animateTo(
98+
rotationX = 0f,
99+
rotationY = 42f,
100+
scaleX = 4.4f,
101+
scaleY = 4.4f,
102+
translationX = 0f,
103+
translationY = 0f,
104+
)
105+
})
106+
107+
108+
leadActor.checked = true
109+
delay(1000)
110+
leadActor.checked = false
111+
delay(1000)
112+
leadActor.checked = true
113+
delay(1000)
114+
leadActor.checked = false
115+
delay(1000)
116+
leadActor.disabled = true
117+
delay(1000)
118+
leadActor.disabled = false
119+
delay(1000)
120+
leadActor.checked = true
121+
delay(1000)
122+
leadActor.disabled = true
123+
delay(1000)
124+
leadActor.disabled = false
125+
delay(1000)
126+
127+
parallel({ goToEndScreen() }, { orchestra.decreaseVolume() })
128+
}

flamingo-playground/src/main/java/com/flamingo/playground/components/chip/Theater.kt

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -425,25 +425,21 @@ private val PlotScope<ChipActor, FlamingoStage>.chipGroupActor: ChipGroupActor
425425
get() = cast.find { it is ChipGroupActor } as ChipGroupActor
426426

427427
private suspend fun PlotScope<ChipActor, FlamingoStage>.flickerAllConfigs() = with(leadActor) {
428-
variants.forEach { currentVariant ->
429-
variant = currentVariant
430-
colors.forEach { currentColor ->
431-
color = currentColor
428+
colors.forEach { currentColor ->
429+
color = currentColor
432430

433-
icon = Flamingo.icons.Moon
434-
delay(100)
435-
onDelete = {}
431+
icon = Flamingo.icons.Moon
432+
delay(100)
433+
onDelete = {}
436434

437-
selected = true
438-
delay(200)
439-
selected = false
435+
selected = true
436+
delay(200)
437+
selected = false
440438

441-
onDelete = null
442-
delay(100)
443-
icon = null
439+
onDelete = null
440+
delay(100)
441+
icon = null
444442

445-
delay(200)
446-
}
447443
delay(200)
448444
}
449445
}

0 commit comments

Comments
 (0)