From 446aed57c45854dad61bf9bfda6b47b23c7ed81c Mon Sep 17 00:00:00 2001 From: sachin Date: Fri, 4 Sep 2020 22:18:27 -0700 Subject: [PATCH] cleanup --- .../com/cradle/neptune/sync/SyncStepper.kt | 6 +-- .../neptune/sync/SyncStepperImplementation.kt | 49 +++++++++---------- .../com/cradle/neptune/view/SyncActivity.kt | 2 +- 3 files changed, 28 insertions(+), 29 deletions(-) diff --git a/app/src/main/java/com/cradle/neptune/sync/SyncStepper.kt b/app/src/main/java/com/cradle/neptune/sync/SyncStepper.kt index 6340bb0..ff2d1c0 100644 --- a/app/src/main/java/com/cradle/neptune/sync/SyncStepper.kt +++ b/app/src/main/java/com/cradle/neptune/sync/SyncStepper.kt @@ -13,14 +13,14 @@ interface SyncStepper { * the api returns arrays of ids for new patients,edited patients, new readings, new assessments * Once we have all the data we move to step number 2 */ - suspend fun fetchUpdatesFromServer() + suspend fun stepOneFetchUpdatesFromServer() /** * This is the step number two. Here we start uploading data to the server. * The data can include new patients, edited patients, new readings etc. * NOTE: we do not upload the patients edited by local user as well as the server */ - suspend fun setupUploadingPatientReadings(lastSyncTime: Long) + suspend fun stepTwoSetupUploadingPatientReadings(lastSyncTime: Long) /** * This is the third step. Here we download all the new data from the server @@ -28,7 +28,7 @@ interface SyncStepper { * NOTE: in step number 2, we avoided uploading patient info that was also edited by the server * in this step, we override our changes with the server since server changes are always prioritized. */ - suspend fun downloadAllInfo() + suspend fun stepThreeDownloadAllInfo() /** * This is the last step of the sync process. diff --git a/app/src/main/java/com/cradle/neptune/sync/SyncStepperImplementation.kt b/app/src/main/java/com/cradle/neptune/sync/SyncStepperImplementation.kt index 7f52621..75dbd83 100644 --- a/app/src/main/java/com/cradle/neptune/sync/SyncStepperImplementation.kt +++ b/app/src/main/java/com/cradle/neptune/sync/SyncStepperImplementation.kt @@ -2,6 +2,7 @@ package com.cradle.neptune.sync import android.content.Context import android.content.SharedPreferences +import android.util.Log import com.cradle.neptune.dagger.MyApp import com.cradle.neptune.manager.PatientManager import com.cradle.neptune.manager.ReadingManager @@ -70,30 +71,28 @@ class SyncStepperImplementation( /** * step number 1, get all the newest data from the server. and go to step number 2. */ - override suspend fun fetchUpdatesFromServer() { + override suspend fun stepOneFetchUpdatesFromServer() = withContext(IO) { val lastSyncTime = sharedPreferences.getLong(LAST_SYNC, LAST_SYNC_DEFAULT) // give a timestamp to provide, again this will be from shared pref eventually - withContext(IO) { - when (val result = restApi.getUpdates(lastSyncTime)) { - is Success -> { - // result was success - updateApiData = result.value - // let caller know of the next step - withContext(Main) { - stepperCallback.onFetchDataCompleted(true) - } - setupUploadingPatientReadings(lastSyncTime) + when (val result = restApi.getUpdates(lastSyncTime)) { + is Success -> { + // result was success + updateApiData = result.value + // let caller know of the next step + withContext(Main) { + stepperCallback.onFetchDataCompleted(true) } - is Failure -> { - // let user know we failed.... probably cant continue? - errorHashMap[result.statusCode] = - VolleyRequests.getServerErrorMessage(result.statusCode) - // todo fix getting all the error. - withContext(Main) { - stepperCallback.onFetchDataCompleted(false) - } - finish(false) + Log.d("bugg", "current: ${Thread.currentThread().name}") + stepTwoSetupUploadingPatientReadings(lastSyncTime) + } + is Failure -> { + // let user know we failed.... probably cant continue? + errorHashMap[result.statusCode] = + VolleyRequests.getServerErrorMessage(result.statusCode) + withContext(Main) { + stepperCallback.onFetchDataCompleted(false) } + finish(false) } } } @@ -102,7 +101,7 @@ class SyncStepperImplementation( * step 2 -> starts uploading readings and patients starting with patients. * Be careful changing code in this function. */ - override suspend fun setupUploadingPatientReadings(lastSyncTime: Long) { + override suspend fun stepTwoSetupUploadingPatientReadings(lastSyncTime: Long) = withContext(IO) { // get the brand new patients to upload val newPatientsToUpload: ArrayList = @@ -182,14 +181,14 @@ class SyncStepperImplementation( withContext(Main) { stepperCallback.onNewPatientAndReadingUploadFinish(uploadRequestStatus) } - downloadAllInfo() + stepThreeDownloadAllInfo() } } /** * step 3 -> now we download all the information one by one */ - override suspend fun downloadAllInfo() { + override suspend fun stepThreeDownloadAllInfo() = withContext(IO) { val totalRequestNum = (updateApiData.editedPatientsIds.size + updateApiData.newReadingsIds.size + updateApiData.followupIds.size + updateApiData.newPatientsIds.size) @@ -240,7 +239,7 @@ class SyncStepperImplementation( /** * saved last sync time in the shared pref. let the caller know */ - override suspend fun finish(success: Boolean) { + override suspend fun finish(success: Boolean) = withContext(IO) { if (success) { sharedPreferences.edit() .putLong(LAST_SYNC, ZonedDateTime.now().toEpochSecond()).apply() @@ -278,7 +277,7 @@ class SyncStepperImplementation( withContext(Main) { stepperCallback.onNewPatientAndReadingUploadFinish(uploadRequestStatus) } - downloadAllInfo() + stepThreeDownloadAllInfo() } } diff --git a/app/src/main/java/com/cradle/neptune/view/SyncActivity.kt b/app/src/main/java/com/cradle/neptune/view/SyncActivity.kt index e7dfa0c..6901a4d 100644 --- a/app/src/main/java/com/cradle/neptune/view/SyncActivity.kt +++ b/app/src/main/java/com/cradle/neptune/view/SyncActivity.kt @@ -49,7 +49,7 @@ class SyncActivity : AppCompatActivity(), MainScope().launch { SyncStepperImplementation(this@SyncActivity, - this@SyncActivity).fetchUpdatesFromServer() + this@SyncActivity).stepOneFetchUpdatesFromServer() it.visibility = View.GONE } }