Let AsyncAction.Confirming be an interface, with a AsyncAction.ConfirmingNoParams data object.
This will allow inheritance of `AsyncAction.Confirming` with parameter(s).
This commit is contained in:
parent
c46896be09
commit
97fb7bc2fa
46 changed files with 86 additions and 84 deletions
|
|
@ -77,7 +77,7 @@ class RoomMembersModerationPresenter @Inject constructor(
|
|||
coroutineScope.launch {
|
||||
selectedMember = event.roomMember
|
||||
if (event.roomMember.membership == RoomMembershipState.BAN && canBan()) {
|
||||
unbanUserAsyncAction.value = AsyncAction.Confirming
|
||||
unbanUserAsyncAction.value = AsyncAction.ConfirmingNoParams
|
||||
} else {
|
||||
moderationActions = buildList {
|
||||
add(ModerationAction.DisplayProfile(event.roomMember.userId))
|
||||
|
|
@ -109,7 +109,7 @@ class RoomMembersModerationPresenter @Inject constructor(
|
|||
coroutineScope.banUser(it.userId, banUserAsyncAction)
|
||||
}
|
||||
} else {
|
||||
banUserAsyncAction.value = AsyncAction.Confirming
|
||||
banUserAsyncAction.value = AsyncAction.ConfirmingNoParams
|
||||
}
|
||||
}
|
||||
is RoomMembersModerationEvents.UnbanUser -> {
|
||||
|
|
@ -119,7 +119,7 @@ class RoomMembersModerationPresenter @Inject constructor(
|
|||
coroutineScope.unbanUser(it.userId, unbanUserAsyncAction)
|
||||
}
|
||||
} else {
|
||||
unbanUserAsyncAction.value = AsyncAction.Confirming
|
||||
unbanUserAsyncAction.value = AsyncAction.ConfirmingNoParams
|
||||
}
|
||||
}
|
||||
is RoomMembersModerationEvents.Reset -> {
|
||||
|
|
|
|||
|
|
@ -56,11 +56,11 @@ class RoomMembersModerationStatePreviewProvider : PreviewParameterProvider<RoomM
|
|||
),
|
||||
aRoomMembersModerationState(
|
||||
selectedRoomMember = anAlice(),
|
||||
banUserAsyncAction = AsyncAction.Confirming,
|
||||
banUserAsyncAction = AsyncAction.ConfirmingNoParams,
|
||||
),
|
||||
aRoomMembersModerationState(
|
||||
selectedRoomMember = anAlice(),
|
||||
unbanUserAsyncAction = AsyncAction.Confirming,
|
||||
unbanUserAsyncAction = AsyncAction.ConfirmingNoParams,
|
||||
),
|
||||
aRoomMembersModerationState(
|
||||
kickUserAsyncAction = AsyncAction.Success(Unit),
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ class RolesAndPermissionsPresenter @Inject constructor(
|
|||
fun handleEvent(event: RolesAndPermissionsEvents) {
|
||||
when (event) {
|
||||
is RolesAndPermissionsEvents.ChangeOwnRole -> {
|
||||
changeOwnRoleAction.value = AsyncAction.Confirming
|
||||
changeOwnRoleAction.value = AsyncAction.ConfirmingNoParams
|
||||
}
|
||||
is RolesAndPermissionsEvents.CancelPendingAction -> {
|
||||
changeOwnRoleAction.value = AsyncAction.Uninitialized
|
||||
|
|
@ -77,7 +77,7 @@ class RolesAndPermissionsPresenter @Inject constructor(
|
|||
is RolesAndPermissionsEvents.ResetPermissions -> if (resetPermissionsAction.value.isConfirming()) {
|
||||
coroutineScope.resetPermissions(resetPermissionsAction)
|
||||
} else {
|
||||
resetPermissionsAction.value = AsyncAction.Confirming
|
||||
resetPermissionsAction.value = AsyncAction.ConfirmingNoParams
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ class RolesAndPermissionsStateProvider : PreviewParameterProvider<RolesAndPermis
|
|||
aRolesAndPermissionsState(
|
||||
adminCount = 1,
|
||||
moderatorCount = 2,
|
||||
changeOwnRoleAction = AsyncAction.Confirming,
|
||||
changeOwnRoleAction = AsyncAction.ConfirmingNoParams,
|
||||
),
|
||||
aRolesAndPermissionsState(
|
||||
adminCount = 1,
|
||||
|
|
@ -33,7 +33,7 @@ class RolesAndPermissionsStateProvider : PreviewParameterProvider<RolesAndPermis
|
|||
aRolesAndPermissionsState(
|
||||
adminCount = 1,
|
||||
moderatorCount = 2,
|
||||
resetPermissionsAction = AsyncAction.Confirming,
|
||||
resetPermissionsAction = AsyncAction.ConfirmingNoParams,
|
||||
),
|
||||
aRolesAndPermissionsState(
|
||||
adminCount = 1,
|
||||
|
|
|
|||
|
|
@ -134,7 +134,7 @@ class ChangeRolesPresenter @AssistedInject constructor(
|
|||
is ChangeRolesEvent.Save -> {
|
||||
if (role == RoomMember.Role.ADMIN && selectedUsers != usersWithRole && !saveState.value.isConfirming()) {
|
||||
// Confirm adding admin
|
||||
saveState.value = AsyncAction.Confirming
|
||||
saveState.value = AsyncAction.ConfirmingNoParams
|
||||
} else if (!saveState.value.isLoading()) {
|
||||
coroutineScope.save(usersWithRole.value, selectedUsers, saveState)
|
||||
}
|
||||
|
|
@ -145,7 +145,7 @@ class ChangeRolesPresenter @AssistedInject constructor(
|
|||
is ChangeRolesEvent.Exit -> {
|
||||
exitState.value = if (exitState.value.isUninitialized() && hasPendingChanges) {
|
||||
// Has pending changes, confirm exit
|
||||
AsyncAction.Confirming
|
||||
AsyncAction.ConfirmingNoParams
|
||||
} else {
|
||||
// No pending changes, exit immediately
|
||||
AsyncAction.Success(Unit)
|
||||
|
|
|
|||
|
|
@ -36,8 +36,8 @@ class ChangeRolesStateProvider : PreviewParameterProvider<ChangeRolesState> {
|
|||
searchResults = SearchBarResultState.Results(MembersByRole(aRoomMemberList().take(1).toImmutableList())),
|
||||
selectedUsers = aMatrixUserList().take(1).toImmutableList(),
|
||||
),
|
||||
aChangeRolesStateWithSelectedUsers().copy(exitState = AsyncAction.Confirming),
|
||||
aChangeRolesStateWithSelectedUsers().copy(savingState = AsyncAction.Confirming),
|
||||
aChangeRolesStateWithSelectedUsers().copy(exitState = AsyncAction.ConfirmingNoParams),
|
||||
aChangeRolesStateWithSelectedUsers().copy(savingState = AsyncAction.ConfirmingNoParams),
|
||||
aChangeRolesStateWithSelectedUsers().copy(savingState = AsyncAction.Loading),
|
||||
aChangeRolesStateWithSelectedUsers().copy(savingState = AsyncAction.Success(Unit)),
|
||||
aChangeRolesStateWithSelectedUsers().copy(savingState = AsyncAction.Failure(Exception("boom"))),
|
||||
|
|
|
|||
|
|
@ -95,7 +95,7 @@ class ChangeRoomPermissionsPresenter @AssistedInject constructor(
|
|||
confirmExitAction = if (!hasChanges || confirmExitAction.isConfirming()) {
|
||||
AsyncAction.Success(Unit)
|
||||
} else {
|
||||
AsyncAction.Confirming
|
||||
AsyncAction.ConfirmingNoParams
|
||||
}
|
||||
}
|
||||
is ChangeRoomPermissionsEvent.ResetPendingActions -> {
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ class ChangeRoomPermissionsStatePreviewProvider : PreviewParameterProvider<Chang
|
|||
hasChanges = true,
|
||||
saveAction = AsyncAction.Failure(IllegalStateException("Failed to save changes"))
|
||||
),
|
||||
aChangeRoomPermissionsState(section = ChangeRoomPermissionsSection.RoomDetails, hasChanges = true, confirmExitAction = AsyncAction.Confirming),
|
||||
aChangeRoomPermissionsState(section = ChangeRoomPermissionsSection.RoomDetails, hasChanges = true, confirmExitAction = AsyncAction.ConfirmingNoParams),
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -142,7 +142,7 @@ class RoomMembersModerationPresenterTest {
|
|||
awaitItem().eventSink(RoomMembersModerationEvents.SelectRoomMember(selectedMember))
|
||||
with(awaitItem()) {
|
||||
assertThat(selectedRoomMember).isNotNull()
|
||||
assertThat(unbanUserAsyncAction).isEqualTo(AsyncAction.Confirming)
|
||||
assertThat(unbanUserAsyncAction).isEqualTo(AsyncAction.ConfirmingNoParams)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -193,7 +193,7 @@ class RoomMembersModerationPresenterTest {
|
|||
awaitItem().eventSink(RoomMembersModerationEvents.SelectRoomMember(selectedMember))
|
||||
awaitItem().eventSink(RoomMembersModerationEvents.BanUser)
|
||||
val confirmingState = awaitItem()
|
||||
assertThat(confirmingState.banUserAsyncAction).isEqualTo(AsyncAction.Confirming)
|
||||
assertThat(confirmingState.banUserAsyncAction).isEqualTo(AsyncAction.ConfirmingNoParams)
|
||||
|
||||
// Confirm
|
||||
confirmingState.eventSink(RoomMembersModerationEvents.BanUser)
|
||||
|
|
|
|||
|
|
@ -130,7 +130,7 @@ class RoomMembersModerationViewTest {
|
|||
val roomMember = anAlice()
|
||||
val state = aRoomMembersModerationState(
|
||||
selectedRoomMember = roomMember,
|
||||
banUserAsyncAction = AsyncAction.Confirming,
|
||||
banUserAsyncAction = AsyncAction.ConfirmingNoParams,
|
||||
eventSink = eventsRecorder
|
||||
)
|
||||
rule.setRoomMembersModerationView(
|
||||
|
|
@ -147,7 +147,7 @@ class RoomMembersModerationViewTest {
|
|||
val roomMember = anAlice()
|
||||
val state = aRoomMembersModerationState(
|
||||
selectedRoomMember = roomMember,
|
||||
banUserAsyncAction = AsyncAction.Confirming,
|
||||
banUserAsyncAction = AsyncAction.ConfirmingNoParams,
|
||||
eventSink = eventsRecorder
|
||||
)
|
||||
rule.setRoomMembersModerationView(
|
||||
|
|
@ -164,7 +164,7 @@ class RoomMembersModerationViewTest {
|
|||
val roomMember = anAlice()
|
||||
val state = aRoomMembersModerationState(
|
||||
selectedRoomMember = roomMember,
|
||||
unbanUserAsyncAction = AsyncAction.Confirming,
|
||||
unbanUserAsyncAction = AsyncAction.ConfirmingNoParams,
|
||||
eventSink = eventsRecorder
|
||||
)
|
||||
rule.setRoomMembersModerationView(
|
||||
|
|
@ -181,7 +181,7 @@ class RoomMembersModerationViewTest {
|
|||
val roomMember = anAlice()
|
||||
val state = aRoomMembersModerationState(
|
||||
selectedRoomMember = roomMember,
|
||||
unbanUserAsyncAction = AsyncAction.Confirming,
|
||||
unbanUserAsyncAction = AsyncAction.ConfirmingNoParams,
|
||||
eventSink = eventsRecorder
|
||||
)
|
||||
rule.setRoomMembersModerationView(
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ class RolesAndPermissionPresenterTest {
|
|||
val initialState = awaitItem()
|
||||
initialState.eventSink(RolesAndPermissionsEvents.ChangeOwnRole)
|
||||
|
||||
assertThat(awaitItem().changeOwnRoleAction).isEqualTo(AsyncAction.Confirming)
|
||||
assertThat(awaitItem().changeOwnRoleAction).isEqualTo(AsyncAction.ConfirmingNoParams)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@ class RolesAndPermissionsViewTest {
|
|||
val recorder = EventsRecorder<RolesAndPermissionsEvents>()
|
||||
rule.setRolesAndPermissionsView(
|
||||
state = aRolesAndPermissionsState(
|
||||
resetPermissionsAction = AsyncAction.Confirming,
|
||||
resetPermissionsAction = AsyncAction.ConfirmingNoParams,
|
||||
eventSink = recorder,
|
||||
),
|
||||
)
|
||||
|
|
@ -111,7 +111,7 @@ class RolesAndPermissionsViewTest {
|
|||
val recorder = EventsRecorder<RolesAndPermissionsEvents>()
|
||||
rule.setRolesAndPermissionsView(
|
||||
state = aRolesAndPermissionsState(
|
||||
resetPermissionsAction = AsyncAction.Confirming,
|
||||
resetPermissionsAction = AsyncAction.ConfirmingNoParams,
|
||||
eventSink = recorder,
|
||||
),
|
||||
)
|
||||
|
|
@ -124,7 +124,7 @@ class RolesAndPermissionsViewTest {
|
|||
val recorder = EventsRecorder<RolesAndPermissionsEvents>()
|
||||
rule.setRolesAndPermissionsView(
|
||||
state = aRolesAndPermissionsState(
|
||||
changeOwnRoleAction = AsyncAction.Confirming,
|
||||
changeOwnRoleAction = AsyncAction.ConfirmingNoParams,
|
||||
eventSink = recorder,
|
||||
),
|
||||
)
|
||||
|
|
@ -138,7 +138,7 @@ class RolesAndPermissionsViewTest {
|
|||
val recorder = EventsRecorder<RolesAndPermissionsEvents>()
|
||||
rule.setRolesAndPermissionsView(
|
||||
state = aRolesAndPermissionsState(
|
||||
changeOwnRoleAction = AsyncAction.Confirming,
|
||||
changeOwnRoleAction = AsyncAction.ConfirmingNoParams,
|
||||
eventSink = recorder,
|
||||
),
|
||||
)
|
||||
|
|
@ -152,7 +152,7 @@ class RolesAndPermissionsViewTest {
|
|||
val recorder = EventsRecorder<RolesAndPermissionsEvents>()
|
||||
rule.setRolesAndPermissionsView(
|
||||
state = aRolesAndPermissionsState(
|
||||
changeOwnRoleAction = AsyncAction.Confirming,
|
||||
changeOwnRoleAction = AsyncAction.ConfirmingNoParams,
|
||||
eventSink = recorder,
|
||||
),
|
||||
)
|
||||
|
|
|
|||
|
|
@ -229,7 +229,7 @@ class ChangeRolesPresenterTest {
|
|||
|
||||
awaitItem().eventSink(ChangeRolesEvent.Exit)
|
||||
val confirmingState = awaitItem()
|
||||
assertThat(confirmingState.exitState).isEqualTo(AsyncAction.Confirming)
|
||||
assertThat(confirmingState.exitState).isEqualTo(AsyncAction.ConfirmingNoParams)
|
||||
|
||||
confirmingState.eventSink(ChangeRolesEvent.CancelExit)
|
||||
assertThat(awaitItem().exitState).isEqualTo(AsyncAction.Uninitialized)
|
||||
|
|
@ -257,7 +257,7 @@ class ChangeRolesPresenterTest {
|
|||
skipItems(1)
|
||||
|
||||
updatedState.eventSink(ChangeRolesEvent.Exit)
|
||||
assertThat(awaitItem().exitState).isEqualTo(AsyncAction.Confirming)
|
||||
assertThat(awaitItem().exitState).isEqualTo(AsyncAction.ConfirmingNoParams)
|
||||
|
||||
updatedState.eventSink(ChangeRolesEvent.Exit)
|
||||
assertThat(awaitItem().exitState).isEqualTo(AsyncAction.Success(Unit))
|
||||
|
|
@ -284,7 +284,7 @@ class ChangeRolesPresenterTest {
|
|||
initialState.eventSink(ChangeRolesEvent.UserSelectionToggled(MatrixUser(A_USER_ID_2)))
|
||||
awaitItem().eventSink(ChangeRolesEvent.Save)
|
||||
val confirmingState = awaitItem()
|
||||
assertThat(confirmingState.savingState).isEqualTo(AsyncAction.Confirming)
|
||||
assertThat(confirmingState.savingState).isEqualTo(AsyncAction.ConfirmingNoParams)
|
||||
|
||||
confirmingState.eventSink(ChangeRolesEvent.Save)
|
||||
assertThat(awaitItem().savingState).isEqualTo(AsyncAction.Success(Unit))
|
||||
|
|
@ -309,7 +309,7 @@ class ChangeRolesPresenterTest {
|
|||
|
||||
awaitItem().eventSink(ChangeRolesEvent.Save)
|
||||
val confirmingState = awaitItem()
|
||||
assertThat(confirmingState.savingState).isEqualTo(AsyncAction.Confirming)
|
||||
assertThat(confirmingState.savingState).isEqualTo(AsyncAction.ConfirmingNoParams)
|
||||
|
||||
confirmingState.eventSink(ChangeRolesEvent.CancelSave)
|
||||
assertThat(awaitItem().savingState).isEqualTo(AsyncAction.Uninitialized)
|
||||
|
|
|
|||
|
|
@ -140,7 +140,7 @@ class ChangeRolesViewTest {
|
|||
rule.setChangeRolesContent(
|
||||
state = aChangeRolesState(
|
||||
isSearchActive = true,
|
||||
exitState = AsyncAction.Confirming,
|
||||
exitState = AsyncAction.ConfirmingNoParams,
|
||||
eventSink = eventsRecorder,
|
||||
),
|
||||
)
|
||||
|
|
@ -156,7 +156,7 @@ class ChangeRolesViewTest {
|
|||
rule.setChangeRolesContent(
|
||||
state = aChangeRolesState(
|
||||
isSearchActive = true,
|
||||
exitState = AsyncAction.Confirming,
|
||||
exitState = AsyncAction.ConfirmingNoParams,
|
||||
eventSink = eventsRecorder,
|
||||
),
|
||||
)
|
||||
|
|
@ -173,7 +173,7 @@ class ChangeRolesViewTest {
|
|||
state = aChangeRolesState(
|
||||
role = RoomMember.Role.ADMIN,
|
||||
isSearchActive = true,
|
||||
savingState = AsyncAction.Confirming,
|
||||
savingState = AsyncAction.ConfirmingNoParams,
|
||||
eventSink = eventsRecorder,
|
||||
),
|
||||
)
|
||||
|
|
@ -190,7 +190,7 @@ class ChangeRolesViewTest {
|
|||
state = aChangeRolesState(
|
||||
role = RoomMember.Role.ADMIN,
|
||||
isSearchActive = true,
|
||||
savingState = AsyncAction.Confirming,
|
||||
savingState = AsyncAction.ConfirmingNoParams,
|
||||
eventSink = eventsRecorder,
|
||||
),
|
||||
)
|
||||
|
|
|
|||
|
|
@ -267,7 +267,7 @@ class ChangeRoomPermissionsPresenterTest {
|
|||
assertThat(awaitItem().hasChanges).isTrue()
|
||||
|
||||
state.eventSink(ChangeRoomPermissionsEvent.Exit)
|
||||
assertThat(awaitItem().confirmExitAction).isEqualTo(AsyncAction.Confirming)
|
||||
assertThat(awaitItem().confirmExitAction).isEqualTo(AsyncAction.ConfirmingNoParams)
|
||||
|
||||
state.eventSink(ChangeRoomPermissionsEvent.Exit)
|
||||
assertThat(awaitItem().confirmExitAction).isEqualTo(AsyncAction.Success(Unit))
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@ class ChangeRoomPermissionsViewTest {
|
|||
state = aChangeRoomPermissionsState(
|
||||
section = ChangeRoomPermissionsSection.RoomDetails,
|
||||
hasChanges = true,
|
||||
confirmExitAction = AsyncAction.Confirming,
|
||||
confirmExitAction = AsyncAction.ConfirmingNoParams,
|
||||
eventSink = recorder,
|
||||
),
|
||||
eventsRecorder = recorder,
|
||||
|
|
@ -98,7 +98,7 @@ class ChangeRoomPermissionsViewTest {
|
|||
state = aChangeRoomPermissionsState(
|
||||
section = ChangeRoomPermissionsSection.RoomDetails,
|
||||
hasChanges = true,
|
||||
confirmExitAction = AsyncAction.Confirming,
|
||||
confirmExitAction = AsyncAction.ConfirmingNoParams,
|
||||
eventSink = recorder,
|
||||
),
|
||||
eventsRecorder = recorder,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue