diff --git a/app/build.gradle b/app/build.gradle
index 55ec74c..bf2bdf4 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -54,9 +54,10 @@ dependencies {
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'
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.6.2'
+ implementation 'com.opencsv:opencsv:5.5'
//firebase
implementation platform('com.google.firebase:firebase-bom:32.1.0')
@@ -71,8 +72,8 @@ dependencies {
implementation 'com.google.android.gms:play-services-location:21.0.1'
implementation 'com.google.android.gms:play-services-ads-identifier:18.0.1'
implementation 'com.google.android.things:androidthings:1.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.firebase:firebase-appdistribution:16.0.0-beta11'
+ implementation("com.google.firebase:firebase-appdistribution-api-ktx:16.0.0-beta11")
// Testing
@@ -82,13 +83,12 @@ dependencies {
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2"
- implementation 'com.opencsv:opencsv:4.6'
implementation 'com.github.mik3y:usb-serial-for-android:3.5.1'
- implementation "androidx.fragment:fragment-ktx:1.6.1"
+ implementation "androidx.fragment:fragment-ktx:1.6.2"
// CSV read, write
- implementation 'com.opencsv:opencsv:4.6'
+ implementation 'com.opencsv:opencsv:5.5'
// Barcode scanner
implementation 'com.journeyapps:zxing-android-embedded:4.3.0'
@@ -97,22 +97,22 @@ dependencies {
implementation 'com.google.android.gms:play-services-code-scanner:16.1.0'
//Room
- implementation "androidx.room:room-ktx:2.6.0-rc01"
- implementation "androidx.room:room-runtime:2.6.0-rc01"
- kapt ("androidx.room:room-compiler:2.6.0-rc01")
+ implementation "androidx.room:room-ktx:2.6.1"
+ implementation "androidx.room:room-runtime:2.6.1"
+ kapt ("androidx.room:room-compiler:2.6.1")
//image
implementation 'com.github.bumptech.glide:glide:4.13.2'
annotationProcessor 'com.github.bumptech.glide:compiler:4.13.2'
// Navigation Component
- implementation "androidx.navigation:navigation-fragment-ktx:2.7.3"
- implementation "androidx.navigation:navigation-ui-ktx:2.7.3"
+ implementation "androidx.navigation:navigation-fragment-ktx:2.7.5"
+ implementation "androidx.navigation:navigation-ui-ktx:2.7.5"
//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"
// Retrofit + GSON
implementation "com.squareup.retrofit2:retrofit:2.9.0"
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 98c18c5..7550851 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -3,8 +3,8 @@
xmlns:tools="http://schemas.android.com/tools">
-
+
diff --git a/app/src/main/java/com/example/hpostesting/data/CsvHelper.kt b/app/src/main/java/com/example/hpostesting/data/CsvHelper.kt
new file mode 100644
index 0000000..983407c
--- /dev/null
+++ b/app/src/main/java/com/example/hpostesting/data/CsvHelper.kt
@@ -0,0 +1,18 @@
+package com.example.hpostesting.data
+
+import com.opencsv.CSVWriter
+import java.io.FileWriter
+import java.io.IOException
+
+class CsvHelper {
+ companion object {
+ @Throws(IOException::class)
+ fun writeToCsv(filePath: String, data: List>) {
+ CSVWriter(FileWriter(filePath)).use { csvWriter ->
+ data.forEach { row ->
+ csvWriter.writeNext(row)
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/hpostesting/data/model/patient/HemoCubeTestData.kt b/app/src/main/java/com/example/hpostesting/data/model/patient/HemoCubeTestData.kt
index 5599862..26e6a01 100644
--- a/app/src/main/java/com/example/hpostesting/data/model/patient/HemoCubeTestData.kt
+++ b/app/src/main/java/com/example/hpostesting/data/model/patient/HemoCubeTestData.kt
@@ -8,6 +8,7 @@ data class HemoCubeTestData(
@PrimaryKey
var _id: String = "",
var name: String = "",
+ var bloodGroup: String = "",
var birthYear: String = "",
var userImageURL: String = "",
var location: UserData.Location? = null,
diff --git a/app/src/main/java/com/example/hpostesting/presentation/dashboard/HomeFragment.kt b/app/src/main/java/com/example/hpostesting/presentation/dashboard/HomeFragment.kt
index 1a6995f..1175b1f 100644
--- a/app/src/main/java/com/example/hpostesting/presentation/dashboard/HomeFragment.kt
+++ b/app/src/main/java/com/example/hpostesting/presentation/dashboard/HomeFragment.kt
@@ -15,6 +15,7 @@ import android.widget.Toast
import androidx.fragment.app.Fragment
import androidx.fragment.app.activityViewModels
import androidx.navigation.fragment.findNavController
+import com.example.hpostesting.data.CsvHelper
import com.example.hpostesting.data.DataHolder
import com.example.hpostesting.data.constant.Constants
import com.example.hpostesting.data.model.patient.HemoCubeTestData
@@ -32,6 +33,7 @@ import com.google.firebase.perf.ktx.performance
import dagger.hilt.android.AndroidEntryPoint
import `in`.sminnovations.hpostesting.R
import `in`.sminnovations.hpostesting.databinding.FragmentHomeBinding
+import java.io.IOException
import java.text.SimpleDateFormat
import java.util.Date
import java.util.Locale
@@ -337,6 +339,25 @@ class HomeFragment : Fragment() {
}
}
+
+ private fun downloadCsv() {
+ val csvData = hemoCubeViewModel.getLocalUserDataForCsv()
+
+ try {
+ val filePath = requireContext().getExternalFilesDir(null)?.absolutePath + "/userdata.csv"
+ CsvHelper.writeToCsv(filePath, csvData)
+ showToast("CSV downloaded successfully at: $filePath")
+ } catch (e: IOException) {
+ showToast("Error downloading CSV")
+ e.printStackTrace()
+ }
+ }
+
+ private fun showToast(message: String) {
+ Toast.makeText(requireContext(), message, Toast.LENGTH_SHORT).show()
+ }
+
+
override fun onDestroyView() {
super.onDestroyView()
_binding = null
diff --git a/build.gradle b/build.gradle
index a4b7f88..1bd6789 100644
--- a/build.gradle
+++ b/build.gradle
@@ -4,8 +4,8 @@ buildscript {
}
dependencies {
classpath 'com.android.tools.build:gradle:8.0.2'
- classpath 'com.google.gms:google-services:4.3.15'
- classpath 'com.google.firebase:firebase-appdistribution-gradle:4.0.0'
+ classpath 'com.google.gms:google-services:4.4.0'
+ classpath 'com.google.firebase:firebase-appdistribution-gradle:4.0.1'
}
repositories {
mavenCentral()