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