33package com.redmadrobot.debug.core.inapp.compose
44
55import androidx.compose.foundation.ExperimentalFoundationApi
6- import androidx.compose.foundation.background
7- import androidx.compose.foundation.layout.Box
86import androidx.compose.foundation.layout.Column
9- import androidx.compose.foundation.layout.Spacer
107import androidx.compose.foundation.layout.fillMaxSize
11- import androidx.compose.foundation.layout.height
8+ import androidx.compose.foundation.layout.padding
9+ import androidx.compose.foundation.layout.statusBarsPadding
1210import androidx.compose.foundation.layout.width
1311import androidx.compose.foundation.pager.HorizontalPager
1412import androidx.compose.foundation.pager.PagerState
1513import androidx.compose.foundation.pager.rememberPagerState
16- import androidx.compose.foundation.shape.CircleShape
14+ import androidx.compose.foundation.shape.RoundedCornerShape
15+ import androidx.compose.material.Divider
1716import androidx.compose.material.MaterialTheme
1817import androidx.compose.material.ModalBottomSheetLayout
1918import androidx.compose.material.ModalBottomSheetValue
@@ -28,7 +27,6 @@ import androidx.compose.runtime.remember
2827import androidx.compose.runtime.rememberCoroutineScope
2928import androidx.compose.ui.Alignment
3029import androidx.compose.ui.Modifier
31- import androidx.compose.ui.draw.clip
3230import androidx.compose.ui.graphics.Color
3331import androidx.compose.ui.unit.dp
3432import com.redmadrobot.debug.core.extension.getAllPlugins
@@ -38,7 +36,7 @@ import kotlinx.coroutines.launch
3836@Composable
3937public fun DebugBottomSheet (onClose : () -> Unit ) {
4038 val state = rememberModalBottomSheetState(
41- initialValue = ModalBottomSheetValue .HalfExpanded ,
39+ initialValue = ModalBottomSheetValue .Expanded ,
4240 confirmValueChange = { sheetState ->
4341 if (sheetState == ModalBottomSheetValue .Hidden ) onClose()
4442 true
@@ -47,9 +45,11 @@ public fun DebugBottomSheet(onClose: () -> Unit) {
4745 )
4846
4947 ModalBottomSheetLayout (
48+ modifier = Modifier .statusBarsPadding(),
5049 sheetContent = { BottomSheetContent () },
5150 sheetState = state,
5251 scrimColor = Color .Transparent ,
52+ sheetShape = RoundedCornerShape (size = 16 .dp),
5353 content = {},
5454 )
5555}
@@ -59,43 +59,42 @@ private fun BottomSheetContent() {
5959 val plugins = remember { getAllPlugins() }
6060 val pluginsName = remember { plugins.map { it.getName() } }
6161 val pagerState = rememberPagerState(initialPage = 0 , pageCount = { plugins.size })
62- Column (modifier = Modifier .fillMaxSize()) {
63- Spacer (modifier = Modifier .height(8 .dp))
6462
65- Box (
63+ Column (modifier = Modifier .fillMaxSize()) {
64+ Divider (
6665 modifier = Modifier
67- .height( 4 .dp)
68- .width( 50 .dp)
69- .clip( CircleShape )
70- .background( Color .Gray )
71- .align( Alignment . CenterHorizontally )
66+ .width(width = 50 .dp)
67+ .padding(vertical = 8 .dp)
68+ .align(alignment = Alignment . CenterHorizontally ),
69+ color = Color .Gray ,
70+ thickness = 4 .dp
7271 )
73-
74- Spacer (modifier = Modifier .height(8 .dp))
75-
76- PluginsTabLayout (pluginsName, pagerState = pagerState)
77-
78- PluginsPager (plugins, pagerState = pagerState)
72+ PluginsTabLayout (pluginsName = pluginsName, pagerState = pagerState)
73+ PluginsPager (plugins = plugins, pagerState = pagerState)
7974 }
8075}
8176
8277@Composable
8378private fun PluginsTabLayout (pluginsName : List <String >, pagerState : PagerState ) {
8479 val scope = rememberCoroutineScope()
80+
8581 ScrollableTabRow (
8682 selectedTabIndex = pagerState.currentPage,
8783 backgroundColor = MaterialTheme .colors.background,
84+ edgePadding = 16 .dp,
8885 indicator = { tabPositions ->
8986 TabRowDefaults .Indicator (
90- modifier = Modifier .tabIndicatorOffset(tabPositions[pagerState.currentPage]),
87+ modifier = Modifier .tabIndicatorOffset(
88+ currentTabPosition = tabPositions[pagerState.currentPage]
89+ ),
9190 height = 2 .dp,
9291 color = MaterialTheme .colors.secondary
9392 )
9493 }
9594 ) {
9695 pluginsName.forEachIndexed { index, _ ->
9796 Tab (
98- text = { Text (pluginsName[index]) },
97+ text = { Text (text = pluginsName[index]) },
9998 selected = pagerState.currentPage == index,
10099 onClick = {
101100 scope.launch { pagerState.animateScrollToPage(index) }
0 commit comments