mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-04 01:19:33 +00:00
Format code
This commit is contained in:
-2
@@ -11,14 +11,12 @@ 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.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
|
||||||
|
|||||||
+1
-1
@@ -137,7 +137,7 @@ private fun ColumnScope.UserStatusSection(
|
|||||||
userStatusState: UserStatusState,
|
userStatusState: UserStatusState,
|
||||||
showTopDivider: Boolean,
|
showTopDivider: Boolean,
|
||||||
) {
|
) {
|
||||||
if(showTopDivider) {
|
if (showTopDivider) {
|
||||||
HorizontalDivider(
|
HorizontalDivider(
|
||||||
thickness = 8.dp,
|
thickness = 8.dp,
|
||||||
color = ElementTheme.colors.bgSubtleSecondary,
|
color = ElementTheme.colors.bgSubtleSecondary,
|
||||||
|
|||||||
-1
@@ -27,7 +27,6 @@ import kotlinx.coroutines.launch
|
|||||||
class UserStatusPresenter(
|
class UserStatusPresenter(
|
||||||
private val matrixClient: MatrixClient,
|
private val matrixClient: MatrixClient,
|
||||||
) : Presenter<UserStatusState> {
|
) : Presenter<UserStatusState> {
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
override fun present(): UserStatusState {
|
override fun present(): UserStatusState {
|
||||||
val userProfile by matrixClient.userProfile.collectAsState()
|
val userProfile by matrixClient.userProfile.collectAsState()
|
||||||
|
|||||||
+19
-10
@@ -23,22 +23,22 @@ import androidx.compose.material3.ExperimentalMaterial3Api
|
|||||||
import androidx.compose.material3.minimumInteractiveComponentSize
|
import androidx.compose.material3.minimumInteractiveComponentSize
|
||||||
import androidx.compose.material3.rememberModalBottomSheetState
|
import androidx.compose.material3.rememberModalBottomSheetState
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
|
import androidx.compose.runtime.LaunchedEffect
|
||||||
import androidx.compose.runtime.derivedStateOf
|
import androidx.compose.runtime.derivedStateOf
|
||||||
import androidx.compose.runtime.getValue
|
import androidx.compose.runtime.getValue
|
||||||
import androidx.compose.runtime.remember
|
import androidx.compose.runtime.remember
|
||||||
import androidx.compose.runtime.LaunchedEffect
|
|
||||||
import androidx.compose.runtime.rememberCoroutineScope
|
import androidx.compose.runtime.rememberCoroutineScope
|
||||||
import androidx.compose.ui.focus.FocusRequester
|
|
||||||
import androidx.compose.ui.focus.focusRequester
|
|
||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.draw.clip
|
import androidx.compose.ui.draw.clip
|
||||||
|
import androidx.compose.ui.focus.FocusRequester
|
||||||
|
import androidx.compose.ui.focus.focusRequester
|
||||||
import androidx.compose.ui.layout.Layout
|
import androidx.compose.ui.layout.Layout
|
||||||
import androidx.compose.ui.res.stringResource
|
import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.text.input.ImeAction
|
import androidx.compose.ui.text.input.ImeAction
|
||||||
import androidx.compose.ui.text.style.TextAlign
|
import androidx.compose.ui.text.style.TextAlign
|
||||||
import androidx.compose.ui.unit.Constraints
|
|
||||||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||||
|
import androidx.compose.ui.unit.Constraints
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import io.element.android.compound.theme.ElementTheme
|
import io.element.android.compound.theme.ElementTheme
|
||||||
import io.element.android.compound.tokens.generated.CompoundIcons
|
import io.element.android.compound.tokens.generated.CompoundIcons
|
||||||
@@ -51,11 +51,11 @@ import io.element.android.libraries.designsystem.theme.components.IconButton
|
|||||||
import io.element.android.libraries.designsystem.theme.components.IconSource
|
import io.element.android.libraries.designsystem.theme.components.IconSource
|
||||||
import io.element.android.libraries.designsystem.theme.components.ListItem
|
import io.element.android.libraries.designsystem.theme.components.ListItem
|
||||||
import io.element.android.libraries.designsystem.theme.components.ModalBottomSheet
|
import io.element.android.libraries.designsystem.theme.components.ModalBottomSheet
|
||||||
import io.element.android.libraries.designsystem.theme.components.hide
|
|
||||||
import io.element.android.libraries.designsystem.theme.components.Surface
|
import io.element.android.libraries.designsystem.theme.components.Surface
|
||||||
import io.element.android.libraries.designsystem.theme.components.Text
|
import io.element.android.libraries.designsystem.theme.components.Text
|
||||||
import io.element.android.libraries.designsystem.theme.components.TextButton
|
import io.element.android.libraries.designsystem.theme.components.TextButton
|
||||||
import io.element.android.libraries.designsystem.theme.components.TextField
|
import io.element.android.libraries.designsystem.theme.components.TextField
|
||||||
|
import io.element.android.libraries.designsystem.theme.components.hide
|
||||||
import io.element.android.libraries.matrix.api.user.DisplayedStatus
|
import io.element.android.libraries.matrix.api.user.DisplayedStatus
|
||||||
import io.element.android.libraries.matrix.api.user.UserStatus
|
import io.element.android.libraries.matrix.api.user.UserStatus
|
||||||
import io.element.android.libraries.ui.strings.CommonStrings
|
import io.element.android.libraries.ui.strings.CommonStrings
|
||||||
@@ -178,13 +178,17 @@ private fun UserStatusPickerBottomSheet(
|
|||||||
ListItem(
|
ListItem(
|
||||||
headlineContent = { Text(text = label) },
|
headlineContent = { Text(text = label) },
|
||||||
leadingContent = ListItemContent.Text(text = predefined.emoji),
|
leadingContent = ListItemContent.Text(text = predefined.emoji),
|
||||||
trailingContent = if (isSelected) ListItemContent.Custom({
|
trailingContent = if (isSelected) {
|
||||||
|
ListItemContent.Custom({
|
||||||
Icon(
|
Icon(
|
||||||
imageVector = CompoundIcons.Check(),
|
imageVector = CompoundIcons.Check(),
|
||||||
contentDescription = null,
|
contentDescription = null,
|
||||||
tint = ElementTheme.colors.iconAccentPrimary,
|
tint = ElementTheme.colors.iconAccentPrimary,
|
||||||
)
|
)
|
||||||
}) else null,
|
})
|
||||||
|
} else {
|
||||||
|
null
|
||||||
|
},
|
||||||
onClick = {
|
onClick = {
|
||||||
sheetState.hide(coroutineScope) {
|
sheetState.hide(coroutineScope) {
|
||||||
onSelectPredefined(predefinedUserStatus)
|
onSelectPredefined(predefinedUserStatus)
|
||||||
@@ -249,7 +253,9 @@ private fun CustomStatusInputRow(
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else null
|
} else {
|
||||||
|
null
|
||||||
|
}
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
trailingContent = ListItemContent.Custom({
|
trailingContent = ListItemContent.Custom({
|
||||||
@@ -265,8 +271,11 @@ private fun CustomStatusInputRow(
|
|||||||
val maxWidth = placeables.maxOf { it.width }
|
val maxWidth = placeables.maxOf { it.width }
|
||||||
val maxHeight = placeables.maxOf { it.height }
|
val maxHeight = placeables.maxOf { it.height }
|
||||||
layout(maxWidth, maxHeight) {
|
layout(maxWidth, maxHeight) {
|
||||||
if (hasChanges) placeables[0].placeRelative(0, 0)
|
if (hasChanges) {
|
||||||
else placeables[1].placeRelative(0, 0)
|
placeables[0].placeRelative(0, 0)
|
||||||
|
} else {
|
||||||
|
placeables[1].placeRelative(0, 0)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
|
|||||||
-1
@@ -18,7 +18,6 @@ import kotlinx.coroutines.test.runTest
|
|||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
|
|
||||||
class UserStatusPresenterTest {
|
class UserStatusPresenterTest {
|
||||||
|
|
||||||
private fun createPresenter(client: FakeMatrixClient = FakeMatrixClient()) =
|
private fun createPresenter(client: FakeMatrixClient = FakeMatrixClient()) =
|
||||||
UserStatusPresenter(matrixClient = client)
|
UserStatusPresenter(matrixClient = client)
|
||||||
|
|
||||||
|
|||||||
+1
@@ -86,6 +86,7 @@ interface MatrixClient {
|
|||||||
suspend fun uploadAvatar(mimeType: String, data: ByteArray): Result<Unit>
|
suspend fun uploadAvatar(mimeType: String, data: ByteArray): Result<Unit>
|
||||||
suspend fun removeAvatar(): Result<Unit>
|
suspend fun removeAvatar(): Result<Unit>
|
||||||
suspend fun setUserStatus(status: UserStatus): Result<Unit>
|
suspend fun setUserStatus(status: UserStatus): Result<Unit>
|
||||||
|
|
||||||
/** Clears both m.status and m.call profile fields (maps to DELETE on the profile endpoint per MSC4426). */
|
/** Clears both m.status and m.call profile fields (maps to DELETE on the profile endpoint per MSC4426). */
|
||||||
suspend fun clearUserStatus(): Result<Unit>
|
suspend fun clearUserStatus(): Result<Unit>
|
||||||
suspend fun joinRoom(roomId: RoomId): Result<RoomInfo?>
|
suspend fun joinRoom(roomId: RoomId): Result<RoomInfo?>
|
||||||
|
|||||||
Reference in New Issue
Block a user