digital card fragment coding is finished, testing is pending

This commit is contained in:
Mariya
2023-11-15 11:41:29 +05:30
parent 84e2a4bed9
commit c0825a1c58
6 changed files with 83 additions and 52 deletions

View File

@@ -11,7 +11,7 @@ import com.example.hpostesting.data.model.patient.HemoCubeTestData
import com.google.android.datatransport.runtime.dagger.Provides import com.google.android.datatransport.runtime.dagger.Provides
import javax.inject.Singleton 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) @TypeConverters(Converters::class)
abstract class MyDatabase : RoomDatabase() { abstract class MyDatabase : RoomDatabase() {
abstract fun userDao(): UserDao abstract fun userDao(): UserDao

View File

@@ -9,12 +9,16 @@ data class HemoCubeTestData(
var _id: String = "", var _id: String = "",
var name: String = "", var name: String = "",
var birthYear: String = "", var birthYear: String = "",
var state: String = "",
var abhaId: String = "",
var bloodGroup: String = "",
var userImageURL: String = "", var userImageURL: String = "",
var location: UserData.Location? = null, var location: UserData.Location? = null,
var reportUploadTime: String? = "", var reportUploadTime: String? = "",
var testType: String? = "HEMOCUBE", var testType: String? = "HEMOCUBE",
var testTime: String? = "", var testTime: String? = "",
var testStatus: Boolean? = false, var testStatus: Boolean? = false,
var gender: UserData.Gender,
var localFlag: Boolean = false, var localFlag: Boolean = false,
var deviceId: String? = "", var deviceId: String? = "",
var appVersion:String? = "", var appVersion:String? = "",

View File

@@ -11,6 +11,7 @@ data class UserData(
var name: String = "", var name: String = "",
var incubationTime: String = "", var incubationTime: String = "",
var birthYear: String = "", var birthYear: String = "",
var abhaId: String = "",
var userImageURL: String = "", var userImageURL: String = "",
var location: Location? = null, var location: Location? = null,
var createdBy: String? = "", var createdBy: String? = "",
@@ -19,6 +20,8 @@ data class UserData(
var testStatus: Boolean? = false, var testStatus: Boolean? = false,
var mobileId: String = "", var mobileId: String = "",
var deviceId: String = "", var deviceId: String = "",
var gender: Gender,
var state: String = "",
var deviceSerialNumber: String = "", var deviceSerialNumber: String = "",
var kitSerial: String = "", var kitSerial: String = "",
var csvPath: String = "", var csvPath: String = "",
@@ -44,5 +47,7 @@ fun UserData.toHemoCubeTestData() = HemoCubeTestData(
birthYear = birthYear, birthYear = birthYear,
userImageURL = userImageURL, userImageURL = userImageURL,
testStatus = testStatus, testStatus = testStatus,
location = location location = location,
gender = gender
) )

View File

@@ -1,60 +1,59 @@
package com.example.hpostesting.presentation.hemocube package com.example.hpostesting.presentation.hemocube
import android.content.Context
import android.content.SharedPreferences
import android.os.Bundle import android.os.Bundle
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup 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.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() { class DigitalCardFragment : Fragment() {
// TODO: Rename and change types of parameters private lateinit var binding: FragmentDigitalCardBinding
private var param1: String? = null private val hemoCubeViewModel: HemoCubeViewModel by activityViewModels()
private var param2: String? = null private lateinit var sharedPreferences: SharedPreferences
val testDetails = DataHolder.selectedTest?.toHemoCubeTestData()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
arguments?.let {
param1 = it.getString(ARG_PARAM1)
param2 = it.getString(ARG_PARAM2)
}
}
override fun onCreateView( override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?, inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?,
savedInstanceState: Bundle? ): View {
): View? { binding = FragmentDigitalCardBinding.inflate(inflater, container, false)
// Inflate the layout for this fragment sharedPreferences =
return inflater.inflate(R.layout.fragment_digital_card, container, false) requireContext().getSharedPreferences("PREFERENCE_NAME", Context.MODE_PRIVATE)
return binding.root
} }
companion object { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
/** super.onViewCreated(view, savedInstanceState)
* Use this factory method to create a new instance of
* this fragment using the provided parameters. initViews()
* }
* @param param1 Parameter 1.
* @param param2 Parameter 2. private fun initViews() {
* @return A new instance of fragment DigitalCardFragment. activity?.runOnUiThread {
*/ binding.progressBar.visibility = View.VISIBLE
// TODO: Rename and change types and number of parameters }
@JvmStatic val originalDateStr = testDetails?.testTime
fun newInstance(param1: String, param2: String) = val originalDateFormat = SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
DigitalCardFragment().apply { val originalDate: Date? = originalDateFormat.parse(originalDateStr)
arguments = Bundle().apply { val desiredDateFormat = SimpleDateFormat("MMM dd, yyyy")
putString(ARG_PARAM1, param1) val formattedDate: String = originalDate?.let { desiredDateFormat.format(it) } ?: "N/A"
putString(ARG_PARAM2, param2)
} 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"
} }
} }

View File

@@ -118,11 +118,18 @@ class HemoCubeFragment : Fragment() {
hemoCubeViewModel.fireBaseUpload.observe(viewLifecycleOwner) { result -> hemoCubeViewModel.fireBaseUpload.observe(viewLifecycleOwner) { result ->
if (result == "Success") { if (result == "Success") {
showToast("Test Results Uploaded Successfully") showToast("Test Results Uploaded Successfully")
val i = Intent(
requireContext().applicationContext, DashboardActivity::class.java val digitalCardFragment = DigitalCardFragment()
) val transaction = parentFragmentManager.beginTransaction()
startActivity(i) transaction.replace(R.id.fragment_container, digitalCardFragment)
(activity as HemocubeActivity).finish() transaction.addToBackStack(null)
transaction.commit()
// val i = Intent(
// requireContext().applicationContext, DashboardActivity::class.java
// )
// startActivity(i)
// (activity as HemocubeActivity).finish()
} }
if (result == "Local") { if (result == "Local") {
showToast("Internet not available, test details stored locally") showToast("Internet not available, test details stored locally")

View File

@@ -3,7 +3,8 @@
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent"
android:id="@+id/fragment_container">
<androidx.cardview.widget.CardView <androidx.cardview.widget.CardView
android:id="@+id/userCard" android:id="@+id/userCard"
@@ -219,6 +220,21 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/userdetails" /> app:layout_constraintTop_toBottomOf="@id/userdetails" />
<ProgressBar
android:id="@+id/progressBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:elevation="12dp"
android:indeterminate="true"
android:indeterminateDrawable="@drawable/progressbar_drawable"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
</androidx.cardview.widget.CardView> </androidx.cardview.widget.CardView>