From 039e17a3b8d5966b9261b6e183602f78c71d03fb Mon Sep 17 00:00:00 2001 From: Pritimay Sarkar Date: Wed, 3 Jan 2024 12:38:13 +0530 Subject: [PATCH] resolve compile errors since merge --- .../presentation/hemocube/HemoCubeFragment.kt | 2 + .../hemocube/HemoCubeViewModel.kt | 346 ++++++------------ 2 files changed, 121 insertions(+), 227 deletions(-) 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 7d29da8..c80b734 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 @@ -253,6 +253,8 @@ class HemoCubeFragment : Fragment() { DataHolder.hemoCubeTestData = DataHolder.selectedTest?.toHemoCubeTestData() } hemoCubeViewModel.progressBar.postValue(true) + + val fullReadOutput = StringBuilder() startListening.postValue(true) try { 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 55ee8b4..bb7166e 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 @@ -1,13 +1,11 @@ package com.example.hpostesting.presentation.hemocube -import android.app.Application import android.content.Context import android.content.Intent import android.content.IntentFilter import android.content.SharedPreferences import android.os.BatteryManager import android.util.Log -import androidx.lifecycle.AndroidViewModel import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel @@ -39,12 +37,12 @@ class HemoCubeViewModel @Inject constructor( ) : ViewModel() { var isServiceConnected = false val progressBar = MutableLiveData(false) - val testDetails = DataHolder.selectedTest?.toHemoCubeTestData() - val messages = MutableLiveData() - private val sharedPreference: SharedPreferences = - context.getSharedPreferences("PREFERENCE_NAME", Context.MODE_PRIVATE) + val testDetails = DataHolder.selectedTest?.toHemoCubeTestData() + val messages = MutableLiveData() + private val sharedPreference: SharedPreferences = + context.getSharedPreferences("PREFERENCE_NAME", Context.MODE_PRIVATE) - // Get the device ID of the device you want to retrieve data for (e.g., the first device in the list) + // Get the device ID of the device you want to retrieve data for (e.g., the first device in the list) private val _networkStatusLiveData = NetworkStatusLiveData(context) val allUserData = hemoCubeDao.getAll() @@ -52,6 +50,7 @@ class HemoCubeViewModel @Inject constructor( val deviceData = MutableLiveData() val networkStatusLiveData: LiveData get() = _networkStatusLiveData + val deviceMessages = MutableLiveData() val fireBaseUpload = MutableLiveData() val fireBaseBulkUpload = MutableLiveData() @@ -65,49 +64,39 @@ class HemoCubeViewModel @Inject constructor( if (kitSerial != null) { testDetails?.kitSerial = kitSerial } + testDetails?.testStatus = testStatus - fun uploadHemoCubeResultToDatabase( - isOnline: Boolean, - testStatus: Boolean, - kitSerial: String? - ) = - viewModelScope.launch { - if (kitSerial != null) { - testDetails?.kitSerial = kitSerial - } - testDetails?.testStatus = testStatus - - try { - if (isOnline) { - parseData() - addResultTestToDb() - } else { - parseData() - testDetails?.testTime = SimpleDateFormat( - "yyyy-MM-dd HH:mm:ss", Locale.getDefault() - ).format(Calendar.getInstance().time) - hemoCubeDao.insertAll(testDetails!!) - fireBaseUpload.postValue("Local") - } - } catch (e: Exception) { - Log.e("Testdb", "Upload failed: ${e.message}") + try { + if (isOnline) { + parseData() + addResultTestToDb() + } else { + parseData() + testDetails?.testTime = SimpleDateFormat( + "yyyy-MM-dd HH:mm:ss", Locale.getDefault() + ).format(Calendar.getInstance().time) + hemoCubeDao.insertAll(testDetails!!) + fireBaseUpload.postValue("Local") } + } catch (e: Exception) { + Log.e("Testdb", "Upload failed: ${e.message}") } - - - fun uploadHemoCubeResultToDatabaseforbuffercheckN(bufferCheckData: BufferCheckData) = - viewModelScope.launch { - addResultTestToDbforbuffercheck(bufferCheckData) - } - - fun getDeviceData(deviceId: String?) = viewModelScope.launch { - deviceData.postValue(deviceId?.let { repository.getDeviceDataById(it) }) } + fun uploadHemoCubeResultToDatabaseforbuffercheckN(bufferCheckData: BufferCheckData) = + viewModelScope.launch { + addResultTestToDbforbuffercheck(bufferCheckData) + } + + fun getDeviceData(deviceId: String?) = viewModelScope.launch { + deviceData.postValue(deviceId?.let { repository.getDeviceDataById(it) }) + } + + fun uploadHemoCubeResultToDatabaseForBufferCheck( isOnline: Boolean, - bufferCheckData: BufferCheckData + bufferCheckData: BufferCheckData, ) = viewModelScope.launch { if (isOnline) { @@ -138,10 +127,6 @@ class HemoCubeViewModel @Inject constructor( } } - fun getDeviceData(deviceId: String?) = viewModelScope.launch { - deviceData.postValue(deviceId?.let { repository.getDeviceDataById(it) }) - } - private fun parseData() { testDetails?.deviceRatio = DataHolder.hemocubeResult testDetails?.resultData = DataHolder.hemoCubeTestData?.resultData.toString() @@ -217,96 +202,6 @@ class HemoCubeViewModel @Inject constructor( } } - fun bulkAddResultTestToDb(userData: HemoCubeTestData) { - viewModelScope.launch { - userData.reportUploadTime = SimpleDateFormat( - "yyyy-MM-dd HH:mm:ss", Locale.getDefault() - ).format(Calendar.getInstance().time) - testDetails?.appVersion = DataHolder.hemoCubeTestData?.appVersion - testDetails?.deviceId = DataHolder.hemoCubeTestData?.deviceId - testDetails?.deviceSerialNumber = - sharedPreference.getString(Constants.USER_ID, "").toString() - testDetails?.kitSerial = sharedPreference.getString(Constants.KIT_NUMBER, "").toString() - testDetails?.led1Buffer = DataHolder.hemoCubeTestData?.led1Buffer - testDetails?.led2Buffer = DataHolder.hemoCubeTestData?.led2Buffer - testDetails?.led3Buffer = DataHolder.hemoCubeTestData?.led3Buffer - testDetails?.led4Buffer = DataHolder.hemoCubeTestData?.led4Buffer - testDetails?.led1Sample = DataHolder.hemoCubeTestData?.led1Sample - testDetails?.led2Sample = DataHolder.hemoCubeTestData?.led2Sample - testDetails?.led3Sample = DataHolder.hemoCubeTestData?.led3Sample - testDetails?.led4Sample = DataHolder.hemoCubeTestData?.led4Sample - testDetails?.led1Average = DataHolder.hemoCubeTestData?.led1Average - testDetails?.led2Average = DataHolder.hemoCubeTestData?.led2Average - testDetails?.led3Average = DataHolder.hemoCubeTestData?.led3Average - testDetails?.led4Average = DataHolder.hemoCubeTestData?.led4Average - testDetails?.abs1 = DataHolder.hemoCubeTestData?.abs1 - testDetails?.abs2 = DataHolder.hemoCubeTestData?.abs2 - testDetails?.abs3 = DataHolder.hemoCubeTestData?.abs3 - testDetails?.abs4 = DataHolder.hemoCubeTestData?.abs4 - testDetails?.led1Gain1 = DataHolder.hemoCubeTestData?.led1Gain1 - testDetails?.led2Gain1 = DataHolder.hemoCubeTestData?.led2Gain1 - testDetails?.led3Gain1 = DataHolder.hemoCubeTestData?.led3Gain1 - testDetails?.led4Gain1 = DataHolder.hemoCubeTestData?.led4Gain1 - testDetails?.led1Gain2 = DataHolder.hemoCubeTestData?.led1Gain2 - testDetails?.led2Gain2 = DataHolder.hemoCubeTestData?.led2Gain2 - testDetails?.led3Gain2 = DataHolder.hemoCubeTestData?.led3Gain2 - testDetails?.led4Gain2 = DataHolder.hemoCubeTestData?.led4Gain2 - testDetails?.led1Gain4 = DataHolder.hemoCubeTestData?.led1Gain4 - testDetails?.led2Gain4 = DataHolder.hemoCubeTestData?.led2Gain4 - testDetails?.led3Gain4 = DataHolder.hemoCubeTestData?.led3Gain4 - testDetails?.led4Gain4 = DataHolder.hemoCubeTestData?.led4Gain4 - testDetails?.deviceRatio = DataHolder.hemoCubeTestData?.deviceRatio - testDetails?.predictedDenovixRatio = DataHolder.hemoCubeTestData?.predictedDenovixRatio - testDetails?.calculatedRatio = DataHolder.hemoCubeTestData?.calculatedRatio - testDetails?.slopeRatio = DataHolder.hemoCubeTestData?.slopeRatio - testDetails?.coefficients = DataHolder.hemoCubeTestData?.coefficients - testDetails?.classificationResult = DataHolder.hemoCubeTestData?.classificationResult!! - testDetails?.prdClassification = - DataHolder.hemoCubeTestData?.prdClassification.toString() - testDetails?.deviceRatioClass = DataHolder.hemoCubeTestData?.deviceRatioClass!! - testDetails?.slopeRatioClass = DataHolder.hemoCubeTestData?.slopeRatioClass!! - testDetails?.batteryLevel = DataHolder.hemoCubeTestData?.batteryLevel.toString() - testDetails?.batteryCapacity = DataHolder.hemoCubeTestData?.batteryCapacity.toString() - testDetails?.batteryMaxCapacity = - DataHolder.hemoCubeTestData?.batteryMaxCapacity.toString() - testDetails?.batteryTemperature = - DataHolder.hemoCubeTestData?.batteryTemperature.toString() - testDetails?.batteryVoltage = DataHolder.hemoCubeTestData?.batteryVoltage.toString() - } - - private fun addResultTestToDb() { - viewModelScope.launch { - try { - testDetails!!.reportUploadTime = SimpleDateFormat( - "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 - hemoCubeDao.insertAll(testDetails) - } - - is Response.Error -> { - Log.e("Testdb", "Error uploading data to Firestore: $response") - fireBaseUpload.postValue("Error") - hemoCubeDao.insertAll(testDetails) - } - } - } catch (e: Exception) { - Log.e("Testdb", "Exception during data upload: ${e.message}") - fireBaseUpload.postValue("Error") - } - } - } - fun bulkAddResultKitTestToDb(bufferCheckData: BufferCheckData) { viewModelScope.launch { bufferCheckData.reportUploadTime = SimpleDateFormat( @@ -325,123 +220,119 @@ class HemoCubeViewModel @Inject constructor( } } - private fun updateLocalFlag(userId: String) = viewModelScope.launch { - hemoCubeDao.updateFieldById(id = userId, true) - } + private fun addResultTestToDbforbuffercheck(bufferCheckData: BufferCheckData) { + viewModelScope.launch { + try { - private fun addResultTestToDbforbuffercheck(bufferCheckData: BufferCheckData) { - viewModelScope.launch { - try { - - when (val response = - repository.addTestToDatabaseforBufferCheck(bufferCheckData)) { - is Response.Success -> { - Log.i("Testdb", "Data uploaded to Firestore successfully") - fireBaseUpload.postValue("Success") - } - - private fun updateBufferLocalFlag(bufferId: String) = viewModelScope.launch { - hemoCubeBufferDao.updateFieldById(id = bufferId, true) - } - - - fun getBatteryLevel(): Float? { - val batteryPct: Float? = batteryStatus?.let { intent -> - val level: Int = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1) - val scale: Int = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1) - level * 100 / scale.toFloat() - } - - fun bulkAddResultTestToDb(userData: HemoCubeTestData) { - viewModelScope.launch { - userData.reportUploadTime = SimpleDateFormat( - "yyyy-MM-dd HH:mm:ss", Locale.getDefault() - ).format(Calendar.getInstance().time) - when (repository.addTestToDatabase(userData)) { + when (val response = + repository.addTestToDatabaseforBufferCheck(bufferCheckData)) { is Response.Success -> { - fireBaseBulkUpload.postValue("Success") - updateLocalFlag(userData._id) + Log.i("Testdb", "Data uploaded to Firestore successfully") + fireBaseUpload.postValue("Success") } - fun getBatteryTemperature(): Float? { - val batteryTemp: Float? = batteryStatus?.let { intent -> - val temperature = intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE, 0) - temperature.toFloat() / 10 + is Response.Error -> { + Log.e("Testdb", "Error uploading data to Firestore: $response") + fireBaseUpload.postValue("Error") + } + } + } catch (e: Exception) { + Log.e("Testdb", "Exception during data upload: ${e.message}") + fireBaseUpload.postValue("Error") + } + } + } + + private fun updateBufferLocalFlag(bufferId: String) = + viewModelScope.launch { + hemoCubeBufferDao.updateFieldById(id = bufferId, true) } - private fun updateLocalFlag(userId: String) = viewModelScope.launch { + + fun bulkAddResultTestToDb(userData: HemoCubeTestData) { + viewModelScope.launch { + userData.reportUploadTime = SimpleDateFormat( + "yyyy-MM-dd HH:mm:ss", Locale.getDefault() + ).format(Calendar.getInstance().time) + when (repository.addTestToDatabase(userData)) { + is Response.Success -> { + fireBaseBulkUpload.postValue("Success") + updateLocalFlag(userData._id) + } + + else -> { + fireBaseBulkUpload.postValue("Error") + } + } + } + } + + private fun updateLocalFlag(userId: String) = + viewModelScope.launch { hemoCubeDao.updateFieldById(id = userId, true) } - fun addUser(userData: HemoCubeTestData) = viewModelScope.launch { + fun addUser(userData: HemoCubeTestData) = + viewModelScope.launch { hemoCubeDao.insertAll(userData) } - fun deleteById(userId: String) = viewModelScope.launch { - hemoCubeDao.deleteById(id = userId) + fun deleteById(userId: String) = viewModelScope.launch { + hemoCubeDao.deleteById(id = userId) + } + + fun getBatteryLevel(): Float? { + val batteryPct: Float? = batteryStatus?.let { intent -> + val level: Int = + intent.getIntExtra( + BatteryManager.EXTRA_LEVEL, + -1 + ) + val scale: Int = + intent.getIntExtra( + BatteryManager.EXTRA_SCALE, + -1 + ) + level * 100 / scale.toFloat() } - fun getBatteryLevel(): Float? { - val batteryPct: Float? = batteryStatus?.let { intent -> - val level: Int = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1) - val scale: Int = intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1) - level * 100 / scale.toFloat() - } + return batteryPct + } - return batteryPct + fun getBatteryTemperature() + + : Float + ? { + val batteryTemp: Float? = batteryStatus?.let { intent -> + val temperature = intent?.getIntExtra( + BatteryManager.EXTRA_TEMPERATURE, + 0 + ) ?: 0 + temperature.toFloat() / 10 } - fun getBatteryTemperature(): Float? { - val batteryTemp: Float? = batteryStatus?.let { intent -> - val temperature = intent?.getIntExtra(BatteryManager.EXTRA_TEMPERATURE, 0) ?: 0 - temperature.toFloat() / 10 - } - - return batteryTemp - } - - fun getBatteryVoltage(context: Context): Float { - val batteryIntent = - context.registerReceiver(null, IntentFilter(Intent.ACTION_BATTERY_CHANGED)) - val voltage = batteryIntent?.getIntExtra(BatteryManager.EXTRA_VOLTAGE, 0) ?: 0 - - // milli-volts to volts - return voltage.toFloat() / 1000 - } - - fun getBatteryCapacity(context: Context): Int { - val batteryManager = context.getSystemService(Context.BATTERY_SERVICE) as BatteryManager - val currentCapacity = - batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CHARGE_COUNTER) - - return currentCapacity - } - - fun getBatteryMaxCapacity(context: Context): Float { - val batteryManager = context.getSystemService(Context.BATTERY_SERVICE) as BatteryManager - val designCapacity = - batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY) - val currentCapacity = - batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CHARGE_COUNTER) - - // Calculate the estimated maximum battery capacity in mAh - val maxCapacity = currentCapacity.toFloat() / designCapacity.toFloat() * 100 - - return maxCapacity - } + return batteryTemp } fun getBatteryVoltage(context: Context): Float { val batteryIntent = - context.registerReceiver(null, IntentFilter(Intent.ACTION_BATTERY_CHANGED)) - val voltage = batteryIntent?.getIntExtra(BatteryManager.EXTRA_VOLTAGE, 0) ?: 0 + context.registerReceiver( + null, + IntentFilter(Intent.ACTION_BATTERY_CHANGED) + ) + val voltage = batteryIntent?.getIntExtra( + BatteryManager.EXTRA_VOLTAGE, + 0 + ) ?: 0 // milli-volts to volts return voltage.toFloat() / 1000 } + fun getBatteryCapacity(context: Context): Int { - val batteryManager = context.getSystemService(Context.BATTERY_SERVICE) as BatteryManager + val batteryManager = + context.getSystemService(Context.BATTERY_SERVICE) as BatteryManager val currentCapacity = batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CHARGE_COUNTER) @@ -450,7 +341,8 @@ class HemoCubeViewModel @Inject constructor( fun getBatteryMaxCapacity(context: Context): Float { val batteryManager = context.getSystemService(Context.BATTERY_SERVICE) as BatteryManager - val designCapacity = batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY) + val designCapacity = + batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CAPACITY) val currentCapacity = batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CHARGE_COUNTER)