Centralized Mark All as Read button

This commit is contained in:
Vitor Pamplona
2023-03-04 17:31:46 -05:00
parent c7debb272d
commit 567cf83b92
@@ -4,6 +4,7 @@ import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxHeight
import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.size
import androidx.compose.material.DropdownMenu import androidx.compose.material.DropdownMenu
@@ -64,32 +65,56 @@ fun ChatroomListScreen(accountViewModel: AccountViewModel, navController: NavCon
Column( Column(
modifier = Modifier.padding(vertical = 0.dp) modifier = Modifier.padding(vertical = 0.dp)
) { ) {
TabRow( Box(Modifier.fillMaxWidth()) {
backgroundColor = MaterialTheme.colors.background, TabRow(
selectedTabIndex = pagerState.currentPage, backgroundColor = MaterialTheme.colors.background,
indicator = { tabPositions -> selectedTabIndex = pagerState.currentPage,
TabRowDefaults.Indicator( indicator = { tabPositions ->
Modifier.pagerTabIndicatorOffset(pagerState, tabPositions), TabRowDefaults.Indicator(
color = MaterialTheme.colors.primary Modifier.pagerTabIndicatorOffset(pagerState, tabPositions),
color = MaterialTheme.colors.primary
)
},
) {
Tab(
selected = pagerState.currentPage == 0,
onClick = { coroutineScope.launch { pagerState.animateScrollToPage(0) } },
text = {
Text(text = stringResource(R.string.known))
}
) )
},
) {
Tab(
selected = pagerState.currentPage == 0,
onClick = { coroutineScope.launch { pagerState.animateScrollToPage(0) } },
text = {
Text(text = stringResource(R.string.known))
}
)
Tab( Tab(
selected = pagerState.currentPage == 1, selected = pagerState.currentPage == 1,
onClick = { coroutineScope.launch { pagerState.animateScrollToPage(1) } }, onClick = { coroutineScope.launch { pagerState.animateScrollToPage(1) } },
text = { text = {
Text(text = stringResource(R.string.new_requests)) Text(text = stringResource(R.string.new_requests))
} }
) )
}
IconButton(
modifier = Modifier
.padding(end=5.dp)
.size(40.dp)
.align(Alignment.CenterEnd),
onClick = { moreActionsExpanded = true }
) {
Icon(
imageVector = Icons.Default.MoreVert,
contentDescription = null,
tint = MaterialTheme.colors.onSurface.copy(alpha = 0.32f),
)
ChatroomTabMenu(
moreActionsExpanded,
{ moreActionsExpanded = false },
{ markKnownAsRead.value = true },
{ markNewAsRead.value = true },
)
}
} }
HorizontalPager(count = 2, state = pagerState) { HorizontalPager(count = 2, state = pagerState) {
when (pagerState.currentPage) { when (pagerState.currentPage) {
0 -> TabKnown(accountViewModel, navController, markKnownAsRead,) 0 -> TabKnown(accountViewModel, navController, markKnownAsRead,)
@@ -98,26 +123,6 @@ fun ChatroomListScreen(accountViewModel: AccountViewModel, navController: NavCon
} }
} }
} }
IconButton(
modifier = Modifier
.padding(0.dp)
.size(30.dp)
.align(Alignment.TopEnd),
onClick = { moreActionsExpanded = true }
) {
Icon(
imageVector = Icons.Default.MoreVert,
contentDescription = null,
tint = MaterialTheme.colors.onSurface.copy(alpha = 0.32f),
)
ChatroomTabMenu(
moreActionsExpanded,
{ moreActionsExpanded = false },
{ markKnownAsRead.value = true },
{ markNewAsRead.value = true },
)
}
} }
} }