@@ -18,15 +18,14 @@ import ru.application.homemedkit.helpers.BLANK
18
18
import ru.application.homemedkit.helpers.CATEGORY
19
19
import ru.application.homemedkit.helpers.DoseTypes
20
20
import ru.application.homemedkit.helpers.toMedicine
21
+ import ru.application.homemedkit.helpers.toState
21
22
import ru.application.homemedkit.helpers.toTimestamp
22
23
import ru.application.homemedkit.models.events.Response
23
24
import ru.application.homemedkit.models.events.Response.Default
24
25
import ru.application.homemedkit.models.events.Response.Error
25
26
import ru.application.homemedkit.models.events.Response.Loading
26
27
import ru.application.homemedkit.models.events.Response.NoNetwork
27
- import ru.application.homemedkit.models.events.Response.Success
28
28
import ru.application.homemedkit.models.states.MedicineState
29
- import ru.application.homemedkit.models.states.TechnicalState
30
29
import ru.application.homemedkit.network.Network
31
30
import java.io.File
32
31
@@ -38,35 +37,7 @@ class MedicineViewModel(private val medicineId: Long) : ViewModel() {
38
37
39
38
private val _state = MutableStateFlow (MedicineState ())
40
39
val state = _state .asStateFlow()
41
- .onStart {
42
- dao.getById(medicineId)?.let { medicine ->
43
- _state .update {
44
- it.copy(
45
- adding = false ,
46
- editing = false ,
47
- default = true ,
48
- fetch = Default ,
49
- id = medicine.id,
50
- kitId = medicine.kitId,
51
- kitTitle = dao.getKitTitle(medicine.kitId) ? : BLANK ,
52
- cis = medicine.cis,
53
- productName = medicine.productName,
54
- expDate = medicine.expDate,
55
- prodFormNormName = medicine.prodFormNormName,
56
- prodDNormName = medicine.prodDNormName,
57
- prodAmount = medicine.prodAmount.toString(),
58
- doseType = medicine.doseType,
59
- phKinetics = medicine.phKinetics,
60
- comment = medicine.comment,
61
- image = medicine.image,
62
- technical = TechnicalState (
63
- scanned = medicine.technical.scanned,
64
- verified = medicine.technical.verified
65
- )
66
- )
67
- }
68
- }
69
- }
40
+ .onStart { dao.getById(medicineId)?.let { _state .value = it.toState() } }
70
41
.stateIn(viewModelScope, SharingStarted .WhileSubscribed (), MedicineState ())
71
42
72
43
fun add () = viewModelScope.launch(Dispatchers .IO ) {
@@ -98,7 +69,8 @@ class MedicineViewModel(private val medicineId: Long) : ViewModel() {
98
69
)
99
70
100
71
dao.update(medicine)
101
- _response .emit(Success (medicineId))
72
+ _state .value = medicine.toState()
73
+ _response .emit(Default )
102
74
} else {
103
75
_response .emit(Error )
104
76
delay(2000 )
@@ -113,7 +85,7 @@ class MedicineViewModel(private val medicineId: Long) : ViewModel() {
113
85
}
114
86
}
115
87
116
- fun update () = viewModelScope.launch {
88
+ fun update () = viewModelScope.launch( Dispatchers . IO ) {
117
89
dao.update(_state .value.toMedicine())
118
90
_state .update { it.copy(adding = false , editing = false , default = true ) }
119
91
}
0 commit comments