mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-03 06:55:41 +00:00
Move user status section below multi-account in preferences
This commit is contained in:
+5
-1
@@ -11,11 +11,14 @@ package io.element.android.features.preferences.impl.root
|
|||||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||||
import io.element.android.features.logout.api.direct.DirectLogoutState
|
import io.element.android.features.logout.api.direct.DirectLogoutState
|
||||||
import io.element.android.features.logout.api.direct.aDirectLogoutState
|
import io.element.android.features.logout.api.direct.aDirectLogoutState
|
||||||
|
import io.element.android.features.preferences.impl.userstatus.PredefinedUserStatus
|
||||||
|
import io.element.android.features.preferences.impl.userstatus.UserStatusPickerState
|
||||||
import io.element.android.features.preferences.impl.userstatus.UserStatusState
|
import io.element.android.features.preferences.impl.userstatus.UserStatusState
|
||||||
import io.element.android.features.preferences.impl.userstatus.aUserStatusState
|
import io.element.android.features.preferences.impl.userstatus.aUserStatusState
|
||||||
import io.element.android.libraries.designsystem.utils.snackbar.SnackbarMessage
|
import io.element.android.libraries.designsystem.utils.snackbar.SnackbarMessage
|
||||||
import io.element.android.libraries.matrix.api.core.DeviceId
|
import io.element.android.libraries.matrix.api.core.DeviceId
|
||||||
import io.element.android.libraries.matrix.api.user.MatrixUser
|
import io.element.android.libraries.matrix.api.user.MatrixUser
|
||||||
|
import io.element.android.libraries.matrix.api.user.UserStatus
|
||||||
import io.element.android.libraries.matrix.ui.components.aMatrixUser
|
import io.element.android.libraries.matrix.ui.components.aMatrixUser
|
||||||
import io.element.android.libraries.matrix.ui.components.aMatrixUserList
|
import io.element.android.libraries.matrix.ui.components.aMatrixUserList
|
||||||
import io.element.android.libraries.ui.strings.CommonStrings
|
import io.element.android.libraries.ui.strings.CommonStrings
|
||||||
@@ -66,8 +69,9 @@ open class PreferencesRootStateProvider : PreviewParameterProvider<PreferencesRo
|
|||||||
showDeveloperSettings = true,
|
showDeveloperSettings = true,
|
||||||
canDeactivateAccount = true,
|
canDeactivateAccount = true,
|
||||||
),
|
),
|
||||||
|
aPreferencesRootState(userStatusState = aUserStatusState(pickerState = UserStatusPickerState.ShowingPicker)),
|
||||||
// Minimal state
|
// Minimal state
|
||||||
aPreferencesRootState(),
|
aPreferencesRootState(userStatusState = null),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+24
-24
@@ -83,17 +83,15 @@ fun PreferencesRootView(
|
|||||||
},
|
},
|
||||||
matrixUser = state.myUser,
|
matrixUser = state.myUser,
|
||||||
)
|
)
|
||||||
|
|
||||||
if (state.userStatusState != null) {
|
|
||||||
UserStatusSection(state.userStatusState)
|
|
||||||
}
|
|
||||||
if (state.isMultiAccountEnabled) {
|
if (state.isMultiAccountEnabled) {
|
||||||
MultiAccountSection(
|
MultiAccountSection(
|
||||||
state = state,
|
state = state,
|
||||||
showTopDivider = state.userStatusState == null,
|
|
||||||
onAddAccountClick = onAddAccountClick,
|
onAddAccountClick = onAddAccountClick,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
if (state.userStatusState != null) {
|
||||||
|
UserStatusSection(state.userStatusState, showTopDivider = !state.isMultiAccountEnabled)
|
||||||
|
}
|
||||||
// 'Account' section
|
// 'Account' section
|
||||||
ManageAccountSection(
|
ManageAccountSection(
|
||||||
state = state,
|
state = state,
|
||||||
@@ -135,26 +133,9 @@ fun PreferencesRootView(
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
private fun ColumnScope.UserStatusSection(userStatusState: UserStatusState) {
|
private fun ColumnScope.UserStatusSection(
|
||||||
HorizontalDivider(
|
userStatusState: UserStatusState,
|
||||||
thickness = 8.dp,
|
|
||||||
color = ElementTheme.colors.bgSubtleSecondary,
|
|
||||||
)
|
|
||||||
UserStatusRow(
|
|
||||||
state = userStatusState,
|
|
||||||
modifier = Modifier.fillMaxWidth(),
|
|
||||||
)
|
|
||||||
HorizontalDivider(
|
|
||||||
thickness = 8.dp,
|
|
||||||
color = ElementTheme.colors.bgSubtleSecondary,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
@Composable
|
|
||||||
private fun ColumnScope.MultiAccountSection(
|
|
||||||
state: PreferencesRootState,
|
|
||||||
showTopDivider: Boolean,
|
showTopDivider: Boolean,
|
||||||
onAddAccountClick: () -> Unit,
|
|
||||||
) {
|
) {
|
||||||
if(showTopDivider) {
|
if(showTopDivider) {
|
||||||
HorizontalDivider(
|
HorizontalDivider(
|
||||||
@@ -162,6 +143,25 @@ private fun ColumnScope.MultiAccountSection(
|
|||||||
color = ElementTheme.colors.bgSubtleSecondary,
|
color = ElementTheme.colors.bgSubtleSecondary,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
UserStatusRow(
|
||||||
|
state = userStatusState,
|
||||||
|
modifier = Modifier.fillMaxWidth(),
|
||||||
|
)
|
||||||
|
HorizontalDivider(
|
||||||
|
thickness = 1.dp,
|
||||||
|
color = ElementTheme.colors.bgSubtleSecondary,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
private fun ColumnScope.MultiAccountSection(
|
||||||
|
state: PreferencesRootState,
|
||||||
|
onAddAccountClick: () -> Unit,
|
||||||
|
) {
|
||||||
|
HorizontalDivider(
|
||||||
|
thickness = 8.dp,
|
||||||
|
color = ElementTheme.colors.bgSubtleSecondary,
|
||||||
|
)
|
||||||
state.otherSessions.forEach { matrixUser ->
|
state.otherSessions.forEach { matrixUser ->
|
||||||
MatrixUserRow(
|
MatrixUserRow(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
|
|||||||
Reference in New Issue
Block a user