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 339d58d..8b24d41 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 = 5, exportSchema = false) +@Database(entities = [UserData::class, HemoCubeTestData::class, DeviceData::class], version = 6, exportSchema = false) @TypeConverters(Converters::class) abstract class MyDatabase : RoomDatabase() { abstract fun userDao(): UserDao diff --git a/app/src/main/java/com/example/hpostesting/data/model/patient/HemoCubeTestData.kt b/app/src/main/java/com/example/hpostesting/data/model/patient/HemoCubeTestData.kt index 8f3b663..3ff6c84 100644 --- a/app/src/main/java/com/example/hpostesting/data/model/patient/HemoCubeTestData.kt +++ b/app/src/main/java/com/example/hpostesting/data/model/patient/HemoCubeTestData.kt @@ -9,12 +9,16 @@ data class HemoCubeTestData( var _id: String = "", var name: String = "", var birthYear: String = "", + var state: String = "", + var abhaId: String = "", + var bloodGroup: String = "", var userImageURL: String = "", var location: UserData.Location? = null, var reportUploadTime: String? = "", var testType: String? = "HEMOCUBE", var testTime: String? = "", var testStatus: Boolean? = false, + var gender: UserData.Gender, var localFlag: Boolean = false, var deviceId: String? = "", var appVersion:String? = "", diff --git a/app/src/main/java/com/example/hpostesting/data/model/patient/UserData.kt b/app/src/main/java/com/example/hpostesting/data/model/patient/UserData.kt index 1b6c95d..d9a91e8 100644 --- a/app/src/main/java/com/example/hpostesting/data/model/patient/UserData.kt +++ b/app/src/main/java/com/example/hpostesting/data/model/patient/UserData.kt @@ -11,6 +11,7 @@ data class UserData( var name: String = "", var incubationTime: String = "", var birthYear: String = "", + var abhaId: String = "", var userImageURL: String = "", var location: Location? = null, var createdBy: String? = "", @@ -19,6 +20,8 @@ data class UserData( var testStatus: Boolean? = false, var mobileId: String = "", var deviceId: String = "", + var gender: Gender, + var state: String = "", var deviceSerialNumber: String = "", var kitSerial: String = "", var csvPath: String = "", @@ -44,5 +47,7 @@ fun UserData.toHemoCubeTestData() = HemoCubeTestData( birthYear = birthYear, userImageURL = userImageURL, testStatus = testStatus, - location = location + location = location, + gender = gender + ) diff --git a/app/src/main/java/com/example/hpostesting/presentation/hemocube/DigitalCardFragment.kt b/app/src/main/java/com/example/hpostesting/presentation/hemocube/DigitalCardFragment.kt index c84046f..ae56749 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/hemocube/DigitalCardFragment.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/hemocube/DigitalCardFragment.kt @@ -1,60 +1,59 @@ package com.example.hpostesting.presentation.hemocube +import android.content.Context +import android.content.SharedPreferences import android.os.Bundle import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.fragment.app.activityViewModels +import com.example.hpostesting.data.DataHolder +import com.example.hpostesting.data.model.patient.toHemoCubeTestData import `in`.sminnovations.hpostesting.R +import `in`.sminnovations.hpostesting.databinding.FragmentDigitalCardBinding +import `in`.sminnovations.hpostesting.databinding.FragmentHemoCubeReferenceBinding +import java.text.SimpleDateFormat +import java.util.Date -// TODO: Rename parameter arguments, choose names that match -// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER -private const val ARG_PARAM1 = "param1" -private const val ARG_PARAM2 = "param2" - -/** - * A simple [Fragment] subclass. - * Use the [DigitalCardFragment.newInstance] factory method to - * create an instance of this fragment. - */ class DigitalCardFragment : Fragment() { - // TODO: Rename and change types of parameters - private var param1: String? = null - private var param2: String? = null - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - arguments?.let { - param1 = it.getString(ARG_PARAM1) - param2 = it.getString(ARG_PARAM2) - } - } + private lateinit var binding: FragmentDigitalCardBinding + private val hemoCubeViewModel: HemoCubeViewModel by activityViewModels() + private lateinit var sharedPreferences: SharedPreferences + val testDetails = DataHolder.selectedTest?.toHemoCubeTestData() override fun onCreateView( - inflater: LayoutInflater, container: ViewGroup?, - savedInstanceState: Bundle? - ): View? { - // Inflate the layout for this fragment - return inflater.inflate(R.layout.fragment_digital_card, container, false) + inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?, + ): View { + binding = FragmentDigitalCardBinding.inflate(inflater, container, false) + sharedPreferences = + requireContext().getSharedPreferences("PREFERENCE_NAME", Context.MODE_PRIVATE) + return binding.root } - companion object { - /** - * Use this factory method to create a new instance of - * this fragment using the provided parameters. - * - * @param param1 Parameter 1. - * @param param2 Parameter 2. - * @return A new instance of fragment DigitalCardFragment. - */ - // TODO: Rename and change types and number of parameters - @JvmStatic - fun newInstance(param1: String, param2: String) = - DigitalCardFragment().apply { - arguments = Bundle().apply { - putString(ARG_PARAM1, param1) - putString(ARG_PARAM2, param2) - } - } + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + + initViews() + } + + private fun initViews() { + activity?.runOnUiThread { + binding.progressBar.visibility = View.VISIBLE + } + val originalDateStr = testDetails?.testTime + val originalDateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss") + val originalDate: Date? = originalDateFormat.parse(originalDateStr) + val desiredDateFormat = SimpleDateFormat("MMM dd, yyyy") + val formattedDate: String = originalDate?.let { desiredDateFormat.format(it) } ?: "N/A" + + binding.name.text = "Name: ${testDetails?.name}" + binding.dob.text = "DOB: ${testDetails?.birthYear}" + binding.gender.text = "gender: ${testDetails?.gender}" + binding.State.text = "state: ${testDetails?.state}" + binding.abhaid.text = "ABHA ID: ${testDetails?.abhaId}" + binding.blood.text = "Blood Group: ${testDetails?.bloodGroup}" + binding.sicklecell.text = "Sickle-Cell: ${testDetails?.classificationResult}" + binding.issueDate.text = "Issue Date: $formattedDate" } } \ 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 46bd65c..10932d3 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 @@ -118,11 +118,18 @@ class HemoCubeFragment : Fragment() { hemoCubeViewModel.fireBaseUpload.observe(viewLifecycleOwner) { result -> if (result == "Success") { showToast("Test Results Uploaded Successfully") - val i = Intent( - requireContext().applicationContext, DashboardActivity::class.java - ) - startActivity(i) - (activity as HemocubeActivity).finish() + + val digitalCardFragment = DigitalCardFragment() + val transaction = parentFragmentManager.beginTransaction() + transaction.replace(R.id.fragment_container, digitalCardFragment) + transaction.addToBackStack(null) + transaction.commit() + +// val i = Intent( +// requireContext().applicationContext, DashboardActivity::class.java +// ) +// startActivity(i) +// (activity as HemocubeActivity).finish() } if (result == "Local") { showToast("Internet not available, test details stored locally") diff --git a/app/src/main/res/layout/fragment_digital_card.xml b/app/src/main/res/layout/fragment_digital_card.xml index 5135a2f..b4eb04a 100644 --- a/app/src/main/res/layout/fragment_digital_card.xml +++ b/app/src/main/res/layout/fragment_digital_card.xml @@ -3,7 +3,8 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" - android:layout_height="match_parent"> + android:layout_height="match_parent" + android:id="@+id/fragment_container"> + + +