From eec8867ddc33262807b03893c0c696e657f7fcab Mon Sep 17 00:00:00 2001 From: Pritimay Sarkar Date: Mon, 23 Oct 2023 02:20:39 +0530 Subject: [PATCH] show only current day registrations - reduce database reads by fetching only current day registrations - sort users list in latest first order --- .../ui/fragments/UserListFragment.kt | 16 +++++++++++++++- app/src/main/res/layout/fragment_user_list.xml | 14 ++++++++++++++ app/src/main/res/values/strings.xml | 1 + 3 files changed, 30 insertions(+), 1 deletion(-) 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 ea1f623..c30f743 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 @@ -8,7 +8,6 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import android.widget.Button import android.widget.Toast import androidx.fragment.app.viewModels import androidx.navigation.fragment.findNavController @@ -18,11 +17,14 @@ import com.example.hposregistration.data.Constant import com.example.hposregistration.data.user.UserData import com.example.hposregistration.ui.viewmodels.RegistrationViewModel import com.firebase.ui.firestore.FirestoreRecyclerOptions +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.hposregistration.R import `in`.sminnovations.hposregistration.databinding.FragmentUserListBinding +import java.text.SimpleDateFormat +import java.util.Date @AndroidEntryPoint class UserListFragment : BaseFragment() { @@ -160,7 +162,19 @@ class UserListFragment : BaseFragment() { private fun fetchFromServer() { binding.noList.visibility = View.GONE binding.rvOrder.visibility = View.VISIBLE + val dateFormat = SimpleDateFormat("yyyy-MM-dd") + val currentDate = Date() + val today = dateFormat.format(currentDate) val query = Firebase.firestore.collection("patientData") + .whereGreaterThanOrEqualTo("createdAt", today) + .orderBy("createdAt", Query.Direction.DESCENDING) + query.get().addOnSuccessListener { + if (it.documents.isEmpty()) { + binding.emptyRegistrations.visibility = View.VISIBLE + } else { + binding.emptyRegistrations.visibility = View.GONE + } + } val recyclerViewOptions = FirestoreRecyclerOptions.Builder().setQuery(query, UserData::class.java) .build() diff --git a/app/src/main/res/layout/fragment_user_list.xml b/app/src/main/res/layout/fragment_user_list.xml index 53e02b3..06a70f4 100644 --- a/app/src/main/res/layout/fragment_user_list.xml +++ b/app/src/main/res/layout/fragment_user_list.xml @@ -26,6 +26,20 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> + + Edit User Details Internet is not available and there is no Data available in Local DB + No registrations are available for display User ID: %1$s Abha Number: %1$s Aadhar Number: %1$s