added different id and set as primary key for testing twice with same sample Id and uploading the result, offline ,issue fixed, and set ADMIN as user that can only download and export CSV file, for collecting user Data
This commit is contained in:
@@ -5,6 +5,7 @@ import androidx.room.Dao
|
|||||||
import androidx.room.Insert
|
import androidx.room.Insert
|
||||||
import androidx.room.OnConflictStrategy
|
import androidx.room.OnConflictStrategy
|
||||||
import androidx.room.Query
|
import androidx.room.Query
|
||||||
|
import androidx.room.Update
|
||||||
import com.example.hpostesting.data.model.patient.HemoCubeTestData
|
import com.example.hpostesting.data.model.patient.HemoCubeTestData
|
||||||
import com.example.hpostesting.data.model.patient.UserData
|
import com.example.hpostesting.data.model.patient.UserData
|
||||||
@Dao
|
@Dao
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import com.example.hpostesting.data.model.patient.UserData
|
|||||||
|
|
||||||
@Database(
|
@Database(
|
||||||
entities = [UserData::class, HemoCubeTestData::class, DeviceData::class, BufferCheckData::class],
|
entities = [UserData::class, HemoCubeTestData::class, DeviceData::class, BufferCheckData::class],
|
||||||
version = 28,
|
version = 29,
|
||||||
exportSchema = false
|
exportSchema = false
|
||||||
)
|
)
|
||||||
@TypeConverters(Converters::class)
|
@TypeConverters(Converters::class)
|
||||||
|
|||||||
@@ -89,8 +89,9 @@ class LocalFileDataSourceImpl @Inject constructor() : LocalFileDataSource {
|
|||||||
)
|
)
|
||||||
csvWriter.writeNext(header)
|
csvWriter.writeNext(header)
|
||||||
|
|
||||||
// Write data rows
|
// Filter and write data rows where testStatus is true
|
||||||
for (data in dataList) {
|
val filteredDataList = dataList.filter { it.testStatus == true }
|
||||||
|
for (data in filteredDataList) {
|
||||||
val row = arrayOf(
|
val row = arrayOf(
|
||||||
data._id,
|
data._id,
|
||||||
data.name,
|
data.name,
|
||||||
|
|||||||
@@ -5,7 +5,8 @@ import androidx.room.PrimaryKey
|
|||||||
|
|
||||||
@Entity(tableName = "hemo_cube_test_table")
|
@Entity(tableName = "hemo_cube_test_table")
|
||||||
data class HemoCubeTestData(
|
data class HemoCubeTestData(
|
||||||
@PrimaryKey
|
@PrimaryKey(autoGenerate = true)
|
||||||
|
var sampleid: Int = 0,
|
||||||
var _id: String = "",
|
var _id: String = "",
|
||||||
var name: String = "",
|
var name: String = "",
|
||||||
var incubationTime: String = "",
|
var incubationTime: String = "",
|
||||||
|
|||||||
@@ -122,6 +122,8 @@ class HomeFragment : Fragment() {
|
|||||||
userData.forEach {
|
userData.forEach {
|
||||||
if (it.testStatus == false) {
|
if (it.testStatus == false) {
|
||||||
userList.add(it)
|
userList.add(it)
|
||||||
|
}else if(it.testStatus == true){
|
||||||
|
userList.removeAll(userData)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
val bm = requireContext().getSystemService(BATTERY_SERVICE) as BatteryManager
|
val bm = requireContext().getSystemService(BATTERY_SERVICE) as BatteryManager
|
||||||
@@ -244,27 +246,28 @@ class HomeFragment : Fragment() {
|
|||||||
binding.uploadData.setOnClickListener {
|
binding.uploadData.setOnClickListener {
|
||||||
// showUploadDialog(requireContext())
|
// showUploadDialog(requireContext())
|
||||||
}
|
}
|
||||||
// hemoCubeViewModel.allUserData.observe(viewLifecycleOwner) { userData ->
|
hemoCubeViewModel.allUserData.observe(viewLifecycleOwner) { userData ->
|
||||||
//
|
if (sharedPreference.getString(Constants.USER_ID, "").toString() == "ADMIN") {
|
||||||
// val btnSaveLocalVisibility =
|
val btnSaveLocalVisibility =
|
||||||
// if (userData.any { it.testStatus == true }) View.GONE else View.GONE
|
if (userData.any { it.testStatus == true }) View.VISIBLE else View.GONE
|
||||||
//
|
binding.downloadCSV.visibility = btnSaveLocalVisibility
|
||||||
// binding.downloadCSV.visibility = btnSaveLocalVisibility
|
binding.downloadCSV.setOnClickListener {
|
||||||
//
|
if (btnSaveLocalVisibility == View.VISIBLE) {
|
||||||
// binding.downloadCSV.setOnClickListener {
|
// Execute the action when the button is visible (testStatus is true for at least one user)
|
||||||
// if (btnSaveLocalVisibility == View.VISIBLE) {
|
showDownloadDialog(requireContext())
|
||||||
// // Execute the action when the button is visible (testStatus is true for at least one user)
|
} else {
|
||||||
// showDownloadDialog(requireContext())
|
// Handle the case when the button is not visible
|
||||||
// } else {
|
Toast.makeText(
|
||||||
// // Handle the case when the button is not visible
|
requireContext(),
|
||||||
// Toast.makeText(
|
"No test details stored locally",
|
||||||
// requireContext(),
|
Toast.LENGTH_SHORT
|
||||||
// "No test details stored locally",
|
).show()
|
||||||
// Toast.LENGTH_SHORT
|
}
|
||||||
// ).show()
|
}
|
||||||
// }
|
}else{
|
||||||
// }
|
binding.downloadCSV.visibility = View.GONE
|
||||||
// }
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
binding.btnNewKit.setOnClickListener {
|
binding.btnNewKit.setOnClickListener {
|
||||||
@@ -881,11 +884,15 @@ class HomeFragment : Fragment() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun checkUnprocessedCSVData() {
|
private fun checkUnprocessedCSVData() {
|
||||||
// hemoCubeViewModel.allUserData.observe(viewLifecycleOwner) { userDataList ->
|
hemoCubeViewModel.allUserData.observe(viewLifecycleOwner) { userDataList ->
|
||||||
// val downloadDataVisibility =
|
if (sharedPreference.getString(Constants.USER_ID, "").toString() == "ADMIN") {
|
||||||
// if (userDataList.any { !it.isCSVCreated && it.testStatus == true }) View.GONE else View.GONE
|
val downloadDataVisibility =
|
||||||
// binding.downloadCSV.visibility = 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 {
|
private fun sanitizeDoubleValues(hemoCubeTestData: HemoCubeTestData): HemoCubeTestData {
|
||||||
@@ -920,22 +927,22 @@ class HomeFragment : Fragment() {
|
|||||||
dialog.show()
|
dialog.show()
|
||||||
}
|
}
|
||||||
|
|
||||||
// private fun showDownloadDialog(context: Context) {
|
private fun showDownloadDialog(context: Context) {
|
||||||
// val builder = AlertDialog.Builder(context)
|
val builder = AlertDialog.Builder(context)
|
||||||
// builder.setTitle(R.string.download_db_registration_title)
|
builder.setTitle(R.string.download_db_registration_title)
|
||||||
// builder.setMessage(R.string.download_db_registration_message)
|
builder.setMessage(R.string.download_db_registration_message)
|
||||||
//
|
|
||||||
// builder.setPositiveButton(R.string.downloadcsv) { dialog, _ ->
|
builder.setPositiveButton(R.string.downloadcsv) { dialog, _ ->
|
||||||
// downloadLocalDBData(dialog)
|
downloadLocalDBData(dialog)
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// builder.setNegativeButton(R.string.cancel) { dialog, _ ->
|
builder.setNegativeButton(R.string.cancel) { dialog, _ ->
|
||||||
// dialog.dismiss()
|
dialog.dismiss()
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// val dialog = builder.create()
|
val dialog = builder.create()
|
||||||
// dialog.show()
|
dialog.show()
|
||||||
// }
|
}
|
||||||
|
|
||||||
private fun uploadLocalDBData(dialog: DialogInterface) {
|
private fun uploadLocalDBData(dialog: DialogInterface) {
|
||||||
// viewModel.allUserData.observe(viewLifecycleOwner) { userDataList ->
|
// viewModel.allUserData.observe(viewLifecycleOwner) { userDataList ->
|
||||||
@@ -997,27 +1004,25 @@ class HomeFragment : Fragment() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// private fun downloadLocalDBData(dialog: DialogInterface) {
|
private fun downloadLocalDBData(dialog: DialogInterface) {
|
||||||
// hemoCubeViewModel.allUserData.observe(viewLifecycleOwner) { userDataList ->
|
hemoCubeViewModel.allUserData.observe(viewLifecycleOwner) { userDataList ->
|
||||||
// val downloadList = mutableListOf<HemoCubeTestData>()
|
val downloadList = mutableListOf<HemoCubeTestData>()
|
||||||
//
|
|
||||||
// userDataList.forEach { userData ->
|
userDataList.forEach { userData ->
|
||||||
// if (!userData.isCSVCreated) {
|
if (!userData.isCSVCreated) {
|
||||||
// downloadList.add(userData) // Add the userData to downloadList
|
downloadList.add(userData) // Add the userData to downloadList
|
||||||
// }
|
}
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// if (downloadList.isNotEmpty()) {
|
if (downloadList.isNotEmpty()) {
|
||||||
// // Call ViewModel function to create CSV with filtered data
|
// Call ViewModel function to create CSV with filtered data
|
||||||
// hemoCubeViewModel.createCSV(downloadList, requireContext())
|
hemoCubeViewModel.createCSV(downloadList, requireContext())
|
||||||
// Toast.makeText(requireContext(), "Done", Toast.LENGTH_SHORT).show()
|
Toast.makeText(requireContext(), "Done", Toast.LENGTH_SHORT).show()
|
||||||
// } else {
|
}
|
||||||
// Toast.makeText(requireContext(), "Failed", Toast.LENGTH_SHORT).show()
|
|
||||||
// }
|
dialog.dismiss()
|
||||||
//
|
}
|
||||||
// dialog.dismiss()
|
}
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
private fun deleteIncompleteRegistrations(userDataList: List<UserData>) {
|
private fun deleteIncompleteRegistrations(userDataList: List<UserData>) {
|
||||||
userDataList.forEach { userData ->
|
userDataList.forEach { userData ->
|
||||||
@@ -1053,22 +1058,22 @@ class HomeFragment : Fragment() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun showDownloadDialog(context: Context) {
|
// private fun showDownloadDialog(context: Context) {
|
||||||
val builder = AlertDialog.Builder(context)
|
// val builder = AlertDialog.Builder(context)
|
||||||
builder.setTitle(R.string.download_db_registration_title)
|
// builder.setTitle(R.string.download_db_registration_title)
|
||||||
builder.setMessage(R.string.download_db_registration_message)
|
// builder.setMessage(R.string.download_db_registration_message)
|
||||||
|
//
|
||||||
builder.setPositiveButton(R.string.downloadcsv) { dialog, _ ->
|
// builder.setPositiveButton(R.string.downloadcsv) { dialog, _ ->
|
||||||
// downloadLocalDBData(dialog)
|
// downloadLocalDBData(dialog)
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
builder.setNegativeButton(R.string.cancel) { dialog, _ ->
|
// builder.setNegativeButton(R.string.cancel) { dialog, _ ->
|
||||||
dialog.dismiss()
|
// dialog.dismiss()
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
val dialog = builder.create()
|
// val dialog = builder.create()
|
||||||
dialog.show()
|
// dialog.show()
|
||||||
}
|
// }
|
||||||
|
|
||||||
// private fun downloadLocalDBData(dialog: DialogInterface) {
|
// private fun downloadLocalDBData(dialog: DialogInterface) {
|
||||||
// var csvDownloaded = false
|
// var csvDownloaded = false
|
||||||
|
|||||||
Reference in New Issue
Block a user