Improve API: use RoomId instead of String.
This commit is contained in:
parent
88f0111137
commit
d8cacba43a
5 changed files with 11 additions and 10 deletions
|
|
@ -23,6 +23,7 @@ import io.element.android.libraries.architecture.AsyncAction
|
||||||
import io.element.android.libraries.architecture.Presenter
|
import io.element.android.libraries.architecture.Presenter
|
||||||
import io.element.android.libraries.architecture.runUpdatingStateNoSuccess
|
import io.element.android.libraries.architecture.runUpdatingStateNoSuccess
|
||||||
import io.element.android.libraries.designsystem.components.avatar.AvatarSize
|
import io.element.android.libraries.designsystem.components.avatar.AvatarSize
|
||||||
|
import io.element.android.libraries.matrix.api.core.RoomId
|
||||||
import io.element.android.libraries.matrix.api.notificationsettings.NotificationSettingsService
|
import io.element.android.libraries.matrix.api.notificationsettings.NotificationSettingsService
|
||||||
import io.element.android.libraries.matrix.api.room.RoomNotificationMode
|
import io.element.android.libraries.matrix.api.room.RoomNotificationMode
|
||||||
import io.element.android.libraries.matrix.api.roomlist.RoomListService
|
import io.element.android.libraries.matrix.api.roomlist.RoomListService
|
||||||
|
|
@ -125,10 +126,10 @@ class EditDefaultNotificationSettingPresenter(
|
||||||
summaries: List<RoomSummary>,
|
summaries: List<RoomSummary>,
|
||||||
roomsWithUserDefinedMode: MutableState<List<EditNotificationSettingRoomInfo>>
|
roomsWithUserDefinedMode: MutableState<List<EditNotificationSettingRoomInfo>>
|
||||||
) {
|
) {
|
||||||
val roomWithUserDefinedRules: Set<String> = notificationSettingsService.getRoomsWithUserDefinedRules().getOrDefault(emptyList()).toSet()
|
val roomWithUserDefinedRules: Set<RoomId> = notificationSettingsService.getRoomsWithUserDefinedRules().getOrDefault(emptyList()).toSet()
|
||||||
roomsWithUserDefinedMode.value = summaries
|
roomsWithUserDefinedMode.value = summaries
|
||||||
.filter { roomSummary ->
|
.filter { roomSummary ->
|
||||||
roomWithUserDefinedRules.contains(roomSummary.roomId.value) && roomSummary.isOneToOne == isOneToOne
|
roomWithUserDefinedRules.contains(roomSummary.roomId) && roomSummary.isOneToOne == isOneToOne
|
||||||
}
|
}
|
||||||
.map { roomSummary ->
|
.map { roomSummary ->
|
||||||
EditNotificationSettingRoomInfo(
|
EditNotificationSettingRoomInfo(
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,7 @@ class EditDefaultNotificationSettingsPresenterTest {
|
||||||
val notificationSettingsService = FakeNotificationSettingsService(
|
val notificationSettingsService = FakeNotificationSettingsService(
|
||||||
initialRoomMode = RoomNotificationMode.ALL_MESSAGES,
|
initialRoomMode = RoomNotificationMode.ALL_MESSAGES,
|
||||||
initialRoomModeIsDefault = false,
|
initialRoomModeIsDefault = false,
|
||||||
getRoomsWithUserDefinedRulesResult = { Result.success(listOf(A_ROOM_ID.value)) },
|
getRoomsWithUserDefinedRulesResult = { Result.success(listOf(A_ROOM_ID)) },
|
||||||
)
|
)
|
||||||
val roomListService = FakeRoomListService()
|
val roomListService = FakeRoomListService()
|
||||||
val presenter = createEditDefaultNotificationSettingPresenter(notificationSettingsService, roomListService)
|
val presenter = createEditDefaultNotificationSettingPresenter(notificationSettingsService, roomListService)
|
||||||
|
|
@ -69,7 +69,7 @@ class EditDefaultNotificationSettingsPresenterTest {
|
||||||
val notificationSettingsService = FakeNotificationSettingsService(
|
val notificationSettingsService = FakeNotificationSettingsService(
|
||||||
initialRoomMode = RoomNotificationMode.MENTIONS_AND_KEYWORDS_ONLY,
|
initialRoomMode = RoomNotificationMode.MENTIONS_AND_KEYWORDS_ONLY,
|
||||||
initialRoomModeIsDefault = false,
|
initialRoomModeIsDefault = false,
|
||||||
getRoomsWithUserDefinedRulesResult = { Result.success(listOf(A_ROOM_ID.value, A_ROOM_ID_2.value)) },
|
getRoomsWithUserDefinedRulesResult = { Result.success(listOf(A_ROOM_ID, A_ROOM_ID_2)) },
|
||||||
)
|
)
|
||||||
val roomListService = FakeRoomListService()
|
val roomListService = FakeRoomListService()
|
||||||
val presenter = createEditDefaultNotificationSettingPresenter(notificationSettingsService, roomListService)
|
val presenter = createEditDefaultNotificationSettingPresenter(notificationSettingsService, roomListService)
|
||||||
|
|
@ -101,7 +101,7 @@ class EditDefaultNotificationSettingsPresenterTest {
|
||||||
val notificationSettingsService = FakeNotificationSettingsService(
|
val notificationSettingsService = FakeNotificationSettingsService(
|
||||||
initialRoomMode = RoomNotificationMode.MUTE,
|
initialRoomMode = RoomNotificationMode.MUTE,
|
||||||
initialRoomModeIsDefault = false,
|
initialRoomModeIsDefault = false,
|
||||||
getRoomsWithUserDefinedRulesResult = { Result.success(listOf(A_ROOM_ID.value, A_ROOM_ID_2.value)) },
|
getRoomsWithUserDefinedRulesResult = { Result.success(listOf(A_ROOM_ID, A_ROOM_ID_2)) },
|
||||||
)
|
)
|
||||||
val roomListService = FakeRoomListService()
|
val roomListService = FakeRoomListService()
|
||||||
val presenter = createEditDefaultNotificationSettingPresenter(notificationSettingsService, roomListService)
|
val presenter = createEditDefaultNotificationSettingPresenter(notificationSettingsService, roomListService)
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,7 @@ interface NotificationSettingsService {
|
||||||
suspend fun setCallEnabled(enabled: Boolean): Result<Unit>
|
suspend fun setCallEnabled(enabled: Boolean): Result<Unit>
|
||||||
suspend fun isInviteForMeEnabled(): Result<Boolean>
|
suspend fun isInviteForMeEnabled(): Result<Boolean>
|
||||||
suspend fun setInviteForMeEnabled(enabled: Boolean): Result<Unit>
|
suspend fun setInviteForMeEnabled(enabled: Boolean): Result<Unit>
|
||||||
suspend fun getRoomsWithUserDefinedRules(): Result<List<String>>
|
suspend fun getRoomsWithUserDefinedRules(): Result<List<RoomId>>
|
||||||
suspend fun canHomeServerPushEncryptedEventsToDevice(): Result<Boolean>
|
suspend fun canHomeServerPushEncryptedEventsToDevice(): Result<Boolean>
|
||||||
suspend fun getRawPushRules(): Result<String?>
|
suspend fun getRawPushRules(): Result<String?>
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -131,9 +131,9 @@ class RustNotificationSettingsService(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override suspend fun getRoomsWithUserDefinedRules(): Result<List<String>> =
|
override suspend fun getRoomsWithUserDefinedRules(): Result<List<RoomId>> =
|
||||||
runCatchingExceptions {
|
runCatchingExceptions {
|
||||||
notificationSettings.await().getRoomsWithUserDefinedRules(enabled = true)
|
notificationSettings.await().getRoomsWithUserDefinedRules(enabled = true).map(::RoomId)
|
||||||
}
|
}
|
||||||
|
|
||||||
override suspend fun canHomeServerPushEncryptedEventsToDevice(): Result<Boolean> =
|
override suspend fun canHomeServerPushEncryptedEventsToDevice(): Result<Boolean> =
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ class FakeNotificationSettingsService(
|
||||||
initialOneToOneDefaultMode: RoomNotificationMode = RoomNotificationMode.ALL_MESSAGES,
|
initialOneToOneDefaultMode: RoomNotificationMode = RoomNotificationMode.ALL_MESSAGES,
|
||||||
initialEncryptedOneToOneDefaultMode: RoomNotificationMode = RoomNotificationMode.ALL_MESSAGES,
|
initialEncryptedOneToOneDefaultMode: RoomNotificationMode = RoomNotificationMode.ALL_MESSAGES,
|
||||||
private val getRawPushRulesResult: () -> Result<String> = { lambdaError() },
|
private val getRawPushRulesResult: () -> Result<String> = { lambdaError() },
|
||||||
private val getRoomsWithUserDefinedRulesResult: () -> Result<List<String>> = { lambdaError() },
|
private val getRoomsWithUserDefinedRulesResult: () -> Result<List<RoomId>> = { lambdaError() },
|
||||||
) : NotificationSettingsService {
|
) : NotificationSettingsService {
|
||||||
private val notificationSettingsStateFlow = MutableStateFlow(Unit)
|
private val notificationSettingsStateFlow = MutableStateFlow(Unit)
|
||||||
private var defaultGroupRoomNotificationMode: RoomNotificationMode = initialGroupDefaultMode
|
private var defaultGroupRoomNotificationMode: RoomNotificationMode = initialGroupDefaultMode
|
||||||
|
|
@ -154,7 +154,7 @@ class FakeNotificationSettingsService(
|
||||||
return Result.success(Unit)
|
return Result.success(Unit)
|
||||||
}
|
}
|
||||||
|
|
||||||
override suspend fun getRoomsWithUserDefinedRules(): Result<List<String>> {
|
override suspend fun getRoomsWithUserDefinedRules(): Result<List<RoomId>> {
|
||||||
return getRoomsWithUserDefinedRulesResult()
|
return getRoomsWithUserDefinedRulesResult()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue