Centralized Mark All as Read button
This commit is contained in:
+48
-43
@@ -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 },
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user