Compare commits

...

8 Commits

Author SHA1 Message Date
smileomi18@gmail.com
676475f34a BloodGroup changes 2023-08-01 16:09:24 +05:30
smileomi18@gmail.com
0b41b5ff7d BloodGroup changes 2023-08-01 15:48:53 +05:30
smileomi18@gmail.com
8d0589a169 BloodGroup changes 2023-08-01 14:24:39 +05:30
smileomi18@gmail.com
5c0f325d8d BloodGroup changes 2023-08-01 14:04:20 +05:30
smileomi18@gmail.com
0dd8e6b805 Removed 2023-07-27 17:41:32 +05:30
mohamedkaif356
b21f1c8eaa Displaying message when user list is empty and update blood group 2023-07-25 11:18:23 +05:30
smileomi18@gmail.com
0383a63cb4 Test pending list filter 2023-07-20 17:16:25 +05:30
mohamedkaif356
2e0b0be7f4 Blood group selection 2023-07-17 14:06:32 +05:30
14 changed files with 203 additions and 121 deletions

View File

@@ -30,7 +30,11 @@ object DataHolder {
var selectedTest: UserData? = null var selectedTest: UserData? = null
var kitSerial: String = ""
var location: UserData.Location? = null var location: UserData.Location? = null
var testExp: Boolean = true var testExp: Boolean = true
} }

View File

@@ -32,26 +32,9 @@ object Constants {
const val USER_ID = "usernameId" const val USER_ID = "usernameId"
val STATICID = listOf( val STATICID = listOf(
"VIZ-1000-0001",
"VIZ-1000-0002",
"VIZ-1000-0003",
"VIZ-1000-0004", "VIZ-1000-0004",
"VIZ-1000-0005", "VIZ-1000-0005",
"VIZ-1000-0006", "VIZ-1000-0006",
"VIZ-1000-0007",
"VIZ-1000-0008",
"VIZ-1000-0009",
"VIZ-1000-0010",
"VIZ-1000-0011",
"VIZ-1000-0012",
"VIZ-1000-0013",
"VIZ-1000-0014",
"VIZ-1000-0015",
"VIZ-1000-0016",
"VIZ-1000-0017",
"VIZ-1000-0018",
"VIZ-1000-0019"
) )
const val password = "SMI@12345" const val password = "SMI@12345"

View File

@@ -42,9 +42,12 @@ class KitScanActivity : AppCompatActivity() {
setContentView(binding.root) setContentView(binding.root)
if (DataHolder.sampleReadCounter <= Constants.MAXIMUM_TEST_ALLOWED_BEFORE_REFERENCE && DataHolder.isReferenceTaken){ if (DataHolder.sampleReadCounter <= Constants.MAXIMUM_TEST_ALLOWED_BEFORE_REFERENCE && DataHolder.isReferenceTaken){
DataHolder.selectedTest!!.kitSerial = DataHolder.kitSerial
moveToNext() moveToNext()
} }
binding.nameEditText.setText("SMI/SC/")
setSupportActionBar(binding.toolbar) setSupportActionBar(binding.toolbar)
binding.btnScanNow.setOnClickListener { binding.btnScanNow.setOnClickListener {
@@ -55,7 +58,8 @@ class KitScanActivity : AppCompatActivity() {
binding.btnGo.setOnClickListener { binding.btnGo.setOnClickListener {
val serialNumber = binding.nameEditText.text.toString().trim() val serialNumber = binding.nameEditText.text.toString().trim()
if (serialNumber.isNotEmpty() && checkDataNotNull() && isSerialValid(serialNumber)) { if (serialNumber.isNotEmpty() && checkDataNotNull() && isSerialValid(serialNumber)) {
DataHolder.selectedTest!!.kitSerial = binding.nameEditText.text.toString() DataHolder.kitSerial = binding.nameEditText.text.toString()
DataHolder.selectedTest?.kitSerial = binding.nameEditText.text.toString()
moveToNext() moveToNext()
} else { } else {
Toast.makeText(this, "Invalid KIT Number", Toast.LENGTH_LONG).show() Toast.makeText(this, "Invalid KIT Number", Toast.LENGTH_LONG).show()

View File

@@ -64,7 +64,7 @@ class MainActivity : AppCompatActivity() {
locationCallback = object : LocationCallback() { locationCallback = object : LocationCallback() {
override fun onLocationResult(locationResult: LocationResult) { override fun onLocationResult(locationResult: LocationResult) {
locationResult.lastLocation?.let { location -> locationResult.lastLocation?.let { location ->
DataHolder.location = UserData.Location(location.latitude, location.longitude) DataHolder.selectedTest!!.location = UserData.Location(location.latitude, location.longitude)
Log.i("Location", DataHolder.location.toString()) Log.i("Location", DataHolder.location.toString())
} }
} }
@@ -81,10 +81,16 @@ class MainActivity : AppCompatActivity() {
val availableDrivers = UsbSerialProber.getDefaultProber() val availableDrivers = UsbSerialProber.getDefaultProber()
.findAllDrivers(getSystemService(Context.USB_SERVICE) as UsbManager) .findAllDrivers(getSystemService(Context.USB_SERVICE) as UsbManager)
if (availableDrivers.isNotEmpty() && availableDrivers[0].device.productId == Constants.DEVICE_PRODUCT_ID && availableDrivers[0].device.vendorId == Constants.DEVICE_VENDOR_ID) { if (availableDrivers.isNotEmpty() && availableDrivers[0].device.productId == Constants.DEVICE_PRODUCT_ID && availableDrivers[0].device.vendorId == Constants.DEVICE_VENDOR_ID) {
Log.d(TAG, "Device matched -> product = ${availableDrivers[0].device.productId}, vendor = ${availableDrivers[0].device.vendorId}") Log.d(
TAG,
"Device matched -> product = ${availableDrivers[0].device.productId}, vendor = ${availableDrivers[0].device.vendorId}"
)
DataHolder.usbConnected.value = true DataHolder.usbConnected.value = true
} else if (availableDrivers.isNotEmpty()) { } else if (availableDrivers.isNotEmpty()) {
Log.d(TAG, "Device NOT matched -> product = ${availableDrivers[0].device.productId}, vendor = ${availableDrivers[0].device.vendorId}") Log.d(
TAG,
"Device NOT matched -> product = ${availableDrivers[0].device.productId}, vendor = ${availableDrivers[0].device.vendorId}"
)
Toast.makeText(this, "Device Not Compatible", Toast.LENGTH_SHORT).show() Toast.makeText(this, "Device Not Compatible", Toast.LENGTH_SHORT).show()
DataHolder.usbConnected.value = false DataHolder.usbConnected.value = false
} else { } else {
@@ -108,9 +114,11 @@ class MainActivity : AppCompatActivity() {
DataHolder.usbConnected.observe(this) { DataHolder.usbConnected.observe(this) {
if (it) { if (it) {
myMenu?.get(0)?.icon = ContextCompat.getDrawable(this, R.drawable.ic_baseline_usb_24) myMenu?.get(0)?.icon =
ContextCompat.getDrawable(this, R.drawable.ic_baseline_usb_24)
} else { } else {
myMenu?.get(0)?.icon = ContextCompat.getDrawable(this, R.drawable.ic_baseline_usb_off_24) myMenu?.get(0)?.icon =
ContextCompat.getDrawable(this, R.drawable.ic_baseline_usb_off_24)
} }
} }
} }
@@ -127,14 +135,11 @@ class MainActivity : AppCompatActivity() {
val coarseLocationPermissionRequestCode = 101 val coarseLocationPermissionRequestCode = 101
if (ContextCompat.checkSelfPermission( if (ContextCompat.checkSelfPermission(
this, this, coarseLocationPermission
coarseLocationPermission
) != PackageManager.PERMISSION_GRANTED ) != PackageManager.PERMISSION_GRANTED
) { ) {
ActivityCompat.requestPermissions( ActivityCompat.requestPermissions(
this, this, arrayOf(coarseLocationPermission), coarseLocationPermissionRequestCode
arrayOf(coarseLocationPermission),
coarseLocationPermissionRequestCode
) )
} else { } else {
getLocation() getLocation()
@@ -146,14 +151,11 @@ class MainActivity : AppCompatActivity() {
val fineLocationPermissionRequestCode = 102 val fineLocationPermissionRequestCode = 102
if (ContextCompat.checkSelfPermission( if (ContextCompat.checkSelfPermission(
this, this, fineLocationPermission
fineLocationPermission
) != PackageManager.PERMISSION_GRANTED ) != PackageManager.PERMISSION_GRANTED
) { ) {
ActivityCompat.requestPermissions( ActivityCompat.requestPermissions(
this, this, arrayOf(fineLocationPermission), fineLocationPermissionRequestCode
arrayOf(fineLocationPermission),
fineLocationPermissionRequestCode
) )
} else { } else {
getLocation() getLocation()
@@ -165,12 +167,9 @@ class MainActivity : AppCompatActivity() {
val fineLocationPermission = Manifest.permission.ACCESS_FINE_LOCATION val fineLocationPermission = Manifest.permission.ACCESS_FINE_LOCATION
if (ActivityCompat.checkSelfPermission( if (ActivityCompat.checkSelfPermission(
this, this, coarseLocationPermission
coarseLocationPermission ) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(
) != PackageManager.PERMISSION_GRANTED && this, fineLocationPermission
ActivityCompat.checkSelfPermission(
this,
fineLocationPermission
) != PackageManager.PERMISSION_GRANTED ) != PackageManager.PERMISSION_GRANTED
) { ) {
// Handle location permission request if needed // Handle location permission request if needed
@@ -180,16 +179,14 @@ class MainActivity : AppCompatActivity() {
return return
} }
fusedLocationClient.lastLocation fusedLocationClient.lastLocation.addOnSuccessListener { location: Location? ->
.addOnSuccessListener { location: Location? ->
location?.let { location?.let {
DataHolder.location = UserData.Location(location.latitude, location.longitude) DataHolder.selectedTest!!.location =
Log.i("Location", DataHolder.location.toString()) UserData.Location(location.latitude, location.longitude)
} ?: run { } ?: run {
requestLocationUpdates() requestLocationUpdates()
} }
} }.addOnFailureListener { exception: Exception ->
.addOnFailureListener { exception: Exception ->
exception.printStackTrace() exception.printStackTrace()
} }
} }
@@ -202,12 +199,9 @@ class MainActivity : AppCompatActivity() {
} }
if (ActivityCompat.checkSelfPermission( if (ActivityCompat.checkSelfPermission(
this, this, Manifest.permission.ACCESS_COARSE_LOCATION
Manifest.permission.ACCESS_COARSE_LOCATION ) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(
) != PackageManager.PERMISSION_GRANTED && this, Manifest.permission.ACCESS_FINE_LOCATION
ActivityCompat.checkSelfPermission(
this,
Manifest.permission.ACCESS_FINE_LOCATION
) != PackageManager.PERMISSION_GRANTED ) != PackageManager.PERMISSION_GRANTED
) { ) {
return return
@@ -226,9 +220,7 @@ class MainActivity : AppCompatActivity() {
} }
override fun onRequestPermissionsResult( override fun onRequestPermissionsResult(
requestCode: Int, requestCode: Int, permissions: Array<String>, grantResults: IntArray
permissions: Array<String>,
grantResults: IntArray
) { ) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults) super.onRequestPermissionsResult(requestCode, permissions, grantResults)
when (requestCode) { when (requestCode) {
@@ -238,16 +230,19 @@ class MainActivity : AppCompatActivity() {
requestFineLocationPermission() requestFineLocationPermission()
} else { } else {
// Coarse location permission denied // Coarse location permission denied
Toast.makeText(this, "Coarse location permission denied", Toast.LENGTH_SHORT).show() Toast.makeText(this, "Coarse location permission denied", Toast.LENGTH_SHORT)
.show()
} }
} }
102 -> { 102 -> {
if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) { if (grantResults.isNotEmpty() && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// Fine location permission granted // Fine location permission granted
getLocation() getLocation()
} else { } else {
// Fine location permission denied // Fine location permission denied
Toast.makeText(this, "Fine location permission denied", Toast.LENGTH_SHORT).show() Toast.makeText(this, "Fine location permission denied", Toast.LENGTH_SHORT)
.show()
} }
} }
} }

View File

@@ -10,12 +10,16 @@ import androidx.recyclerview.widget.RecyclerView
import com.bumptech.glide.Glide import com.bumptech.glide.Glide
import com.example.hpostesting.data.DataHolder import com.example.hpostesting.data.DataHolder
import com.example.hpostesting.data.model.patient.UserData import com.example.hpostesting.data.model.patient.UserData
import com.example.hpostesting.presentation.testRight.TestRightViewModel
import com.firebase.ui.firestore.FirestoreRecyclerAdapter import com.firebase.ui.firestore.FirestoreRecyclerAdapter
import com.firebase.ui.firestore.FirestoreRecyclerOptions import com.firebase.ui.firestore.FirestoreRecyclerOptions
import `in`.sminnovations.hpostesting.R import `in`.sminnovations.hpostesting.R
import `in`.sminnovations.hpostesting.databinding.UserItemViewBinding import `in`.sminnovations.hpostesting.databinding.UserItemViewBinding
class UserListAdapter(options: FirestoreRecyclerOptions<UserData>, private val view: View) : class UserListAdapter(
options: FirestoreRecyclerOptions<UserData>,
private val view: View
) :
FirestoreRecyclerAdapter<UserData, UserListAdapter.OrderItemViewHolder>(options) { FirestoreRecyclerAdapter<UserData, UserListAdapter.OrderItemViewHolder>(options) {
class OrderItemViewHolder(val binding: UserItemViewBinding) : class OrderItemViewHolder(val binding: UserItemViewBinding) :

View File

@@ -6,7 +6,6 @@ import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import com.example.hpostesting.presentation.dashboard.ui.gallery.GalleryViewModel
import `in`.sminnovations.hpostesting.databinding.FragmentGalleryBinding import `in`.sminnovations.hpostesting.databinding.FragmentGalleryBinding
class GalleryFragment : Fragment() { class GalleryFragment : Fragment() {
@@ -22,8 +21,6 @@ class GalleryFragment : Fragment() {
container: ViewGroup?, container: ViewGroup?,
savedInstanceState: Bundle? savedInstanceState: Bundle?
): View { ): View {
val galleryViewModel =
ViewModelProvider(this).get(GalleryViewModel::class.java)
_binding = FragmentGalleryBinding.inflate(inflater, container, false) _binding = FragmentGalleryBinding.inflate(inflater, container, false)
val root: View = binding.root val root: View = binding.root

View File

@@ -5,7 +5,6 @@ import android.content.Context
import android.content.DialogInterface import android.content.DialogInterface
import android.content.SharedPreferences import android.content.SharedPreferences
import android.os.Bundle import android.os.Bundle
import android.util.Log
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
@@ -86,7 +85,14 @@ class HomeFragment : Fragment() {
} }
private fun loadUserData() { private fun loadUserData() {
val query = Firebase.firestore.collection("patientData") val query = Firebase.firestore.collection("patientData").whereEqualTo("testStatus", false)
query.get().addOnSuccessListener {
if (it.documents.isEmpty()) {
binding.pendingTest.visibility = View.VISIBLE
} else {
binding.pendingTest.visibility = View.GONE
}
}
val recyclerViewOptions = val recyclerViewOptions =
FirestoreRecyclerOptions.Builder<UserData>().setQuery(query, UserData::class.java) FirestoreRecyclerOptions.Builder<UserData>().setQuery(query, UserData::class.java)
.build() .build()

View File

@@ -79,18 +79,29 @@ class TestRightExpSample : Fragment() {
// if (details != null) { // if (details != null) {
// viewModel.patientDetails = details // viewModel.patientDetails = details
UIUtils.createAlertDialog( UIUtils.createAlertDialog(
requireContext(), requireContext(),
getString(R.string.have_you_placed_sample), "WARNING",
getString(R.string.please_place_sample), "Please check if you have placed the sample of this person ${viewModel.testDetails?._id}",
getString(R.string.no), getString(R.string.no),
getString(R.string.yes_and_run), "Yes",
object : MyDialogListener { object : MyDialogListener {
override fun onClickNegativeButton() {} override fun onClickNegativeButton() {}
override fun onClickPositiveButton() { override fun onClickPositiveButton() {
startAcquiring() UIUtils.createAlertDialog(
} requireContext(),
}) getString(R.string.have_you_placed_sample),
getString(R.string.please_place_sample),
getString(R.string.no),
getString(R.string.yes_and_run),
object : MyDialogListener {
override fun onClickNegativeButton() {}
override fun onClickPositiveButton() {
startAcquiring()
}
})
}
})
// } // }
} }

View File

@@ -12,13 +12,22 @@ import androidx.fragment.app.Fragment
import androidx.fragment.app.activityViewModels import androidx.fragment.app.activityViewModels
import com.example.hpostesting.data.DataHolder import com.example.hpostesting.data.DataHolder
import com.example.hpostesting.data.constant.Constants import com.example.hpostesting.data.constant.Constants
import com.example.hpostesting.data.dao.UserDao
import com.example.hpostesting.data.model.test.TestRightResultType import com.example.hpostesting.data.model.test.TestRightResultType
import com.example.hpostesting.data.model.test.TestType import com.example.hpostesting.data.model.test.TestType
import com.example.hpostesting.presentation.dashboard.DashboardActivity import com.example.hpostesting.presentation.dashboard.DashboardActivity
import com.example.hpostesting.util.MyUtils.calculateAgeFromYOB import com.example.hpostesting.util.MyUtils.calculateAgeFromYOB
import com.google.firebase.firestore.FirebaseFirestore
import com.google.firebase.firestore.ktx.firestore
import com.google.firebase.ktx.Firebase
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import `in`.sminnovations.hpostesting.R import `in`.sminnovations.hpostesting.R
import `in`.sminnovations.hpostesting.databinding.FragmentTestRightResultsBinding import `in`.sminnovations.hpostesting.databinding.FragmentTestRightResultsBinding
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.tasks.await
import kotlinx.coroutines.withContext
@AndroidEntryPoint @AndroidEntryPoint
class TestRightResults : Fragment() { class TestRightResults : Fragment() {
@@ -26,7 +35,7 @@ class TestRightResults : Fragment() {
private lateinit var binding: FragmentTestRightResultsBinding private lateinit var binding: FragmentTestRightResultsBinding
private val viewModel: TestRightViewModel by activityViewModels() private val viewModel: TestRightViewModel by activityViewModels()
private lateinit var sharedPreference: SharedPreferences private lateinit var sharedPreference: SharedPreferences
private var bloodGroup: String = ""
override fun onCreateView( override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?
): View { ): View {
@@ -55,13 +64,50 @@ class TestRightResults : Fragment() {
private fun setupListeners() { private fun setupListeners() {
binding.ivHome.setOnClickListener { binding.ivHome.setOnClickListener {
CoroutineScope(Dispatchers.IO).launch {
val bloodGroupText = binding.etBloodGroup.text.toString()
if (bloodGroupText.isNullOrBlank() || bloodGroupText == "Select Blood Group") {
withContext(Dispatchers.Main) {
binding.etBloodGroup.error = "Please enter your blood group"
}
withContext(Dispatchers.Main) {
Toast.makeText(context, "Please enter your blood group", Toast.LENGTH_SHORT).show()
}
} else {
withContext(Dispatchers.Main) {
binding.etBloodGroup.error = null
}
bloodGroup = bloodGroupText
checkBloodGroup()
}
}
}
binding.ivNext.setOnClickListener {
val i = Intent(requireContext().applicationContext, DashboardActivity::class.java) val i = Intent(requireContext().applicationContext, DashboardActivity::class.java)
startActivity(i) startActivity(i)
} }
binding.ivNext.setOnClickListener { }
val i = Intent(requireContext().applicationContext, DashboardActivity::class.java)
startActivity(i) private suspend fun checkBloodGroup() {
// moveToSamplePage() binding.apply {
bloodGroup = etBloodGroup.text.toString()
val db: FirebaseFirestore = Firebase.firestore
val userdata =
db.collection("patientData").whereEqualTo("_id", viewModel.testDetails?._id)
.get().await()
if (userdata.documents.isNotEmpty()) {
db.collection("patientData").document(userdata.documents[0].id)
.update("bloodGroup", bloodGroup)
withContext(Dispatchers.Main) {
val i = Intent(
requireContext().applicationContext,
DashboardActivity::class.java
)
startActivity(i)
}
}
} }
} }
@@ -81,37 +127,37 @@ class TestRightResults : Fragment() {
if (DataHolder.selectedTestType == TestType.SICKLECERT) { if (DataHolder.selectedTestType == TestType.SICKLECERT) {
when (viewModel.testDetails?.result) { // when (viewModel.testDetails?.result) {
TestRightResultType.NORMAL -> { // TestRightResultType.NORMAL -> {
binding.resultNormal.visibility = View.VISIBLE // binding.resultNormal.visibility = View.VISIBLE
} // }
//
TestRightResultType.SICKLECELLDISEASE -> { // TestRightResultType.SICKLECELLDISEASE -> {
binding.resultDisease.visibility = View.VISIBLE // binding.resultDisease.visibility = View.VISIBLE
} // }
//
TestRightResultType.SICKLECELLTRAIT -> { // TestRightResultType.SICKLECELLTRAIT -> {
binding.resultTrait.visibility = View.VISIBLE // binding.resultTrait.visibility = View.VISIBLE
} // }
//
TestRightResultType.POSITIVEBORDERLINE -> { // TestRightResultType.POSITIVEBORDERLINE -> {
binding.resultPositiveBorderline.visibility = View.VISIBLE // binding.resultPositiveBorderline.visibility = View.VISIBLE
binding.tvRecommended.visibility = View.VISIBLE // binding.tvRecommended.visibility = View.VISIBLE
} // }
//
TestRightResultType.NEGATIVEBORDERLINE -> { // TestRightResultType.NEGATIVEBORDERLINE -> {
binding.resultNegativeBorderline.visibility = View.VISIBLE // binding.resultNegativeBorderline.visibility = View.VISIBLE
binding.tvRecommended.visibility = View.VISIBLE // binding.tvRecommended.visibility = View.VISIBLE
} // }
// else -> {
else -> { //// binding.resultUndefined.visibility = View.VISIBLE
// binding.resultUndefined.visibility = View.VISIBLE // Toast.makeText(
Toast.makeText( // requireContext().applicationContext, "Please Test Again", Toast.LENGTH_LONG
requireContext().applicationContext, "Please Test Again", Toast.LENGTH_LONG // ).show()
).show() // moveToSamplePage()
moveToSamplePage() // }
} // }
} binding.resultNormal.visibility = View.VISIBLE
} else { } else {
when (viewModel.testDetails?.result) { when (viewModel.testDetails?.result) {
TestRightResultType.SICKLECELLDISEASE -> { TestRightResultType.SICKLECELLDISEASE -> {

View File

@@ -137,7 +137,6 @@ class TestRightViewModel @Inject constructor(
if (isReference) DataHolder.intensityReferenceArray.clear() if (isReference) DataHolder.intensityReferenceArray.clear()
else intensitySampleArray.clear() else intensitySampleArray.clear()
Log.d("SURYAKUMAR", fullString)
val listOfString = fullString.split("\n") val listOfString = fullString.split("\n")
for (line in listOfString) { for (line in listOfString) {
@@ -437,7 +436,6 @@ class TestRightViewModel @Inject constructor(
} }
private fun addResultTestToDb() { private fun addResultTestToDb() {
testDetails?.location = DataHolder.location
testDetails?.testTime = SimpleDateFormat( testDetails?.testTime = SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss", Locale.getDefault() "yyyy-MM-dd HH:mm:ss", Locale.getDefault()
).format(Calendar.getInstance().time) ).format(Calendar.getInstance().time)
@@ -521,7 +519,6 @@ class TestRightViewModel @Inject constructor(
} }
private fun bulkAddResultTestToDb(userData: UserData) { private fun bulkAddResultTestToDb(userData: UserData) {
userData.location = DataHolder.location
viewModelScope.launch { viewModelScope.launch {
userData.reportUploadTime = SimpleDateFormat( userData.reportUploadTime = SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss", Locale.getDefault() "yyyy-MM-dd HH:mm:ss", Locale.getDefault()

View File

@@ -24,7 +24,6 @@ class UsbService : Service() {
private val TAG = "UsbService" private val TAG = "UsbService"
inner class UsbServiceBinder : Binder() { inner class UsbServiceBinder : Binder() {
// Return this instance of UsbService so clients can call public methods
fun getService(): UsbService = this@UsbService fun getService(): UsbService = this@UsbService
} }
@@ -39,14 +38,12 @@ class UsbService : Service() {
mPort = driver.ports[0] // Most devices have just one port (port 0) mPort = driver.ports[0] // Most devices have just one port (port 0)
mPort.open(connection) mPort.open(connection)
mPort.setParameters(115200, 8, UsbSerialPort.STOPBITS_1, UsbSerialPort.PARITY_NONE) mPort.setParameters(115200, 8, UsbSerialPort.STOPBITS_1, UsbSerialPort.PARITY_NONE)
//
isUsbConnected = true isUsbConnected = true
Log.d(TAG, "My Usb Connected ${mPort.driver}") Log.d(TAG, "My Usb Connected ${mPort.driver}")
val usbIoManager = SerialInputOutputManager(mPort, val usbIoManager = SerialInputOutputManager(mPort,
object : SerialInputOutputManager.Listener{ object : SerialInputOutputManager.Listener{
override fun onNewData(data: ByteArray?) { override fun onNewData(data: ByteArray?) {
// Log.e(TAG, "onNewData() called inside eventDrivenWrite()")
listener?.onUsbRead(data) listener?.onUsbRead(data)
} }
override fun onRunError(e: Exception?) { override fun onRunError(e: Exception?) {

View File

@@ -5,6 +5,19 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
<TextView
android:id="@+id/pendingTest"
style="@style/title1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:visibility="gone"
android:text="@string/all_registered_user_are_tested_successfully"
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
android:id="@+id/internetNotAvailableCL" android:id="@+id/internetNotAvailableCL"
android:layout_width="match_parent" android:layout_width="match_parent"

View File

@@ -117,7 +117,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp" android:layout_marginHorizontal="16dp"
android:background="@drawable/result_background_green" android:background="@drawable/result_background_green"
android:text="@string/normal" android:text="@string/test_completed"
android:textAlignment="center" android:textAlignment="center"
android:visibility="gone" android:visibility="gone"
app:drawableStartCompat="@drawable/ic_baseline_check_circle_24" app:drawableStartCompat="@drawable/ic_baseline_check_circle_24"
@@ -241,6 +241,28 @@
<!-- app:layout_constraintStart_toStartOf="@id/iv_download"--> <!-- app:layout_constraintStart_toStartOf="@id/iv_download"-->
<!-- app:layout_constraintTop_toBottomOf="@id/iv_download" />--> <!-- app:layout_constraintTop_toBottomOf="@id/iv_download" />-->
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/til_blood_group"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.ExposedDropdownMenu"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="24dp"
android:layout_marginTop="16dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/cv_sample_details">
<AutoCompleteTextView
android:id="@+id/et_blood_group"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/select_blood_group"
android:inputType="none"
android:labelFor="@id/til_blood_group"
app:simpleItems="@array/blood_group" />
</com.google.android.material.textfield.TextInputLayout>
<ImageView <ImageView
android:id="@+id/iv_home" android:id="@+id/iv_home"
android:layout_width="wrap_content" android:layout_width="wrap_content"
@@ -250,7 +272,7 @@
android:src="@drawable/ic_baseline_home_24" android:src="@drawable/ic_baseline_home_24"
app:layout_constraintEnd_toStartOf="@id/iv_next" app:layout_constraintEnd_toStartOf="@id/iv_next"
app:layout_constraintStart_toStartOf="@id/cv_sample_details" app:layout_constraintStart_toStartOf="@id/cv_sample_details"
app:layout_constraintTop_toBottomOf="@id/cv_sample_details" /> app:layout_constraintTop_toBottomOf="@id/til_blood_group" />
<TextView <TextView
style="@style/title2" style="@style/title2"
@@ -274,7 +296,7 @@
android:src="@drawable/ic_baseline_new_label_24" android:src="@drawable/ic_baseline_new_label_24"
app:layout_constraintEnd_toEndOf="@id/cv_sample_details" app:layout_constraintEnd_toEndOf="@id/cv_sample_details"
app:layout_constraintStart_toEndOf="@id/iv_home" app:layout_constraintStart_toEndOf="@id/iv_home"
app:layout_constraintTop_toBottomOf="@id/cv_sample_details" /> app:layout_constraintTop_toBottomOf="@id/til_blood_group" />
<TextView <TextView
style="@style/title2" style="@style/title2"

View File

@@ -1,5 +1,5 @@
<resources> <resources>
<string name="app_name">HPOS</string> <string name="app_name">HPOS Testing</string>
<string-array name="instrument"> <string-array name="instrument">
<item>TestRight</item> <item>TestRight</item>
@@ -130,7 +130,7 @@
<string name="scan_now">Scan Now</string> <string name="scan_now">Scan Now</string>
<string name="enter_abha_number_manualy">Enter ABHA number manualy</string> <string name="enter_abha_number_manualy">Enter ABHA number manualy</string>
<string name="abha_id">ABHA ID</string> <string name="abha_id">ABHA ID</string>
<string name="patient_id_in_tv"><b>Patient ID</b> : %1$s</string> <string name="patient_id_in_tv"><b>User ID</b> : %1$s</string>
<string name="go">GO</string> <string name="go">GO</string>
<string name="click_here">Click Here</string> <string name="click_here">Click Here</string>
<string name="title_activity_dashboard">DashboardActivity</string> <string name="title_activity_dashboard">DashboardActivity</string>
@@ -182,5 +182,8 @@
<string name="upload">Upload</string> <string name="upload">Upload</string>
<string name="cancel">Cancel</string> <string name="cancel">Cancel</string>
<string name="upload_success_message">Upload done successfully</string> <string name="upload_success_message">Upload done successfully</string>
<string name="test_completed">Test Completed</string>
<string name="select_blood_group">Select Blood Group</string>
<string name="all_registered_user_are_tested_successfully">All registered user are tested successfully</string>
</resources> </resources>