From 7c7ed3b314c1beebbaf1523d5298f1d76e8f6ade Mon Sep 17 00:00:00 2001 From: Mariya Date: Tue, 19 Dec 2023 13:38:31 +0530 Subject: [PATCH] CSV FILE CREATED- for complete offline mode --- .../data/datasource/LocalFileDataSource.kt | 8 ++-- .../ui/fragments/UserListFragment.kt | 40 +++++++++++++------ .../registration/AbhaRegistrationFragment.kt | 4 ++ .../ReviewDetailsRegistrationFragment.kt | 9 ++++- .../UserDetailsRegistrationFragment.kt | 9 ++++- .../ui/viewmodels/RegistrationViewModel.kt | 6 ++- app/src/main/res/values/strings.xml | 3 +- 7 files changed, 55 insertions(+), 24 deletions(-) diff --git a/app/src/main/java/com/example/hposregistration/data/datasource/LocalFileDataSource.kt b/app/src/main/java/com/example/hposregistration/data/datasource/LocalFileDataSource.kt index 33f7006..7cfa12b 100644 --- a/app/src/main/java/com/example/hposregistration/data/datasource/LocalFileDataSource.kt +++ b/app/src/main/java/com/example/hposregistration/data/datasource/LocalFileDataSource.kt @@ -60,10 +60,10 @@ class LocalFileDataSource { "isUnderMedication", "isUnderTransfusion", "sickleCellHistory", - "userImageURL", "registeredBy", "createdAt", - "registrationCenterName" + "registrationCenterName", + "userImageURL" ) csvWriter.writeNext(header) @@ -95,10 +95,10 @@ class LocalFileDataSource { data.isUnderMedication?.toString() ?: "", data.isUnderTransfusion?.toString() ?: "", data.sickleCellHistory ?: "", - data.userImageURL, data.registeredBy ?: "", data.createdAt ?: "", - data.registrationCenterName ?: "" + data.registrationCenterName ?: "", + data.userImageURL ) csvWriter.writeNext(row) diff --git a/app/src/main/java/com/example/hposregistration/ui/fragments/UserListFragment.kt b/app/src/main/java/com/example/hposregistration/ui/fragments/UserListFragment.kt index 37ecf93..03ff8e0 100644 --- a/app/src/main/java/com/example/hposregistration/ui/fragments/UserListFragment.kt +++ b/app/src/main/java/com/example/hposregistration/ui/fragments/UserListFragment.kt @@ -235,27 +235,41 @@ class UserListFragment : BaseFragment() { private fun downloadLocalDBData(dialog: DialogInterface) { + var csvDownloaded = false viewModel.allUserData.observe(viewLifecycleOwner) { userDataList -> try { - val downloadList = mutableListOf() + if (!csvDownloaded) { - userDataList.forEach { userData -> - Log.d("DownloadDebug", "userData: $userData, isCSVCreated: ${userData.isCSVCreated}") - if (!userData.isCSVCreated) { + val downloadList = mutableListOf() + + userDataList.forEach { userData -> + Log.d( + "DownloadDebug", + "userData: $userData, isCSVCreated: ${userData.isCSVCreated}" + ) +// if (!userData.isCSVCreated) { +// userData.isCSVCreated = false downloadList.add(userData) +// } } - } - // Log the size of downloadList for debugging - Log.d("DownloadDebug", "downloadList size: ${downloadList.size}") + // Log the size of downloadList for debugging + Log.d("DownloadDebug", "downloadList size: ${downloadList.size}") - if (downloadList.isNotEmpty()) { - // Call ViewModel function to create CSV with filtered data - viewModel.createCSV(downloadList, requireContext()) - Toast.makeText(requireContext(), "CSV file downloaded successfully", Toast.LENGTH_SHORT).show() - } else { - Toast.makeText(requireContext(), "No data to download", Toast.LENGTH_SHORT).show() + if (downloadList.isNotEmpty()) { + // Call ViewModel function to create CSV with filtered data + viewModel.createCSV(downloadList, requireContext()) + csvDownloaded = true + Toast.makeText( + requireContext(), + "CSV file downloaded successfully", + Toast.LENGTH_SHORT + ).show() + } else { + Toast.makeText(requireContext(), "No data to download", Toast.LENGTH_SHORT) + .show() + } } } catch (e: Exception) { e.printStackTrace() diff --git a/app/src/main/java/com/example/hposregistration/ui/fragments/registration/AbhaRegistrationFragment.kt b/app/src/main/java/com/example/hposregistration/ui/fragments/registration/AbhaRegistrationFragment.kt index 5f91124..92c8cbd 100644 --- a/app/src/main/java/com/example/hposregistration/ui/fragments/registration/AbhaRegistrationFragment.kt +++ b/app/src/main/java/com/example/hposregistration/ui/fragments/registration/AbhaRegistrationFragment.kt @@ -20,6 +20,9 @@ import dagger.hilt.android.AndroidEntryPoint import `in`.sminnovations.hposregistration.R import `in`.sminnovations.hposregistration.databinding.FragmentAbhaRegistrationBinding import org.json.JSONObject +import java.text.SimpleDateFormat +import java.util.Calendar +import java.util.Locale @AndroidEntryPoint class AbhaRegistrationFragment : BaseFragment() { @@ -93,6 +96,7 @@ class AbhaRegistrationFragment : BaseFragment() { navigateToUserDetailsFragment(userData._id) } + } } diff --git a/app/src/main/java/com/example/hposregistration/ui/fragments/registration/ReviewDetailsRegistrationFragment.kt b/app/src/main/java/com/example/hposregistration/ui/fragments/registration/ReviewDetailsRegistrationFragment.kt index 3e78aac..67022ff 100644 --- a/app/src/main/java/com/example/hposregistration/ui/fragments/registration/ReviewDetailsRegistrationFragment.kt +++ b/app/src/main/java/com/example/hposregistration/ui/fragments/registration/ReviewDetailsRegistrationFragment.kt @@ -66,14 +66,14 @@ class ReviewDetailsRegistrationFragment : BaseFragment() { // addDataToFirebase() Toast.makeText( requireContext(), - R.string.internt_not_local, + R.string.local, Toast.LENGTH_SHORT ).show() navigateToUserListFragment() } else { Toast.makeText( requireContext(), - R.string.internt_not_local, + R.string.local, Toast.LENGTH_SHORT ).show() navigateToUserListFragment() @@ -183,6 +183,11 @@ class ReviewDetailsRegistrationFragment : BaseFragment() { val version = pInfo.versionName userData.appVersion = version + userData.createdAt = SimpleDateFormat( + "yyyy-MM-dd HH:mm:ss", Locale.getDefault() + ).format(Calendar.getInstance().time) + + } } diff --git a/app/src/main/java/com/example/hposregistration/ui/fragments/registration/UserDetailsRegistrationFragment.kt b/app/src/main/java/com/example/hposregistration/ui/fragments/registration/UserDetailsRegistrationFragment.kt index 4b03516..e2452f5 100644 --- a/app/src/main/java/com/example/hposregistration/ui/fragments/registration/UserDetailsRegistrationFragment.kt +++ b/app/src/main/java/com/example/hposregistration/ui/fragments/registration/UserDetailsRegistrationFragment.kt @@ -15,6 +15,9 @@ import com.example.hposregistration.ui.viewmodels.RegistrationViewModel import dagger.hilt.android.AndroidEntryPoint import `in`.sminnovations.hposregistration.R import `in`.sminnovations.hposregistration.databinding.FragmentUserDetailsRegistrationBinding +import java.text.SimpleDateFormat +import java.util.Calendar +import java.util.Locale @AndroidEntryPoint @@ -333,10 +336,12 @@ class UserDetailsRegistrationFragment : Fragment() { } + userData.createdAt = SimpleDateFormat( + "yyyy-MM-dd HH:mm:ss", Locale.getDefault() + ).format(Calendar.getInstance().time) + return true - - } } diff --git a/app/src/main/java/com/example/hposregistration/ui/viewmodels/RegistrationViewModel.kt b/app/src/main/java/com/example/hposregistration/ui/viewmodels/RegistrationViewModel.kt index b47f2a3..42f6f2d 100644 --- a/app/src/main/java/com/example/hposregistration/ui/viewmodels/RegistrationViewModel.kt +++ b/app/src/main/java/com/example/hposregistration/ui/viewmodels/RegistrationViewModel.kt @@ -2,6 +2,7 @@ package com.example.hposregistration.ui.viewmodels import android.content.Context import android.net.Uri +import android.util.Log import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData import androidx.lifecycle.ViewModel @@ -89,8 +90,9 @@ class RegistrationViewModel @Inject constructor( data.localFlag = true mainRepository.updateCSVFieldById( data._id, - true - ) + true) +// data.isCSVCreated = false + Log.d("DownloadDebugcsv", "Setting isCSVCreated to false for ${data._id}") } } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9272a1e..ecad9a8 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -60,7 +60,7 @@ Mobile Number Edit User Details - Internet is not available and there is no Data available in Local DB + there is no Data available in Local DB User ID: %1$s Abha Number: %1$s Aadhar Number: %1$s @@ -104,6 +104,7 @@ Center name can\'t be empty or less than 3 characters Registration Done Successfully Internet not available, test details stored locally + test details stored locally Please enter all the details properly Please enter a valid birth year between 1900 and 2023 Please fill the field