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 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/build.gradle b/app/build.gradle index afed6c1..4e0ca32 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 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' @@ -59,6 +60,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.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' @@ -101,6 +104,5 @@ dependencies { // Barcode scanner implementation 'com.journeyapps:zxing-android-embedded:4.3.0' - implementation 'androidx.preference:preference-ktx:1.2.1' - implementation 'androidx.preference:preference-ktx:1.2.1' + } \ 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 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 607b9f5..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 = 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/data/user/UserData.kt b/app/src/main/java/com/example/hposregistration/data/user/UserData.kt index 7afb5f5..8ba7c60 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/network/UserDao.kt b/app/src/main/java/com/example/hposregistration/network/UserDao.kt index c7a548d..b993bec 100644 --- a/app/src/main/java/com/example/hposregistration/network/UserDao.kt +++ b/app/src/main/java/com/example/hposregistration/network/UserDao.kt @@ -30,4 +30,7 @@ class UserDao { // suspend fun getPatientList(): List { // return patientCollection.get().await().toObjects(UserData::class.java) // } + + + } \ No newline at end of file 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 0793368..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 @@ -3,7 +3,11 @@ 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 import dagger.hilt.android.AndroidEntryPoint import `in`.sminnovations.hposregistration.databinding.ActivityMainBinding @@ -11,17 +15,58 @@ import `in`.sminnovations.hposregistration.databinding.ActivityMainBinding 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) 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 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/java/com/example/hposregistration/ui/fragments/UserListFragment.kt b/app/src/main/java/com/example/hposregistration/ui/fragments/UserListFragment.kt index ad574fe..cc9bb56 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 @@ -20,11 +20,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() { @@ -171,7 +174,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() diff --git a/app/src/main/res/layout/fragment_user_list.xml b/app/src/main/res/layout/fragment_user_list.xml index 5c5c18f..c1b59d2 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" /> + + ತಪ್ಪಾದ ಪಾಸ್‌ವರ್ಡ್ ತಪ್ಪಾದ ಬಳಕೆದಾರ ಐಡಿ ನೀವು ಆಧಾರ್ ಐಡನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡಿದ್ದೀರಿ, ದಯವಿಟ್ಟು ಆಧಾರ್ ಐಡನ್ನು ನೀವು ಸ್ಕ್ಯಾನ್ ಮಾಡಿದ ಮತ್ತು ಅಭಾ ಐಡನ್ನು ಕೈಯಾರೆ ನಮೂದಿಸಿ + ಪ್ರದರ್ಶಿಸಲಿರುವ ಯಾವ ನೋಂದಾಯಿಗಳೂ ಲಭ್ಯವಿಲ್ಲ ನೀವು ಅಭಾ ಐಡಿಯನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡಿದ್ದೀರಿ ನೀವು ಆಧಾರ್ ಐಡನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡಿದಿರಿ