Skip to content

Commit bc84b54

Browse files
Merge pull request #5606 from simpledotorg/master
2 parents 2c74380 + 9e63854 commit bc84b54

File tree

3 files changed

+20
-5
lines changed

3 files changed

+20
-5
lines changed

app/src/main/java/org/simple/clinic/medicalhistory/newentry/NewMedicalHistoryUpdate.kt

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package org.simple.clinic.medicalhistory.newentry
22

33
import com.spotify.mobius.Next
4+
import com.spotify.mobius.Next.noChange
45
import com.spotify.mobius.Update
56
import org.simple.clinic.medicalhistory.Answer
67
import org.simple.clinic.medicalhistory.MedicalHistoryQuestion
@@ -46,8 +47,16 @@ class NewMedicalHistoryUpdate : Update<NewMedicalHistoryModel, NewMedicalHistory
4647
}
4748
}
4849

49-
private fun registerPatient(model: NewMedicalHistoryModel): Next<NewMedicalHistoryModel, NewMedicalHistoryEffect> =
50-
next(model.registeringPatient(), RegisterPatient(model.ongoingMedicalHistoryEntry))
50+
private fun registerPatient(model: NewMedicalHistoryModel): Next<NewMedicalHistoryModel, NewMedicalHistoryEffect> {
51+
return if (model.registeringPatient) {
52+
noChange()
53+
} else {
54+
next(
55+
model.registeringPatient(),
56+
RegisterPatient(model.ongoingMedicalHistoryEntry)
57+
)
58+
}
59+
}
5160

5261
private fun currentFacilityLoaded(
5362
event: CurrentFacilityLoaded,

app/src/main/java/org/simple/clinic/registration/phone/RegistrationPhoneModel.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@ data class RegistrationPhoneModel(
2727
val isEnteredNumberValid: Boolean
2828
get() = phoneValidationResult != null && phoneValidationResult == RegistrationPhoneValidationResult.Valid
2929

30+
val isRegistrationOngoing: Boolean
31+
get() = mode == RegistrationUiMode.RegistrationOngoing
32+
3033
fun phoneNumberChanged(phoneNumber: String): RegistrationPhoneModel {
3134
return copy(
3235
ongoingRegistrationEntry = ongoingRegistrationEntry.withPhoneNumber(phoneNumber),

app/src/main/java/org/simple/clinic/registration/phone/RegistrationPhoneUpdate.kt

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,9 @@ class RegistrationPhoneUpdate : Update<RegistrationPhoneModel, RegistrationPhone
4040
event: EnteredNumberValidated
4141
): Next<RegistrationPhoneModel, RegistrationPhoneEffect> {
4242
val updatedModel = model.phoneNumberValidated(event.result)
43+
if (updatedModel.isRegistrationOngoing) {
44+
return noChange()
45+
}
4346

4447
return if (updatedModel.isEnteredNumberValid)
4548
next(updatedModel.clearPhoneRegistrationResult().switchToProgressMode(), SyncFacilities as RegistrationPhoneEffect)
@@ -52,15 +55,15 @@ class RegistrationPhoneUpdate : Update<RegistrationPhoneModel, RegistrationPhone
5255
model: RegistrationPhoneModel
5356
): Next<RegistrationPhoneModel, RegistrationPhoneEffect> {
5457
return when (event.result) {
55-
FacilitySyncResult.Synced -> dispatch(SearchForExistingUser(model.ongoingRegistrationEntry!!.phoneNumber!!) as RegistrationPhoneEffect)
58+
FacilitySyncResult.Synced -> dispatch(SearchForExistingUser(model.ongoingRegistrationEntry.phoneNumber!!) as RegistrationPhoneEffect)
5659
FacilitySyncResult.NetworkError -> next(model.switchToPhoneEntryMode().withRegistrationResult(RegistrationResult.NetworkError))
5760
FacilitySyncResult.OtherError -> next(model.switchToPhoneEntryMode().withRegistrationResult(RegistrationResult.OtherError))
5861
}
5962
}
6063

6164
private fun registerOrLoginUser(
6265
model: RegistrationPhoneModel,
63-
result: SearchForExistingUserCompleted.Result
66+
result: SearchUserResult
6467
): Next<RegistrationPhoneModel, RegistrationPhoneEffect> {
6568
return when (result) {
6669
is SearchUserResult.Found -> saveFoundUserLocally(model, result.uuid, result.status)
@@ -75,7 +78,7 @@ class RegistrationPhoneUpdate : Update<RegistrationPhoneModel, RegistrationPhone
7578
foundUserUuid: UUID,
7679
foundUserStatus: UserStatus
7780
): Next<RegistrationPhoneModel, RegistrationPhoneEffect> {
78-
val number = model.ongoingRegistrationEntry!!.phoneNumber!!
81+
val number = model.ongoingRegistrationEntry.phoneNumber!!
7982

8083
return if (foundUserStatus is UserStatus.DisapprovedForSyncing)
8184
next(model.switchToPhoneEntryMode(), ShowAccessDeniedScreen(number) as RegistrationPhoneEffect)

0 commit comments

Comments
 (0)