Fix PR comments

This commit is contained in:
yostyle 2023-08-17 13:50:49 +02:00
parent 122d5e4239
commit a78f3430e2
3 changed files with 24 additions and 20 deletions

View file

@ -150,7 +150,7 @@ fun RoomDetailsView(
if (state.canShowNotificationSettings && state.roomNotificationSettings != null) { if (state.canShowNotificationSettings && state.roomNotificationSettings != null) {
NotificationSection( NotificationSection(
state = state, isDefaultMode = state.roomNotificationSettings.isDefault,
openRoomNotificationSettings = openRoomNotificationSettings) openRoomNotificationSettings = openRoomNotificationSettings)
} }
@ -304,9 +304,12 @@ internal fun TopicSection(
} }
@Composable @Composable
internal fun NotificationSection(state: RoomDetailsState, openRoomNotificationSettings: () -> Unit, modifier: Modifier = Modifier) { internal fun NotificationSection(
state.roomNotificationSettings?.let { isDefaultMode: Boolean,
val subtitle = if (it.isDefault) { openRoomNotificationSettings: () -> Unit,
modifier: Modifier = Modifier
) {
val subtitle = if (isDefaultMode) {
stringResource(R.string.screen_room_details_notification_mode_default) stringResource(R.string.screen_room_details_notification_mode_default)
} else { } else {
stringResource(R.string.screen_room_details_notification_mode_custom) stringResource(R.string.screen_room_details_notification_mode_custom)
@ -319,7 +322,6 @@ internal fun NotificationSection(state: RoomDetailsState, openRoomNotificationSe
onClick = openRoomNotificationSettings, onClick = openRoomNotificationSettings,
) )
} }
}
} }
@Composable @Composable

View file

@ -282,6 +282,8 @@ class RustMatrixClient constructor(
override fun close() { override fun close() {
sessionCoroutineScope.cancel() sessionCoroutineScope.cancel()
client.setDelegate(null) client.setDelegate(null)
notificationSettings.setDelegate(null)
notificationSettings.destroy()
verificationService.destroy() verificationService.destroy()
syncService.destroy() syncService.destroy()
innerRoomListService.destroy() innerRoomListService.destroy()

View file

@ -26,8 +26,6 @@ import kotlinx.coroutines.flow.MutableSharedFlow
import kotlinx.coroutines.flow.SharedFlow import kotlinx.coroutines.flow.SharedFlow
import kotlinx.coroutines.flow.asSharedFlow import kotlinx.coroutines.flow.asSharedFlow
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
import org.matrix.rustcomponents.sdk.Client
import org.matrix.rustcomponents.sdk.NotificationClient
import org.matrix.rustcomponents.sdk.NotificationSettings import org.matrix.rustcomponents.sdk.NotificationSettings
import org.matrix.rustcomponents.sdk.NotificationSettingsDelegate import org.matrix.rustcomponents.sdk.NotificationSettingsDelegate
@ -65,17 +63,19 @@ class RustNotificationSettingsService(
} }
} }
override suspend fun restoreDefaultRoomNotificationMode(roomId: RoomId): Result<Unit> = override suspend fun restoreDefaultRoomNotificationMode(roomId: RoomId): Result<Unit> = withContext(dispatchers.io) {
runCatching { runCatching {
notificationSettings.restoreDefaultRoomNotificationMode(roomId.value) notificationSettings.restoreDefaultRoomNotificationMode(roomId.value)
} }
}
override suspend fun muteRoom(roomId: RoomId): Result<Unit> = setRoomNotificationMode(roomId, RoomNotificationMode.MUTE) override suspend fun muteRoom(roomId: RoomId): Result<Unit> = setRoomNotificationMode(roomId, RoomNotificationMode.MUTE)
override suspend fun unmuteRoom(roomId: RoomId, isEncrypted: Boolean, membersCount: Long) = override suspend fun unmuteRoom(roomId: RoomId, isEncrypted: Boolean, membersCount: Long) = withContext(dispatchers.io) {
runCatching { runCatching {
notificationSettings.unmuteRoom(roomId.value, isEncrypted, isOneToOne(membersCount)) notificationSettings.unmuteRoom(roomId.value, isEncrypted, isOneToOne(membersCount))
} }
}
/** /**
* A one-to-one is a room with exactly 2 members. * A one-to-one is a room with exactly 2 members.