@@ -20,12 +20,10 @@ import ro.code4.monitorizarevot.data.AppDatabase
2020import ro.code4.monitorizarevot.data.model.*
2121import ro.code4.monitorizarevot.data.model.answers.AnsweredQuestion
2222import ro.code4.monitorizarevot.data.model.answers.SelectedAnswer
23+ import ro.code4.monitorizarevot.data.model.response.ErrorVersionResponse
2324import ro.code4.monitorizarevot.data.model.response.LoginResponse
2425import ro.code4.monitorizarevot.data.model.response.VersionResponse
25- import ro.code4.monitorizarevot.data.pojo.AnsweredQuestionPOJO
26- import ro.code4.monitorizarevot.data.pojo.FormWithSections
27- import ro.code4.monitorizarevot.data.pojo.PollingStationInfo
28- import ro.code4.monitorizarevot.data.pojo.SectionWithQuestions
26+ import ro.code4.monitorizarevot.data.pojo.*
2927import ro.code4.monitorizarevot.helper.Constants
3028import ro.code4.monitorizarevot.helper.createMultipart
3129import ro.code4.monitorizarevot.services.ApiInterface
@@ -127,9 +125,9 @@ class Repository : KoinComponent {
127125 val observableDb = db.formDetailsDao().getFormsWithSections()
128126 val observableApi = apiInterface.getForms()
129127 return Observable .zip(
130- observableDb.onErrorReturn { null },
131- observableApi.onErrorReturn { null },
132- BiFunction <List <FormWithSections >? , VersionResponse ? , Unit > { dbFormDetails, response ->
128+ observableDb.onErrorReturn { listOf ( ErrorFormWithSections (it)) },
129+ observableApi.onErrorReturn { ErrorVersionResponse (it) },
130+ BiFunction <List <FormWithSections >, VersionResponse , Unit > { dbFormDetails, response ->
133131 processFormDetailsData(dbFormDetails, response)
134132 })
135133 }
@@ -161,14 +159,16 @@ class Repository : KoinComponent {
161159 }
162160
163161 private fun processFormDetailsData (
164- dbFormDetails : List <FormWithSections >? ,
165- response : VersionResponse ?
162+ dbFormDetails : List <FormWithSections >,
163+ response : VersionResponse
166164 ) {
167- if (response == null ) {
165+ if (response is ErrorVersionResponse ) {
168166 return
169167 }
170168 val apiFormDetails = response.formVersions
171- if (dbFormDetails == null || dbFormDetails.isEmpty()) {
169+ if ((dbFormDetails.size == 1 && dbFormDetails[0 ] is ErrorFormWithSections )
170+ || dbFormDetails.isEmpty()
171+ ) {
172172 saveFormDetails(apiFormDetails)
173173 return
174174 }
0 commit comments