From d5955507b8fbd9d08771cbf59816d3e6f1cd6a9e Mon Sep 17 00:00:00 2001 From: chandrashekhar reddy Date: Sat, 30 Mar 2024 14:06:57 +0530 Subject: [PATCH] HemoCubeFragment firebase upload committed --- .../presentation/dashboard/HomeFragment.kt | 2 +- .../presentation/hemocube/HemoCubeFragment.kt | 71 +++++++-------- .../hemocube/HemoCubeViewModel.kt | 89 ++++++++++--------- 3 files changed, 85 insertions(+), 77 deletions(-) diff --git a/app/src/main/java/com/example/hpostesting/presentation/dashboard/HomeFragment.kt b/app/src/main/java/com/example/hpostesting/presentation/dashboard/HomeFragment.kt index ec62c4f..97bef54 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/dashboard/HomeFragment.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/dashboard/HomeFragment.kt @@ -321,7 +321,7 @@ class HomeFragment : Fragment() { }*/ hemoCubeViewModel.sendDataToMolbio() - hemoCubeViewModel.sendDataToFirebase() + // hemoCubeViewModel.sendDataToFirebase() } else { binding.internetAvailableCL.visibility = View.GONE diff --git a/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeFragment.kt b/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeFragment.kt index 105fd65..b23861c 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeFragment.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeFragment.kt @@ -195,47 +195,48 @@ class HemoCubeFragment : Fragment() { } private fun observeViewModel() { + if (Constants.MOLBIO_INTEGRATION) { + hemoCubeViewModel.resultUpload.observe(viewLifecycleOwner) { + when (it) { + is Result.Success -> { + uploadedToMolbio = true + it.data.data?.get(0)?.rawData?.let { it1 -> + hemoCubeViewModel.updateMolbioFlag( + it1._id + ) + } + handleReadingFinish() + hemoCubeViewModel.uploadLogs() + hemoCubeViewModel.downloadClientCertificate() + } + + is Result.Error -> { + binding.btnSubmit.visibility = View.VISIBLE + //Remove this line of code while deploying to IOCL + it.exception.let { message -> + Toast.makeText( + activity, + "$message", + Toast.LENGTH_LONG + ) + .show() + Log.d("resultuploadfail1", message.toString()) + } + handleReadingFinish() + } + + else -> {} + } + } + } else { + handleReadingFinish() + } hemoCubeViewModel.fireBaseUpload.observe(viewLifecycleOwner) { result -> if (result == "Success") { uploadedToCloud = true var accessToken = sharedPreferences.getString(Constants.ACCESS_TOKEN, "").toString() showToast(R.string.test_upload) - if (Constants.MOLBIO_INTEGRATION) { - hemoCubeViewModel.resultUpload.observe(viewLifecycleOwner) { - when (it) { - is Result.Success -> { - uploadedToMolbio = true - it.data.data?.get(0)?.rawData?.let { it1 -> - hemoCubeViewModel.updateMolbioFlag( - it1._id - ) - } - handleReadingFinish() - hemoCubeViewModel.uploadLogs() - hemoCubeViewModel.downloadClientCertificate() - } - is Result.Error -> { - binding.btnSubmit.visibility = View.VISIBLE - //Remove this line of code while deploying to IOCL - it.exception.let { message -> - Toast.makeText( - activity, - "$message", - Toast.LENGTH_LONG - ) - .show() - Log.d("resultuploadfail1", message.toString()) - } - handleReadingFinish() - } - - else -> {} - } - } - } else { - handleReadingFinish() - } } if (result == "Local") { showToast(R.string.internt_not_local) diff --git a/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeViewModel.kt b/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeViewModel.kt index ace0928..8a2d536 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeViewModel.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/hemocube/HemoCubeViewModel.kt @@ -424,50 +424,57 @@ class HemoCubeViewModel @Inject constructor( "yyyy-MM-dd HH:mm:ss", Locale.getDefault() ).format(Calendar.getInstance().time) - when (val response = repository.addTestToDatabase(testDetails)) { - is Response.Success -> { - val kitCount = sharedPreference.getInt(Constants.KIT_COUNT, 0) - with(sharedPreference.edit()) { - putInt(Constants.KIT_COUNT, kitCount.plus(1)) - apply() - } - Log.i("Testdb", "Data uploaded to Firestore successfully") - fireBaseUpload.postValue("Success") - testDetails.localFlag = true - if (Constants.MOLBIO_INTEGRATION) { - // Sanitize testDetails before using it in the API call - val sanitizedTestDetails = sanitizeDoubleValues(testDetails) +// when (val response = repository.addTestToDatabase(testDetails)) { +// is Response.Success -> { +// val kitCount = sharedPreference.getInt(Constants.KIT_COUNT, 0) +// with(sharedPreference.edit()) { +// putInt(Constants.KIT_COUNT, kitCount.plus(1)) +// apply() +// } +// Log.i("Testdb", "Data uploaded to Firestore successfully") +// fireBaseUpload.postValue("Success") +// testDetails.localFlag = true +// +// hemoCubeDao.insertAll(testDetails) +// } +// +// is Response.Error -> { +// Log.e("Testdb", "Error uploading data to Firestore: $response") +// fireBaseUpload.postValue("Error") +// hemoCubeDao.insertAll(testDetails) +// } +// +// else -> {} +// } + if (Constants.MOLBIO_INTEGRATION) { + val kitCount = sharedPreference.getInt(Constants.KIT_COUNT, 0) + with(sharedPreference.edit()) { + putInt(Constants.KIT_COUNT, kitCount.plus(1)) + apply() + } + // Sanitize testDetails before using it in the API call + val sanitizedTestDetails = sanitizeDoubleValues(testDetails) - // Now, use sanitizedTestDetails for the API call - uploadResult( - MolbioV2ResultRequest( - mutableListOf( - MolbioV2Result( - rawData = sanitizedTestDetails, - analysisId = sanitizedTestDetails._id, - analysisDate = sanitizedTestDetails.testTime, - analysisStatus = sanitizedTestDetails.classificationResult, - thresholds = Constants.BUFFER_INTENSITY_THRESHOLDS[sanitizedTestDetails.deviceId]?.toString(), - interpretation = sanitizedTestDetails.classificationResult, - testId = sanitizedTestDetails._id, - testTime = sanitizedTestDetails.testTime, - collectionTime = sanitizedTestDetails.testTime, - expiryTime = sanitizedTestDetails.testTime, - ) - ) + // Now, use sanitizedTestDetails for the API call + uploadResult( + MolbioV2ResultRequest( + mutableListOf( + MolbioV2Result( + rawData = sanitizedTestDetails, + analysisId = sanitizedTestDetails._id, + analysisDate = sanitizedTestDetails.testTime, + analysisStatus = sanitizedTestDetails.classificationResult, + thresholds = Constants.BUFFER_INTENSITY_THRESHOLDS[sanitizedTestDetails.deviceId]?.toString(), + interpretation = sanitizedTestDetails.classificationResult, + testId = sanitizedTestDetails._id, + testTime = sanitizedTestDetails.testTime, + collectionTime = sanitizedTestDetails.testTime, + expiryTime = sanitizedTestDetails.testTime, ) ) - } - hemoCubeDao.insertAll(testDetails) - } - - is Response.Error -> { - Log.e("Testdb", "Error uploading data to Firestore: $response") - fireBaseUpload.postValue("Error") - hemoCubeDao.insertAll(testDetails) - } - - else -> {} + ) + ) + hemoCubeDao.insertAll(testDetails) } } catch (e: Exception) { Log.e("Testdb", "Exception during data upload: ${e.message}")