From 6e2729a07554cd8c29a47ec439d34d9b88a10c3e Mon Sep 17 00:00:00 2001 From: "smileomi18@gmail.com" Date: Wed, 2 Aug 2023 20:02:45 +0530 Subject: [PATCH 1/2] Fetching caliberation value done --- .../com/example/hpostesting/data/dao/MyDataBase.kt | 3 ++- .../data/repository/DatabaseRepository.kt | 7 +++++++ .../presentation/hemocube/HemoCubeFragment.kt | 13 +++++++++++++ .../presentation/hemocube/HemoCubeViewModel.kt | 8 ++++++++ 4 files changed, 30 insertions(+), 1 deletion(-) 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 4a2778d..c6cffd0 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 @@ -5,12 +5,13 @@ import androidx.room.Database import androidx.room.Room import androidx.room.RoomDatabase import androidx.room.TypeConverters +import com.example.hpostesting.data.model.patient.DeviceData import com.example.hpostesting.data.model.patient.UserData import com.example.hpostesting.data.model.patient.HemoCubeTestData import com.google.android.datatransport.runtime.dagger.Provides import javax.inject.Singleton -@Database(entities = [UserData::class, HemoCubeTestData::class], version = 2, exportSchema = false) +@Database(entities = [UserData::class, HemoCubeTestData::class,DeviceData::class], version = 2, exportSchema = false) @TypeConverters(Converters::class) abstract class MyDatabase : RoomDatabase() { abstract fun userDao(): UserDao diff --git a/app/src/main/java/com/example/hpostesting/data/repository/DatabaseRepository.kt b/app/src/main/java/com/example/hpostesting/data/repository/DatabaseRepository.kt index b6a4fb8..497100e 100644 --- a/app/src/main/java/com/example/hpostesting/data/repository/DatabaseRepository.kt +++ b/app/src/main/java/com/example/hpostesting/data/repository/DatabaseRepository.kt @@ -6,6 +6,7 @@ import androidx.room.Room import com.example.hpostesting.data.dao.MyDatabase import com.example.hpostesting.data.model.PendingUploads import com.example.hpostesting.data.model.Response +import com.example.hpostesting.data.model.patient.DeviceData import com.example.hpostesting.data.model.patient.HemoCubeTestData import com.example.hpostesting.data.model.patient.UserData import com.google.android.datatransport.runtime.dagger.Provides @@ -13,7 +14,9 @@ import com.google.firebase.firestore.FirebaseFirestore import com.google.firebase.firestore.ktx.firestore import com.google.firebase.ktx.Firebase import com.google.firebase.storage.ktx.storage +import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.tasks.await +import kotlinx.coroutines.withContext import java.io.File import javax.inject.Singleton @@ -112,4 +115,8 @@ class DatabaseRepository : Repository { Response.Error(e) } } + + suspend fun getDeviceDataById(): List { + return db.collection("devices").get().await().toObjects(DeviceData::class.java) + } } \ No newline at end of file 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 08c3ab5..f6d91c2 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 @@ -14,6 +14,7 @@ import android.widget.Toast import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels import com.example.hpostesting.data.DataHolder +import com.example.hpostesting.data.model.patient.DeviceData import com.example.hpostesting.data.model.patient.toHemoCubeTestData import com.example.hpostesting.presentation.UsbServiceListener import com.example.hpostesting.presentation.utils.MyDialogListener @@ -34,6 +35,8 @@ class HemoCubeFragment : Fragment() { private val ACTION_USB_PERMISSION = "com.example.usbpermission" private val TIMEOUT = 0 + private var deviceData = listOf() + private val usbManager: UsbManager by lazy { requireContext().getSystemService(Context.USB_SERVICE) as UsbManager } @@ -66,6 +69,12 @@ class HemoCubeFragment : Fragment() { binding.progressBar.visibility = View.GONE } + hemoCubeViewModel.getDeviceData() + + hemoCubeViewModel.deviceData.observe(viewLifecycleOwner) { + deviceData = it + } + hemoCubeViewModel.networkStatusLiveData.observe(viewLifecycleOwner) { isNetworkAvailable -> apply { kitSerial = DataHolder.hemoCubeTestData?.kitSerial @@ -187,6 +196,10 @@ class HemoCubeFragment : Fragment() { Log.d("greenBuffer", blueIntensity.toString()) Log.d("greenBuffer", blueBIntensity.toString()) } + + private fun calculateResult() { + hemoCubeViewModel + } private fun fetchHemoCubeResult() { if (DataHolder.hemoCubeTestData == null) { DataHolder.hemoCubeTestData = DataHolder.selectedTest?.toHemoCubeTestData() 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 d0c02c9..e30bd2f 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 @@ -10,6 +10,7 @@ import com.example.hpostesting.data.DataHolder import com.example.hpostesting.data.NetworkStatusLiveData import com.example.hpostesting.data.dao.HemoCubeDao import com.example.hpostesting.data.model.Response +import com.example.hpostesting.data.model.patient.DeviceData import com.example.hpostesting.data.model.patient.toHemoCubeTestData import com.example.hpostesting.data.repository.DatabaseRepository import dagger.hilt.android.lifecycle.HiltViewModel @@ -29,6 +30,7 @@ class HemoCubeViewModel @Inject constructor( val progressBar = MutableLiveData(false) val testDetails = DataHolder.selectedTest?.toHemoCubeTestData() private val _networkStatusLiveData = NetworkStatusLiveData(context) + val deviceData = MutableLiveData>() val networkStatusLiveData: LiveData get() = _networkStatusLiveData val fireBaseUpload = MutableLiveData() @@ -61,6 +63,12 @@ class HemoCubeViewModel @Inject constructor( } } + fun getDeviceData() = viewModelScope.launch { + repository.getDeviceDataById().let { + deviceData.postValue(it) + } + } + private fun addResultTestToDb() { testDetails?.deviceRatio = DataHolder.hemocubeResult testDetails?.resultData = DataHolder.hemoCubeTestData?.resultData.toString() From 1ba919c956053f0ce864899c5e59490c83245930 Mon Sep 17 00:00:00 2001 From: "smileomi18@gmail.com" Date: Wed, 2 Aug 2023 20:03:26 +0530 Subject: [PATCH 2/2] Fetching caliberation value done --- .../main/java/com/example/hpostesting/data/dao/MyDataBase.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 c6cffd0..76ab33c 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 @@ -11,7 +11,7 @@ import com.example.hpostesting.data.model.patient.HemoCubeTestData import com.google.android.datatransport.runtime.dagger.Provides import javax.inject.Singleton -@Database(entities = [UserData::class, HemoCubeTestData::class,DeviceData::class], version = 2, exportSchema = false) +@Database(entities = [UserData::class, HemoCubeTestData::class], version = 2, exportSchema = false) @TypeConverters(Converters::class) abstract class MyDatabase : RoomDatabase() { abstract fun userDao(): UserDao