diff --git a/app/src/main/java/com/example/hpostesting/data/dao/HemoCubeDao.kt b/app/src/main/java/com/example/hpostesting/data/dao/HemoCubeDao.kt index e4eee13..76a8ded 100644 --- a/app/src/main/java/com/example/hpostesting/data/dao/HemoCubeDao.kt +++ b/app/src/main/java/com/example/hpostesting/data/dao/HemoCubeDao.kt @@ -26,10 +26,10 @@ interface HemoCubeDao { @Query("SELECT * from hemo_cube_test_table") fun getAll(): LiveData> - @Query("SELECT * from hemo_cube_test_table WHERE molbioFlag=false") + @Query("SELECT * from hemo_cube_test_table WHERE molbioFlag=0") fun getMolbioPending(): List - @Query("SELECT * from hemo_cube_test_table WHERE localFlag=false") + @Query("SELECT * from hemo_cube_test_table WHERE localFlag=0") fun getFirebasePending():List @Insert(onConflict = OnConflictStrategy.REPLACE) diff --git a/app/src/main/java/com/example/hpostesting/presentation/dashboard/HomeFragment.kt b/app/src/main/java/com/example/hpostesting/presentation/dashboard/HomeFragment.kt index 57570af..fdef86a 100644 --- a/app/src/main/java/com/example/hpostesting/presentation/dashboard/HomeFragment.kt +++ b/app/src/main/java/com/example/hpostesting/presentation/dashboard/HomeFragment.kt @@ -148,6 +148,8 @@ class HomeFragment : Fragment() { userData.forEach { if (it.testStatus == false) { userList.add(it) + }else if(it.testStatus == true){ + userList.removeAll(userData) } } val bm = requireContext().getSystemService(BATTERY_SERVICE) as BatteryManager @@ -272,27 +274,28 @@ class HomeFragment : Fragment() { binding.uploadData.setOnClickListener { // showUploadDialog(requireContext()) } -// hemoCubeViewModel.allUserData.observe(viewLifecycleOwner) { userData -> -// -// val btnSaveLocalVisibility = -// if (userData.any { it.testStatus == true }) View.GONE else View.GONE -// -// binding.downloadCSV.visibility = btnSaveLocalVisibility -// -// binding.downloadCSV.setOnClickListener { -// if (btnSaveLocalVisibility == View.VISIBLE) { -// // Execute the action when the button is visible (testStatus is true for at least one user) -// showDownloadDialog(requireContext()) -// } else { -// // Handle the case when the button is not visible -// Toast.makeText( -// requireContext(), -// "No test details stored locally", -// Toast.LENGTH_SHORT -// ).show() -// } -// } -// } + hemoCubeViewModel.allUserData.observe(viewLifecycleOwner) { userData -> + if (sharedPreference.getString(Constants.USER_ID, "").toString() == "ADMIN") { + val btnSaveLocalVisibility = + if (userData.any { it.testStatus == true }) View.VISIBLE else View.GONE + binding.downloadCSV.visibility = btnSaveLocalVisibility + binding.downloadCSV.setOnClickListener { + if (btnSaveLocalVisibility == View.VISIBLE) { + // Execute the action when the button is visible (testStatus is true for at least one user) + showDownloadDialog(requireContext()) + } else { + // Handle the case when the button is not visible + Toast.makeText( + requireContext(), + "No test details stored locally", + Toast.LENGTH_SHORT + ).show() + } + } + }else{ + binding.downloadCSV.visibility = View.GONE + } + } binding.btnNewKit.setOnClickListener { @@ -949,11 +952,15 @@ class HomeFragment : Fragment() { } private fun checkUnprocessedCSVData() { -// hemoCubeViewModel.allUserData.observe(viewLifecycleOwner) { userDataList -> -// val downloadDataVisibility = -// if (userDataList.any { !it.isCSVCreated && it.testStatus == true }) View.GONE else View.GONE -// binding.downloadCSV.visibility = downloadDataVisibility -// } + hemoCubeViewModel.allUserData.observe(viewLifecycleOwner) { userDataList -> + if (sharedPreference.getString(Constants.USER_ID, "").toString() == "ADMIN") { + val downloadDataVisibility = + if (userDataList.any { !it.isCSVCreated && it.testStatus == true }) View.VISIBLE else View.GONE + binding.downloadCSV.visibility = downloadDataVisibility + }else{ + binding.downloadCSV.visibility = View.GONE + } + } } private fun sanitizeDoubleValues(hemoCubeTestData: HemoCubeTestData): HemoCubeTestData { @@ -987,22 +994,22 @@ class HomeFragment : Fragment() { dialog.show() } -// private fun showDownloadDialog(context: Context) { -// val builder = AlertDialog.Builder(context) -// builder.setTitle(R.string.download_db_registration_title) -// builder.setMessage(R.string.download_db_registration_message) -// -// builder.setPositiveButton(R.string.downloadcsv) { dialog, _ -> -// downloadLocalDBData(dialog) -// } -// -// builder.setNegativeButton(R.string.cancel) { dialog, _ -> -// dialog.dismiss() -// } -// -// val dialog = builder.create() -// dialog.show() -// } + private fun showDownloadDialog(context: Context) { + val builder = AlertDialog.Builder(context) + builder.setTitle(R.string.download_db_registration_title) + builder.setMessage(R.string.download_db_registration_message) + + builder.setPositiveButton(R.string.downloadcsv) { dialog, _ -> + downloadLocalDBData(dialog) + } + + builder.setNegativeButton(R.string.cancel) { dialog, _ -> + dialog.dismiss() + } + + val dialog = builder.create() + dialog.show() + } private fun uploadLocalDBData(dialog: DialogInterface) { // viewModel.allUserData.observe(viewLifecycleOwner) { userDataList -> @@ -1064,27 +1071,27 @@ class HomeFragment : Fragment() { } } -// private fun downloadLocalDBData(dialog: DialogInterface) { -// hemoCubeViewModel.allUserData.observe(viewLifecycleOwner) { userDataList -> -// val downloadList = mutableListOf() -// -// userDataList.forEach { userData -> -// if (!userData.isCSVCreated) { -// downloadList.add(userData) // Add the userData to downloadList -// } -// } -// -// if (downloadList.isNotEmpty()) { -// // Call ViewModel function to create CSV with filtered data -// hemoCubeViewModel.createCSV(downloadList, requireContext()) -// Toast.makeText(requireContext(), "Done", Toast.LENGTH_SHORT).show() -// } else { -// Toast.makeText(requireContext(), "Failed", Toast.LENGTH_SHORT).show() -// } -// -// dialog.dismiss() -// } -// } + private fun downloadLocalDBData(dialog: DialogInterface) { + hemoCubeViewModel.allUserData.observe(viewLifecycleOwner) { userDataList -> + val downloadList = mutableListOf() + + userDataList.forEach { userData -> + if (!userData.isCSVCreated) { + downloadList.add(userData) // Add the userData to downloadList + } + } + + if (downloadList.isNotEmpty()) { + // Call ViewModel function to create CSV with filtered data + hemoCubeViewModel.createCSV(downloadList, requireContext()) + Toast.makeText(requireContext(), "Done", Toast.LENGTH_SHORT).show() + } else { + Toast.makeText(requireContext(), "", Toast.LENGTH_SHORT).show() + } + + dialog.dismiss() + } + } private fun deleteIncompleteRegistrations(userDataList: List) { userDataList.forEach { userData -> @@ -1120,22 +1127,22 @@ class HomeFragment : Fragment() { } } - private fun showDownloadDialog(context: Context) { - val builder = AlertDialog.Builder(context) - builder.setTitle(R.string.download_db_registration_title) - builder.setMessage(R.string.download_db_registration_message) - - builder.setPositiveButton(R.string.downloadcsv) { dialog, _ -> -// downloadLocalDBData(dialog) - } - - builder.setNegativeButton(R.string.cancel) { dialog, _ -> - dialog.dismiss() - } - - val dialog = builder.create() - dialog.show() - } +// private fun showDownloadDialog(context: Context) { +// val builder = AlertDialog.Builder(context) +// builder.setTitle(R.string.download_db_registration_title) +// builder.setMessage(R.string.download_db_registration_message) +// +// builder.setPositiveButton(R.string.downloadcsv) { dialog, _ -> +//// downloadLocalDBData(dialog) +// } +// +// builder.setNegativeButton(R.string.cancel) { dialog, _ -> +// dialog.dismiss() +// } +// +// val dialog = builder.create() +// dialog.show() +// } // private fun downloadLocalDBData(dialog: DialogInterface) { // var csvDownloaded = false