resolve merge conflicts
This commit is contained in:
@@ -9,13 +9,13 @@ import java.io.IOException
|
||||
|
||||
class LocalFileDataSource {
|
||||
|
||||
fun saveCsvToDisk(filepath: String, contents: ArrayList<Array<String>>){
|
||||
fun saveCsvToDisk(filepath: String, contents: ArrayList<Array<String>>) {
|
||||
val writer = CSVWriter(FileWriter(filepath))
|
||||
writer.writeAll(contents) // data is adding to csv
|
||||
writer.close()
|
||||
}
|
||||
|
||||
fun saveTextToDisk(filepath: String, contents: String){
|
||||
fun saveTextToDisk(filepath: String, contents: String) {
|
||||
val writer = FileWriter(File(filepath))
|
||||
|
||||
writer.append(contents)
|
||||
@@ -23,7 +23,6 @@ class LocalFileDataSource {
|
||||
writer.close()
|
||||
}
|
||||
|
||||
|
||||
fun exportDataToCSV(
|
||||
fileName: String, dataList: List<HemoCubeTestData>
|
||||
): Boolean {
|
||||
@@ -57,16 +56,32 @@ class LocalFileDataSource {
|
||||
"resultData",
|
||||
"led1Buffer",
|
||||
"led2Buffer",
|
||||
"led3Buffer",
|
||||
"led4Buffer",
|
||||
"led1Sample",
|
||||
"led2Sample",
|
||||
"led3Sample",
|
||||
"led4Sample",
|
||||
"led1Average",
|
||||
"led2Average",
|
||||
"led3Average",
|
||||
"led4Average",
|
||||
"abs1",
|
||||
"abs2",
|
||||
"abs3",
|
||||
"abs4",
|
||||
"deviceRatio",
|
||||
"calculatedRatio",
|
||||
"predictedDenovixRatio",
|
||||
"coefficients",
|
||||
"classificationResult",
|
||||
"prdClassification",
|
||||
"errorMessages",
|
||||
"batteryLevel"
|
||||
"batteryLevel",
|
||||
"batteryCapacity",
|
||||
"batteryMaxCapacity",
|
||||
"batteryTemperature",
|
||||
"batteryVoltage"
|
||||
)
|
||||
csvWriter.writeNext(header)
|
||||
|
||||
@@ -96,14 +111,32 @@ class LocalFileDataSource {
|
||||
data.resultData,
|
||||
data.led1Buffer?.toString() ?: "",
|
||||
data.led2Buffer?.toString() ?: "",
|
||||
data.led3Buffer?.toString() ?: "",
|
||||
data.led4Buffer?.toString() ?: "",
|
||||
data.led1Sample?.toString() ?: "",
|
||||
data.led2Sample?.toString() ?: "",
|
||||
data.led3Sample?.toString() ?: "",
|
||||
data.led4Sample?.toString() ?: "",
|
||||
data.led1Average?.toString() ?: "",
|
||||
data.led2Average?.toString() ?: "",
|
||||
data.led3Average?.toString() ?: "",
|
||||
data.led4Average?.toString() ?: "",
|
||||
data.abs1?.toString() ?: "",
|
||||
data.abs2?.toString() ?: "",
|
||||
data.abs3?.toString() ?: "",
|
||||
data.abs4?.toString() ?: "",
|
||||
data.deviceRatio?.toString() ?: "",
|
||||
data.calculatedRatio?.toString() ?: "",
|
||||
data.predictedDenovixRatio?.toString() ?: "",
|
||||
data.coefficients ?: "",
|
||||
data.classificationResult
|
||||
data.classificationResult,
|
||||
data.prdClassification,
|
||||
data.errorMessages,
|
||||
data.batteryLevel,
|
||||
data.batteryCapacity,
|
||||
data.batteryMaxCapacity,
|
||||
data.batteryTemperature,
|
||||
data.batteryVoltage
|
||||
)
|
||||
csvWriter.writeNext(row)
|
||||
}
|
||||
@@ -124,6 +157,4 @@ class LocalFileDataSource {
|
||||
|
||||
return folder
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -176,4 +176,10 @@ object AppModule {
|
||||
fun provideLocalFileDataSource(): LocalFileDataSource {
|
||||
return LocalFileDataSource()
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideLocalFileDataSource(): LocalFileDataSource {
|
||||
return LocalFileDataSource()
|
||||
}
|
||||
}
|
||||
@@ -9,6 +9,7 @@ import android.content.SharedPreferences
|
||||
import android.os.BatteryManager
|
||||
import android.os.Bundle
|
||||
import android.util.Base64
|
||||
import android.util.Log
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
@@ -84,6 +85,7 @@ class HomeFragment : Fragment() {
|
||||
binding.btnQuickCapture.visibility = View.VISIBLE
|
||||
}
|
||||
|
||||
checkUnprocessedCSVData()
|
||||
viewModel.allUserData.observe(viewLifecycleOwner) { userData ->
|
||||
deleteIncompleteRegistrations(userData)
|
||||
}
|
||||
@@ -175,6 +177,10 @@ class HomeFragment : Fragment() {
|
||||
)
|
||||
startActivity(i)
|
||||
}
|
||||
|
||||
binding.downloadCSV.setOnClickListener {
|
||||
showDownloadDialog(requireContext())
|
||||
}
|
||||
}
|
||||
|
||||
private fun checkForTokenAndUpdate() {
|
||||
@@ -529,6 +535,14 @@ class HomeFragment : Fragment() {
|
||||
}
|
||||
}
|
||||
|
||||
private fun checkUnprocessedCSVData() {
|
||||
hemoCubeViewModel.allUserData.observe(viewLifecycleOwner) { userDataList ->
|
||||
val downloadDataVisibility =
|
||||
if (userDataList.any { !it.isCSVCreated && it.testStatus == true }) View.VISIBLE else View.GONE
|
||||
binding.downloadCSV.visibility = downloadDataVisibility
|
||||
}
|
||||
}
|
||||
|
||||
private fun showUploadDialog(context: Context) {
|
||||
val builder = AlertDialog.Builder(context)
|
||||
builder.setTitle(R.string.upload_db_registration_title)
|
||||
@@ -546,6 +560,23 @@ class HomeFragment : Fragment() {
|
||||
dialog.show()
|
||||
}
|
||||
|
||||
// private fun showDownloadDialog(context: Context) {
|
||||
// val builder = AlertDialog.Builder(context)
|
||||
// builder.setTitle(R.string.download_db_registration_title)
|
||||
// builder.setMessage(R.string.download_db_registration_message)
|
||||
//
|
||||
// builder.setPositiveButton(R.string.downloadcsv) { dialog, _ ->
|
||||
// downloadLocalDBData(dialog)
|
||||
// }
|
||||
//
|
||||
// builder.setNegativeButton(R.string.cancel) { dialog, _ ->
|
||||
// dialog.dismiss()
|
||||
// }
|
||||
//
|
||||
// val dialog = builder.create()
|
||||
// dialog.show()
|
||||
// }
|
||||
|
||||
private fun uploadLocalDBData(dialog: DialogInterface) {
|
||||
viewModel.allUserData.observe(viewLifecycleOwner) { userDataList ->
|
||||
if (userDataList.isEmpty()) {
|
||||
@@ -583,6 +614,28 @@ class HomeFragment : Fragment() {
|
||||
}
|
||||
}
|
||||
|
||||
// private fun downloadLocalDBData(dialog: DialogInterface) {
|
||||
// hemoCubeViewModel.allUserData.observe(viewLifecycleOwner) { userDataList ->
|
||||
// val downloadList = mutableListOf<HemoCubeTestData>()
|
||||
//
|
||||
// userDataList.forEach { userData ->
|
||||
// if (!userData.isCSVCreated) {
|
||||
// downloadList.add(userData) // Add the userData to downloadList
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// if (downloadList.isNotEmpty()) {
|
||||
// // Call ViewModel function to create CSV with filtered data
|
||||
// hemoCubeViewModel.createCSV(downloadList, requireContext())
|
||||
// Toast.makeText(requireContext(), "Done", Toast.LENGTH_SHORT).show()
|
||||
// } else {
|
||||
// Toast.makeText(requireContext(), "Failed", Toast.LENGTH_SHORT).show()
|
||||
// }
|
||||
//
|
||||
// dialog.dismiss()
|
||||
// }
|
||||
// }
|
||||
|
||||
private fun deleteIncompleteRegistrations(userDataList: List<UserData>) {
|
||||
userDataList.forEach { userData ->
|
||||
if (userData.csvPath.isEmpty()) {
|
||||
|
||||
@@ -446,26 +446,6 @@ class HemoCubeViewModel @Inject constructor(
|
||||
return true // Assuming success, you might want to modify this based on your actual logic
|
||||
}
|
||||
|
||||
private fun getCurrentDate(): String {
|
||||
val dateFormat = SimpleDateFormat("dd-MM-yy", Locale.getDefault())
|
||||
val currentDate = Date()
|
||||
return dateFormat.format(currentDate)
|
||||
}
|
||||
|
||||
fun createCSV(hemoCubeTestData: List<HemoCubeTestData>, appContext: Context) =
|
||||
viewModelScope.launch {
|
||||
val fileName = "HPOS${getCurrentDate()}.csv"
|
||||
if (localFileDataSource.exportDataToCSV(fileName, hemoCubeTestData)) {
|
||||
hemoCubeTestData.forEach { data ->
|
||||
data.localFlag = true
|
||||
hemoCubeDao.updateCSVFieldById(
|
||||
data._id,
|
||||
true
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun getBatteryLevel(): Float? {
|
||||
val batteryPct: Float? = batteryStatus?.let { intent ->
|
||||
val level: Int =
|
||||
@@ -533,4 +513,24 @@ class HemoCubeViewModel @Inject constructor(
|
||||
|
||||
return maxCapacity
|
||||
}
|
||||
|
||||
fun createCSV(hemoCubeTestData: List<HemoCubeTestData>, appContext: Context) =
|
||||
viewModelScope.launch {
|
||||
val fileName = "HPOS${getCurrentDate()}.csv"
|
||||
if (localFileDataSource.exportDataToCSV(fileName, hemoCubeTestData)) {
|
||||
hemoCubeTestData.forEach { data ->
|
||||
data.localFlag = true
|
||||
hemoCubeDao.updateCSVFieldById(
|
||||
data._id,
|
||||
true
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun getCurrentDate(): String {
|
||||
return SimpleDateFormat(
|
||||
"yyyy-MM-dd HH:mm:ss", Locale.getDefault()
|
||||
).format(Calendar.getInstance().time)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user