From 6d8d33dfc9cba4790c38cdfbdfe130f28fc55414 Mon Sep 17 00:00:00 2001 From: Mariya Date: Fri, 8 Dec 2023 22:27:31 +0530 Subject: [PATCH] Coefficients Adding issue fixed, and the data stored locally itself with or without internet, --- app/build.gradle | 24 +++++++++---------- app/src/main/AndroidManifest.xml | 2 +- .../com/example/hpostesting/data/CsvHelper.kt | 18 ++++++++++++++ .../data/model/patient/HemoCubeTestData.kt | 1 + .../presentation/dashboard/HomeFragment.kt | 21 ++++++++++++++++ build.gradle | 4 ++-- 6 files changed, 55 insertions(+), 15 deletions(-) create mode 100644 app/src/main/java/com/example/hpostesting/data/CsvHelper.kt 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()