feat(security&privacy) : make the whole RoomDirectoryVisibility item clickable
This commit is contained in:
@@ -15,6 +15,6 @@ sealed interface SecurityAndPrivacyEvents {
|
||||
data object CancelEnableEncryption : SecurityAndPrivacyEvents
|
||||
data object ConfirmEnableEncryption: SecurityAndPrivacyEvents
|
||||
data class ChangeHistoryVisibility(val historyVisibility: SecurityAndPrivacyHistoryVisibility) : SecurityAndPrivacyEvents
|
||||
data class ChangeRoomVisibility(val isVisibleInRoomDirectory: Boolean) : SecurityAndPrivacyEvents
|
||||
data object ToggleRoomVisibility : SecurityAndPrivacyEvents
|
||||
data object DismissSaveError : SecurityAndPrivacyEvents
|
||||
}
|
||||
|
||||
@@ -120,8 +120,11 @@ class SecurityAndPrivacyPresenter @AssistedInject constructor(
|
||||
is SecurityAndPrivacyEvents.ChangeHistoryVisibility -> {
|
||||
editedHistoryVisibility = event.historyVisibility
|
||||
}
|
||||
is SecurityAndPrivacyEvents.ChangeRoomVisibility -> {
|
||||
editedVisibleInRoomDirectory = AsyncData.Success(event.isVisibleInRoomDirectory)
|
||||
SecurityAndPrivacyEvents.ToggleRoomVisibility -> {
|
||||
editedVisibleInRoomDirectory = when (val edited = editedVisibleInRoomDirectory) {
|
||||
is AsyncData.Success -> AsyncData.Success(!edited.data)
|
||||
else -> edited
|
||||
}
|
||||
}
|
||||
SecurityAndPrivacyEvents.EditRoomAddress -> navigator.openEditRoomAddress()
|
||||
SecurityAndPrivacyEvents.CancelEnableEncryption -> {
|
||||
|
||||
@@ -91,8 +91,8 @@ fun SecurityAndPrivacyView(
|
||||
homeserverName = state.homeserverName,
|
||||
onRoomAddressClick = { state.eventSink(SecurityAndPrivacyEvents.EditRoomAddress) },
|
||||
isVisibleInRoomDirectory = state.editedSettings.isVisibleInRoomDirectory,
|
||||
onVisibilityChange = { isVisible ->
|
||||
state.eventSink(SecurityAndPrivacyEvents.ChangeRoomVisibility(isVisible))
|
||||
onVisibilityChange = {
|
||||
state.eventSink(SecurityAndPrivacyEvents.ToggleRoomVisibility)
|
||||
},
|
||||
)
|
||||
}
|
||||
@@ -241,7 +241,7 @@ private fun RoomAddressSection(
|
||||
homeserverName: String,
|
||||
isVisibleInRoomDirectory: AsyncData<Boolean>,
|
||||
onRoomAddressClick: () -> Unit,
|
||||
onVisibilityChange: (Boolean) -> Unit,
|
||||
onVisibilityChange: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
) {
|
||||
SecurityAndPrivacySection(
|
||||
@@ -263,6 +263,7 @@ private fun RoomAddressSection(
|
||||
supportingContent = {
|
||||
Text(text = stringResource(R.string.screen_security_and_privacy_room_directory_visibility_section_footer, homeserverName))
|
||||
},
|
||||
onClick = if (isVisibleInRoomDirectory.isSuccess()) onVisibilityChange else null,
|
||||
trailingContent =
|
||||
when (isVisibleInRoomDirectory) {
|
||||
is AsyncData.Uninitialized, is AsyncData.Loading -> {
|
||||
@@ -284,7 +285,7 @@ private fun RoomAddressSection(
|
||||
is AsyncData.Success -> {
|
||||
ListItemContent.Switch(
|
||||
checked = isVisibleInRoomDirectory.data,
|
||||
onChange = onVisibilityChange,
|
||||
onChange = { onVisibilityChange() },
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user