From 15e462d91a15c1ff115aabae616cace7791117cb Mon Sep 17 00:00:00 2001 From: Pritimay Sarkar Date: Sat, 6 Jan 2024 17:24:57 +0530 Subject: [PATCH] fix conflicts --- .../hpostesting/data/dao/MyDataBase.kt | 2 +- .../hemocube/HemoCubeViewModel.kt | 216 +++--------------- 2 files changed, 29 insertions(+), 189 deletions(-) diff --git a/app/src/main/java/com/example/hpostesting/data/dao/MyDataBase.kt b/app/src/main/java/com/example/hpostesting/data/dao/MyDataBase.kt index 2b01da0..86ad9cb 100644 --- a/app/src/main/java/com/example/hpostesting/data/dao/MyDataBase.kt +++ b/app/src/main/java/com/example/hpostesting/data/dao/MyDataBase.kt @@ -8,7 +8,7 @@ import com.example.hpostesting.data.model.patient.DeviceData import com.example.hpostesting.data.model.patient.HemoCubeTestData import com.example.hpostesting.data.model.patient.UserData -@Database(entities = [UserData::class, HemoCubeTestData::class, DeviceData::class, BufferCheckData::class], version = 19, exportSchema = false) +@Database(entities = [UserData::class, HemoCubeTestData::class, DeviceData::class, BufferCheckData::class], version = 20, exportSchema = false) @TypeConverters(Converters::class) abstract class MyDatabase : RoomDatabase() { abstract fun userDao(): UserDao 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 4deb30f..8fb3cfb 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 @@ -53,7 +53,7 @@ class HemoCubeViewModel @Inject constructor( private val repository: Repository, private val databaseRepository: DatabaseRepository, private val logFileManager: LogFileManager, - context: Context + context: Context, ) : ViewModel() { var isServiceConnected = false val progressBar = MutableLiveData(false) @@ -75,25 +75,14 @@ class HemoCubeViewModel @Inject constructor( val uploadLogs = MutableLiveData?>() - // 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() - val deviceData = MutableLiveData() - - - val networkStatusLiveData: LiveData - get() = _networkStatusLiveData - val deviceMessages = MutableLiveData() - val fireBaseUpload = MutableLiveData() - val fireBaseBulkUpload = MutableLiveData() - // 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() val allKitTestData = hemoCubeBufferDao.getAll() val deviceData = MutableLiveData() + + val networkStatusLiveData: LiveData get() = _networkStatusLiveData val deviceMessages = MutableLiveData() @@ -106,7 +95,7 @@ class HemoCubeViewModel @Inject constructor( } fun uploadHemoCubeResultToDatabase( - isOnline: Boolean, testStatus: Boolean, kitSerial: String? + isOnline: Boolean, testStatus: Boolean, kitSerial: String?, ) = viewModelScope.launch { if (kitSerial != null) { testDetails?.kitSerial = kitSerial @@ -174,41 +163,11 @@ class HemoCubeViewModel @Inject constructor( multipartFile?.let { partFile -> databaseRepository.uploadLogs(partFile).let { result -> uploadLogs.postValue(result) - 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}") } } - - - 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, @@ -242,81 +201,6 @@ class HemoCubeViewModel @Inject constructor( } } - private fun parseData() { - testDetails?.deviceRatio = DataHolder.hemocubeResult - testDetails?.resultData = DataHolder.hemoCubeTestData?.resultData.toString() - testDetails?.location = DataHolder.location - testDetails?.testTime = 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?.deviceRatio = DataHolder.hemoCubeTestData?.deviceRatio - testDetails?.predictedDenovixRatio = DataHolder.hemoCubeTestData?.predictedDenovixRatio - testDetails?.calculatedRatio = DataHolder.hemoCubeTestData?.calculatedRatio - testDetails?.coefficients = DataHolder.hemoCubeTestData?.coefficients - testDetails?.classificationResult = DataHolder.hemoCubeTestData?.classificationResult!! - testDetails?.prdClassification = DataHolder.hemoCubeTestData?.prdClassification.toString() - testDetails?.errorMessages = DataHolder.hemoCubeTestData?.errorMessages.toString() - 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( @@ -421,30 +305,6 @@ class HemoCubeViewModel @Inject constructor( } } - 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") - } - - is Response.Error -> { - Log.e("Testdb", "Error uploading data to Firestore: $response") - fireBaseUpload.postValue("Error") - } - - else -> {} - } - } catch (e: Exception) { - Log.e("Testdb", "Exception during data upload: ${e.message}") - fireBaseUpload.postValue("Error") - } - } - } - fun bulkAddResultTestToDb(userData: HemoCubeTestData) { viewModelScope.launch { userData.reportUploadTime = SimpleDateFormat( @@ -479,10 +339,7 @@ class HemoCubeViewModel @Inject constructor( 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) + private fun addResultTestToDbforbuffercheck(bufferCheckData: BufferCheckData) { viewModelScope.launch { try { @@ -512,38 +369,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) - 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 { - hemoCubeDao.insertAll(userData) - } - - fun deleteById(userId: String) = viewModelScope.launch { - hemoCubeDao.deleteById(id = userId) - } - fun getBatteryLevel(): Float? { val batteryPct: Float? = batteryStatus?.let { intent -> val level: Int = @@ -564,7 +389,10 @@ class HemoCubeViewModel @Inject constructor( fun getBatteryTemperature(): Float? { val batteryTemp: Float? = batteryStatus?.let { intent -> - val temperature = intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE, 0) + val temperature = intent?.getIntExtra( + BatteryManager.EXTRA_TEMPERATURE, + 0 + ) ?: 0 temperature.toFloat() / 10 } @@ -573,27 +401,39 @@ class HemoCubeViewModel @Inject constructor( 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 - return batteryManager.getIntProperty(BatteryManager.BATTERY_PROPERTY_CHARGE_COUNTER) + 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 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 currentCapacity.toFloat() / designCapacity.toFloat() * 100 + return maxCapacity } }