Merge branch 'Homocube' of https://gitlab.com/sminnovations/hpos into Homocube
This commit is contained in:
@@ -43,7 +43,14 @@ class UserListAdapter(
|
||||
btnStartIncubation.visibility = View.VISIBLE
|
||||
} else {
|
||||
userId.text =
|
||||
"User ID:${model._id} \n Time: ${isBetween15And30Minutes(model.incubationTime)}"
|
||||
"User ID:${model._id} \n Time: ${isBetween15And30Minutes(model.incubationTime)} \n Started at: ${
|
||||
SimpleDateFormat("HH:mm:ss").format(
|
||||
SimpleDateFormat(
|
||||
"yyyy-MM-dd HH:mm:ss",
|
||||
Locale.getDefault()
|
||||
).parse(model.incubationTime)!!
|
||||
)
|
||||
}"
|
||||
btnStartIncubation.visibility = View.GONE
|
||||
}
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@ import android.view.ViewGroup
|
||||
import android.widget.Toast
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.activityViewModels
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import com.example.hpostesting.data.DataHolder
|
||||
import com.example.hpostesting.data.constant.Constants
|
||||
@@ -22,12 +23,14 @@ import com.example.hpostesting.presentation.adapter.UserListAdapter
|
||||
import com.example.hpostesting.presentation.hemocube.HemoCubeViewModel
|
||||
import com.example.hpostesting.presentation.testRight.TestRightViewModel
|
||||
import com.firebase.ui.firestore.FirestoreRecyclerOptions
|
||||
import com.google.firebase.crashlytics.ktx.crashlytics
|
||||
import com.google.firebase.firestore.Query
|
||||
import com.google.firebase.firestore.ktx.firestore
|
||||
import com.google.firebase.ktx.Firebase
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import `in`.sminnovations.hpostesting.R
|
||||
import `in`.sminnovations.hpostesting.databinding.FragmentHomeBinding
|
||||
import kotlinx.coroutines.launch
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.Date
|
||||
import java.util.Locale
|
||||
@@ -52,11 +55,13 @@ class HomeFragment : Fragment() {
|
||||
return super.onCreateView(inflater, container, savedInstanceState)
|
||||
}
|
||||
|
||||
sharedPreference = requireContext().getSharedPreferences("PREFERENCE_NAME", Context.MODE_PRIVATE)
|
||||
sharedPreference =
|
||||
requireContext().getSharedPreferences("PREFERENCE_NAME", Context.MODE_PRIVATE)
|
||||
DataHolder.selectedTest = null
|
||||
|
||||
return binding.root
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
viewModel.allUserData.observe(viewLifecycleOwner) { userData ->
|
||||
@@ -78,6 +83,14 @@ class HomeFragment : Fragment() {
|
||||
setUserId()
|
||||
}
|
||||
}
|
||||
hemoCubeViewModel.fireBaseBulkUpload.observe(viewLifecycleOwner) { result ->
|
||||
if (result == "Success") {
|
||||
Toast.makeText(requireContext(), "Test Results Uploaded Successfully", Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
if (result == "Error") {
|
||||
Toast.makeText(requireContext(), "Test Results Upload Failed", Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
}
|
||||
binding.btnLogout.setOnClickListener {
|
||||
logoutUser(requireContext())
|
||||
}
|
||||
@@ -94,6 +107,7 @@ class HomeFragment : Fragment() {
|
||||
requireActivity().finish()
|
||||
}
|
||||
}
|
||||
|
||||
private fun setUserId() {
|
||||
binding.btnSubmit.setOnClickListener {
|
||||
val userId = binding.userId.text.toString()
|
||||
@@ -108,6 +122,7 @@ class HomeFragment : Fragment() {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun loadUserData() {
|
||||
try {
|
||||
val dateFormat = SimpleDateFormat("yyyy-MM-dd")
|
||||
@@ -134,12 +149,14 @@ class HomeFragment : Fragment() {
|
||||
Firebase.crashlytics.recordException(e)
|
||||
}
|
||||
}
|
||||
|
||||
private fun saveUserId(userId: String) {
|
||||
with(sharedPreference.edit()) {
|
||||
putString(Constants.USER_ID, userId)
|
||||
apply()
|
||||
}
|
||||
}
|
||||
|
||||
private fun logoutUser(context: Context) {
|
||||
val builder = AlertDialog.Builder(context)
|
||||
builder.setTitle("Log Out")
|
||||
@@ -156,6 +173,7 @@ class HomeFragment : Fragment() {
|
||||
val dialog = builder.create()
|
||||
dialog.show()
|
||||
}
|
||||
|
||||
private fun getData(search: String?, field: String) {
|
||||
search?.replaceFirstChar {
|
||||
if (search.lowercase()
|
||||
@@ -172,6 +190,7 @@ class HomeFragment : Fragment() {
|
||||
binding.rvOrder.adapter = rvAdapter
|
||||
rvAdapter.startListening()
|
||||
}
|
||||
|
||||
private fun setSearch() {
|
||||
binding.searchProduct.setOnQueryTextListener(object :
|
||||
androidx.appcompat.widget.SearchView.OnQueryTextListener {
|
||||
@@ -192,6 +211,7 @@ class HomeFragment : Fragment() {
|
||||
false
|
||||
}
|
||||
}
|
||||
|
||||
override fun onQueryTextChange(query: String?): Boolean {
|
||||
return if (!query.isNullOrEmpty()) {
|
||||
val field = when {
|
||||
@@ -209,6 +229,7 @@ class HomeFragment : Fragment() {
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
private fun checkForLocalDBData() {
|
||||
viewModel.allUserData.observe(viewLifecycleOwner) { userDataList ->
|
||||
val uploadDataVisibility = if (userDataList.isEmpty()) View.GONE else View.VISIBLE
|
||||
@@ -220,6 +241,7 @@ class HomeFragment : Fragment() {
|
||||
binding.uploadData.visibility = uploadDataVisibility
|
||||
}
|
||||
}
|
||||
|
||||
private fun showUploadDialog(context: Context) {
|
||||
val builder = AlertDialog.Builder(context)
|
||||
builder.setTitle(R.string.upload_db_registration_title)
|
||||
@@ -248,9 +270,7 @@ class HomeFragment : Fragment() {
|
||||
}
|
||||
dialog.dismiss()
|
||||
Toast.makeText(
|
||||
requireContext(),
|
||||
R.string.upload_success_message,
|
||||
Toast.LENGTH_SHORT
|
||||
requireContext(), R.string.upload_success_message, Toast.LENGTH_SHORT
|
||||
).show()
|
||||
}
|
||||
}
|
||||
@@ -264,11 +284,6 @@ class HomeFragment : Fragment() {
|
||||
hemoCubeViewModel.bulkAddResultTestToDb(userData)
|
||||
}
|
||||
dialog.dismiss()
|
||||
Toast.makeText(
|
||||
requireContext(),
|
||||
R.string.upload_success_message,
|
||||
Toast.LENGTH_SHORT
|
||||
).show()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -67,7 +67,12 @@ class HemoCubeFragment : Fragment() {
|
||||
if (bloodGroupText.isEmpty()) {
|
||||
binding.etBloodGroup.error = "Please enter your blood group"
|
||||
} else {
|
||||
fetchResult()
|
||||
activity?.runOnUiThread {
|
||||
binding.progressBar.visibility = View.VISIBLE
|
||||
}
|
||||
hemoCubeViewModel.uploadHemoCubeResultToDatabase(
|
||||
isOnline, true, sharedPreferences.getString(Constants.KIT_NUMBER, "")
|
||||
)
|
||||
}
|
||||
}
|
||||
if (isTestOngoing) {
|
||||
@@ -287,6 +292,7 @@ class HemoCubeFragment : Fragment() {
|
||||
binding.btnSubmit.isEnabled = true
|
||||
binding.btnSubmit.isClickable = true
|
||||
}
|
||||
fetchResult()
|
||||
}
|
||||
|
||||
stringData.contains("RESULT") || resultData.contains("REND") -> {
|
||||
@@ -429,7 +435,7 @@ class HemoCubeFragment : Fragment() {
|
||||
activity?.runOnUiThread {
|
||||
binding.tvName.visibility = View.VISIBLE
|
||||
}
|
||||
binding.tvName.text = this.name
|
||||
binding.tvName.text = "Name: ${this.name}\n ID: ${this._id}"
|
||||
deviceId = deviceSerialNo
|
||||
led1Buffer = led1BufferForDevice
|
||||
led2Buffer = led2BufferForDevice
|
||||
@@ -450,12 +456,6 @@ class HemoCubeFragment : Fragment() {
|
||||
apply()
|
||||
}
|
||||
}
|
||||
activity?.runOnUiThread {
|
||||
binding.progressBar.visibility = View.VISIBLE
|
||||
}
|
||||
hemoCubeViewModel.uploadHemoCubeResultToDatabase(
|
||||
isOnline, true, sharedPreferences.getString(Constants.KIT_NUMBER, "")
|
||||
)
|
||||
}
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
|
||||
@@ -44,6 +44,7 @@ class HemoCubeViewModel @Inject constructor(
|
||||
val networkStatusLiveData: LiveData<Boolean>
|
||||
get() = _networkStatusLiveData
|
||||
val fireBaseUpload = MutableLiveData<String>()
|
||||
val fireBaseBulkUpload = MutableLiveData<String>()
|
||||
fun uploadHemoCubeResultToDatabase(isOnline: Boolean, testStatus: Boolean, kitSerial: String?) =
|
||||
viewModelScope.launch {
|
||||
if (kitSerial != null) {
|
||||
@@ -132,11 +133,13 @@ class HemoCubeViewModel @Inject constructor(
|
||||
).format(Calendar.getInstance().time)
|
||||
when (repository.addTestToDatabase(userData)) {
|
||||
is Response.Success -> {
|
||||
fireBaseUpload.postValue("Success")
|
||||
fireBaseBulkUpload.postValue("Success")
|
||||
deleteById(userData._id)
|
||||
}
|
||||
|
||||
else -> {}
|
||||
else -> {
|
||||
fireBaseBulkUpload.postValue("Error")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user