Skip to content

Commit 033d246

Browse files
committed
[ISSUE-68] Player tracker component
1 parent e709abf commit 033d246

File tree

1 file changed

+64
-0
lines changed
  • core-shared-ui/src/main/java/com/codandotv/streamplayerapp/core_shared_ui/widget/player

1 file changed

+64
-0
lines changed
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
package com.codandotv.streamplayerapp.core_shared_ui.widget.player
2+
3+
import androidx.compose.foundation.interaction.MutableInteractionSource
4+
import androidx.compose.foundation.layout.Column
5+
import androidx.compose.foundation.layout.fillMaxWidth
6+
import androidx.compose.material3.ExperimentalMaterial3Api
7+
import androidx.compose.material3.Slider
8+
import androidx.compose.material3.SliderDefaults
9+
import androidx.compose.material3.SliderPositions
10+
import androidx.compose.runtime.Composable
11+
import androidx.compose.ui.Modifier
12+
import androidx.compose.ui.graphics.Color
13+
import androidx.compose.ui.unit.DpSize
14+
import androidx.compose.ui.unit.dp
15+
import com.codandotv.streamplayerapp.core_shared_ui.theme.ThemePreviews
16+
17+
@OptIn(ExperimentalMaterial3Api::class)
18+
@Composable
19+
fun PlayerTracker(expanded: Boolean, percentage: Float, modifier: Modifier = Modifier) {
20+
val sliderColors = SliderDefaults.colors(
21+
activeTrackColor = Color.Red,
22+
inactiveTrackColor = Color.Red.copy(
23+
alpha = 0.5f
24+
),
25+
thumbColor = Color.Red,
26+
)
27+
28+
val thumb: @Composable (SliderPositions) -> Unit = {
29+
if (expanded.not()) {
30+
SliderDefaults.Thumb(
31+
thumbSize = DpSize(0.dp, 0.dp),
32+
colors = sliderColors,
33+
interactionSource = MutableInteractionSource()
34+
)
35+
} else {
36+
SliderDefaults.Thumb(
37+
thumbSize = DpSize(40.dp, 40.dp),
38+
colors = sliderColors,
39+
interactionSource = MutableInteractionSource()
40+
)
41+
}
42+
}
43+
44+
Slider(
45+
modifier = modifier,
46+
value = percentage,
47+
colors = sliderColors,
48+
onValueChange = {},
49+
thumb = thumb
50+
)
51+
}
52+
53+
@ThemePreviews
54+
@Composable
55+
fun PlayerTrackerPreview() {
56+
Column(modifier = Modifier.fillMaxWidth()) {
57+
PlayerTracker(
58+
expanded = false,
59+
0.5f
60+
)
61+
62+
PlayerTracker(expanded = true, percentage = 0.5f)
63+
}
64+
}

0 commit comments

Comments
 (0)