From eec8867ddc33262807b03893c0c696e657f7fcab Mon Sep 17 00:00:00 2001 From: Pritimay Sarkar Date: Mon, 23 Oct 2023 02:20:39 +0530 Subject: [PATCH 01/11] 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 From b6a03e2ebffbaf7b1590cb751ab874381383cd70 Mon Sep 17 00:00:00 2001 From: Pritimay Sarkar Date: Mon, 23 Oct 2023 02:23:28 +0530 Subject: [PATCH 02/11] add search fields based on date partition - optimize search based on current date partition - fix createdAt empty string in case of offline upload --- .../example/hposregistration/data/user/UserData.kt | 3 +++ .../ui/viewmodels/RegistrationViewModel.kt | 13 +++++++++++++ 2 files changed, 16 insertions(+) diff --git a/app/src/main/java/com/example/hposregistration/data/user/UserData.kt b/app/src/main/java/com/example/hposregistration/data/user/UserData.kt index caa78f6..a2c7849 100644 --- a/app/src/main/java/com/example/hposregistration/data/user/UserData.kt +++ b/app/src/main/java/com/example/hposregistration/data/user/UserData.kt @@ -7,8 +7,11 @@ import androidx.room.PrimaryKey data class UserData( @PrimaryKey var _id: String = "", + var _idSearch: String = "", var abhaId: String = "", + var abhaIdSearch: String = "", var aadharId: String = "", + var aadharIdSearch: String = "", var name: String = "", var birthYear: String = "", var gender: String = "", 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 930e4ca..f56bbaa 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 @@ -13,6 +13,10 @@ import com.example.hposregistration.data.user.UserData import com.google.firebase.storage.FirebaseStorage import dagger.hilt.android.lifecycle.HiltViewModel import kotlinx.coroutines.launch +import java.text.SimpleDateFormat +import java.util.Calendar +import java.util.Date +import java.util.Locale import javax.inject.Inject @HiltViewModel @@ -63,6 +67,15 @@ class RegistrationViewModel @Inject constructor( get() = _networkStatusLiveData fun insert(userData: UserData) = viewModelScope.launch { + val currentDate = Date() + val dateFormat = SimpleDateFormat("yyyyMMdd") + val partition = dateFormat.format(currentDate) + userData._idSearch = partition + userData._id + userData.abhaIdSearch = partition + userData.abhaId + userData.aadharIdSearch = partition + userData.aadharId + userData.createdAt = SimpleDateFormat( + "yyyy-MM-dd HH:mm:ss", Locale.getDefault() + ).format(Calendar.getInstance().time) mainRepository.insert(userData) } From 3bda3f0d513f795b1d28d0d862c114e37d1ee4dd Mon Sep 17 00:00:00 2001 From: Pritimay Sarkar Date: Tue, 24 Oct 2023 14:05:07 +0530 Subject: [PATCH 03/11] display app version --- .../ui/fragments/UserListFragment.kt | 5 +++++ app/src/main/res/layout/fragment_user_list.xml | 14 ++++++++++++++ 2 files changed, 19 insertions(+) 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 c30f743..a00f5d3 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 @@ -58,6 +58,11 @@ class UserListFragment : BaseFragment() { } private fun setupViews() { + val pInfo = requireActivity().packageManager.getPackageInfo( + requireActivity().packageName, 0 + ) + val version = pInfo.versionName + binding.appVersion.text = version binding.btnRegisterUser.setOnClickListener { findNavController().navigate(R.id.action_userListFragment_to_registrationFragment) } diff --git a/app/src/main/res/layout/fragment_user_list.xml b/app/src/main/res/layout/fragment_user_list.xml index 06a70f4..8b08c4f 100644 --- a/app/src/main/res/layout/fragment_user_list.xml +++ b/app/src/main/res/layout/fragment_user_list.xml @@ -16,6 +16,20 @@ android:layout_height="match_parent" android:orientation="vertical"> + + + Date: Tue, 24 Oct 2023 14:07:08 +0530 Subject: [PATCH 04/11] fix empty list messages display --- .../hposregistration/ui/fragments/UserListFragment.kt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) 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 a00f5d3..4e2565e 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 @@ -174,10 +174,8 @@ class UserListFragment : BaseFragment() { .whereGreaterThanOrEqualTo("createdAt", today) .orderBy("createdAt", Query.Direction.DESCENDING) query.get().addOnSuccessListener { - if (it.documents.isEmpty()) { + if (it.documents.isEmpty() && isOnline) { binding.emptyRegistrations.visibility = View.VISIBLE - } else { - binding.emptyRegistrations.visibility = View.GONE } } val recyclerViewOptions = @@ -195,6 +193,7 @@ class UserListFragment : BaseFragment() { binding.noList.visibility = View.GONE binding.rvOrder.visibility = View.VISIBLE } else { + binding.emptyRegistrations.visibility = View.GONE if (userDataList.isEmpty()) { binding.noList.visibility = View.VISIBLE binding.rvOrder.visibility = View.GONE From 2bd6495612d728613411ee1796c14ad9666a4c94 Mon Sep 17 00:00:00 2001 From: Pritimay Sarkar Date: Tue, 24 Oct 2023 14:09:53 +0530 Subject: [PATCH 05/11] remove key files --- app/.gitignore | 3 +- app/google-services.json | 113 --------------------------------------- 2 files changed, 2 insertions(+), 114 deletions(-) delete mode 100644 app/google-services.json diff --git a/app/.gitignore b/app/.gitignore index 42afabf..ebe0879 100644 --- a/app/.gitignore +++ b/app/.gitignore @@ -1 +1,2 @@ -/build \ No newline at end of file +/build +/google-services* \ No newline at end of file diff --git a/app/google-services.json b/app/google-services.json deleted file mode 100644 index a593d99..0000000 --- a/app/google-services.json +++ /dev/null @@ -1,113 +0,0 @@ -{ - "project_info": { - "project_number": "650071678820", - "project_id": "hpos-af3cc", - "storage_bucket": "hpos-af3cc.appspot.com" - }, - "client": [ - { - "client_info": { - "mobilesdk_app_id": "1:650071678820:android:f1435a1c07f710036c6471", - "android_client_info": { - "package_name": "com.example.hposconsentform" - } - }, - "oauth_client": [ - { - "client_id": "650071678820-to41afi9f0gi5r3k6v7pe1e5p96nupcs.apps.googleusercontent.com", - "client_type": 3 - } - ], - "api_key": [ - { - "current_key": "AIzaSyAVdNGCev_AFX0qmuZJF6kxzRzXUTeAW5I" - } - ], - "services": { - "appinvite_service": { - "other_platform_oauth_client": [ - { - "client_id": "650071678820-to41afi9f0gi5r3k6v7pe1e5p96nupcs.apps.googleusercontent.com", - "client_type": 3 - } - ] - } - } - }, - { - "client_info": { - "mobilesdk_app_id": "1:650071678820:android:7569c1cad4fc99916c6471", - "android_client_info": { - "package_name": "in.sminnovations.hposregistration" - } - }, - "oauth_client": [ - { - "client_id": "650071678820-70kp5jvjda4r5diqch2kn4lc40p4f42g.apps.googleusercontent.com", - "client_type": 1, - "android_info": { - "package_name": "in.sminnovations.hposregistration", - "certificate_hash": "7714b9268a81d0cf0fb178b0af8dbb630f8fc70a" - } - }, - { - "client_id": "650071678820-to41afi9f0gi5r3k6v7pe1e5p96nupcs.apps.googleusercontent.com", - "client_type": 3 - } - ], - "api_key": [ - { - "current_key": "AIzaSyAVdNGCev_AFX0qmuZJF6kxzRzXUTeAW5I" - } - ], - "services": { - "appinvite_service": { - "other_platform_oauth_client": [ - { - "client_id": "650071678820-to41afi9f0gi5r3k6v7pe1e5p96nupcs.apps.googleusercontent.com", - "client_type": 3 - } - ] - } - } - }, - { - "client_info": { - "mobilesdk_app_id": "1:650071678820:android:f96be19e5d43102b6c6471", - "android_client_info": { - "package_name": "in.sminnovations.hpostesting" - } - }, - "oauth_client": [ - { - "client_id": "650071678820-l87dnr0bdj95get0khgnvfv2an1k6ogq.apps.googleusercontent.com", - "client_type": 1, - "android_info": { - "package_name": "in.sminnovations.hpostesting", - "certificate_hash": "7714b9268a81d0cf0fb178b0af8dbb630f8fc70a" - } - }, - { - "client_id": "650071678820-to41afi9f0gi5r3k6v7pe1e5p96nupcs.apps.googleusercontent.com", - "client_type": 3 - } - ], - "api_key": [ - { - "current_key": "AIzaSyAVdNGCev_AFX0qmuZJF6kxzRzXUTeAW5I" - } - ], - "services": { - "appinvite_service": { - "other_platform_oauth_client": [ - { - "client_id": "650071678820-to41afi9f0gi5r3k6v7pe1e5p96nupcs.apps.googleusercontent.com", - "client_type": 3 - } - ] - } - } - } - ], - "configuration_version": "1" -} \ No newline at end of file From ccc50108d3ac257649d88337fd6cc4a53792adfb Mon Sep 17 00:00:00 2001 From: Pritimay Sarkar Date: Sun, 29 Oct 2023 07:33:12 +0530 Subject: [PATCH 06/11] add app distribution auto update --- app/build.gradle | 6 ++- .../ui/activities/MainActivity.kt | 44 +++++++++++++++++++ 2 files changed, 48 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 368fba3..5b2fa60 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -16,8 +16,8 @@ android { applicationId "in.sminnovations.hposregistration" minSdk 26 targetSdk 34 - versionCode 1 - versionName "1.0" + versionCode 6 + versionName "1.0.6" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } @@ -59,6 +59,8 @@ dependencies { implementation 'com.google.firebase:firebase-storage-ktx' implementation 'com.firebaseui:firebase-ui-firestore:8.0.2' implementation 'com.google.android.gms:play-services-auth:20.6.0' + implementation 'com.google.firebase:firebase-appdistribution:16.0.0-beta10' + implementation("com.google.firebase:firebase-appdistribution-api-ktx:16.0.0-beta10") // Coroutines implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1' diff --git a/app/src/main/java/com/example/hposregistration/ui/activities/MainActivity.kt b/app/src/main/java/com/example/hposregistration/ui/activities/MainActivity.kt index 51c0221..013bdf0 100644 --- a/app/src/main/java/com/example/hposregistration/ui/activities/MainActivity.kt +++ b/app/src/main/java/com/example/hposregistration/ui/activities/MainActivity.kt @@ -2,6 +2,10 @@ package com.example.hposregistration.ui.activities import androidx.appcompat.app.AppCompatActivity import android.os.Bundle +import android.widget.Toast +import com.google.firebase.appdistribution.FirebaseAppDistribution +import com.google.firebase.appdistribution.FirebaseAppDistributionException +import com.google.firebase.crashlytics.FirebaseCrashlytics import dagger.hilt.android.AndroidEntryPoint import `in`.sminnovations.hposregistration.databinding.ActivityMainBinding @@ -16,4 +20,44 @@ class MainActivity : AppCompatActivity() { setContentView(binding.root) } + + override fun onResume() { + super.onResume() + + val firebaseAppDistribution = FirebaseAppDistribution.getInstance() + firebaseAppDistribution.updateIfNewReleaseAvailable() + .addOnProgressListener { updateProgress -> + + if (updateProgress.apkBytesDownloaded > 0) { + Toast.makeText( + this, + "${updateProgress.updateStatus}. ${updateProgress.apkBytesDownloaded / 1048576} /${updateProgress.apkFileTotalBytes / 1048576} MB", + Toast.LENGTH_SHORT + ).show() + } + } + .addOnFailureListener { e -> + // (Optional) Handle errors. + if (e is FirebaseAppDistributionException) { + when (e.errorCode) { + FirebaseAppDistributionException.Status.NOT_IMPLEMENTED -> { + // SDK did nothing. This is expected when building for Play. + } + + else -> { + // Handle other errors. + Toast.makeText( + this, + "AppDistribution error, status: ${e.errorCode}", + Toast.LENGTH_SHORT + ).show() + } + } + FirebaseCrashlytics.getInstance().recordException(e) + } + } + .addOnSuccessListener { +// Toast.makeText(this, "App Update: Success!", Toast.LENGTH_SHORT).show() + } + } } \ No newline at end of file From 2e824c1bed36fc575419fe245a7915be43ea017a Mon Sep 17 00:00:00 2001 From: Mariya Date: Tue, 12 Dec 2023 15:45:16 +0530 Subject: [PATCH 07/11] fixing errors related to version --- app/build.gradle | 28 +++++++++--------- .../hposregistration/dao/MyDataBase.kt | 29 +++++++++++++++++-- .../hposregistration/network/UserDao.kt | 3 ++ 3 files changed, 44 insertions(+), 16 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 5b2fa60..89d7cc8 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -42,9 +42,9 @@ android { dependencies { - implementation 'androidx.core:core-ktx:1.10.1' + implementation 'androidx.core:core-ktx:1.12.0' implementation 'androidx.appcompat:appcompat:1.6.1' - implementation 'com.google.android.material:material:1.9.0' + implementation 'com.google.android.material:material:1.10.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.5' @@ -58,26 +58,26 @@ dependencies { implementation 'com.google.firebase:firebase-auth-ktx' implementation 'com.google.firebase:firebase-storage-ktx' implementation 'com.firebaseui:firebase-ui-firestore:8.0.2' - implementation 'com.google.android.gms:play-services-auth:20.6.0' - implementation 'com.google.firebase:firebase-appdistribution:16.0.0-beta10' - implementation("com.google.firebase:firebase-appdistribution-api-ktx:16.0.0-beta10") + implementation 'com.google.android.gms:play-services-auth:20.7.0' + implementation 'com.google.firebase:firebase-appdistribution:16.0.0-beta11' + implementation("com.google.firebase:firebase-appdistribution-api-ktx:16.0.0-beta11") // Coroutines implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.1' implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.1' // Coroutine Lifecycle Scopes - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1" - implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.6.1" + implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2" + implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.6.2" //Dagger - Hilt implementation "com.google.dagger:hilt-android:2.46" kapt "com.google.dagger:hilt-android-compiler:2.46" - kapt "androidx.hilt:hilt-compiler:1.0.0" + kapt "androidx.hilt:hilt-compiler:1.1.0" // Navigation Component - implementation "androidx.navigation:navigation-fragment-ktx:2.7.0" - implementation "androidx.navigation:navigation-ui-ktx:2.7.0" + implementation "androidx.navigation:navigation-fragment-ktx:2.7.5" + implementation "androidx.navigation:navigation-ui-ktx:2.7.5" // Retrofit + GSON implementation "com.squareup.retrofit2:retrofit:2.9.0" @@ -87,16 +87,16 @@ dependencies { implementation 'com.jakewharton.timber:timber:4.7.1' // Activity KTX for viewModels() - implementation "androidx.activity:activity-ktx:1.7.2" + implementation "androidx.activity:activity-ktx:1.8.1" //image implementation 'com.github.bumptech.glide:glide:4.13.2' annotationProcessor 'com.github.bumptech.glide:compiler:4.13.2' //Room - implementation "androidx.room:room-ktx:2.6.0-alpha03" - implementation "androidx.room:room-runtime:2.6.0-alpha03" - kapt ("androidx.room:room-compiler:2.6.0-alpha03") + implementation "androidx.room:room-ktx:2.6.1" + implementation "androidx.room:room-runtime:2.6.1" + kapt ("androidx.room:room-compiler:2.6.1") // Barcode scanner implementation 'com.journeyapps:zxing-android-embedded:4.3.0' diff --git a/app/src/main/java/com/example/hposregistration/dao/MyDataBase.kt b/app/src/main/java/com/example/hposregistration/dao/MyDataBase.kt index cdcf480..b2ff720 100644 --- a/app/src/main/java/com/example/hposregistration/dao/MyDataBase.kt +++ b/app/src/main/java/com/example/hposregistration/dao/MyDataBase.kt @@ -1,11 +1,36 @@ package com.example.hposregistration.dao +import android.content.Context import androidx.room.Database +import androidx.room.Room import androidx.room.RoomDatabase import androidx.room.TypeConverters +import androidx.room.migration.Migration +import androidx.sqlite.db.SupportSQLiteDatabase import com.example.hposregistration.data.user.UserData -@Database(entities = [UserData::class], version = 1, exportSchema = false) +@Database(entities = [UserData::class], version = 3, exportSchema = false) abstract class MyDatabase : RoomDatabase() { + abstract fun userDao(): UserDao -} \ No newline at end of file + + companion object { + val MIGRATION_2_3: Migration = object : Migration(2, 3) { + override fun migrate(database: SupportSQLiteDatabase) { + // Define the necessary SQL statements for migration from version 2 to 3 + // For example, you can alter tables or create new ones + database.execSQL("ALTER TABLE user_table ADD COLUMN aadharIdSearch TEXT") + } + } + + fun getInstance(context: Context): MyDatabase { + return Room.databaseBuilder( + context.applicationContext, + MyDatabase::class.java, + "my_database" + ) + .addMigrations(MIGRATION_2_3) + .build() + } + } +} diff --git a/app/src/main/java/com/example/hposregistration/network/UserDao.kt b/app/src/main/java/com/example/hposregistration/network/UserDao.kt index a05f0bf..06fdfdc 100644 --- a/app/src/main/java/com/example/hposregistration/network/UserDao.kt +++ b/app/src/main/java/com/example/hposregistration/network/UserDao.kt @@ -27,4 +27,7 @@ class UserDao { // suspend fun getPatientList(): List { // return patientCollection.get().await().toObjects(UserData::class.java) // } + + + } \ No newline at end of file From 425bc61a502df5e49ddccdf9fcf933a684790593 Mon Sep 17 00:00:00 2001 From: Mariya Date: Thu, 14 Dec 2023 13:26:54 +0530 Subject: [PATCH 08/11] fixing errors related to version --- .idea/shelf/Changes3.xml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 .idea/shelf/Changes3.xml diff --git a/.idea/shelf/Changes3.xml b/.idea/shelf/Changes3.xml new file mode 100644 index 0000000..15b4ce4 --- /dev/null +++ b/.idea/shelf/Changes3.xml @@ -0,0 +1,4 @@ + + \ No newline at end of file From 8c1e30764c9333132f911bed1af9d31557f42a79 Mon Sep 17 00:00:00 2001 From: Mariya Date: Fri, 15 Dec 2023 11:41:54 +0530 Subject: [PATCH 09/11] UserListFragment changed --- .../ui/fragments/UserListFragment.kt | 20 +---------- .../main/res/layout/fragment_user_list.xml | 34 ++++--------------- 2 files changed, 8 insertions(+), 46 deletions(-) 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 e10cd67..5b303e2 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,6 +8,7 @@ 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 @@ -17,14 +18,11 @@ 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() { @@ -58,11 +56,6 @@ class UserListFragment : BaseFragment() { } private fun setupViews() { - val pInfo = requireActivity().packageManager.getPackageInfo( - requireActivity().packageName, 0 - ) - val version = pInfo.versionName - binding.appVersion.text = version binding.btnRegisterUser.setOnClickListener { findNavController().navigate(R.id.action_userListFragment_to_registrationFragment) } @@ -171,17 +164,7 @@ 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() && isOnline) { - binding.emptyRegistrations.visibility = View.VISIBLE - } - } val recyclerViewOptions = FirestoreRecyclerOptions.Builder().setQuery(query, UserData::class.java) .build() @@ -197,7 +180,6 @@ class UserListFragment : BaseFragment() { binding.noList.visibility = View.GONE binding.rvOrder.visibility = View.VISIBLE } else { - binding.emptyRegistrations.visibility = View.GONE if (userDataList.isEmpty()) { binding.noList.visibility = View.VISIBLE binding.rvOrder.visibility = View.GONE diff --git a/app/src/main/res/layout/fragment_user_list.xml b/app/src/main/res/layout/fragment_user_list.xml index 8b08c4f..4c3db74 100644 --- a/app/src/main/res/layout/fragment_user_list.xml +++ b/app/src/main/res/layout/fragment_user_list.xml @@ -16,20 +16,14 @@ android:layout_height="match_parent" android:orientation="vertical"> - - - + app:layout_constraintTop_toTopOf="@+id/tv_title" /> - - Date: Fri, 15 Dec 2023 11:43:22 +0530 Subject: [PATCH 10/11] UserListFragment merged --- .../ui/fragments/UserListFragment.kt | 13 +++++++++++++ 1 file changed, 13 insertions(+) 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 5b303e2..7e34f64 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 @@ -18,11 +18,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() { @@ -164,7 +167,17 @@ 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() && isOnline) { + binding.emptyRegistrations.visibility = View.VISIBLE + } + } val recyclerViewOptions = FirestoreRecyclerOptions.Builder().setQuery(query, UserData::class.java) .build() From 4e5df74cea06b10a19dd6d6bf467c445bed96765 Mon Sep 17 00:00:00 2001 From: Mariya Date: Fri, 15 Dec 2023 12:20:35 +0530 Subject: [PATCH 11/11] merged with preprod branch --- .../shelved.patch | 0 ...e_Checkout_at_04-12-2023_02_50_pm__Changes_.xml | 4 ---- app/build.gradle | 5 +++-- .../hposregistration/ui/activities/MainActivity.kt | 9 +++++++++ .../ui/fragments/LanguageSettingsFragment.kt | 8 ++------ app/src/main/res/layout/fragment_user_list.xml | 14 ++++++++++++++ app/src/main/res/values-hi/strings.xml | 1 + app/src/main/res/values-kn/strings.xml | 1 + 8 files changed, 30 insertions(+), 12 deletions(-) delete mode 100644 .idea/shelf/Uncommitted_changes_before_Checkout_at_04-12-2023_02_50_pm_[Changes]/shelved.patch delete mode 100644 .idea/shelf/Uncommitted_changes_before_Checkout_at_04-12-2023_02_50_pm__Changes_.xml diff --git a/.idea/shelf/Uncommitted_changes_before_Checkout_at_04-12-2023_02_50_pm_[Changes]/shelved.patch b/.idea/shelf/Uncommitted_changes_before_Checkout_at_04-12-2023_02_50_pm_[Changes]/shelved.patch deleted file mode 100644 index e69de29..0000000 diff --git a/.idea/shelf/Uncommitted_changes_before_Checkout_at_04-12-2023_02_50_pm__Changes_.xml b/.idea/shelf/Uncommitted_changes_before_Checkout_at_04-12-2023_02_50_pm__Changes_.xml deleted file mode 100644 index 536290a..0000000 --- a/.idea/shelf/Uncommitted_changes_before_Checkout_at_04-12-2023_02_50_pm__Changes_.xml +++ /dev/null @@ -1,4 +0,0 @@ - - \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 89d7cc8..ae7582e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -16,8 +16,8 @@ android { applicationId "in.sminnovations.hposregistration" minSdk 26 targetSdk 34 - versionCode 6 - versionName "1.0.6" + versionCode 8 + versionName "1.0.8" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } @@ -46,6 +46,7 @@ dependencies { implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.material:material:1.10.0' implementation 'androidx.constraintlayout:constraintlayout:2.1.4' + implementation 'androidx.preference:preference-ktx:1.2.1' testImplementation 'junit:junit:4.13.2' androidTestImplementation 'androidx.test.ext:junit:1.1.5' androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1' diff --git a/app/src/main/java/com/example/hposregistration/ui/activities/MainActivity.kt b/app/src/main/java/com/example/hposregistration/ui/activities/MainActivity.kt index 013bdf0..85c53af 100644 --- a/app/src/main/java/com/example/hposregistration/ui/activities/MainActivity.kt +++ b/app/src/main/java/com/example/hposregistration/ui/activities/MainActivity.kt @@ -1,8 +1,10 @@ package com.example.hposregistration.ui.activities +import android.content.Context import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.widget.Toast +import com.example.hposregistration.data.LanguageManager import com.google.firebase.appdistribution.FirebaseAppDistribution import com.google.firebase.appdistribution.FirebaseAppDistributionException import com.google.firebase.crashlytics.FirebaseCrashlytics @@ -14,6 +16,13 @@ class MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBinding + + override fun attachBaseContext(newBase: Context?) { + val languageCode = LanguageManager.getSavedLanguage(newBase!!) + LanguageManager.setLocale(newBase, languageCode) + super.attachBaseContext(newBase) + } + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityMainBinding.inflate(layoutInflater) diff --git a/app/src/main/java/com/example/hposregistration/ui/fragments/LanguageSettingsFragment.kt b/app/src/main/java/com/example/hposregistration/ui/fragments/LanguageSettingsFragment.kt index 6533bbe..87de1a4 100644 --- a/app/src/main/java/com/example/hposregistration/ui/fragments/LanguageSettingsFragment.kt +++ b/app/src/main/java/com/example/hposregistration/ui/fragments/LanguageSettingsFragment.kt @@ -3,14 +3,10 @@ package com.example.hposregistration.ui.fragments import android.content.Context import android.content.pm.PackageManager import android.os.Bundle -import android.preference.ListPreference -import androidx.fragment.app.Fragment -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.Toast import androidx.preference.Preference import androidx.preference.PreferenceFragmentCompat + +import android.widget.Toast import com.example.hposregistration.data.LanguageManager import `in`.sminnovations.hposregistration.R diff --git a/app/src/main/res/layout/fragment_user_list.xml b/app/src/main/res/layout/fragment_user_list.xml index 4c3db74..bc89f5e 100644 --- a/app/src/main/res/layout/fragment_user_list.xml +++ b/app/src/main/res/layout/fragment_user_list.xml @@ -34,6 +34,20 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> + + पिता / पति का नाम दर्ज करें क्या आप ऐप्लिकेशन से लॉग आउट करना चाहते हैं? लॉग आउट + प्रदर्शन के लिए कोई पंजीकरण उपलब्ध नहीं हैं डीबी पंजीकरण अपलोड करें क्या आप स्थानीय डीबी को क्लाउड पर अपलोड करना चाहते हैं? diff --git a/app/src/main/res/values-kn/strings.xml b/app/src/main/res/values-kn/strings.xml index 0bdd11e..d984f3a 100644 --- a/app/src/main/res/values-kn/strings.xml +++ b/app/src/main/res/values-kn/strings.xml @@ -129,6 +129,7 @@ ತಪ್ಪಾದ ಪಾಸ್‌ವರ್ಡ್ ತಪ್ಪಾದ ಬಳಕೆದಾರ ಐಡಿ ನೀವು ಆಧಾರ್ ಐಡನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡಿದ್ದೀರಿ, ದಯವಿಟ್ಟು ಆಧಾರ್ ಐಡನ್ನು ನೀವು ಸ್ಕ್ಯಾನ್ ಮಾಡಿದ ಮತ್ತು ಅಭಾ ಐಡನ್ನು ಕೈಯಾರೆ ನಮೂದಿಸಿ + ಪ್ರದರ್ಶಿಸಲಿರುವ ಯಾವ ನೋಂದಾಯಿಗಳೂ ಲಭ್ಯವಿಲ್ಲ ನೀವು ಅಭಾ ಐಡಿಯನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡಿದ್ದೀರಿ ನೀವು ಆಧಾರ್ ಐಡನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡಿದಿರಿ