From e764e69420dc0934497d26b83b9015b4e94427ee Mon Sep 17 00:00:00 2001 From: Mariya Date: Fri, 15 Dec 2023 21:02:00 +0530 Subject: [PATCH] CSV FILE CREATED --- .../example/hposregistration/dao/UserDao.kt | 5 +++++ .../hposregistration/data/MainRepository.kt | 4 ++++ .../data/datasource/LocalFileDataSource.kt | 18 ++++++++++----- .../ui/fragments/UserListFragment.kt | 22 ++++++++++--------- .../ReviewDetailsRegistrationFragment.kt | 10 +++++++-- .../ui/viewmodels/RegistrationViewModel.kt | 4 ++-- .../main/res/layout/fragment_user_list.xml | 14 +----------- app/src/main/res/values-hi/strings.xml | 4 ---- 8 files changed, 44 insertions(+), 37 deletions(-) diff --git a/app/src/main/java/com/example/hposregistration/dao/UserDao.kt b/app/src/main/java/com/example/hposregistration/dao/UserDao.kt index 3028322..98220ca 100644 --- a/app/src/main/java/com/example/hposregistration/dao/UserDao.kt +++ b/app/src/main/java/com/example/hposregistration/dao/UserDao.kt @@ -5,6 +5,7 @@ import androidx.room.Dao import androidx.room.Insert import androidx.room.OnConflictStrategy import androidx.room.Query +import androidx.room.Update import com.example.hposregistration.data.user.UserData @Dao @@ -23,4 +24,8 @@ interface UserDao { @Query("UPDATE user_table SET isCSVCreated = :newValue WHERE _id = :id") suspend fun updateCSVFieldById(id: String, newValue: Boolean) + + @Update + suspend fun updateUserData(userData: List) + } \ No newline at end of file diff --git a/app/src/main/java/com/example/hposregistration/data/MainRepository.kt b/app/src/main/java/com/example/hposregistration/data/MainRepository.kt index 7151662..cf63827 100644 --- a/app/src/main/java/com/example/hposregistration/data/MainRepository.kt +++ b/app/src/main/java/com/example/hposregistration/data/MainRepository.kt @@ -3,6 +3,8 @@ package com.example.hposregistration.data import androidx.lifecycle.LiveData import com.example.hposregistration.dao.UserDao import com.example.hposregistration.data.user.UserData +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.withContext import javax.inject.Inject import javax.inject.Singleton @@ -34,4 +36,6 @@ class MainRepository @Inject constructor( userDao.updateCSVFieldById(id, isCSVCreated) } + + } \ No newline at end of file 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 829bf9e..33f7006 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 @@ -1,6 +1,7 @@ package com.example.hpostesting.data.datasource import android.os.Environment +import android.util.Log import com.example.hposregistration.data.user.UserData import com.opencsv.CSVWriter @@ -29,7 +30,7 @@ class LocalFileDataSource { fileName: String, dataList: List ): Boolean { try { - val formattedFileName = fileName.replace(Regex("[^a-zA-Z0-9.-]"), "_") // Replace special characters with underscores + val formattedFileName = fileName.replace(Regex("[^a-zA-Z0-9.-]"), "_") val filePath = File(getExternalStorageDirectory(), formattedFileName) val writer = FileWriter(filePath) val csvWriter = CSVWriter(writer) @@ -106,19 +107,24 @@ class LocalFileDataSource { return true } catch (e: IOException) { e.printStackTrace() + Log.e("CSVExport", "Error exporting data to CSV: ${e.message}") return false } } private fun getExternalStorageDirectory(): File { - val folder = File(Environment.getExternalStorageDirectory(), "HPOSRegistration") + val directory = File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS), "HPOSRegistration") - if (!folder.exists()) { - folder.mkdirs() + if (!directory.exists()) { + if (!directory.mkdirs()) { + Log.e("CSVExport", "Error creating directory: ${directory.absolutePath}") + } } - - return folder + return directory } + + + } \ No newline at end of file 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 d660275..37ecf93 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 @@ -73,8 +73,9 @@ class UserListFragment : BaseFragment() { viewModel.networkStatusLiveData.observe(viewLifecycleOwner) { isNetworkAvailable -> if (isNetworkAvailable) { isOnline = isNetworkAvailable - fetchFromServer() - checkForLocalDBData() + fetchFromLocalDB() +// fetchFromServer() +// checkForLocalDBData() } else { isOnline = isNetworkAvailable fetchFromLocalDB() @@ -180,9 +181,9 @@ class UserListFragment : BaseFragment() { .whereGreaterThanOrEqualTo("createdAt", today) .orderBy("createdAt", Query.Direction.DESCENDING) query.get().addOnSuccessListener { - if (it.documents.isEmpty() && isOnline) { - binding.emptyRegistrations.visibility = View.VISIBLE - } +// if (it.documents.isEmpty() && isOnline) { +// binding.emptyRegistrations.visibility = View.VISIBLE +// } } val recyclerViewOptions = FirestoreRecyclerOptions.Builder().setQuery(query, UserData::class.java) @@ -214,10 +215,10 @@ class UserListFragment : BaseFragment() { private fun fetchFromLocalDB() { binding.uploadData.visibility = View.GONE viewModel.allUserData.observe(viewLifecycleOwner) { userDataList -> - if (isOnline) { - binding.noList.visibility = View.GONE - binding.rvOrder.visibility = View.VISIBLE - } else { +// if (isOnline) { +// binding.noList.visibility = View.GONE +// binding.rvOrder.visibility = View.VISIBLE +// } else { if (userDataList.isEmpty()) { binding.noList.visibility = View.VISIBLE binding.rvOrder.visibility = View.GONE @@ -229,7 +230,6 @@ class UserListFragment : BaseFragment() { adapter.differ.submitList(userDataList) binding.rvOrder.adapter = adapter } - } } } @@ -245,6 +245,8 @@ class UserListFragment : BaseFragment() { downloadList.add(userData) } } + + // Log the size of downloadList for debugging Log.d("DownloadDebug", "downloadList size: ${downloadList.size}") 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 ae2c5f1..3e78aac 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 @@ -62,8 +62,14 @@ class ReviewDetailsRegistrationFragment : BaseFragment() { binding.btnSubmit.setOnClickListener { if (isOnline) { - showProgressBar(binding.progressBarCL) - addDataToFirebase() +// showProgressBar(binding.progressBarCL) +// addDataToFirebase() + Toast.makeText( + requireContext(), + R.string.internt_not_local, + Toast.LENGTH_SHORT + ).show() + navigateToUserListFragment() } else { Toast.makeText( requireContext(), 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 e1fa3a9..b47f2a3 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 @@ -30,7 +30,7 @@ class RegistrationViewModel @Inject constructor( val userData = MutableLiveData() - val allUserData = mainRepository.allUsers + val allUserData = userdao.getAll() val fireBaseUpload = MutableLiveData() @@ -96,7 +96,7 @@ class RegistrationViewModel @Inject constructor( } private fun getCurrentDateTime(): String { - val dateFormat = SimpleDateFormat("dd-MM-yy HH:mm:ss", Locale.getDefault()) + val dateFormat = SimpleDateFormat("dd-MM-yy", Locale.getDefault()) val currentDateTime = Date() return dateFormat.format(currentDateTime) } diff --git a/app/src/main/res/layout/fragment_user_list.xml b/app/src/main/res/layout/fragment_user_list.xml index dcc6b44..3e1e7bf 100644 --- a/app/src/main/res/layout/fragment_user_list.xml +++ b/app/src/main/res/layout/fragment_user_list.xml @@ -34,19 +34,7 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> - + पिता / पति का नाम दर्ज करें क्या आप ऐप्लिकेशन से लॉग आउट करना चाहते हैं? लॉग आउट -<<<<<<< HEAD -======= स्थानीय डेटाबेस में कोई डेटा उपलब्ध नहीं है टेस्ट विवरण स्थानीय रूप से संग्रहित हैं ->>>>>>> parent of 5d42da8 (csv) - डीबी पंजीकरण अपलोड करें क्या आप स्थानीय डीबी को क्लाउड पर अपलोड करना चाहते हैं? अपलोड