Add rageskahe module
This commit is contained in:
parent
a4fd7bab4f
commit
0568ea7c28
64 changed files with 3191 additions and 35 deletions
|
|
@ -43,7 +43,9 @@ import kotlinx.collections.immutable.toImmutableList
|
|||
fun RoomListScreen(
|
||||
viewModel: RoomListViewModel = mavericksViewModel(),
|
||||
onSuccessLogout: () -> Unit = { },
|
||||
onRoomClicked: (RoomId) -> Unit = { }
|
||||
onRoomClicked: (RoomId) -> Unit = { },
|
||||
onOpenRageShake: () -> Unit = { },
|
||||
onOpenSettings: () -> Unit = { },
|
||||
) {
|
||||
val logoutAction by viewModel.collectAsState(RoomListViewState::logoutAction)
|
||||
val filter by viewModel.collectAsState(RoomListViewState::filter)
|
||||
|
|
@ -59,6 +61,8 @@ fun RoomListScreen(
|
|||
matrixUser = matrixUser(),
|
||||
onRoomClicked = onRoomClicked,
|
||||
onLogoutClicked = viewModel::logout,
|
||||
onOpenSettings = onOpenSettings,
|
||||
onOpenRageShake = onOpenRageShake,
|
||||
isLoginOut = logoutAction is Loading,
|
||||
filter = filter,
|
||||
onFilterChanged = viewModel::filterRoom,
|
||||
|
|
@ -76,6 +80,8 @@ fun RoomListContent(
|
|||
onRoomClicked: (RoomId) -> Unit = {},
|
||||
onFilterChanged: (String) -> Unit = {},
|
||||
onLogoutClicked: () -> Unit = {},
|
||||
onOpenSettings: () -> Unit = {},
|
||||
onOpenRageShake: () -> Unit = { },
|
||||
onScrollOver: (IntRange) -> Unit = {},
|
||||
) {
|
||||
fun onRoomClicked(room: RoomListRoomSummary) {
|
||||
|
|
@ -113,6 +119,8 @@ fun RoomListContent(
|
|||
filter = filter,
|
||||
onFilterChanged = onFilterChanged,
|
||||
onLogoutClicked = onLogoutClicked,
|
||||
onOpenSettings = onOpenSettings,
|
||||
onOpenRageShake = onOpenRageShake,
|
||||
scrollBehavior = scrollBehavior
|
||||
)
|
||||
},
|
||||
|
|
|
|||
|
|
@ -7,9 +7,11 @@ import androidx.compose.foundation.layout.fillMaxWidth
|
|||
import androidx.compose.material.ContentAlpha
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.ArrowBack
|
||||
import androidx.compose.material.icons.filled.BugReport
|
||||
import androidx.compose.material.icons.filled.Close
|
||||
import androidx.compose.material.icons.filled.Logout
|
||||
import androidx.compose.material.icons.filled.Search
|
||||
import androidx.compose.material.icons.filled.Settings
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.IconButton
|
||||
|
|
@ -32,6 +34,7 @@ import androidx.compose.ui.focus.FocusRequester
|
|||
import androidx.compose.ui.focus.focusRequester
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.input.nestedscroll.nestedScroll
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.text.TextStyle
|
||||
import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.unit.sp
|
||||
|
|
@ -40,6 +43,7 @@ import io.element.android.x.core.compose.textFieldState
|
|||
import io.element.android.x.designsystem.components.avatar.Avatar
|
||||
import io.element.android.x.designsystem.components.dialogs.ConfirmationDialog
|
||||
import io.element.android.x.features.roomlist.model.MatrixUser
|
||||
import io.element.android.x.element.resources.R as ElementR
|
||||
|
||||
@Composable
|
||||
fun RoomListTopBar(
|
||||
|
|
@ -47,6 +51,8 @@ fun RoomListTopBar(
|
|||
filter: String,
|
||||
onFilterChanged: (String) -> Unit,
|
||||
onLogoutClicked: () -> Unit,
|
||||
onOpenSettings: () -> Unit,
|
||||
onOpenRageShake: () -> Unit,
|
||||
scrollBehavior: TopAppBarScrollBehavior
|
||||
) {
|
||||
LogCompositions(tag = "RoomListScreen", msg = "TopBar")
|
||||
|
|
@ -72,6 +78,8 @@ fun RoomListTopBar(
|
|||
DefaultRoomListTopBar(
|
||||
matrixUser = matrixUser,
|
||||
onLogoutClicked = onLogoutClicked,
|
||||
onOpenSettings = onOpenSettings,
|
||||
onOpenRageShake = onOpenRageShake,
|
||||
onSearchClicked = {
|
||||
searchWidgetStateIsOpened = true
|
||||
},
|
||||
|
|
@ -161,6 +169,8 @@ fun SearchRoomListTopBar(
|
|||
private fun DefaultRoomListTopBar(
|
||||
matrixUser: MatrixUser?,
|
||||
onLogoutClicked: () -> Unit,
|
||||
onOpenRageShake: () -> Unit,
|
||||
onOpenSettings: () -> Unit,
|
||||
onSearchClicked: () -> Unit,
|
||||
scrollBehavior: TopAppBarScrollBehavior
|
||||
) {
|
||||
|
|
@ -187,23 +197,37 @@ private fun DefaultRoomListTopBar(
|
|||
) {
|
||||
Icon(Icons.Default.Search, contentDescription = "search")
|
||||
}
|
||||
IconButton(
|
||||
onClick = onOpenRageShake
|
||||
) {
|
||||
Icon(Icons.Default.BugReport, contentDescription = stringResource(id = ElementR.string.send_bug_report))
|
||||
}
|
||||
IconButton(
|
||||
onClick = { openDialog.value = true }
|
||||
) {
|
||||
Icon(Icons.Default.Logout, contentDescription = "logout")
|
||||
}
|
||||
IconButton(
|
||||
onClick = onOpenSettings
|
||||
) {
|
||||
Icon(Icons.Default.Settings, contentDescription = "Settings")
|
||||
}
|
||||
},
|
||||
scrollBehavior = scrollBehavior,
|
||||
)
|
||||
// Log out confirmation dialog
|
||||
ConfirmationDialog(
|
||||
isDisplayed = openDialog.value,
|
||||
title = "Log out",
|
||||
content = "Do you confirm you want to log out?",
|
||||
submitText = "Log out",
|
||||
onSubmitClicked = onLogoutClicked,
|
||||
onDismiss = {
|
||||
openDialog.value = false
|
||||
}
|
||||
)
|
||||
if (openDialog.value) {
|
||||
ConfirmationDialog(
|
||||
title = "Log out",
|
||||
content = "Do you confirm you want to log out?",
|
||||
submitText = "Log out",
|
||||
onSubmitClicked = {
|
||||
openDialog.value = false
|
||||
onLogoutClicked()
|
||||
},
|
||||
onDismiss = {
|
||||
openDialog.value = false
|
||||
}
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue