Compare commits
1 Commits
2.1.122
...
samplebuff
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5966af95eb |
101
.gitlab-ci.yml
101
.gitlab-ci.yml
@@ -1,101 +0,0 @@
|
|||||||
# This file is a template, and might need editing before it works on your project.
|
|
||||||
# To contribute improvements to CI/CD templates, please follow the Development guide at:
|
|
||||||
# https://docs.gitlab.com/ee/development/cicd/templates.html
|
|
||||||
# This specific template is located at:
|
|
||||||
# https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Android.gitlab-ci.yml
|
|
||||||
|
|
||||||
# Read more about this script on this blog post https://about.gitlab.com/2018/10/24/setting-up-gitlab-ci-for-android-projects/, by Jason Lenny
|
|
||||||
# If you are interested in using Android with FastLane for publishing take a look at the Android-Fastlane template.
|
|
||||||
|
|
||||||
image: eclipse-temurin:17-jdk-jammy
|
|
||||||
|
|
||||||
variables:
|
|
||||||
|
|
||||||
# ANDROID_COMPILE_SDK is the version of Android you're compiling with.
|
|
||||||
# It should match compileSdkVersion.
|
|
||||||
ANDROID_COMPILE_SDK: "34"
|
|
||||||
|
|
||||||
# ANDROID_BUILD_TOOLS is the version of the Android build tools you are using.
|
|
||||||
# It should match buildToolsVersion.
|
|
||||||
ANDROID_BUILD_TOOLS: "33.0.2"
|
|
||||||
|
|
||||||
# It's what version of the command line tools we're going to download from the official site.
|
|
||||||
# Official Site-> https://developer.android.com/studio/index.html
|
|
||||||
# There, look down below at the cli tools only, sdk tools package is of format:
|
|
||||||
# commandlinetools-os_type-ANDROID_SDK_TOOLS_latest.zip
|
|
||||||
# when the script was last modified for latest compileSdkVersion, it was which is written down below
|
|
||||||
ANDROID_SDK_TOOLS: "9477386"
|
|
||||||
|
|
||||||
# Packages installation before running script
|
|
||||||
before_script:
|
|
||||||
- apt-get --quiet update --yes
|
|
||||||
- apt-get --quiet install --yes wget unzip
|
|
||||||
|
|
||||||
# Setup path as android_home for moving/exporting the downloaded sdk into it
|
|
||||||
- export ANDROID_HOME="${PWD}/android-sdk-root"
|
|
||||||
# Create a new directory at specified location
|
|
||||||
- install -d $ANDROID_HOME
|
|
||||||
# Here we are installing androidSDK tools from official source,
|
|
||||||
# (the key thing here is the url from where you are downloading these sdk tool for command line, so please do note this url pattern there and here as well)
|
|
||||||
# after that unzipping those tools and
|
|
||||||
# then running a series of SDK manager commands to install necessary android SDK packages that'll allow the app to build
|
|
||||||
- wget --no-verbose --output-document=$ANDROID_HOME/cmdline-tools.zip https://dl.google.com/android/repository/commandlinetools-linux-${ANDROID_SDK_TOOLS}_latest.zip
|
|
||||||
- unzip -q -d "$ANDROID_HOME/cmdline-tools" "$ANDROID_HOME/cmdline-tools.zip"
|
|
||||||
- mv -T "$ANDROID_HOME/cmdline-tools/cmdline-tools" "$ANDROID_HOME/cmdline-tools/tools"
|
|
||||||
- export PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/cmdline-tools/tools/bin
|
|
||||||
|
|
||||||
# Nothing fancy here, just checking sdkManager version
|
|
||||||
- sdkmanager --version
|
|
||||||
|
|
||||||
# use yes to accept all licenses
|
|
||||||
- yes | sdkmanager --licenses > /dev/null || true
|
|
||||||
- sdkmanager "platforms;android-${ANDROID_COMPILE_SDK}"
|
|
||||||
- sdkmanager "platform-tools"
|
|
||||||
- sdkmanager "build-tools;${ANDROID_BUILD_TOOLS}"
|
|
||||||
|
|
||||||
# Not necessary, but just for surity
|
|
||||||
- chmod +x ./gradlew
|
|
||||||
|
|
||||||
# Basic android and gradle stuff
|
|
||||||
# Check linting
|
|
||||||
lintDebug:
|
|
||||||
interruptible: true
|
|
||||||
stage: build
|
|
||||||
script:
|
|
||||||
- ./gradlew -Pci --console=plain :app:lintDebug -PbuildDir=lint
|
|
||||||
artifacts:
|
|
||||||
paths:
|
|
||||||
- app/lint/reports/lint-results-debug.html
|
|
||||||
expose_as: "lint-report"
|
|
||||||
when: always
|
|
||||||
|
|
||||||
# Make Project
|
|
||||||
assembleDebug:
|
|
||||||
interruptible: true
|
|
||||||
stage: build
|
|
||||||
script:
|
|
||||||
- ./gradlew assembleDebug
|
|
||||||
artifacts:
|
|
||||||
paths:
|
|
||||||
- app/build/outputs/
|
|
||||||
|
|
||||||
# Run all tests, if any fails, interrupt the pipeline(fail it)
|
|
||||||
debugTests:
|
|
||||||
needs: [lintDebug, assembleDebug]
|
|
||||||
interruptible: true
|
|
||||||
stage: test
|
|
||||||
script:
|
|
||||||
- ./gradlew -Pci --console=plain :app:testDebug
|
|
||||||
artifacts:
|
|
||||||
paths:
|
|
||||||
- app/build/test-results/
|
|
||||||
|
|
||||||
publishTestResults:
|
|
||||||
stage: test
|
|
||||||
script:
|
|
||||||
- echo "Publishing JUnit test results"
|
|
||||||
needs: [debugTests]
|
|
||||||
artifacts:
|
|
||||||
when: always
|
|
||||||
reports:
|
|
||||||
junit: app/build/test-results/testDebugUnitTest/*.xml
|
|
||||||
5
.idea/gradle.xml
generated
5
.idea/gradle.xml
generated
@@ -4,15 +4,16 @@
|
|||||||
<component name="GradleSettings">
|
<component name="GradleSettings">
|
||||||
<option name="linkedExternalProjectsSettings">
|
<option name="linkedExternalProjectsSettings">
|
||||||
<GradleProjectSettings>
|
<GradleProjectSettings>
|
||||||
|
<option name="testRunner" value="GRADLE" />
|
||||||
|
<option name="distributionType" value="DEFAULT_WRAPPED" />
|
||||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||||
<option name="gradleJvm" value="#GRADLE_LOCAL_JAVA_HOME" />
|
<option name="gradleJvm" value="jbr-17" />
|
||||||
<option name="modules">
|
<option name="modules">
|
||||||
<set>
|
<set>
|
||||||
<option value="$PROJECT_DIR$" />
|
<option value="$PROJECT_DIR$" />
|
||||||
<option value="$PROJECT_DIR$/app" />
|
<option value="$PROJECT_DIR$/app" />
|
||||||
</set>
|
</set>
|
||||||
</option>
|
</option>
|
||||||
<option name="resolveExternalAnnotations" value="false" />
|
|
||||||
</GradleProjectSettings>
|
</GradleProjectSettings>
|
||||||
</option>
|
</option>
|
||||||
</component>
|
</component>
|
||||||
|
|||||||
43
.idea/misc.xml
generated
Normal file
43
.idea/misc.xml
generated
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="DesignSurface">
|
||||||
|
<option name="filePathToZoomLevelMap">
|
||||||
|
<map>
|
||||||
|
<entry key="app/src/main/res/drawable/ic_baseline_auto_graph_24.xml" value="0.1555" />
|
||||||
|
<entry key="app/src/main/res/drawable/ic_baseline_cancel_24.xml" value="0.1965" />
|
||||||
|
<entry key="app/src/main/res/drawable/ic_baseline_check_circle_24.xml" value="0.243" />
|
||||||
|
<entry key="app/src/main/res/drawable/ic_baseline_dot_24.xml" value="0.1785" />
|
||||||
|
<entry key="app/src/main/res/drawable/ic_baseline_file_download_24.xml" value="0.243" />
|
||||||
|
<entry key="app/src/main/res/drawable/ic_baseline_home_24.xml" value="0.243" />
|
||||||
|
<entry key="app/src/main/res/drawable/ic_baseline_new_label_24.xml" value="0.243" />
|
||||||
|
<entry key="app/src/main/res/drawable/ic_baseline_usb_24.xml" value="0.157" />
|
||||||
|
<entry key="app/src/main/res/drawable/ic_baseline_usb_off_24.xml" value="0.157" />
|
||||||
|
<entry key="app/src/main/res/drawable/progressbar_drawable.xml" value="0.1885" />
|
||||||
|
<entry key="app/src/main/res/drawable/result_background_green.xml" value="0.243" />
|
||||||
|
<entry key="app/src/main/res/drawable/result_background_red.xml" value="0.1785" />
|
||||||
|
<entry key="app/src/main/res/drawable/result_background_tellow.xml" value="0.1785" />
|
||||||
|
<entry key="app/src/main/res/font/inter_bold.xml" value="0.33487179487179486" />
|
||||||
|
<entry key="app/src/main/res/layout/activity_main.xml" value="0.165" />
|
||||||
|
<entry key="app/src/main/res/layout/activity_splash.xml" value="0.24375" />
|
||||||
|
<entry key="app/src/main/res/layout/activity_test_right.xml" value="0.24375" />
|
||||||
|
<entry key="app/src/main/res/layout/fragment_graph.xml" value="0.19791666666666666" />
|
||||||
|
<entry key="app/src/main/res/layout/fragment_test_right_exp_reference.xml" value="0.25" />
|
||||||
|
<entry key="app/src/main/res/layout/fragment_test_right_exp_sample.xml" value="0.24583333333333332" />
|
||||||
|
<entry key="app/src/main/res/layout/fragment_test_right_exp_scanner.xml" value="0.24583333333333332" />
|
||||||
|
<entry key="app/src/main/res/layout/fragment_test_right_process.xml" value="0.24375" />
|
||||||
|
<entry key="app/src/main/res/layout/fragment_test_right_results.xml" value="0.30512820512820515" />
|
||||||
|
<entry key="app/src/main/res/layout/table_item.xml" value="0.22407407407407406" />
|
||||||
|
<entry key="app/src/main/res/menu/menu.xml" value="0.25" />
|
||||||
|
<entry key="app/src/main/res/menu/my_menu.xml" value="0.25" />
|
||||||
|
<entry key="app/src/main/res/mipmap-anydpi-v26/hpos_icon.xml" value="0.1505" />
|
||||||
|
<entry key="app/src/main/res/mipmap-anydpi-v26/hpos_icon_round.xml" value="0.1505" />
|
||||||
|
</map>
|
||||||
|
</option>
|
||||||
|
</component>
|
||||||
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" project-jdk-name="jbr-17" project-jdk-type="JavaSDK">
|
||||||
|
<output url="file://$PROJECT_DIR$/build/classes" />
|
||||||
|
</component>
|
||||||
|
<component name="ProjectType">
|
||||||
|
<option name="id" value="Android" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
1
app/.gitignore
vendored
1
app/.gitignore
vendored
@@ -1,4 +1,3 @@
|
|||||||
/build
|
/build
|
||||||
/release
|
|
||||||
/google-services*
|
/google-services*
|
||||||
/idea
|
/idea
|
||||||
@@ -14,18 +14,16 @@ android {
|
|||||||
compileSdk 34
|
compileSdk 34
|
||||||
namespace 'in.sminnovations.hpostesting'
|
namespace 'in.sminnovations.hpostesting'
|
||||||
|
|
||||||
// dev -> development, quality -> qc, uat -> User Acceptance Testing, preprod -> preproduction, prod -> production, iocl -> iocl-iisc production
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
applicationId "in.sminnovations.hpostesting.iocl"
|
applicationId "in.sminnovations.hpostesting"
|
||||||
minSdk 21
|
minSdk 21
|
||||||
targetSdk 34
|
targetSdk 34
|
||||||
versionCode 122
|
versionCode 10
|
||||||
versionName "2.1.122"
|
versionName "2.1.10"
|
||||||
|
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
buildTypes {
|
buildTypes {
|
||||||
release {
|
release {
|
||||||
minifyEnabled false
|
minifyEnabled false
|
||||||
@@ -50,121 +48,73 @@ android {
|
|||||||
abortOnError false
|
abortOnError false
|
||||||
checkReleaseBuilds false
|
checkReleaseBuilds false
|
||||||
}
|
}
|
||||||
packagingOptions {
|
|
||||||
exclude 'mockito-extensions/org.mockito.plugins.MockMaker'
|
|
||||||
}
|
|
||||||
// testOptions {
|
|
||||||
// unitTests {
|
|
||||||
// includeAndroidResources = true
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation "com.google.dagger:hilt-android:2.46"
|
|
||||||
kapt "com.google.dagger:hilt-android-compiler:2.46"
|
|
||||||
|
|
||||||
implementation 'androidx.core:core-ktx:1.12.0'
|
implementation 'androidx.core:core-ktx:1.12.0'
|
||||||
implementation 'androidx.appcompat:appcompat:1.6.1'
|
implementation 'androidx.appcompat:appcompat:1.6.1'
|
||||||
implementation 'com.google.android.material:material:1.11.0'
|
implementation 'com.google.android.material:material:1.9.0'
|
||||||
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
|
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
|
||||||
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.7.0'
|
implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.6.2'
|
||||||
implementation 'androidx.fragment:fragment-ktx:1.6.2'
|
|
||||||
|
|
||||||
//firebase
|
//firebase
|
||||||
implementation platform('com.google.firebase:firebase-bom:32.1.0')
|
implementation platform('com.google.firebase:firebase-bom:32.1.0')
|
||||||
implementation("com.google.firebase:firebase-perf-ktx")
|
|
||||||
implementation("com.google.firebase:firebase-crashlytics-ktx")
|
implementation("com.google.firebase:firebase-crashlytics-ktx")
|
||||||
implementation("com.google.firebase:firebase-analytics-ktx")
|
implementation("com.google.firebase:firebase-analytics-ktx")
|
||||||
implementation 'com.google.firebase:firebase-firestore-ktx'
|
implementation 'com.google.firebase:firebase-firestore-ktx'
|
||||||
implementation 'com.google.firebase:firebase-auth-ktx'
|
implementation 'com.google.firebase:firebase-auth-ktx'
|
||||||
implementation 'com.google.firebase:firebase-storage-ktx'
|
implementation 'com.google.firebase:firebase-storage-ktx'
|
||||||
implementation 'com.firebaseui:firebase-ui-firestore:8.0.2'
|
implementation 'com.firebaseui:firebase-ui-firestore:8.0.2'
|
||||||
implementation 'com.google.android.gms:play-services-auth:21.0.0'
|
implementation 'com.google.android.gms:play-services-auth:20.7.0'
|
||||||
implementation 'com.google.android.gms:play-services-location:21.1.0'
|
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.gms:play-services-ads-identifier:18.0.1'
|
||||||
implementation 'com.google.android.things:androidthings:1.0'
|
implementation 'com.google.android.things:androidthings:1.0'
|
||||||
implementation 'com.google.firebase:firebase-appdistribution:16.0.0-beta12'
|
implementation 'com.google.firebase:firebase-appdistribution:16.0.0-beta10'
|
||||||
implementation("com.google.firebase:firebase-appdistribution-api-ktx:16.0.0-beta12")
|
implementation("com.google.firebase:firebase-appdistribution-api-ktx:16.0.0-beta10")
|
||||||
implementation 'androidx.preference:preference-ktx:1.2.1'
|
|
||||||
implementation 'androidx.preference:preference-ktx:1.2.1'
|
|
||||||
implementation 'com.google.android.play:core:1.10.3'
|
|
||||||
implementation 'io.nats:jnats:2.11.4'
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Testing
|
// Testing
|
||||||
testImplementation 'junit:junit:4.13.2'
|
testImplementation 'junit:junit:4.13.2'
|
||||||
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
|
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
|
||||||
androidTestImplementation 'com.android.support.test:runner:1.0.2'
|
|
||||||
androidTestImplementation 'com.android.support.test:rules:1.0.2'
|
|
||||||
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
|
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
|
||||||
testImplementation "androidx.work:work-testing:2.9.0"
|
|
||||||
androidTestImplementation 'androidx.test:core-ktx:1.5.0'
|
|
||||||
testImplementation 'androidx.fragment:fragment-testing:1.6.2'
|
|
||||||
testImplementation "org.robolectric:robolectric:4.7"
|
|
||||||
|
|
||||||
// mockk
|
|
||||||
testImplementation 'io.mockk:mockk:1.10.6'
|
|
||||||
|
|
||||||
// Mockito dependencies
|
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.2"
|
||||||
testImplementation 'org.mockito:mockito-core:3.12.4'
|
implementation 'com.opencsv:opencsv:4.6'
|
||||||
androidTestImplementation 'org.mockito:mockito-android:3.12.4'
|
|
||||||
androidTestImplementation 'org.mockito:mockito-inline:3.12.4'
|
|
||||||
androidTestImplementation 'org.mockito:mockito-android:3.12.4'
|
|
||||||
testImplementation 'org.powermock:powermock-api-mockito2:2.0.9'
|
|
||||||
testImplementation 'org.powermock:powermock-module-junit4:2.0.9'
|
|
||||||
|
|
||||||
testImplementation "androidx.arch.core:core-testing:2.2.0"
|
|
||||||
testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.7.1'
|
|
||||||
|
|
||||||
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.7.0"
|
|
||||||
implementation 'com.opencsv:opencsv:5.9'
|
|
||||||
implementation 'com.github.mik3y:usb-serial-for-android:3.5.1'
|
implementation 'com.github.mik3y:usb-serial-for-android:3.5.1'
|
||||||
|
|
||||||
implementation "androidx.fragment:fragment-ktx:1.6.2"
|
implementation "androidx.fragment:fragment-ktx:1.6.1"
|
||||||
|
|
||||||
// CSV read, write
|
// CSV read, write
|
||||||
implementation 'com.opencsv:opencsv:5.9'
|
implementation 'com.opencsv:opencsv:4.6'
|
||||||
|
|
||||||
// Barcode scanner
|
// Barcode scanner
|
||||||
implementation 'com.journeyapps:zxing-android-embedded:4.3.0'
|
implementation 'com.journeyapps:zxing-android-embedded:4.3.0'
|
||||||
|
|
||||||
// Google ML Kit using play services
|
// Google ML Kit usign play services
|
||||||
implementation 'com.google.android.gms:play-services-code-scanner:16.1.0'
|
implementation 'com.google.android.gms:play-services-code-scanner:16.1.0'
|
||||||
|
|
||||||
//Room
|
//Room
|
||||||
implementation "androidx.room:room-ktx:2.6.1"
|
implementation "androidx.room:room-ktx:2.6.0-beta01"
|
||||||
implementation "androidx.room:room-runtime:2.6.1"
|
implementation "androidx.room:room-runtime:2.6.0-beta01"
|
||||||
kapt ("androidx.room:room-compiler:2.6.1")
|
kapt ("androidx.room:room-compiler:2.6.0-beta01")
|
||||||
|
|
||||||
//image
|
//image
|
||||||
implementation 'com.github.bumptech.glide:glide:4.13.2'
|
implementation 'com.github.bumptech.glide:glide:4.13.2'
|
||||||
annotationProcessor 'com.github.bumptech.glide:compiler:4.13.2'
|
annotationProcessor 'com.github.bumptech.glide:compiler:4.13.2'
|
||||||
|
|
||||||
// Navigation Component
|
// Navigation Component
|
||||||
implementation "androidx.navigation:navigation-fragment-ktx:2.7.7"
|
implementation "androidx.navigation:navigation-fragment-ktx:2.7.2"
|
||||||
implementation "androidx.navigation:navigation-ui-ktx:2.7.7"
|
implementation "androidx.navigation:navigation-ui-ktx:2.7.2"
|
||||||
|
|
||||||
//Dagger - Hilt
|
//Dagger - Hilt
|
||||||
implementation "com.google.dagger:hilt-android:2.46"
|
implementation "com.google.dagger:hilt-android:2.46"
|
||||||
kapt "com.google.dagger:hilt-android-compiler:2.46"
|
kapt "com.google.dagger:hilt-android-compiler:2.46"
|
||||||
kapt "androidx.hilt:hilt-compiler:1.1.0"
|
kapt "androidx.hilt:hilt-compiler:1.0.0"
|
||||||
|
|
||||||
// Retrofit + GSON
|
// Retrofit + GSON
|
||||||
implementation "com.squareup.retrofit2:retrofit:2.9.0"
|
implementation "com.squareup.retrofit2:retrofit:2.9.0"
|
||||||
implementation "com.squareup.retrofit2:converter-gson:2.9.0"
|
implementation "com.squareup.retrofit2:converter-gson:2.9.0"
|
||||||
implementation("com.squareup.okhttp3:okhttp:4.9.3")
|
|
||||||
|
|
||||||
implementation "androidx.preference:preference-ktx:1.2.1"
|
|
||||||
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.1'
|
|
||||||
|
|
||||||
implementation("androidx.work:work-runtime-ktx:2.9.0")
|
|
||||||
|
|
||||||
// implementation("io.nats:jnats:2.11.2")
|
|
||||||
implementation 'com.google.android.play:core:1.10.3'
|
|
||||||
|
|
||||||
implementation fileTree(dir: 'libs', include: ['*.aar'])
|
|
||||||
implementation 'io.nats:jnats:2.11.4'
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
{
|
|
||||||
"project_info": {
|
|
||||||
"project_number": "630821402019",
|
|
||||||
"project_id": "iocl-iisc",
|
|
||||||
"storage_bucket": "iocl-iisc.appspot.com"
|
|
||||||
},
|
|
||||||
"client": [
|
|
||||||
{
|
|
||||||
"client_info": {
|
|
||||||
"mobilesdk_app_id": "1:630821402019:android:ed56bae066ac32b51dd616",
|
|
||||||
"android_client_info": {
|
|
||||||
"package_name": "in.sminnovations.hpostesting.iocl"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"oauth_client": [],
|
|
||||||
"api_key": [
|
|
||||||
{
|
|
||||||
"current_key": "AIzaSyABIdxI89eTZ8BqU2cIoJOgJ1lS1cFLCtQ"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"services": {
|
|
||||||
"appinvite_service": {
|
|
||||||
"other_platform_oauth_client": []
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"configuration_version": "1"
|
|
||||||
}
|
|
||||||
Binary file not shown.
BIN
app/release/hpos-app.apk
Normal file
BIN
app/release/hpos-app.apk
Normal file
Binary file not shown.
@@ -4,15 +4,15 @@
|
|||||||
"type": "APK",
|
"type": "APK",
|
||||||
"kind": "Directory"
|
"kind": "Directory"
|
||||||
},
|
},
|
||||||
"applicationId": "in.sminnovations.hpostesting.quality",
|
"applicationId": "com.example.hpos",
|
||||||
"variantName": "release",
|
"variantName": "release",
|
||||||
"elements": [
|
"elements": [
|
||||||
{
|
{
|
||||||
"type": "SINGLE",
|
"type": "SINGLE",
|
||||||
"filters": [],
|
"filters": [],
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"versionCode": 101,
|
"versionCode": 1,
|
||||||
"versionName": "2.1.101",
|
"versionName": "1.0",
|
||||||
"outputFile": "app-release.apk"
|
"outputFile": "app-release.apk"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -1,55 +0,0 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting
|
|
||||||
|
|
||||||
import androidx.test.core.app.ActivityScenario
|
|
||||||
import androidx.test.espresso.Espresso.onView
|
|
||||||
import androidx.test.espresso.matcher.ViewMatchers.withId
|
|
||||||
|
|
||||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
|
||||||
//import com.example.hpostesting.R
|
|
||||||
import com.example.hpostesting.presentation.assurance.AssuranceControlsActivity
|
|
||||||
import `in`.sminnovations.hpostesting.databinding.ActivityAssuranceControlsBinding
|
|
||||||
import org.junit.Test
|
|
||||||
import org.junit.runner.RunWith
|
|
||||||
|
|
||||||
import org.junit.Assert.*
|
|
||||||
|
|
||||||
@RunWith(AndroidJUnit4::class)
|
|
||||||
class AssuranceControlsActivityTest {
|
|
||||||
//
|
|
||||||
// @Test
|
|
||||||
// fun testViewBinding() {
|
|
||||||
// val activityScenario = ActivityScenario.launch(AssuranceControlsActivity::class.java)
|
|
||||||
// activityScenario.onActivity { activity ->
|
|
||||||
// assertNotNull(activity.binding)
|
|
||||||
// assertEquals(ActivityAssuranceControlsBinding::class.java, activity.binding.javaClass)
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// @Test
|
|
||||||
// fun testSharedPreferencesInitialization() {
|
|
||||||
// val activityScenario = ActivityScenario.launch(AssuranceControlsActivity::class.java)
|
|
||||||
// activityScenario.onActivity { activity ->
|
|
||||||
// assertNotNull(activity.sharedPreference)
|
|
||||||
// assertEquals("HEMOCUBE", activity.sharedPreference.getString("HEMOCUBE", null))
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// @Test
|
|
||||||
// fun testFragmentTransaction() {
|
|
||||||
// val activityScenario = ActivityScenario.launch(AssuranceControlsActivity::class.java)
|
|
||||||
// onView(withId(R.id.fgAssuranceControls)).check(matches(isDisplayed())) // Using Espresso for UI verification
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
@@ -1,16 +1,3 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting
|
package com.example.hpostesting
|
||||||
|
|
||||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||||
@@ -30,6 +17,6 @@ class ExampleInstrumentedTest {
|
|||||||
fun useAppContext() {
|
fun useAppContext() {
|
||||||
// Context of the app under test.
|
// Context of the app under test.
|
||||||
val appContext = InstrumentationRegistry.getInstrumentation().targetContext
|
val appContext = InstrumentationRegistry.getInstrumentation().targetContext
|
||||||
// assertEquals("com.example.refactoredapp", appContext.packageName)
|
assertEquals("com.example.refactoredapp", appContext.packageName)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
<!--
|
|
||||||
~ // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
~ // Notice: All information contained herein is, and remains
|
|
||||||
~ // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
~ // if any. The intellectual and technical concepts contained
|
|
||||||
~ // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
~ // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
~ // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
~ // Dissemination of this information or reproduction of this material
|
|
||||||
~ // is strictly forbidden unless prior written permission is obtained
|
|
||||||
~ // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
-->
|
|
||||||
|
|
||||||
<vector android:height="24dp" android:tint="@color/primary"
|
|
||||||
android:viewportHeight="24" android:viewportWidth="24"
|
|
||||||
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
|
||||||
<path android:fillColor="@color/primary" android:pathData="M19,9h-4V3H9v6H5l7,7 7,-7zM5,18v2h14v-2H5z"/>
|
|
||||||
</vector>
|
|
||||||
@@ -1,28 +1,10 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<!--
|
|
||||||
~ // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
~ // Notice: All information contained herein is, and remains
|
|
||||||
~ // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
~ // if any. The intellectual and technical concepts contained
|
|
||||||
~ // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
~ // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
~ // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
~ // Dissemination of this information or reproduction of this material
|
|
||||||
~ // is strictly forbidden unless prior written permission is obtained
|
|
||||||
~ // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
-->
|
|
||||||
|
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:tools="http://schemas.android.com/tools">
|
xmlns:tools="http://schemas.android.com/tools">
|
||||||
|
|
||||||
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
|
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
|
||||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||||
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||||
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
|
|
||||||
|
|
||||||
<uses-permission
|
|
||||||
android:name="android.permission.BATTERY_STATS"
|
|
||||||
tools:ignore="ProtectedPermissions" />
|
|
||||||
|
|
||||||
<uses-feature android:name="android.hardware.camera" />
|
<uses-feature android:name="android.hardware.camera" />
|
||||||
|
|
||||||
@@ -31,14 +13,10 @@
|
|||||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
||||||
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
|
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
|
||||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||||
|
|
||||||
<uses-feature android:name="android.hardware.usb.host" />
|
<uses-feature android:name="android.hardware.usb.host" />
|
||||||
|
|
||||||
<uses-permission android:name="android.permission.USB_PERMISSION" />
|
<uses-permission android:name="android.permission.USB_PERMISSION" />
|
||||||
|
|
||||||
<application
|
<application
|
||||||
android:name="com.example.hpostesting.HPOSTestingApplication"
|
android:name="com.example.hpostesting.HPOSTestingApplication"
|
||||||
android:largeHeap="true"
|
|
||||||
android:allowBackup="true"
|
android:allowBackup="true"
|
||||||
android:dataExtractionRules="@xml/data_extraction_rules"
|
android:dataExtractionRules="@xml/data_extraction_rules"
|
||||||
android:fullBackupContent="@xml/backup_rules"
|
android:fullBackupContent="@xml/backup_rules"
|
||||||
@@ -48,60 +26,10 @@
|
|||||||
android:supportsRtl="true"
|
android:supportsRtl="true"
|
||||||
android:theme="@style/Theme.HPOSTesting"
|
android:theme="@style/Theme.HPOSTesting"
|
||||||
tools:targetApi="31">
|
tools:targetApi="31">
|
||||||
<activity
|
|
||||||
android:name="com.example.hpostesting.presentation.deviceinfo.DeviceActivity"
|
|
||||||
android:exported="false" />
|
|
||||||
<activity
|
|
||||||
android:name="com.example.hpostesting.presentation.hemocube.DigitalCardActivity"
|
|
||||||
android:exported="false" />
|
|
||||||
<activity
|
|
||||||
android:name="com.example.hpostesting.presentation.diagnostics.DiagnosticsActivity"
|
|
||||||
android:exported="false"
|
|
||||||
android:theme="@style/Theme.HPOS.NoActionBar" />
|
|
||||||
<activity
|
|
||||||
android:name="com.example.hpostesting.presentation.autodac.AutoDacActivity"
|
|
||||||
android:exported="false"
|
|
||||||
android:theme="@style/Theme.HPOS.NoActionBar" />
|
|
||||||
<activity
|
|
||||||
android:name="com.example.hpostesting.presentation.jig.JigActivity"
|
|
||||||
android:exported="false"
|
|
||||||
android:theme="@style/Theme.HPOS.NoActionBar" />
|
|
||||||
<activity
|
|
||||||
android:name="com.example.hpostesting.presentation.deviceprovision.DeviceProvisionActivity"
|
|
||||||
android:exported="false"
|
|
||||||
android:theme="@style/Theme.HPOS.NoActionBar" />
|
|
||||||
<activity
|
|
||||||
android:name="com.example.hpostesting.presentation.calibration.CalibrationActivity"
|
|
||||||
android:exported="false"
|
|
||||||
android:theme="@style/Theme.HPOS.NoActionBar"/>
|
|
||||||
|
|
||||||
<activity
|
|
||||||
android:name="com.example.hpostesting.presentation.assurance.AssuranceControlsActivity"
|
|
||||||
android:exported="false"
|
|
||||||
android:screenOrientation="portrait"
|
|
||||||
android:theme="@style/Theme.HPOS.NoActionBar"/>
|
|
||||||
|
|
||||||
<activity
|
<activity
|
||||||
android:name="com.example.hpostesting.presentation.hemocube.HemocubeActivity"
|
android:name="com.example.hpostesting.presentation.hemocube.HemocubeActivity"
|
||||||
android:exported="false"
|
android:exported="false"
|
||||||
android:noHistory="true"
|
android:noHistory="true"
|
||||||
android:screenOrientation="portrait"
|
|
||||||
android:parentActivityName="com.example.hpostesting.presentation.MainActivity"
|
|
||||||
android:theme="@style/Theme.HPOS.NoActionBar"
|
|
||||||
android:windowSoftInputMode="adjustPan" />
|
|
||||||
|
|
||||||
<activity
|
|
||||||
android:name="com.example.hpostesting.presentation.trueheme.TrueHemeActivity"
|
|
||||||
android:exported="false"
|
|
||||||
android:noHistory="true"
|
|
||||||
android:parentActivityName="com.example.hpostesting.presentation.MainActivity"
|
|
||||||
android:theme="@style/Theme.HPOS.NoActionBar"
|
|
||||||
android:windowSoftInputMode="adjustPan" />
|
|
||||||
|
|
||||||
<activity
|
|
||||||
android:name="com.example.hpostesting.presentation.buffercheck.HemocubeBufferCheckActivity"
|
|
||||||
android:exported="false"
|
|
||||||
android:noHistory="true"
|
|
||||||
android:parentActivityName="com.example.hpostesting.presentation.MainActivity"
|
android:parentActivityName="com.example.hpostesting.presentation.MainActivity"
|
||||||
android:theme="@style/Theme.HPOS.NoActionBar"
|
android:theme="@style/Theme.HPOS.NoActionBar"
|
||||||
android:windowSoftInputMode="adjustPan" />
|
android:windowSoftInputMode="adjustPan" />
|
||||||
@@ -114,22 +42,10 @@
|
|||||||
android:name="com.example.hpostesting.presentation.dashboard.DashboardActivity"
|
android:name="com.example.hpostesting.presentation.dashboard.DashboardActivity"
|
||||||
android:exported="false"
|
android:exported="false"
|
||||||
android:label="@string/title_activity_dashboard"
|
android:label="@string/title_activity_dashboard"
|
||||||
android:theme="@style/Theme.HPOS.NoActionBar"
|
android:theme="@style/Theme.HPOS.NoActionBar" />
|
||||||
android:screenOrientation="portrait"
|
|
||||||
tools:ignore="AppLinkUrlError,MissingClass">
|
|
||||||
|
|
||||||
<intent-filter>
|
|
||||||
<action android:name="android.intent.action.VIEW" />
|
|
||||||
<category android:name="android.intent.category.DEFAULT" />
|
|
||||||
<data android:scheme="content" />
|
|
||||||
<data android:scheme="file" />
|
|
||||||
<data android:mimeType="application/vnd.android.package-archive" />
|
|
||||||
</intent-filter>
|
|
||||||
</activity>
|
|
||||||
|
|
||||||
|
|
||||||
<service
|
<service
|
||||||
android:name="com.example.hpostesting.util.UsbService"
|
android:name="com.example.hpostesting.presentation.testRight.UsbService"
|
||||||
android:enabled="true"
|
android:enabled="true"
|
||||||
android:exported="false" />
|
android:exported="false" />
|
||||||
|
|
||||||
@@ -138,17 +54,10 @@
|
|||||||
android:exported="true"
|
android:exported="true"
|
||||||
android:noHistory="true"
|
android:noHistory="true"
|
||||||
android:theme="@style/AppTheme.NoActionBar">
|
android:theme="@style/AppTheme.NoActionBar">
|
||||||
<!-- <intent-filter>-->
|
|
||||||
<!-- <action android:name="android.intent.action.MAIN"/>-->
|
|
||||||
<!-- <category android:name="android.intent.category.LAUNCHER"/>-->
|
|
||||||
<!-- </intent-filter>-->
|
|
||||||
|
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.MAIN" />
|
<action android:name="android.intent.action.MAIN" />
|
||||||
<category android:name="android.intent.category.HOME" />
|
|
||||||
<category android:name="android.intent.category.DEFAULT" />
|
<category android:name="android.intent.category.LAUNCHER" />
|
||||||
<category android:name="android.intent.category.MONKEY"/>
|
|
||||||
<category android:name="android.intent.category.LAUNCHER_APP" />
|
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</activity>
|
</activity>
|
||||||
<activity
|
<activity
|
||||||
@@ -171,7 +80,6 @@
|
|||||||
<activity
|
<activity
|
||||||
android:name="com.example.hpostesting.presentation.MainActivity"
|
android:name="com.example.hpostesting.presentation.MainActivity"
|
||||||
android:exported="true"
|
android:exported="true"
|
||||||
android:screenOrientation="portrait"
|
|
||||||
android:theme="@style/AppTheme.NoActionBar">
|
android:theme="@style/AppTheme.NoActionBar">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
|
<action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
|
||||||
@@ -186,17 +94,6 @@
|
|||||||
android:screenOrientation="portrait"
|
android:screenOrientation="portrait"
|
||||||
android:stateNotNeeded="true"
|
android:stateNotNeeded="true"
|
||||||
tools:replace="android:screenOrientation" />
|
tools:replace="android:screenOrientation" />
|
||||||
<!-- ${applicationId}-->
|
|
||||||
<provider
|
|
||||||
android:name="androidx.core.content.FileProvider"
|
|
||||||
android:authorities="${applicationId}.fileprovider"
|
|
||||||
android:exported="false"
|
|
||||||
android:grantUriPermissions="true">
|
|
||||||
<meta-data
|
|
||||||
android:name="android.support.FILE_PROVIDER_PATHS"
|
|
||||||
android:resource="@xml/file_paths" />
|
|
||||||
</provider>
|
|
||||||
|
|
||||||
</application>
|
</application>
|
||||||
|
|
||||||
</manifest>
|
</manifest>
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
#
|
|
||||||
# // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
# // Notice: All information contained herein is, and remains
|
|
||||||
# // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
# // if any. The intellectual and technical concepts contained
|
|
||||||
# // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
# // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
# // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
# // Dissemination of this information or reproduction of this material
|
|
||||||
# // is strictly forbidden unless prior written permission is obtained
|
|
||||||
# // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
#
|
|
||||||
|
|
||||||
BASE_URL= https://datacollection.micropcr.com/api/
|
|
||||||
@@ -1,28 +1,20 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting
|
package com.example.hpostesting
|
||||||
|
|
||||||
import android.app.Application
|
import android.app.Application
|
||||||
|
import android.content.Context
|
||||||
|
import androidx.room.Room
|
||||||
|
import com.example.hpostesting.data.dao.MyDatabase
|
||||||
|
import com.google.android.datatransport.runtime.dagger.Provides
|
||||||
import com.google.firebase.firestore.FirebaseFirestore
|
import com.google.firebase.firestore.FirebaseFirestore
|
||||||
import com.google.firebase.firestore.FirebaseFirestoreSettings
|
import com.google.firebase.firestore.FirebaseFirestoreSettings
|
||||||
import dagger.hilt.android.HiltAndroidApp
|
import dagger.hilt.android.HiltAndroidApp
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
import kotlinx.coroutines.Dispatchers
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.SupervisorJob
|
import kotlinx.coroutines.SupervisorJob
|
||||||
|
import javax.inject.Singleton
|
||||||
|
|
||||||
@HiltAndroidApp
|
@HiltAndroidApp
|
||||||
class HPOSTestingApplication : Application() {
|
class HPOSTestingApplication: Application() {
|
||||||
val applicationScope = CoroutineScope(SupervisorJob() + Dispatchers.IO)
|
val applicationScope = CoroutineScope(SupervisorJob() + Dispatchers.IO)
|
||||||
|
|
||||||
override fun onCreate() {
|
override fun onCreate() {
|
||||||
|
|||||||
@@ -1,17 +1,4 @@
|
|||||||
/*
|
package com.example.hpostesting.data
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.constant
|
|
||||||
|
|
||||||
import androidx.lifecycle.MutableLiveData
|
import androidx.lifecycle.MutableLiveData
|
||||||
import com.example.hpostesting.data.model.patient.HemoCubeTestData
|
import com.example.hpostesting.data.model.patient.HemoCubeTestData
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
package com.example.hpostesting.data
|
||||||
|
|
||||||
|
import android.util.Log
|
||||||
|
import com.example.hpostesting.data.model.Response
|
||||||
|
import com.example.hpostesting.data.repository.DatabaseRepository
|
||||||
|
import com.example.hpostesting.util.MyUtils
|
||||||
|
import kotlinx.coroutines.GlobalScope
|
||||||
|
import kotlinx.coroutines.launch
|
||||||
|
|
||||||
|
class FileUploader {
|
||||||
|
|
||||||
|
private val TAG = "FileUploader"
|
||||||
|
val repository = DatabaseRepository()
|
||||||
|
|
||||||
|
suspend fun start() {
|
||||||
|
|
||||||
|
val listOfFiles = repository.getAllFromPendingQueue()
|
||||||
|
|
||||||
|
for (each in listOfFiles){
|
||||||
|
// Checking internet connectivity & mobile as same or not
|
||||||
|
if (MyUtils.isInternetConnected() && each.mobileId == DataHolder.mobileUniqueId) {
|
||||||
|
|
||||||
|
Log.d(TAG, "uploading file ${each.pendingId}")
|
||||||
|
GlobalScope.launch {
|
||||||
|
val response = repository.uploadFileToStorage(each.patientId, each.filePath)
|
||||||
|
|
||||||
|
when (response) {
|
||||||
|
is Response.Success -> {
|
||||||
|
Log.d(TAG, "File Uploaded ${each.pendingId}")
|
||||||
|
repository.removeFromPendingQueue(each.pendingId)
|
||||||
|
}
|
||||||
|
|
||||||
|
is Response.Error -> {
|
||||||
|
Log.d(TAG, response.exception.toString())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}.join()
|
||||||
|
|
||||||
|
} else {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,17 +1,4 @@
|
|||||||
/*
|
package com.example.hpostesting.data
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.util
|
|
||||||
|
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
@@ -1,17 +1,4 @@
|
|||||||
/*
|
package com.example.hpostesting.data
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.util
|
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.SharedPreferences
|
import android.content.SharedPreferences
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.api
|
|
||||||
|
|
||||||
import com.example.hpostesting.data.model.devicediagnostics.DeviceDiagnosticsRequest
|
|
||||||
import com.example.hpostesting.data.model.devicediagnostics.DeviceDiagnosticsResponse
|
|
||||||
import com.example.hpostesting.data.model.deviceprovision.DeviceProvisionRequest
|
|
||||||
import com.example.hpostesting.data.model.deviceprovision.DeviceProvisionResponse
|
|
||||||
import com.example.hpostesting.data.model.login.LoginRequest
|
|
||||||
import com.example.hpostesting.data.model.login.LoginResponse
|
|
||||||
import retrofit2.http.Body
|
|
||||||
import retrofit2.http.POST
|
|
||||||
|
|
||||||
interface MolbioAuthApi {
|
|
||||||
|
|
||||||
@POST("deviceManagement/device/provision")
|
|
||||||
suspend fun deviceProvision(
|
|
||||||
@Body deviceProvisionRequest: DeviceProvisionRequest,
|
|
||||||
): DeviceProvisionResponse
|
|
||||||
|
|
||||||
@POST("deviceService/device/login")
|
|
||||||
suspend fun login(
|
|
||||||
@Body loginRequest: LoginRequest,
|
|
||||||
): LoginResponse
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,65 +0,0 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.api
|
|
||||||
|
|
||||||
import com.example.hpostesting.data.model.devicediagnostics.DeviceDiagnosticsRequest
|
|
||||||
import com.example.hpostesting.data.model.devicediagnostics.DeviceDiagnosticsResponse
|
|
||||||
import com.example.hpostesting.data.model.log.UploadLogsResponse
|
|
||||||
import com.example.hpostesting.data.model.molbioresult.MolbioV2ResultRequest
|
|
||||||
import com.example.hpostesting.data.model.molbioresult.MolbioV2ResultResponse
|
|
||||||
import com.example.hpostesting.data.model.updates.CheckUpdateRequest
|
|
||||||
import com.example.hpostesting.data.model.updates.CheckUpdateResponse
|
|
||||||
import com.example.hpostesting.data.model.updates.DeviceUpdateRequest
|
|
||||||
import okhttp3.MultipartBody
|
|
||||||
import okhttp3.ResponseBody
|
|
||||||
import retrofit2.http.Body
|
|
||||||
import retrofit2.http.GET
|
|
||||||
import retrofit2.http.Multipart
|
|
||||||
import retrofit2.http.POST
|
|
||||||
import retrofit2.http.PUT
|
|
||||||
import retrofit2.http.Part
|
|
||||||
|
|
||||||
interface MolbioResultApi {
|
|
||||||
|
|
||||||
@PUT("deviceService/results/HPOS")
|
|
||||||
suspend fun uploadResults(
|
|
||||||
@Body molbioV2ResultRequest: MolbioV2ResultRequest,
|
|
||||||
): MolbioV2ResultResponse
|
|
||||||
|
|
||||||
@POST("deviceService/device/checkUpdate")
|
|
||||||
suspend fun checkUpdate(
|
|
||||||
@Body checkUpdateRequest: CheckUpdateRequest,
|
|
||||||
): CheckUpdateResponse
|
|
||||||
|
|
||||||
@POST("deviceService/device/getUpdate")
|
|
||||||
suspend fun deviceUpdate(
|
|
||||||
@Body deviceUpdateRequest: DeviceUpdateRequest,
|
|
||||||
): ResponseBody
|
|
||||||
|
|
||||||
@GET("deviceService/device/getClientCertificate")
|
|
||||||
suspend fun downloadClientCertificate(
|
|
||||||
): ResponseBody
|
|
||||||
|
|
||||||
@Multipart
|
|
||||||
@POST("deviceService/device/uploadLogs")
|
|
||||||
suspend fun uploadLogs(
|
|
||||||
@Part logFile: MultipartBody.Part,
|
|
||||||
): UploadLogsResponse
|
|
||||||
|
|
||||||
|
|
||||||
@PUT("deviceService/device/uploadDeviceDiagnostics")
|
|
||||||
suspend fun deviceDiagnostics(
|
|
||||||
@Body deviceDiagnosticsRequest: DeviceDiagnosticsRequest
|
|
||||||
): DeviceDiagnosticsResponse
|
|
||||||
}
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,33 +1,8 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.constant
|
package com.example.hpostesting.data.constant
|
||||||
|
|
||||||
enum class HemoCubeCommands(val command: String) {
|
enum class HemoCubeCommands(val command: String) {
|
||||||
START_BUFFER_COMMAND("B\r"),
|
startBuffer("B\r"),
|
||||||
AUTO_DAC_COMMAND("C\r"),
|
getBuffer("Q\r"),
|
||||||
SET_AUTO_DAC_TO_EPROM_COMMAND("G\r"),
|
startSample("S\r"),
|
||||||
DIAGNOSTICS_COMMAND("D\r"),
|
getSample("P\r"),
|
||||||
FIRMWARE_INFO_COMMAND("F\r"),
|
|
||||||
START_SAMPLE("S\r"),
|
|
||||||
PRINT_COMMAND("P\r"),
|
|
||||||
READ_DAC_COMMAND("R\r"),
|
|
||||||
DEVICE_CONFIGURATION_COMMAND("I\r"),
|
|
||||||
LOAD_DAC_VALUES("E\r"),
|
|
||||||
FIRST_GAIN_COMMAND("T\r"),
|
|
||||||
SECOND_GAIN_COMMAND("U\r"),
|
|
||||||
THIRD_GAIN_COMMAND("V\r"),
|
|
||||||
FORTH_GAIN_COMMAND("W\r"),
|
|
||||||
CHECK_CUVETTE_COMMAND("L\r"),
|
|
||||||
CHECK_TEMP_COMMAND("A\r"),
|
|
||||||
}
|
}
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.constant
|
|
||||||
|
|
||||||
import android.content.Context
|
|
||||||
import android.content.SharedPreferences
|
|
||||||
import java.util.Locale
|
|
||||||
|
|
||||||
object LanguageManager {
|
|
||||||
private const val LANGUAGE_PREF_KEY = "language_pref"
|
|
||||||
|
|
||||||
fun setLocale(context: Context, languageCode: String) {
|
|
||||||
val locale = Locale(languageCode)
|
|
||||||
Locale.setDefault(locale)
|
|
||||||
|
|
||||||
val resources = context.resources
|
|
||||||
val configuration = resources.configuration
|
|
||||||
configuration.setLocale(locale)
|
|
||||||
|
|
||||||
context.createConfigurationContext(configuration)
|
|
||||||
}
|
|
||||||
|
|
||||||
fun persistLanguagePreference(context: Context, languageCode: String) {
|
|
||||||
val prefs: SharedPreferences =
|
|
||||||
context.getSharedPreferences("AppPrefs", Context.MODE_PRIVATE)
|
|
||||||
prefs.edit().putString(LANGUAGE_PREF_KEY, languageCode).apply()
|
|
||||||
}
|
|
||||||
|
|
||||||
fun getSavedLanguage(context: Context): String {
|
|
||||||
val prefs: SharedPreferences =
|
|
||||||
context.getSharedPreferences("AppPrefs", Context.MODE_PRIVATE)
|
|
||||||
return prefs.getString(LANGUAGE_PREF_KEY, "en") ?: "en"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,16 +1,3 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.constant
|
package com.example.hpostesting.data.constant
|
||||||
|
|
||||||
enum class TestRightCommands(val command: String) {
|
enum class TestRightCommands(val command: String) {
|
||||||
|
|||||||
@@ -1,60 +0,0 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.constant
|
|
||||||
|
|
||||||
enum class TestStatus(val code: Double) {
|
|
||||||
TEST_STARTED(1.0),
|
|
||||||
CONFIG_STARTED(2.0),
|
|
||||||
CONFIG_COMPLETED(3.0),
|
|
||||||
FIRST_EMPTY_AIR_READING_STARTED(4.1),
|
|
||||||
FIRST_EMPTY_AIR_READING_COMPLETED(4.2),
|
|
||||||
FIRST_EMPTY_AIR_READING_PRINT_STARTED(4.3),
|
|
||||||
FIRST_EMPTY_AIR_READING_PRINT_COMPLETED(4.4),
|
|
||||||
EPROM_ADC_RETRIEVAL_STARTED(4.5),
|
|
||||||
EPROM_ADC_RETRIEVAL_COMPLETED(4.6),
|
|
||||||
TEMPERATURE_CHECK(4.7),
|
|
||||||
CUVETTE_ABSENT(4.8),
|
|
||||||
CUVETTE_PRESENT(4.9),
|
|
||||||
CUVETTE_ABSENTS(7.7),
|
|
||||||
CUVETTE_PRESENTS(7.8),
|
|
||||||
BUFFER_STARTED(5.1),
|
|
||||||
BUFFER_COMPLETED(5.2),
|
|
||||||
BUFFER_PRINT_STARTED(6.0),
|
|
||||||
BUFFER_PRINT_COMPLETED(7.0),
|
|
||||||
SAMPLE_STARTED(8.0),
|
|
||||||
SAMPLE_COMPLETED(9.0),
|
|
||||||
SAMPLE_PRINT_STARTED(10.0),
|
|
||||||
SAMPLE_PRINT_COMPLETED(11.0),
|
|
||||||
SECOND_EMPTY_AIR_READING_STARTED(11.1),
|
|
||||||
SECOND_EMPTY_AIR_READING_COMPLETED(11.2),
|
|
||||||
SECOND_EMPTY_AIR_PRINT_STARTED(11.3),
|
|
||||||
SECOND_EMPTY_AIR_PRINT_COMPLETED(11.4),
|
|
||||||
FIRST_GAIN_STARTED(12.0),
|
|
||||||
FIRST_GAIN_COMPLETED(13.0),
|
|
||||||
FIRST_GAIN_PRINT_STARTED(14.0),
|
|
||||||
FIRST_GAIN_PRINT_COMPLETED(15.0),
|
|
||||||
SECOND_GAIN_STARTED(16.0),
|
|
||||||
SECOND_GAIN_COMPLETED(17.0),
|
|
||||||
SECOND_GAIN_PRINT_STARTED(18.0),
|
|
||||||
SECOND_GAIN_PRINT_COMPLETED(19.0),
|
|
||||||
THIRD_GAIN_STARTED(20.0),
|
|
||||||
THIRD_GAIN_COMPLETED(21.0),
|
|
||||||
THIRD_GAIN_PRINT_STARTED(22.0),
|
|
||||||
THIRD_GAIN_PRINT_COMPLETED(23.0),
|
|
||||||
FORTH_GAIN_STARTED(24.0),
|
|
||||||
FORTH_GAIN_COMPLETED(25.0),
|
|
||||||
FORTH_GAIN_PRINT_STARTED(26.0),
|
|
||||||
FORTH_GAIN_PRINT_COMPLETED(27.0),
|
|
||||||
TEST_COMPLETED(30.0)
|
|
||||||
}
|
|
||||||
@@ -1,16 +1,3 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.dao
|
package com.example.hpostesting.data.dao
|
||||||
|
|
||||||
import androidx.room.TypeConverter
|
import androidx.room.TypeConverter
|
||||||
@@ -29,7 +16,6 @@ class Converters {
|
|||||||
null
|
null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@TypeConverter
|
@TypeConverter
|
||||||
fun toString(location: UserData.Location?): String? {
|
fun toString(location: UserData.Location?): String? {
|
||||||
return if (location != null) {
|
return if (location != null) {
|
||||||
|
|||||||
@@ -1,16 +1,3 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.dao
|
package com.example.hpostesting.data.dao
|
||||||
|
|
||||||
import androidx.lifecycle.LiveData
|
import androidx.lifecycle.LiveData
|
||||||
@@ -20,7 +7,7 @@ import androidx.room.OnConflictStrategy
|
|||||||
import androidx.room.Query
|
import androidx.room.Query
|
||||||
import com.example.hpostesting.data.model.patient.DeviceData
|
import com.example.hpostesting.data.model.patient.DeviceData
|
||||||
import com.example.hpostesting.data.model.patient.HemoCubeTestData
|
import com.example.hpostesting.data.model.patient.HemoCubeTestData
|
||||||
|
import com.example.hpostesting.data.model.patient.UserData
|
||||||
@Dao
|
@Dao
|
||||||
interface DeviceDao {
|
interface DeviceDao {
|
||||||
@Query("SELECT * from device_table")
|
@Query("SELECT * from device_table")
|
||||||
|
|||||||
@@ -1,39 +0,0 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.dao
|
|
||||||
|
|
||||||
import androidx.lifecycle.LiveData
|
|
||||||
import androidx.room.Dao
|
|
||||||
import androidx.room.Insert
|
|
||||||
import androidx.room.OnConflictStrategy
|
|
||||||
import androidx.room.Query
|
|
||||||
import com.example.hpostesting.data.model.patient.BufferCheckData
|
|
||||||
|
|
||||||
@Dao
|
|
||||||
interface HemoCubeBufferDao {
|
|
||||||
@Query("SELECT * from hemo_cube_buffer_test_table")
|
|
||||||
fun getAll(): LiveData<List<BufferCheckData>>
|
|
||||||
|
|
||||||
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
|
||||||
suspend fun insertAll(bufferCheckData: BufferCheckData)
|
|
||||||
|
|
||||||
@Query("SELECT * FROM hemo_cube_buffer_test_table WHERE _id = :id")
|
|
||||||
suspend fun getUserByID(id: String): BufferCheckData
|
|
||||||
|
|
||||||
@Query("DELETE FROM hemo_cube_buffer_test_table WHERE _id = :id")
|
|
||||||
suspend fun deleteById(id: String)
|
|
||||||
|
|
||||||
@Query("UPDATE hemo_cube_buffer_test_table SET localFlag = :newValue WHERE _id = :id")
|
|
||||||
suspend fun updateFieldById(id: String, newValue: Boolean)
|
|
||||||
}
|
|
||||||
@@ -1,16 +1,3 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.dao
|
package com.example.hpostesting.data.dao
|
||||||
|
|
||||||
import androidx.lifecycle.LiveData
|
import androidx.lifecycle.LiveData
|
||||||
@@ -18,7 +5,6 @@ import androidx.room.Dao
|
|||||||
import androidx.room.Insert
|
import androidx.room.Insert
|
||||||
import androidx.room.OnConflictStrategy
|
import androidx.room.OnConflictStrategy
|
||||||
import androidx.room.Query
|
import androidx.room.Query
|
||||||
import androidx.room.Update
|
|
||||||
import com.example.hpostesting.data.model.patient.HemoCubeTestData
|
import com.example.hpostesting.data.model.patient.HemoCubeTestData
|
||||||
import com.example.hpostesting.data.model.patient.UserData
|
import com.example.hpostesting.data.model.patient.UserData
|
||||||
@Dao
|
@Dao
|
||||||
@@ -26,12 +12,6 @@ interface HemoCubeDao {
|
|||||||
@Query("SELECT * from hemo_cube_test_table")
|
@Query("SELECT * from hemo_cube_test_table")
|
||||||
fun getAll(): LiveData<List<HemoCubeTestData>>
|
fun getAll(): LiveData<List<HemoCubeTestData>>
|
||||||
|
|
||||||
@Query("SELECT * from hemo_cube_test_table WHERE molbioFlag=false")
|
|
||||||
fun getMolbioPending(): List<HemoCubeTestData>
|
|
||||||
|
|
||||||
@Query("SELECT * from hemo_cube_test_table WHERE localFlag=false")
|
|
||||||
fun getFirebasePending():List<HemoCubeTestData>
|
|
||||||
|
|
||||||
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
||||||
suspend fun insertAll(hemoCubeTestData: HemoCubeTestData)
|
suspend fun insertAll(hemoCubeTestData: HemoCubeTestData)
|
||||||
|
|
||||||
@@ -40,17 +20,4 @@ interface HemoCubeDao {
|
|||||||
|
|
||||||
@Query("DELETE FROM hemo_cube_test_table WHERE _id = :id")
|
@Query("DELETE FROM hemo_cube_test_table WHERE _id = :id")
|
||||||
suspend fun deleteById(id: String)
|
suspend fun deleteById(id: String)
|
||||||
|
|
||||||
@Query("UPDATE hemo_cube_test_table SET localFlag = :newValue WHERE _id = :id")
|
|
||||||
suspend fun updateFieldById(id: String, newValue: Boolean)
|
|
||||||
|
|
||||||
@Query("UPDATE hemo_cube_test_table SET molbioFlag = :newValue WHERE _id = :id")
|
|
||||||
suspend fun updateMolbioFlag(id: String, newValue: Boolean)
|
|
||||||
|
|
||||||
@Query("UPDATE hemo_cube_test_table SET isCSVCreated = :newValue WHERE _id = :id")
|
|
||||||
suspend fun updateCSVFieldById(id: String, newValue: Boolean)
|
|
||||||
|
|
||||||
@Query("SELECT * from hemo_cube_test_table WHERE localFlag = 0")
|
|
||||||
fun getPendingUser(): LiveData<List<HemoCubeTestData>>
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1,34 +1,19 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.dao
|
package com.example.hpostesting.data.dao
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
import androidx.room.Database
|
import androidx.room.Database
|
||||||
|
import androidx.room.Room
|
||||||
import androidx.room.RoomDatabase
|
import androidx.room.RoomDatabase
|
||||||
import androidx.room.TypeConverters
|
import androidx.room.TypeConverters
|
||||||
import com.example.hpostesting.data.model.patient.BufferCheckData
|
|
||||||
import com.example.hpostesting.data.model.patient.DeviceData
|
import com.example.hpostesting.data.model.patient.DeviceData
|
||||||
import com.example.hpostesting.data.model.patient.HemoCubeTestData
|
|
||||||
import com.example.hpostesting.data.model.patient.UserData
|
import com.example.hpostesting.data.model.patient.UserData
|
||||||
|
import com.example.hpostesting.data.model.patient.HemoCubeTestData
|
||||||
|
import com.google.android.datatransport.runtime.dagger.Provides
|
||||||
|
import javax.inject.Singleton
|
||||||
|
|
||||||
@Database(
|
@Database(entities = [UserData::class, HemoCubeTestData::class, DeviceData::class], version = 3, exportSchema = false)
|
||||||
entities = [UserData::class, HemoCubeTestData::class, DeviceData::class, BufferCheckData::class],
|
|
||||||
version = 30,
|
|
||||||
exportSchema = false
|
|
||||||
)
|
|
||||||
@TypeConverters(Converters::class)
|
@TypeConverters(Converters::class)
|
||||||
abstract class MyDatabase : RoomDatabase() {
|
abstract class MyDatabase : RoomDatabase() {
|
||||||
abstract fun userDao(): UserDao
|
abstract fun userDao(): UserDao
|
||||||
abstract fun hemoCubeDao(): HemoCubeDao
|
abstract fun hemoCubeDao(): HemoCubeDao
|
||||||
abstract fun hemoCubeBufferDao(): HemoCubeBufferDao
|
|
||||||
}
|
}
|
||||||
@@ -1,16 +1,3 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.dao
|
package com.example.hpostesting.data.dao
|
||||||
|
|
||||||
import androidx.lifecycle.LiveData
|
import androidx.lifecycle.LiveData
|
||||||
|
|||||||
@@ -1,29 +1,23 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.datasource
|
package com.example.hpostesting.data.datasource
|
||||||
|
|
||||||
import com.example.hpostesting.data.model.patient.HemoCubeTestData
|
import com.opencsv.CSVWriter
|
||||||
|
import java.io.File
|
||||||
|
import java.io.FileWriter
|
||||||
|
|
||||||
interface LocalFileDataSource {
|
class LocalFileDataSource {
|
||||||
|
|
||||||
fun saveCsvToDisk(filepath: String, contents: ArrayList<Array<String>>)
|
fun saveCsvToDisk(filepath: String, contents: ArrayList<Array<String>>){
|
||||||
|
val writer = CSVWriter(FileWriter(filepath))
|
||||||
|
writer.writeAll(contents) // data is adding to csv
|
||||||
|
writer.close()
|
||||||
|
}
|
||||||
|
|
||||||
fun saveTextToDisk(filepath: String, contents: String)
|
fun saveTextToDisk(filepath: String, contents: String){
|
||||||
|
val writer = FileWriter(File(filepath))
|
||||||
|
|
||||||
fun exportDataToCSV(
|
writer.append(contents)
|
||||||
fileName: String, dataList: List<HemoCubeTestData>,
|
writer.flush()
|
||||||
): Boolean
|
writer.close()
|
||||||
fun backUpDataToCSV(fileName: String, dataList: List<HemoCubeTestData>)
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1,299 +0,0 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.datasource
|
|
||||||
|
|
||||||
import android.os.Environment
|
|
||||||
import com.example.hpostesting.data.model.patient.HemoCubeTestData
|
|
||||||
import com.opencsv.CSVWriter
|
|
||||||
import java.io.File
|
|
||||||
import java.io.FileWriter
|
|
||||||
import java.io.IOException
|
|
||||||
import javax.inject.Inject
|
|
||||||
|
|
||||||
class LocalFileDataSourceImpl @Inject constructor() : LocalFileDataSource {
|
|
||||||
|
|
||||||
override fun saveCsvToDisk(filepath: String, contents: ArrayList<Array<String>>) {
|
|
||||||
val writer = CSVWriter(FileWriter(filepath))
|
|
||||||
writer.writeAll(contents) // data is adding to csv
|
|
||||||
writer.close()
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun saveTextToDisk(filepath: String, contents: String) {
|
|
||||||
val writer = FileWriter(File(filepath))
|
|
||||||
|
|
||||||
writer.append(contents)
|
|
||||||
writer.flush()
|
|
||||||
writer.close()
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun exportDataToCSV(
|
|
||||||
fileName: String, dataList: List<HemoCubeTestData>,
|
|
||||||
): Boolean {
|
|
||||||
try {
|
|
||||||
val formattedFileName = fileName.replace(
|
|
||||||
Regex("[^a-zA-Z0-9.-]"),
|
|
||||||
"_"
|
|
||||||
) // Replace special characters with underscores
|
|
||||||
val filePath = File(getExternalStorageDirectory(), formattedFileName)
|
|
||||||
val writer = FileWriter(filePath)
|
|
||||||
val csvWriter = CSVWriter(writer)
|
|
||||||
// Write CSV header
|
|
||||||
val header = arrayOf(
|
|
||||||
"_id",
|
|
||||||
"name",
|
|
||||||
"incubationTime",
|
|
||||||
"bloodGroup",
|
|
||||||
"birthYear", // Include other fields from the data class
|
|
||||||
"state",
|
|
||||||
"abhaId",
|
|
||||||
"userImageURL",
|
|
||||||
"location",
|
|
||||||
"reportUploadTime",
|
|
||||||
"testType",
|
|
||||||
"testTime",
|
|
||||||
"testStatus",
|
|
||||||
"gender",
|
|
||||||
"localFlag", // Add more fields as necessary
|
|
||||||
"deviceId",
|
|
||||||
"appVersion",
|
|
||||||
"deviceSerialNumber",
|
|
||||||
"deviceType",
|
|
||||||
"kitSerial",
|
|
||||||
"resultData",
|
|
||||||
"led1Buffer",
|
|
||||||
"led2Buffer",
|
|
||||||
"led3Buffer",
|
|
||||||
"led4Buffer",
|
|
||||||
"led1Sample",
|
|
||||||
"led2Sample",
|
|
||||||
"led3Sample",
|
|
||||||
"led4Sample",
|
|
||||||
"led1Average",
|
|
||||||
"led2Average",
|
|
||||||
"led3Average",
|
|
||||||
"led4Average",
|
|
||||||
"abs1",
|
|
||||||
"abs2",
|
|
||||||
"abs3",
|
|
||||||
"abs4",
|
|
||||||
"deviceRatio",
|
|
||||||
"calculatedRatio",
|
|
||||||
"predictedDenovixRatio",
|
|
||||||
"coefficients",
|
|
||||||
"classificationResult",
|
|
||||||
"prdClassification",
|
|
||||||
"errorMessages",
|
|
||||||
"batteryLevel",
|
|
||||||
"batteryCapacity",
|
|
||||||
"batteryMaxCapacity",
|
|
||||||
"batteryTemperature",
|
|
||||||
"batteryVoltage"
|
|
||||||
)
|
|
||||||
csvWriter.writeNext(header)
|
|
||||||
|
|
||||||
// Filter and write data rows where testStatus is true
|
|
||||||
val filteredDataList = dataList.filter { it.testStatus == true }
|
|
||||||
for (data in filteredDataList) {
|
|
||||||
val row = arrayOf(
|
|
||||||
data._id,
|
|
||||||
data.name,
|
|
||||||
data.incubationTime,
|
|
||||||
data.bloodGroup,
|
|
||||||
data.birthYear, // Include other fields similarly
|
|
||||||
data.state,
|
|
||||||
data.abhaId,
|
|
||||||
data.userImageURL,
|
|
||||||
data.location?.toString(),
|
|
||||||
data.reportUploadTime ?: "",
|
|
||||||
data.testType ?: "",
|
|
||||||
data.testTime ?: "",
|
|
||||||
data.testStatus?.toString() ?: "",
|
|
||||||
data.gender,
|
|
||||||
data.localFlag.toString(),
|
|
||||||
data.deviceId ?: "",
|
|
||||||
data.appVersion ?: "",
|
|
||||||
data.deviceSerialNumber,
|
|
||||||
data.deviceType,
|
|
||||||
data.kitSerial,
|
|
||||||
data.resultData,
|
|
||||||
data.led1Buffer?.toString() ?: "",
|
|
||||||
data.led2Buffer?.toString() ?: "",
|
|
||||||
data.led3Buffer?.toString() ?: "",
|
|
||||||
data.led4Buffer?.toString() ?: "",
|
|
||||||
data.led1Sample?.toString() ?: "",
|
|
||||||
data.led2Sample?.toString() ?: "",
|
|
||||||
data.led3Sample?.toString() ?: "",
|
|
||||||
data.led4Sample?.toString() ?: "",
|
|
||||||
data.led1Average?.toString() ?: "",
|
|
||||||
data.led2Average?.toString() ?: "",
|
|
||||||
data.led3Average?.toString() ?: "",
|
|
||||||
data.led4Average?.toString() ?: "",
|
|
||||||
data.abs1?.toString() ?: "",
|
|
||||||
data.abs2?.toString() ?: "",
|
|
||||||
data.abs3?.toString() ?: "",
|
|
||||||
data.abs4?.toString() ?: "",
|
|
||||||
data.deviceRatio?.toString() ?: "",
|
|
||||||
data.calculatedRatio?.toString() ?: "",
|
|
||||||
data.predictedDenovixRatio?.toString() ?: "",
|
|
||||||
data.coefficients ?: "",
|
|
||||||
data.classificationResult,
|
|
||||||
data.prdClassification,
|
|
||||||
data.errorMessages,
|
|
||||||
data.batteryLevel,
|
|
||||||
data.batteryCapacity,
|
|
||||||
data.batteryMaxCapacity,
|
|
||||||
data.batteryTemperature,
|
|
||||||
data.batteryVoltage
|
|
||||||
)
|
|
||||||
csvWriter.writeNext(row)
|
|
||||||
}
|
|
||||||
writer.close()
|
|
||||||
return true
|
|
||||||
} catch (e: IOException) {
|
|
||||||
e.printStackTrace()
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun backUpDataToCSV(fileName: String, dataList: List<HemoCubeTestData>) {
|
|
||||||
try {
|
|
||||||
val filePath = File(getExternalStorageDirectory(), fileName)
|
|
||||||
val writer = FileWriter(filePath)
|
|
||||||
val csvWriter = CSVWriter(writer)
|
|
||||||
// Write CSV header
|
|
||||||
val header = arrayOf(
|
|
||||||
"_id",
|
|
||||||
"name",
|
|
||||||
"incubationTime",
|
|
||||||
"bloodGroup",
|
|
||||||
"birthYear", // Include other fields from the data class
|
|
||||||
"state",
|
|
||||||
"abhaId",
|
|
||||||
"userImageURL",
|
|
||||||
"location",
|
|
||||||
"reportUploadTime",
|
|
||||||
"testType",
|
|
||||||
"testTime",
|
|
||||||
"testStatus",
|
|
||||||
"gender",
|
|
||||||
"localFlag", // Add more fields as necessary
|
|
||||||
"deviceId",
|
|
||||||
"appVersion",
|
|
||||||
"deviceSerialNumber",
|
|
||||||
"deviceType",
|
|
||||||
"kitSerial",
|
|
||||||
"resultData",
|
|
||||||
"led1Buffer",
|
|
||||||
"led2Buffer",
|
|
||||||
"led3Buffer",
|
|
||||||
"led4Buffer",
|
|
||||||
"led1Sample",
|
|
||||||
"led2Sample",
|
|
||||||
"led3Sample",
|
|
||||||
"led4Sample",
|
|
||||||
"led1Average",
|
|
||||||
"led2Average",
|
|
||||||
"led3Average",
|
|
||||||
"led4Average",
|
|
||||||
"abs1",
|
|
||||||
"abs2",
|
|
||||||
"abs3",
|
|
||||||
"abs4",
|
|
||||||
"deviceRatio",
|
|
||||||
"calculatedRatio",
|
|
||||||
"predictedDenovixRatio",
|
|
||||||
"coefficients",
|
|
||||||
"classificationResult",
|
|
||||||
"prdClassification",
|
|
||||||
"errorMessages",
|
|
||||||
"batteryLevel",
|
|
||||||
"batteryCapacity",
|
|
||||||
"batteryMaxCapacity",
|
|
||||||
"batteryTemperature",
|
|
||||||
"batteryVoltage"
|
|
||||||
)
|
|
||||||
csvWriter.writeNext(header)
|
|
||||||
|
|
||||||
// Filter and write data rows where testStatus is true
|
|
||||||
val filteredDataList = dataList.filter { it.testStatus == true }
|
|
||||||
for (data in filteredDataList) {
|
|
||||||
val row = arrayOf(
|
|
||||||
data._id,
|
|
||||||
data.name,
|
|
||||||
data.incubationTime,
|
|
||||||
data.bloodGroup,
|
|
||||||
data.birthYear, // Include other fields similarly
|
|
||||||
data.state,
|
|
||||||
data.abhaId,
|
|
||||||
data.userImageURL,
|
|
||||||
data.location?.toString(),
|
|
||||||
data.reportUploadTime ?: "",
|
|
||||||
data.testType ?: "",
|
|
||||||
data.testTime ?: "",
|
|
||||||
data.testStatus?.toString() ?: "",
|
|
||||||
data.gender,
|
|
||||||
data.localFlag.toString(),
|
|
||||||
data.deviceId ?: "",
|
|
||||||
data.appVersion ?: "",
|
|
||||||
data.deviceSerialNumber,
|
|
||||||
data.deviceType,
|
|
||||||
data.kitSerial,
|
|
||||||
data.resultData,
|
|
||||||
data.led1Buffer?.toString() ?: "",
|
|
||||||
data.led2Buffer?.toString() ?: "",
|
|
||||||
data.led3Buffer?.toString() ?: "",
|
|
||||||
data.led4Buffer?.toString() ?: "",
|
|
||||||
data.led1Sample?.toString() ?: "",
|
|
||||||
data.led2Sample?.toString() ?: "",
|
|
||||||
data.led3Sample?.toString() ?: "",
|
|
||||||
data.led4Sample?.toString() ?: "",
|
|
||||||
data.led1Average?.toString() ?: "",
|
|
||||||
data.led2Average?.toString() ?: "",
|
|
||||||
data.led3Average?.toString() ?: "",
|
|
||||||
data.led4Average?.toString() ?: "",
|
|
||||||
data.abs1?.toString() ?: "",
|
|
||||||
data.abs2?.toString() ?: "",
|
|
||||||
data.abs3?.toString() ?: "",
|
|
||||||
data.abs4?.toString() ?: "",
|
|
||||||
data.deviceRatio?.toString() ?: "",
|
|
||||||
data.calculatedRatio?.toString() ?: "",
|
|
||||||
data.predictedDenovixRatio?.toString() ?: "",
|
|
||||||
data.coefficients ?: "",
|
|
||||||
data.classificationResult,
|
|
||||||
data.prdClassification,
|
|
||||||
data.errorMessages,
|
|
||||||
data.batteryLevel,
|
|
||||||
data.batteryCapacity,
|
|
||||||
data.batteryMaxCapacity,
|
|
||||||
data.batteryTemperature,
|
|
||||||
data.batteryVoltage
|
|
||||||
)
|
|
||||||
csvWriter.writeNext(row)
|
|
||||||
}
|
|
||||||
writer.close()
|
|
||||||
} catch (e: IOException) {
|
|
||||||
e.printStackTrace()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun getExternalStorageDirectory(): File {
|
|
||||||
val folder = File(Environment.getExternalStorageDirectory(), "HposFolder")
|
|
||||||
|
|
||||||
if (!folder.exists()) {
|
|
||||||
folder.mkdirs()
|
|
||||||
}
|
|
||||||
|
|
||||||
return folder
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,16 +1,3 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model
|
package com.example.hpostesting.data.model
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,16 +1,3 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model
|
package com.example.hpostesting.data.model
|
||||||
|
|
||||||
data class CalculationVariableForTest(
|
data class CalculationVariableForTest(
|
||||||
|
|||||||
@@ -1,16 +1,3 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model
|
package com.example.hpostesting.data.model
|
||||||
|
|
||||||
data class ErrorMessage (
|
data class ErrorMessage (
|
||||||
|
|||||||
@@ -1,16 +1,3 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model
|
package com.example.hpostesting.data.model
|
||||||
|
|
||||||
data class Location(
|
data class Location(
|
||||||
|
|||||||
@@ -1,16 +1,3 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model
|
package com.example.hpostesting.data.model
|
||||||
|
|
||||||
import com.example.hpostesting.data.model.test.TestRightResultType
|
import com.example.hpostesting.data.model.test.TestRightResultType
|
||||||
|
|||||||
@@ -1,16 +1,3 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model
|
package com.example.hpostesting.data.model
|
||||||
|
|
||||||
import java.util.Calendar
|
import java.util.Calendar
|
||||||
|
|||||||
@@ -1,16 +1,3 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model
|
package com.example.hpostesting.data.model
|
||||||
|
|
||||||
sealed class Response<out R> {
|
sealed class Response<out R> {
|
||||||
|
|||||||
@@ -1,57 +0,0 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model
|
|
||||||
|
|
||||||
import com.example.hpostesting.data.constant.Constants
|
|
||||||
import com.example.hpostesting.data.model.patient.DeviceData
|
|
||||||
import com.example.hpostesting.data.model.patient.HemoCubeTestData
|
|
||||||
|
|
||||||
data class TestState (
|
|
||||||
var testDetails: HemoCubeTestData? = null,
|
|
||||||
var isOnline: Boolean = false,
|
|
||||||
var currentDeviceData: DeviceData? = null,
|
|
||||||
var resultData: String = "",
|
|
||||||
var currentResultData: String = "",
|
|
||||||
var isUsingExistingBuffer: Boolean = false,
|
|
||||||
var isTestOngoing: Boolean = false,
|
|
||||||
var led1BufferForDevice: Double = 0.0,
|
|
||||||
var led2BufferForDevice: Double = 0.0,
|
|
||||||
var led3BufferForDevice: Double = 0.0,
|
|
||||||
var led4BufferForDevice: Double = 0.0,
|
|
||||||
var led1SampleForDevice: Double = 0.0,
|
|
||||||
var led2SampleForDevice: Double = 0.0,
|
|
||||||
var led3SampleForDevice: Double = 0.0,
|
|
||||||
var led4SampleForDevice: Double = 0.0,
|
|
||||||
var fittedAbs1: Double = 0.0,
|
|
||||||
var fittedAbs2: Double = 0.0,
|
|
||||||
var fittedAbs3: Double = 0.0,
|
|
||||||
var fittedAbs4: Double = 0.0,
|
|
||||||
// var led1Air1: Double? = null,
|
|
||||||
// var led2Air1: Double? = null,
|
|
||||||
// var led3Air1: Double? = null,
|
|
||||||
// var led4Air1: Double? = null,
|
|
||||||
// var led1Air2: Double? = null,
|
|
||||||
// var led2Air2: Double? = null,
|
|
||||||
// var led3Air2: Double? = null,
|
|
||||||
// var led4Air2: Double? = null,
|
|
||||||
var calculatedPredictedDenovixRatio: Double = 0.0,
|
|
||||||
var validationError: Boolean = false,
|
|
||||||
var deviceHardwareId: String = "",
|
|
||||||
var allErrorMessages: String = "",
|
|
||||||
var testStatusCode: Double = 0.0,
|
|
||||||
var repeatReadingCount: Int = 0,
|
|
||||||
var readingsPerSample: Int = Constants.READINGS_PER_SAMPLE,
|
|
||||||
var uploadedToCloud: Boolean = false,
|
|
||||||
var uploadedToMolbio: Boolean = false
|
|
||||||
)
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model.calibration
|
|
||||||
|
|
||||||
data class CalibrationData (
|
|
||||||
var led1Slope: Double = 1.0,
|
|
||||||
var led1Intercept: Double = 0.0,
|
|
||||||
var led2Slope: Double = 1.0,
|
|
||||||
var led2Intercept: Double = 0.0,
|
|
||||||
var led3Slope: Double = 1.0,
|
|
||||||
var led3Intercept: Double = 0.0,
|
|
||||||
var led4Slope: Double = 1.0,
|
|
||||||
var led4Intercept: Double = 0.0,
|
|
||||||
var calibratedAt: String = ""
|
|
||||||
)
|
|
||||||
@@ -1,27 +0,0 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model.devicediagnostics
|
|
||||||
|
|
||||||
data class AdditionalDetails(
|
|
||||||
val batteryLevel: String? = "",
|
|
||||||
val batteryCapacity: String? = "",
|
|
||||||
val batteryMaxCapacity: String? = "",
|
|
||||||
val batteryTemperature: String? = "",
|
|
||||||
val batteryVoltage: String? = "",
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model.devicediagnostics
|
|
||||||
|
|
||||||
data class DeviceDiagnosticsData(
|
|
||||||
val id: String? = "",
|
|
||||||
val deviceId: String? = "",
|
|
||||||
val additionalDetails: AdditionalDetails?= AdditionalDetails(),
|
|
||||||
val createdBy: String? = "",
|
|
||||||
val updatedBy: String? = "",
|
|
||||||
val updatedAt: String? = "",
|
|
||||||
val createdAt: String? = "",
|
|
||||||
)
|
|
||||||
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model.devicediagnostics
|
|
||||||
|
|
||||||
data class DeviceDiagnosticsRequest(
|
|
||||||
val additionalDetails: AdditionalDetails?= AdditionalDetails()
|
|
||||||
)
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model.devicediagnostics
|
|
||||||
|
|
||||||
import com.google.gson.annotations.SerializedName
|
|
||||||
|
|
||||||
|
|
||||||
data class DeviceDiagnosticsResponse(
|
|
||||||
@SerializedName("Data")
|
|
||||||
val data: DeviceDiagnosticsData? = DeviceDiagnosticsData(),
|
|
||||||
val message: String? = "",
|
|
||||||
val result: String? = ""
|
|
||||||
)
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model.deviceprovision
|
|
||||||
|
|
||||||
data class Credentials(
|
|
||||||
val password: String? = "",
|
|
||||||
val username: String? = "",
|
|
||||||
)
|
|
||||||
@@ -1,30 +0,0 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model.deviceprovision
|
|
||||||
|
|
||||||
data class Device(
|
|
||||||
val assigned: Boolean? = false,
|
|
||||||
val createdAt: String? = "",
|
|
||||||
val createdBy: Int? = 0,
|
|
||||||
val deviceType: DeviceType? = DeviceType(),
|
|
||||||
val deviceTypeId: Int? = 0,
|
|
||||||
val deviceUser: DeviceUser? = DeviceUser(),
|
|
||||||
val enabled: Boolean? = false,
|
|
||||||
val id: Int? = 0,
|
|
||||||
val name: String? = "",
|
|
||||||
val serialNumber: String? = "",
|
|
||||||
val uid: String? = "",
|
|
||||||
val updatedAt: String? = "",
|
|
||||||
val updatedBy: Int? = 0,
|
|
||||||
)
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model.deviceprovision
|
|
||||||
|
|
||||||
data class DeviceProvisionData(
|
|
||||||
val credentials: Credentials? = Credentials(),
|
|
||||||
val device: Device? = Device(),
|
|
||||||
)
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model.deviceprovision
|
|
||||||
|
|
||||||
data class DeviceProvisionRequest(
|
|
||||||
val deviceTypeName: String? = "HPOS",
|
|
||||||
val email: String? = "",
|
|
||||||
val password: String? = "",
|
|
||||||
val serialNumber: String? = "",
|
|
||||||
val uid: String? = "",
|
|
||||||
)
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model.deviceprovision
|
|
||||||
|
|
||||||
import com.google.gson.annotations.SerializedName
|
|
||||||
|
|
||||||
data class DeviceProvisionResponse(
|
|
||||||
@SerializedName("Data")
|
|
||||||
val data: DeviceProvisionData? = DeviceProvisionData(),
|
|
||||||
@SerializedName("Message")
|
|
||||||
val message: String? = "",
|
|
||||||
@SerializedName("Result")
|
|
||||||
val result: String? = "",
|
|
||||||
)
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model.deviceprovision
|
|
||||||
|
|
||||||
data class DeviceType(
|
|
||||||
val createdAt: String? = "",
|
|
||||||
val createdBy: Int? = 0,
|
|
||||||
val description: String? = "",
|
|
||||||
val enabled: Boolean? = false,
|
|
||||||
val id: Int? = 0,
|
|
||||||
val name: String? = "",
|
|
||||||
val updatedAt: String? = "",
|
|
||||||
val updatedBy: Int? = 0,
|
|
||||||
)
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model.deviceprovision
|
|
||||||
|
|
||||||
data class DeviceUser(
|
|
||||||
val createdAt: String? = "",
|
|
||||||
val createdBy: Int? = 0,
|
|
||||||
val deviceId: Int? = 0,
|
|
||||||
val enabled: Boolean? = false,
|
|
||||||
val id: Int? = 0,
|
|
||||||
val lastLogin: Any? = Any(),
|
|
||||||
val natsToken: String? = "",
|
|
||||||
val natsTokenExpiry: String? = "",
|
|
||||||
val updatedAt: String? = "",
|
|
||||||
val updatedBy: Int? = 0,
|
|
||||||
val username: String? = "",
|
|
||||||
)
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model.deviceprovision
|
|
||||||
|
|
||||||
data class ProvisionData(
|
|
||||||
val username: String?,
|
|
||||||
val password: String?,
|
|
||||||
val natsToken: String?,
|
|
||||||
)
|
|
||||||
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model.diagnostics
|
|
||||||
|
|
||||||
data class DiagnosticsData(
|
|
||||||
var deviceId: String = "",
|
|
||||||
var appVersion: String? = "",
|
|
||||||
var deviceType: String = "HEMOCUBE",
|
|
||||||
var deviceData: String = "",
|
|
||||||
var devicePassword: String = "",
|
|
||||||
var deviceNatsToken: String = "",
|
|
||||||
var accessToken: String = "",
|
|
||||||
var runTime: String = "",
|
|
||||||
)
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model.jig
|
|
||||||
|
|
||||||
data class JigData(
|
|
||||||
var deviceId: String = "",
|
|
||||||
var appVersion: String? = "",
|
|
||||||
var deviceType: String = "JIG",
|
|
||||||
var scanData: String = "",
|
|
||||||
var createdAt: String = "",
|
|
||||||
)
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model.log
|
|
||||||
|
|
||||||
data class UploadLogsData(
|
|
||||||
val filename: String? = "",
|
|
||||||
)
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model.log
|
|
||||||
|
|
||||||
import com.google.gson.annotations.SerializedName
|
|
||||||
|
|
||||||
data class UploadLogsResponse(
|
|
||||||
@SerializedName("Data")
|
|
||||||
val data: UploadLogsData? = UploadLogsData(),
|
|
||||||
@SerializedName("Message")
|
|
||||||
val message: String? = "",
|
|
||||||
@SerializedName("Result")
|
|
||||||
val result: String? = "",
|
|
||||||
)
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model.login
|
|
||||||
|
|
||||||
data class Device(
|
|
||||||
val assigned: Boolean? = false,
|
|
||||||
val createdAt: String? = "",
|
|
||||||
val createdBy: Int? = 0,
|
|
||||||
val deviceType: DeviceType? = DeviceType(),
|
|
||||||
val deviceTypeId: Int? = 0,
|
|
||||||
val enabled: Boolean? = false,
|
|
||||||
val id: Int? = 0,
|
|
||||||
val name: String? = "",
|
|
||||||
val serialNumber: String? = "",
|
|
||||||
val uid: String? = "",
|
|
||||||
val updatedAt: String? = "",
|
|
||||||
val updatedBy: Int? = 0,
|
|
||||||
)
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model.login
|
|
||||||
|
|
||||||
data class DeviceType(
|
|
||||||
val createdAt: String? = "",
|
|
||||||
val createdBy: Int? = 0,
|
|
||||||
val description: String? = "",
|
|
||||||
val enabled: Boolean? = false,
|
|
||||||
val id: Int? = 0,
|
|
||||||
val name: String? = "",
|
|
||||||
val updatedAt: String? = "",
|
|
||||||
val updatedBy: Int? = 0,
|
|
||||||
)
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model.login
|
|
||||||
|
|
||||||
data class DeviceUser(
|
|
||||||
val createdAt: String? = "",
|
|
||||||
val createdBy: Int? = 0,
|
|
||||||
val device: Device? = Device(),
|
|
||||||
val deviceId: Int? = 0,
|
|
||||||
val enabled: Boolean? = false,
|
|
||||||
val id: Int? = 0,
|
|
||||||
val lastLogin: String? = "",
|
|
||||||
val natsToken: String? = "",
|
|
||||||
val natsTokenExpiry: String? = "",
|
|
||||||
val updatedAt: String? = "",
|
|
||||||
val updatedBy: Int? = 0,
|
|
||||||
val username: String? = "",
|
|
||||||
)
|
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model.login
|
|
||||||
|
|
||||||
data class LoginData(
|
|
||||||
val accessToken: String? = "",
|
|
||||||
val deviceUser: DeviceUser? = DeviceUser(),
|
|
||||||
)
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model.login
|
|
||||||
|
|
||||||
data class LoginRequest(
|
|
||||||
val lab: String? = "",
|
|
||||||
val latitude: String? = "",
|
|
||||||
val location: String? = "",
|
|
||||||
val longitude: String? = "",
|
|
||||||
val mode: String? = "",
|
|
||||||
val password: String? = "",
|
|
||||||
val serialNumber: String? = "",
|
|
||||||
val username: String? = "",
|
|
||||||
val version: String? = "",
|
|
||||||
)
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model.login
|
|
||||||
|
|
||||||
import com.google.gson.annotations.SerializedName
|
|
||||||
|
|
||||||
data class LoginResponse(
|
|
||||||
@SerializedName("Data")
|
|
||||||
val data: LoginData? = LoginData(),
|
|
||||||
@SerializedName("Message")
|
|
||||||
val message: String? = "",
|
|
||||||
@SerializedName("Result")
|
|
||||||
val result: String? = "",
|
|
||||||
)
|
|
||||||
@@ -1,51 +0,0 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model.molbioresult
|
|
||||||
|
|
||||||
import com.example.hpostesting.data.model.patient.HemoCubeTestData
|
|
||||||
|
|
||||||
data class MolbioV2Result(
|
|
||||||
val age: Int? = 31,
|
|
||||||
val analysisDate: String? = "2024-02-08 16:33:56",
|
|
||||||
val analysisId: String? = "",
|
|
||||||
val analysisStatus: String? = "",
|
|
||||||
val analysisType: String? = "HPOS",
|
|
||||||
val analysisTypeMethod: String? = "",
|
|
||||||
val bloodGroup: String? = "",
|
|
||||||
val coefficients: List<Int>? = listOf(22, 22),
|
|
||||||
val collectionLocation: List<Any>? = listOf(),
|
|
||||||
val collectionTime: String? = "2024-02-08 16:33:56",
|
|
||||||
val collector: String? = "",
|
|
||||||
val curveFitting: String? = "Linear",
|
|
||||||
val deviceName: String? = "HPOS",
|
|
||||||
val expiryTime: String? = "2024-02-08 16:33:56",
|
|
||||||
val gender: String? = "",
|
|
||||||
val interpretation: String? = "",
|
|
||||||
val `operator`: String? = "",
|
|
||||||
val patientId: Int? = 4545,
|
|
||||||
val pregnancy: Boolean? = false,
|
|
||||||
val rawData: HemoCubeTestData? = HemoCubeTestData(),
|
|
||||||
val recommendation: String? = "NA",
|
|
||||||
val sampleId: String? = "",
|
|
||||||
val sampleType: String? = "",
|
|
||||||
val sickleCellHistory: Boolean? = false,
|
|
||||||
val testId: String? = "",
|
|
||||||
val testResult: String? = "",
|
|
||||||
val testStatus: String? = "",
|
|
||||||
val testTime: String? = "2024-02-08 16:33:56",
|
|
||||||
val testType: String? = "",
|
|
||||||
val thresholds: String? = "",
|
|
||||||
val underMedication: Boolean? = false,
|
|
||||||
val volume: Int? = 2,
|
|
||||||
)
|
|
||||||
@@ -1,55 +0,0 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model.molbioresult
|
|
||||||
|
|
||||||
import com.example.hpostesting.data.model.patient.HemoCubeTestData
|
|
||||||
|
|
||||||
data class MolbioV2ResultData(
|
|
||||||
val age: Int? = 0,
|
|
||||||
val analysisDate: String? = "2024-02-08 16:33:56",
|
|
||||||
val analysisStatus: String? = "",
|
|
||||||
val analysisType: String? = "",
|
|
||||||
val analysisTypeMethod: String? = "",
|
|
||||||
val bloodGroup: String? = "",
|
|
||||||
val coefficients: List<Int>? = listOf(),
|
|
||||||
val collectionLocation: List<Any>? = listOf(),
|
|
||||||
val collectionTime: String? = "2024-02-08 16:33:56",
|
|
||||||
val collector: String? = "",
|
|
||||||
val createdAt: String? = "",
|
|
||||||
val createdBy: Int? = 0,
|
|
||||||
val curveFitting: String? = "",
|
|
||||||
val deviceId: Int? = 0,
|
|
||||||
val expiryTime: String? = "2024-02-08 16:33:56",
|
|
||||||
val gender: String? = "",
|
|
||||||
val id: Int? = 0,
|
|
||||||
val interpretation: String? = "",
|
|
||||||
val `operator`: String? = "",
|
|
||||||
val patientId: Int? = 0,
|
|
||||||
val pregnancy: Boolean? = false,
|
|
||||||
val rawData: HemoCubeTestData? = HemoCubeTestData(),
|
|
||||||
val recommendation: String? = "",
|
|
||||||
val sampleId: String? = "",
|
|
||||||
val sampleType: String? = "",
|
|
||||||
val sickleCellHistory: Boolean? = false,
|
|
||||||
val testId: String? = "",
|
|
||||||
val testResult: String? = "",
|
|
||||||
val testStatus: String? = "",
|
|
||||||
val testTime: String? = "2024-02-08 16:33:56",
|
|
||||||
val testType: String? = "",
|
|
||||||
val thresholds: String? = "",
|
|
||||||
val underMedication: Boolean? = false,
|
|
||||||
val updatedAt: String? = "",
|
|
||||||
val updatedBy: Int? = 0,
|
|
||||||
val volume: Int? = 0,
|
|
||||||
)
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model.molbioresult
|
|
||||||
|
|
||||||
data class MolbioV2ResultRequest(
|
|
||||||
val results: MutableList<MolbioV2Result>? = mutableListOf(),
|
|
||||||
)
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model.molbioresult
|
|
||||||
|
|
||||||
import com.google.gson.annotations.SerializedName
|
|
||||||
|
|
||||||
data class MolbioV2ResultResponse(
|
|
||||||
@SerializedName("Data")
|
|
||||||
val data: List<MolbioV2ResultData>? = listOf(),
|
|
||||||
@SerializedName("Message")
|
|
||||||
val message: String? = "",
|
|
||||||
@SerializedName("Result")
|
|
||||||
val result: String? = "",
|
|
||||||
)
|
|
||||||
@@ -1,68 +0,0 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model.molbioresult
|
|
||||||
|
|
||||||
import com.example.hpostesting.data.model.patient.UserData
|
|
||||||
|
|
||||||
data class RawData(
|
|
||||||
var _id: String = "",
|
|
||||||
var name: String = "",
|
|
||||||
var incubationTime: String = "",
|
|
||||||
var bloodGroup: String = "",
|
|
||||||
var birthYear: String = "",
|
|
||||||
var state: String = "",
|
|
||||||
var abhaId: String = "",
|
|
||||||
var userImageURL: String = "",
|
|
||||||
var location: UserData.Location? = null,
|
|
||||||
var reportUploadTime: String? = "",
|
|
||||||
var testType: String? = "HEMOCUBE",
|
|
||||||
var testTime: String? = "",
|
|
||||||
var testStatus: Boolean? = false,
|
|
||||||
var gender: String = "",
|
|
||||||
var localFlag: Boolean = false,
|
|
||||||
var deviceId: String? = "",
|
|
||||||
var appVersion: String? = "",
|
|
||||||
var deviceSerialNumber: String = "",
|
|
||||||
var deviceType: String = "HEMOCUBE",
|
|
||||||
var kitSerial: String = "",
|
|
||||||
var resultData: String = "",
|
|
||||||
var led1Buffer: Double? = null,
|
|
||||||
var led2Buffer: Double? = null,
|
|
||||||
var led3Buffer: Double? = null,
|
|
||||||
var led4Buffer: Double? = null,
|
|
||||||
var led1Sample: Double? = null,
|
|
||||||
var led2Sample: Double? = null,
|
|
||||||
var led3Sample: Double? = null,
|
|
||||||
var led4Sample: Double? = null,
|
|
||||||
var led1Average: Double? = null,
|
|
||||||
var led2Average: Double? = null,
|
|
||||||
var led3Average: Double? = null,
|
|
||||||
var led4Average: Double? = null,
|
|
||||||
var abs1: Double? = null,
|
|
||||||
var abs2: Double? = null,
|
|
||||||
var abs3: Double? = null,
|
|
||||||
var abs4: Double? = null,
|
|
||||||
var deviceRatio: Double? = null,
|
|
||||||
var calculatedRatio: Double? = null,
|
|
||||||
var predictedDenovixRatio: Double? = null,
|
|
||||||
var coefficients: String? = "",
|
|
||||||
var classificationResult: String = "",
|
|
||||||
var prdClassification: String = "",
|
|
||||||
var errorMessages: String = "",
|
|
||||||
var batteryLevel: String = "",
|
|
||||||
var batteryCapacity: String = "",
|
|
||||||
var batteryMaxCapacity: String = "",
|
|
||||||
var batteryTemperature: String = "",
|
|
||||||
var batteryVoltage: String = "",
|
|
||||||
)
|
|
||||||
@@ -1,60 +0,0 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model.patient
|
|
||||||
|
|
||||||
import androidx.room.Entity
|
|
||||||
import androidx.room.PrimaryKey
|
|
||||||
|
|
||||||
@Entity(tableName = "hemo_cube_buffer_test_table")
|
|
||||||
data class BufferCheckData(
|
|
||||||
@PrimaryKey
|
|
||||||
var _id: String = "",
|
|
||||||
var kitno: String = "",
|
|
||||||
var deviceId: String? = "",
|
|
||||||
var appVersion: String? = "",
|
|
||||||
var deviceSerialNumber: String = "",
|
|
||||||
var deviceType: String = "HEMOCUBE",
|
|
||||||
var localFlag: Boolean = false,
|
|
||||||
var resultData: String = "",
|
|
||||||
var led1Buffer: Double? = null,
|
|
||||||
var led2Buffer: Double? = null,
|
|
||||||
var led3Buffer: Double? = null,
|
|
||||||
var led4Buffer: Double? = null,
|
|
||||||
var led1Sample: Double? = null,
|
|
||||||
var led2Sample: Double? = null,
|
|
||||||
var led3Sample: Double? = null,
|
|
||||||
var led4Sample: Double? = null,
|
|
||||||
var led1Average: Double? = null,
|
|
||||||
var led2Average: Double? = null,
|
|
||||||
var led3Average: Double? = null,
|
|
||||||
var led4Average: Double? = null,
|
|
||||||
var abs1: Double? = null,
|
|
||||||
var abs2: Double? = null,
|
|
||||||
var abs3: Double? = null,
|
|
||||||
var abs4: Double? = null,
|
|
||||||
var deviceRatio: Double? = null,
|
|
||||||
var calculatedRatio: Double? = null,
|
|
||||||
var predictedDenovixRatio: Double? = null,
|
|
||||||
var coefficients: String? = "",
|
|
||||||
var classificationResult: String = "",
|
|
||||||
var testTime: String = "",
|
|
||||||
var prdClassification: String = "",
|
|
||||||
var errorMessages: String = "",
|
|
||||||
var batteryLevel: String = "",
|
|
||||||
var batteryCapacity: String = "",
|
|
||||||
var batteryMaxCapacity: String = "",
|
|
||||||
var batteryTemperature: String = "",
|
|
||||||
var batteryVoltage: String = "",
|
|
||||||
var reportUploadTime: String? = "",
|
|
||||||
)
|
|
||||||
@@ -1,16 +1,3 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model.patient
|
package com.example.hpostesting.data.model.patient
|
||||||
|
|
||||||
import androidx.room.Entity
|
import androidx.room.Entity
|
||||||
@@ -28,25 +15,5 @@ data class DeviceData(
|
|||||||
@get:PropertyName("coefficients") @set:PropertyName("coefficients")
|
@get:PropertyName("coefficients") @set:PropertyName("coefficients")
|
||||||
var coefficients: List<Double> = emptyList(),
|
var coefficients: List<Double> = emptyList(),
|
||||||
@get:PropertyName("calibratedAt") @set:PropertyName("calibratedAt")
|
@get:PropertyName("calibratedAt") @set:PropertyName("calibratedAt")
|
||||||
var calibratedAt: String = "",
|
var calibratedAt: String = ""
|
||||||
@get:PropertyName("deviceProvisionResponse") @set:PropertyName("deviceProvisionResponse")
|
|
||||||
var deviceProvisionResponse: String = "",
|
|
||||||
@get:PropertyName("username") @set:PropertyName("username")
|
|
||||||
var username: String = "",
|
|
||||||
@get:PropertyName("password") @set:PropertyName("password")
|
|
||||||
var password: String = "",
|
|
||||||
@get:PropertyName("natsToken") @set:PropertyName("natsToken")
|
|
||||||
var natsToken: String = "",
|
|
||||||
@get:PropertyName("natsTokenExpiry") @set:PropertyName("natsTokenExpiry")
|
|
||||||
var natsTokenExpiry: String = "",
|
|
||||||
@get:PropertyName("deviceUpdateAvailable") @set:PropertyName("deviceUpdateAvailable")
|
|
||||||
var deviceUpdateAvailable: Boolean = false,
|
|
||||||
@get:PropertyName("updatePath") @set:PropertyName("updatePath")
|
|
||||||
var updatePath: String = "",
|
|
||||||
@get:PropertyName("deviceVersion") @set:PropertyName("deviceVersion")
|
|
||||||
var deviceVersion: String = "",
|
|
||||||
@get:PropertyName("globalUpdateDone") @set:PropertyName("globalUpdateDone")
|
|
||||||
var globalUpdateDone: Boolean = false,
|
|
||||||
@get:PropertyName("globalUpdateIgnore") @set:PropertyName("globalUpdateIgnore")
|
|
||||||
var globalUpdateIgnore: Boolean = false,
|
|
||||||
)
|
)
|
||||||
@@ -1,16 +1,3 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model.patient
|
package com.example.hpostesting.data.model.patient
|
||||||
|
|
||||||
import androidx.room.Entity
|
import androidx.room.Entity
|
||||||
@@ -18,92 +5,30 @@ import androidx.room.PrimaryKey
|
|||||||
|
|
||||||
@Entity(tableName = "hemo_cube_test_table")
|
@Entity(tableName = "hemo_cube_test_table")
|
||||||
data class HemoCubeTestData(
|
data class HemoCubeTestData(
|
||||||
@PrimaryKey(autoGenerate = true)
|
@PrimaryKey
|
||||||
var sampleid: Int = 0,
|
|
||||||
var _id: String = "",
|
var _id: String = "",
|
||||||
var name: String = "",
|
var name: String = "",
|
||||||
var incubationTime: String = "",
|
|
||||||
var bloodGroup: String = "",
|
|
||||||
var birthYear: String = "",
|
var birthYear: String = "",
|
||||||
var state: String = "",
|
|
||||||
var abhaId: String = "",
|
|
||||||
var userImageURL: String = "",
|
var userImageURL: String = "",
|
||||||
var location: UserData.Location? = null,
|
var location: UserData.Location? = null,
|
||||||
var reportUploadTime: String? = "",
|
var reportUploadTime: String? = "",
|
||||||
var testType: String? = "HEMOCUBE",
|
var testType: String? = "HEMOCUBE",
|
||||||
var testTime: String? = "",
|
var testTime: String? = "",
|
||||||
var testStatus: Boolean? = false,
|
var testStatus: Boolean? = false,
|
||||||
var gender: String = "",
|
|
||||||
var localFlag: Boolean = false,
|
var localFlag: Boolean = false,
|
||||||
var deviceId: String? = "",
|
var deviceId: String? = "",
|
||||||
var appVersion: String? = "",
|
var appVersion:String? = "",
|
||||||
var deviceSerialNumber: String = "",
|
var deviceSerialNumber: String = "",
|
||||||
var deviceType: String = "HEMOCUBE",
|
var deviceType: String = "HEMOCUBE",
|
||||||
var kitSerial: String = "",
|
var kitSerial: String = "",
|
||||||
var resultData: String = "",
|
var resultData: String = "",
|
||||||
var led1Buffer: Double? = null,
|
var led1Buffer: Double? = null,
|
||||||
var led2Buffer: Double? = null,
|
var led2Buffer: Double? = null,
|
||||||
var led3Buffer: Double? = null,
|
|
||||||
var led4Buffer: Double? = null,
|
|
||||||
var led1Sample: Double? = null,
|
var led1Sample: Double? = null,
|
||||||
var led2Sample: Double? = null,
|
var led2Sample: Double? = null,
|
||||||
var led3Sample: Double? = null,
|
|
||||||
var led4Sample: Double? = null,
|
|
||||||
var led1Average: Double? = null,
|
var led1Average: Double? = null,
|
||||||
var led2Average: Double? = null,
|
var led2Average: Double? = null,
|
||||||
var led3Average: Double? = null,
|
|
||||||
var led4Average: Double? = null,
|
|
||||||
var abs1: Double? = null,
|
|
||||||
var abs2: Double? = null,
|
|
||||||
var abs3: Double? = null,
|
|
||||||
var abs4: Double? = null,
|
|
||||||
var hb3: Double? = null,
|
|
||||||
var hb4: Double? = null,
|
|
||||||
var led1Gain1: Double? = null,
|
|
||||||
var led2Gain1: Double? = null,
|
|
||||||
var led3Gain1: Double? = null,
|
|
||||||
var led4Gain1: Double? = null,
|
|
||||||
var led1Gain2: Double? = null,
|
|
||||||
var led2Gain2: Double? = null,
|
|
||||||
var led3Gain2: Double? = null,
|
|
||||||
var led4Gain2: Double? = null,
|
|
||||||
var led1Gain3: Double? = null,
|
|
||||||
var led2Gain3: Double? = null,
|
|
||||||
var led3Gain3: Double? = null,
|
|
||||||
var led4Gain3: Double? = null,
|
|
||||||
var led1Gain4: Double? = null,
|
|
||||||
var led2Gain4: Double? = null,
|
|
||||||
var led3Gain4: Double? = null,
|
|
||||||
var led4Gain4: Double? = null,
|
|
||||||
var led1Air1: Double? = null,
|
|
||||||
var led2Air1: Double? = null,
|
|
||||||
var led3Air1: Double? = null,
|
|
||||||
var led4Air1: Double? = null,
|
|
||||||
var led1Air2: Double? = null,
|
|
||||||
var led2Air2: Double? = null,
|
|
||||||
var led3Air2: Double? = null,
|
|
||||||
var led4Air2: Double? = null,
|
|
||||||
var deviceRatio: Double? = null,
|
var deviceRatio: Double? = null,
|
||||||
var calculatedRatio: Double? = null,
|
var calculatedRatio: Double? = null,
|
||||||
var predictedDenovixRatio: Double? = null,
|
var classificationResult: String = ""
|
||||||
var slopeRatio: Double? = null,
|
|
||||||
var coefficients: String? = "",
|
|
||||||
var classificationResult: String = "",
|
|
||||||
var prdClassification: String = "",
|
|
||||||
var deviceRatioClass: String = "",
|
|
||||||
var slopeRatioClass: String = "",
|
|
||||||
var borderlineMethod2Class: String = "",
|
|
||||||
var errorMessages: String = "",
|
|
||||||
var batteryLevel: String = "",
|
|
||||||
var batteryCapacity: String = "",
|
|
||||||
var batteryMaxCapacity: String = "",
|
|
||||||
var batteryTemperature: String = "",
|
|
||||||
var batteryVoltage: String = "",
|
|
||||||
var molbioFlag: Boolean = false,
|
|
||||||
var quickCapture: Boolean = false,
|
|
||||||
var solution: String? = "",
|
|
||||||
var concentration: String? = "",
|
|
||||||
var filter: String? = "",
|
|
||||||
var volume: String? = "",
|
|
||||||
var isCSVCreated: Boolean = false,
|
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,16 +1,3 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model.patient
|
package com.example.hpostesting.data.model.patient
|
||||||
|
|
||||||
import java.util.Date
|
import java.util.Date
|
||||||
@@ -31,7 +18,7 @@ data class PatientDetails(
|
|||||||
var address: Address?,
|
var address: Address?,
|
||||||
var category: Category?,
|
var category: Category?,
|
||||||
var registerDate: Date?,
|
var registerDate: Date?,
|
||||||
var uploadDate: Date?,
|
var uploadDate: Date?
|
||||||
) {
|
) {
|
||||||
constructor() : this(
|
constructor() : this(
|
||||||
"",
|
"",
|
||||||
@@ -58,6 +45,7 @@ data class PatientDetails(
|
|||||||
OTHER
|
OTHER
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
data class Address(
|
data class Address(
|
||||||
var house: String?,
|
var house: String?,
|
||||||
val street: String?,
|
val street: String?,
|
||||||
|
|||||||
@@ -1,16 +1,3 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model.patient
|
package com.example.hpostesting.data.model.patient
|
||||||
|
|
||||||
import androidx.room.Entity
|
import androidx.room.Entity
|
||||||
@@ -22,11 +9,7 @@ data class UserData(
|
|||||||
@PrimaryKey
|
@PrimaryKey
|
||||||
var _id: String = "",
|
var _id: String = "",
|
||||||
var name: String = "",
|
var name: String = "",
|
||||||
var incubationTime: String = "",
|
|
||||||
var gender: String = "",
|
|
||||||
var birthYear: String = "",
|
var birthYear: String = "",
|
||||||
var abhaId: String = "",
|
|
||||||
var bloodGroup: String = "",
|
|
||||||
var userImageURL: String = "",
|
var userImageURL: String = "",
|
||||||
var location: Location? = null,
|
var location: Location? = null,
|
||||||
var createdBy: String? = "",
|
var createdBy: String? = "",
|
||||||
@@ -35,14 +18,12 @@ data class UserData(
|
|||||||
var testStatus: Boolean? = false,
|
var testStatus: Boolean? = false,
|
||||||
var mobileId: String = "",
|
var mobileId: String = "",
|
||||||
var deviceId: String = "",
|
var deviceId: String = "",
|
||||||
var state: String = "",
|
|
||||||
var deviceSerialNumber: String = "",
|
var deviceSerialNumber: String = "",
|
||||||
var kitSerial: String = "",
|
var kitSerial: String = "",
|
||||||
var csvPath: String = "",
|
var csvPath: String = "",
|
||||||
var reportPath: String = "",
|
var reportPath: String = "",
|
||||||
var result: TestRightResultType? = null,
|
var result: TestRightResultType? = null,
|
||||||
var resultRatio: Double? = null,
|
var resultRatio: Double? = null
|
||||||
var prdClassification: String = "",
|
|
||||||
) {
|
) {
|
||||||
enum class Gender {
|
enum class Gender {
|
||||||
MALE,
|
MALE,
|
||||||
@@ -52,21 +33,15 @@ data class UserData(
|
|||||||
|
|
||||||
data class Location(
|
data class Location(
|
||||||
var latitude: Double? = null,
|
var latitude: Double? = null,
|
||||||
var longitude: Double? = null,
|
var longitude: Double? = null
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun UserData.toHemoCubeTestData() = HemoCubeTestData(
|
fun UserData.toHemoCubeTestData() = HemoCubeTestData(
|
||||||
_id = _id,
|
_id = _id,
|
||||||
name = name,
|
name = name,
|
||||||
bloodGroup = bloodGroup,
|
|
||||||
birthYear = birthYear,
|
birthYear = birthYear,
|
||||||
gender = gender,
|
|
||||||
state = state,
|
|
||||||
abhaId = abhaId,
|
|
||||||
userImageURL = userImageURL,
|
userImageURL = userImageURL,
|
||||||
testStatus = testStatus,
|
testStatus = testStatus,
|
||||||
location = location,
|
location = location
|
||||||
prdClassification = prdClassification,
|
|
||||||
testTime = testTime
|
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -0,0 +1,55 @@
|
|||||||
|
package com.example.hpostesting.data.model.test
|
||||||
|
|
||||||
|
import com.example.hpostesting.data.model.Location
|
||||||
|
import java.util.Date
|
||||||
|
|
||||||
|
data class TestDetails(
|
||||||
|
val testID: String,
|
||||||
|
var testStatus: Status,
|
||||||
|
val patientID: String,
|
||||||
|
val patientName: String,
|
||||||
|
val patientAge: Int?,
|
||||||
|
|
||||||
|
var resultRatio: Double?,
|
||||||
|
var result: TestRightResultType?,
|
||||||
|
|
||||||
|
val reportPath: String?,
|
||||||
|
val csvPath: String?,
|
||||||
|
val logPath: String?,
|
||||||
|
|
||||||
|
// Meta Data
|
||||||
|
var deviceId: String?,
|
||||||
|
val mobileId: String,
|
||||||
|
var kitSerial: String?,
|
||||||
|
val location: Location?,
|
||||||
|
val appVersion: String,
|
||||||
|
|
||||||
|
val registeredTime: Date?,
|
||||||
|
var uploadTime: Date?
|
||||||
|
) {
|
||||||
|
constructor() : this(
|
||||||
|
"",
|
||||||
|
Status.PENDING,
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
"",
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
"",
|
||||||
|
null,
|
||||||
|
null
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
enum class Status {
|
||||||
|
COMPLETED,
|
||||||
|
PENDING,
|
||||||
|
INPROGRESS
|
||||||
|
}
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package com.example.hpostesting.data.model.test
|
||||||
|
|
||||||
|
data class TestInfo(
|
||||||
|
val value: String,
|
||||||
|
val number1: String,
|
||||||
|
val number2: String,
|
||||||
|
val result: String,
|
||||||
|
val resultConfirmatory: String,
|
||||||
|
val directoryPath: String,
|
||||||
|
val fullPath: String
|
||||||
|
)
|
||||||
@@ -1,16 +1,3 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model.test
|
package com.example.hpostesting.data.model.test
|
||||||
|
|
||||||
data class TestRightCalculationData(
|
data class TestRightCalculationData(
|
||||||
|
|||||||
@@ -1,16 +1,3 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model.test
|
package com.example.hpostesting.data.model.test
|
||||||
|
|
||||||
data class TestRightDeviceConstants(
|
data class TestRightDeviceConstants(
|
||||||
|
|||||||
@@ -1,16 +1,3 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model.test
|
package com.example.hpostesting.data.model.test
|
||||||
|
|
||||||
enum class TestRightResultType {
|
enum class TestRightResultType {
|
||||||
|
|||||||
@@ -1,16 +1,3 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model.test
|
package com.example.hpostesting.data.model.test
|
||||||
|
|
||||||
enum class TestType {
|
enum class TestType {
|
||||||
|
|||||||
@@ -1,18 +0,0 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model.updates
|
|
||||||
|
|
||||||
data class CheckUpdateData(
|
|
||||||
val version: String? = "",
|
|
||||||
)
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model.updates
|
|
||||||
|
|
||||||
data class CheckUpdateRequest(
|
|
||||||
val currentVersion: String? = "",
|
|
||||||
)
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model.updates
|
|
||||||
|
|
||||||
import com.google.gson.annotations.SerializedName
|
|
||||||
|
|
||||||
data class CheckUpdateResponse(
|
|
||||||
@SerializedName("Data")
|
|
||||||
val data: CheckUpdateData? = CheckUpdateData(),
|
|
||||||
@SerializedName("Message")
|
|
||||||
val message: String? = "",
|
|
||||||
@SerializedName("Result")
|
|
||||||
val result: String? = "",
|
|
||||||
)
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.model.updates
|
|
||||||
|
|
||||||
data class DeviceUpdateRequest(
|
|
||||||
val serial_no: String? = "",
|
|
||||||
)
|
|
||||||
@@ -1,171 +1,75 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.repository
|
package com.example.hpostesting.data.repository
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import com.example.hpostesting.util.Result
|
import androidx.room.Room
|
||||||
import com.example.hpostesting.data.api.MolbioAuthApi
|
import com.example.hpostesting.data.dao.MyDatabase
|
||||||
import com.example.hpostesting.data.api.MolbioResultApi
|
|
||||||
import com.example.hpostesting.data.model.PendingUploads
|
import com.example.hpostesting.data.model.PendingUploads
|
||||||
import com.example.hpostesting.data.model.Response
|
import com.example.hpostesting.data.model.Response
|
||||||
import com.example.hpostesting.data.model.devicediagnostics.DeviceDiagnosticsRequest
|
|
||||||
import com.example.hpostesting.data.model.devicediagnostics.DeviceDiagnosticsResponse
|
|
||||||
import com.example.hpostesting.data.model.deviceprovision.DeviceProvisionRequest
|
|
||||||
import com.example.hpostesting.data.model.deviceprovision.DeviceProvisionResponse
|
|
||||||
import com.example.hpostesting.data.model.diagnostics.DiagnosticsData
|
|
||||||
import com.example.hpostesting.data.model.jig.JigData
|
|
||||||
import com.example.hpostesting.data.model.log.UploadLogsResponse
|
|
||||||
import com.example.hpostesting.data.model.login.LoginRequest
|
|
||||||
import com.example.hpostesting.data.model.login.LoginResponse
|
|
||||||
import com.example.hpostesting.data.model.molbioresult.MolbioV2ResultRequest
|
|
||||||
import com.example.hpostesting.data.model.molbioresult.MolbioV2ResultResponse
|
|
||||||
import com.example.hpostesting.data.model.patient.BufferCheckData
|
|
||||||
import com.example.hpostesting.data.model.patient.DeviceData
|
import com.example.hpostesting.data.model.patient.DeviceData
|
||||||
import com.example.hpostesting.data.model.patient.HemoCubeTestData
|
import com.example.hpostesting.data.model.patient.HemoCubeTestData
|
||||||
import com.example.hpostesting.data.model.patient.UserData
|
import com.example.hpostesting.data.model.patient.UserData
|
||||||
import com.example.hpostesting.data.model.updates.CheckUpdateRequest
|
import com.google.android.datatransport.runtime.dagger.Provides
|
||||||
import com.example.hpostesting.data.model.updates.CheckUpdateResponse
|
|
||||||
import com.example.hpostesting.data.model.updates.DeviceUpdateRequest
|
|
||||||
import com.google.firebase.crashlytics.ktx.crashlytics
|
|
||||||
import com.google.firebase.firestore.FirebaseFirestore
|
import com.google.firebase.firestore.FirebaseFirestore
|
||||||
import com.google.firebase.firestore.ktx.firestore
|
import com.google.firebase.firestore.ktx.firestore
|
||||||
import com.google.firebase.ktx.Firebase
|
import com.google.firebase.ktx.Firebase
|
||||||
import com.google.firebase.storage.ktx.storage
|
import com.google.firebase.storage.ktx.storage
|
||||||
|
import kotlinx.coroutines.Dispatchers
|
||||||
import kotlinx.coroutines.tasks.await
|
import kotlinx.coroutines.tasks.await
|
||||||
import okhttp3.MultipartBody
|
import kotlinx.coroutines.withContext
|
||||||
import okhttp3.ResponseBody
|
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.net.ConnectException
|
import javax.inject.Singleton
|
||||||
import java.net.SocketTimeoutException
|
|
||||||
import javax.inject.Inject
|
|
||||||
import javax.inject.Named
|
|
||||||
|
|
||||||
class NetworkException(message: String, cause: Throwable) : Exception(message, cause)
|
class DatabaseRepository : Repository {
|
||||||
class DatabaseRepository @Inject constructor(
|
|
||||||
@Named("Auth") private val molbioAuthApi: MolbioAuthApi,
|
|
||||||
private val molbioResultApi: MolbioResultApi,
|
|
||||||
) : Repository {
|
|
||||||
|
|
||||||
private val db: FirebaseFirestore = Firebase.firestore
|
private val db: FirebaseFirestore = Firebase.firestore
|
||||||
private val storage = Firebase.storage
|
private val storage = Firebase.storage
|
||||||
|
|
||||||
private suspend fun <T : Any> safeApiCall(apiCall: suspend () -> T): Result<T> {
|
suspend fun addTestToDatabase(data: HemoCubeTestData?): Response<String> {
|
||||||
return try {
|
return try {
|
||||||
val response = apiCall.invoke()
|
val userdata = db.collection("patientData").whereEqualTo("_id", data!!._id).get().await()
|
||||||
Result.Success(response)
|
|
||||||
} catch (e: SocketTimeoutException) {
|
|
||||||
Result.Error(NetworkException("Network timeout", e))
|
|
||||||
} catch (e: ConnectException) {
|
|
||||||
Result.Error(NetworkException("Network connection failed", e))
|
|
||||||
} catch (e: Exception) {
|
|
||||||
Result.Error(e)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override suspend fun deviceProvision(deviceProvisionRequest: DeviceProvisionRequest): Result<DeviceProvisionResponse> {
|
|
||||||
return safeApiCall { molbioAuthApi.deviceProvision(deviceProvisionRequest) }
|
|
||||||
}
|
|
||||||
|
|
||||||
override suspend fun login(loginRequest: LoginRequest): Result<LoginResponse> {
|
|
||||||
return safeApiCall { molbioAuthApi.login(loginRequest) }
|
|
||||||
}
|
|
||||||
|
|
||||||
override suspend fun uploadResults(molbioV2ResultRequest: MolbioV2ResultRequest): Result<MolbioV2ResultResponse> {
|
|
||||||
return safeApiCall { molbioResultApi.uploadResults(molbioV2ResultRequest) }
|
|
||||||
}
|
|
||||||
|
|
||||||
override suspend fun checkUpdate(checkUpdateRequest: CheckUpdateRequest): Result<CheckUpdateResponse> {
|
|
||||||
return safeApiCall { molbioResultApi.checkUpdate(checkUpdateRequest) }
|
|
||||||
}
|
|
||||||
|
|
||||||
override suspend fun deviceUpdate(deviceUpdateRequest: DeviceUpdateRequest): Result<ResponseBody> {
|
|
||||||
return safeApiCall { molbioResultApi.deviceUpdate(deviceUpdateRequest) }
|
|
||||||
}
|
|
||||||
|
|
||||||
override suspend fun deviceDiagnostics(deviceDiagnosticsRequest: DeviceDiagnosticsRequest): Result<DeviceDiagnosticsResponse> {
|
|
||||||
return safeApiCall { molbioResultApi.deviceDiagnostics(deviceDiagnosticsRequest) }
|
|
||||||
}
|
|
||||||
|
|
||||||
override suspend fun downloadClientCertificate(): Result<ResponseBody> {
|
|
||||||
return safeApiCall { molbioResultApi.downloadClientCertificate() }
|
|
||||||
}
|
|
||||||
|
|
||||||
override suspend fun uploadLogs(logFile: MultipartBody.Part): Result<UploadLogsResponse> {
|
|
||||||
return safeApiCall { molbioResultApi.uploadLogs(logFile) }
|
|
||||||
}
|
|
||||||
|
|
||||||
override suspend fun addTestToDatabase(data: HemoCubeTestData?): Response<String> {
|
|
||||||
return try {
|
|
||||||
val userdata =
|
|
||||||
db.collection("patientData").whereEqualTo("_id", data!!._id).get().await()
|
|
||||||
if (userdata.documents.isNotEmpty()) {
|
if (userdata.documents.isNotEmpty()) {
|
||||||
userdata.documents.forEach {
|
userdata.documents.forEach {
|
||||||
db.collection("patientData").document(it.id).update("testStatus", true)
|
db.collection("patientData").document(it.id).update("testStatus", true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
db.collection("testData").add(data).await()
|
db.collection("testData").add(data!!).await()
|
||||||
Response.Success(data._id)
|
Response.Success(data!!._id)
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
Response.Error(e)
|
Response.Error(e)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override suspend fun addTestToDatabase(data: UserData?): Response<String> {
|
|
||||||
TODO("Not yet implemented")
|
|
||||||
}
|
|
||||||
|
|
||||||
override suspend fun addTestToDatabaseforBufferCheck(data: BufferCheckData?): Response<String> {
|
suspend fun addTestToDatabase(data: UserData?): Response<String> {
|
||||||
return try {
|
return try {
|
||||||
db.collection("buffers").add(data!!).await()
|
val userdata = db.collection("patientData").whereEqualTo("_id", data!!._id).get().await()
|
||||||
Response.Success(data.kitno)
|
if (userdata.documents.isNotEmpty()) {
|
||||||
|
userdata.documents.forEach {
|
||||||
|
db.collection("patientData").document(it.id).update("testStatus", true)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
db.collection("testData").add(data!!).await()
|
||||||
|
Response.Success(data!!._id)
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
Firebase.crashlytics.recordException(e)
|
|
||||||
Response.Error(e)
|
Response.Error(e)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override suspend fun addDiagnostics(data: DiagnosticsData?): Response<String> {
|
|
||||||
return try {
|
|
||||||
db.collection("diagnostics").add(data!!).await()
|
|
||||||
Response.Success(data.deviceId)
|
|
||||||
} catch (e: Exception) {
|
|
||||||
Firebase.crashlytics.recordException(e)
|
|
||||||
Response.Error(e)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override suspend fun addTestJigData(data: JigData?): Response<String> {
|
|
||||||
return try {
|
|
||||||
db.collection("jigs").add(data!!).await()
|
|
||||||
Response.Success(data.deviceId)
|
|
||||||
} catch (e: Exception) {
|
|
||||||
Firebase.crashlytics.recordException(e)
|
|
||||||
Response.Error(e)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override suspend fun uploadFileToStorage(
|
|
||||||
patientID: String, filePath: String,
|
|
||||||
): Response<Boolean> {
|
suspend fun uploadFileToStorage(patientID: String, filePath: String): Response<Boolean> {
|
||||||
try {
|
try {
|
||||||
|
|
||||||
val file = Uri.fromFile(File(filePath))
|
val file = Uri.fromFile(File(filePath))
|
||||||
val riversRef = storage.reference.child("$patientID/${file.lastPathSegment}")
|
val riversRef = storage.reference.child("$patientID/${file.lastPathSegment}")
|
||||||
riversRef.putFile(file).await()
|
riversRef.putFile(file).await()
|
||||||
return Response.Success(true)
|
return Response.Success(true)
|
||||||
|
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
Firebase.crashlytics.recordException(e)
|
e.printStackTrace()
|
||||||
return Response.Error(e)
|
return Response.Error(e)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -177,7 +81,7 @@ class DatabaseRepository @Inject constructor(
|
|||||||
|
|
||||||
Response.Success(true)
|
Response.Success(true)
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
Firebase.crashlytics.recordException(e)
|
e.printStackTrace()
|
||||||
Response.Error(e)
|
Response.Error(e)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -196,7 +100,7 @@ class DatabaseRepository @Inject constructor(
|
|||||||
pendingList
|
pendingList
|
||||||
|
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
Firebase.crashlytics.recordException(e)
|
e.printStackTrace()
|
||||||
pendingList
|
pendingList
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -207,7 +111,7 @@ class DatabaseRepository @Inject constructor(
|
|||||||
|
|
||||||
Response.Success(true)
|
Response.Success(true)
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
Firebase.crashlytics.recordException(e)
|
e.printStackTrace()
|
||||||
Response.Error(e)
|
Response.Error(e)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -216,7 +120,8 @@ class DatabaseRepository @Inject constructor(
|
|||||||
return db.collection("devices").get().await().toObjects(DeviceData::class.java)
|
return db.collection("devices").get().await().toObjects(DeviceData::class.java)
|
||||||
}
|
}
|
||||||
|
|
||||||
override suspend fun getDeviceDataById(deviceId: String): DeviceData? {
|
|
||||||
|
suspend fun getDeviceDataById(deviceId: String): DeviceData? {
|
||||||
val querySnapshot = db.collection("devices").get().await()
|
val querySnapshot = db.collection("devices").get().await()
|
||||||
val allDeviceDataList = querySnapshot.toObjects(DeviceData::class.java)
|
val allDeviceDataList = querySnapshot.toObjects(DeviceData::class.java)
|
||||||
|
|
||||||
@@ -224,45 +129,6 @@ class DatabaseRepository @Inject constructor(
|
|||||||
return allDeviceDataList.find { it.deviceId == deviceId }
|
return allDeviceDataList.find { it.deviceId == deviceId }
|
||||||
}
|
}
|
||||||
|
|
||||||
override suspend fun getDeviceResponse(data: DeviceData?): Response<String> {
|
|
||||||
return try {
|
|
||||||
db.collection("devices").add(data!!).await()
|
|
||||||
Response.Success(data.deviceProvisionResponse)
|
|
||||||
} catch (e: Exception) {
|
|
||||||
Firebase.crashlytics.recordException(e)
|
|
||||||
Response.Error(e)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override suspend fun uploadDeviceId(data: DeviceData): Response<String>? {
|
|
||||||
return try {
|
|
||||||
db.collection("devices").add(data!!).await()
|
|
||||||
Response.Success(data.deviceId)
|
|
||||||
} catch (e: Exception) {
|
|
||||||
Firebase.crashlytics.recordException(e)
|
|
||||||
Response.Error(e)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun <UserData> addTestToDatabase(testDetails: UserData): Any {
|
|
||||||
TODO("Not yet implemented")
|
|
||||||
}
|
|
||||||
|
|
||||||
override suspend fun addTestToDatabasefornew(data: HemoCubeTestData?): Response<String> {
|
|
||||||
return try {
|
|
||||||
val userdata =
|
|
||||||
db.collection("patientData").whereEqualTo("_id", data!!._id).get().await()
|
|
||||||
if (userdata.documents.isNotEmpty()) {
|
|
||||||
userdata.documents.forEach {
|
|
||||||
db.collection("patientData").document(it.id).update("testStatus", true)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
db.collection("testData").add(data).await()
|
|
||||||
Response.Success(data._id)
|
|
||||||
} catch (e: Exception) {
|
|
||||||
Firebase.crashlytics.recordException(e)
|
|
||||||
Response.Error(e)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1,25 +1,6 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.repository
|
package com.example.hpostesting.data.repository
|
||||||
|
|
||||||
import android.os.Environment
|
|
||||||
import com.example.hpostesting.data.datasource.LocalFileDataSource
|
import com.example.hpostesting.data.datasource.LocalFileDataSource
|
||||||
import com.example.hpostesting.data.model.patient.HemoCubeTestData
|
|
||||||
import com.opencsv.CSVWriter
|
|
||||||
import java.io.File
|
|
||||||
import java.io.FileWriter
|
|
||||||
import java.io.IOException
|
|
||||||
|
|
||||||
class LocalFileRepository(private val localFileDataSource: LocalFileDataSource) {
|
class LocalFileRepository(private val localFileDataSource: LocalFileDataSource) {
|
||||||
fun saveCsvToDisk(filepath: String, contents: ArrayList<Array<String>>) =
|
fun saveCsvToDisk(filepath: String, contents: ArrayList<Array<String>>) =
|
||||||
|
|||||||
@@ -1,71 +1,5 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.data.repository
|
package com.example.hpostesting.data.repository
|
||||||
|
|
||||||
import com.example.hpostesting.util.Result
|
|
||||||
import com.example.hpostesting.data.model.Response
|
|
||||||
import com.example.hpostesting.data.model.devicediagnostics.DeviceDiagnosticsRequest
|
|
||||||
import com.example.hpostesting.data.model.devicediagnostics.DeviceDiagnosticsResponse
|
|
||||||
import com.example.hpostesting.data.model.deviceprovision.DeviceProvisionRequest
|
|
||||||
import com.example.hpostesting.data.model.deviceprovision.DeviceProvisionResponse
|
|
||||||
import com.example.hpostesting.data.model.diagnostics.DiagnosticsData
|
|
||||||
import com.example.hpostesting.data.model.jig.JigData
|
|
||||||
import com.example.hpostesting.data.model.log.UploadLogsResponse
|
|
||||||
import com.example.hpostesting.data.model.login.LoginRequest
|
|
||||||
import com.example.hpostesting.data.model.login.LoginResponse
|
|
||||||
import com.example.hpostesting.data.model.molbioresult.MolbioV2ResultRequest
|
|
||||||
import com.example.hpostesting.data.model.molbioresult.MolbioV2ResultResponse
|
|
||||||
import com.example.hpostesting.data.model.patient.BufferCheckData
|
|
||||||
import com.example.hpostesting.data.model.patient.DeviceData
|
|
||||||
import com.example.hpostesting.data.model.patient.HemoCubeTestData
|
|
||||||
import com.example.hpostesting.data.model.patient.UserData
|
|
||||||
import com.example.hpostesting.data.model.updates.CheckUpdateRequest
|
|
||||||
import com.example.hpostesting.data.model.updates.CheckUpdateResponse
|
|
||||||
import com.example.hpostesting.data.model.updates.DeviceUpdateRequest
|
|
||||||
import okhttp3.MultipartBody
|
|
||||||
import okhttp3.ResponseBody
|
|
||||||
|
|
||||||
interface Repository {
|
interface Repository {
|
||||||
suspend fun addTestToDatabase(data: HemoCubeTestData?): Response<String>
|
|
||||||
suspend fun addTestToDatabasefornew(data: HemoCubeTestData?): Response<String>
|
|
||||||
|
|
||||||
suspend fun addTestToDatabase(data: UserData?): Response<String>
|
|
||||||
|
|
||||||
suspend fun addTestToDatabaseforBufferCheck(data: BufferCheckData?): Response<String>
|
|
||||||
|
|
||||||
suspend fun addDiagnostics(data: DiagnosticsData?): Response<String>
|
|
||||||
|
|
||||||
suspend fun addTestJigData(data: JigData?): Response<String>
|
|
||||||
|
|
||||||
suspend fun uploadFileToStorage(patientID: String, filePath: String): Response<Boolean>
|
|
||||||
|
|
||||||
suspend fun getDeviceDataById(deviceId: String): DeviceData?
|
|
||||||
suspend fun getDeviceResponse(data: DeviceData?): Response<String>
|
|
||||||
suspend fun uploadDeviceId(data: DeviceData): Response<String>?
|
|
||||||
abstract fun <UserData> addTestToDatabase(testDetails: UserData): Any
|
|
||||||
// suspend fun addToDatabase(data: PatientDetails)
|
// suspend fun addToDatabase(data: PatientDetails)
|
||||||
|
|
||||||
suspend fun deviceProvision(deviceProvisionRequest: DeviceProvisionRequest): Result<DeviceProvisionResponse>
|
|
||||||
|
|
||||||
suspend fun login(loginRequest: LoginRequest): Result<LoginResponse>
|
|
||||||
|
|
||||||
suspend fun uploadResults(molbioV2ResultRequest: MolbioV2ResultRequest): Result<MolbioV2ResultResponse>
|
|
||||||
|
|
||||||
suspend fun checkUpdate(checkUpdateRequest: CheckUpdateRequest): Result<CheckUpdateResponse>
|
|
||||||
|
|
||||||
suspend fun deviceUpdate(deviceUpdateRequest: DeviceUpdateRequest): Result<ResponseBody>
|
|
||||||
suspend fun deviceDiagnostics(deviceDiagnosticsRequest: DeviceDiagnosticsRequest): Result<DeviceDiagnosticsResponse>
|
|
||||||
suspend fun downloadClientCertificate(): Result<ResponseBody>
|
|
||||||
suspend fun uploadLogs(logFile: MultipartBody.Part): Result<UploadLogsResponse>
|
|
||||||
}
|
}
|
||||||
@@ -1,203 +0,0 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.di
|
|
||||||
|
|
||||||
import android.app.Application
|
|
||||||
import android.content.Context
|
|
||||||
import android.content.SharedPreferences
|
|
||||||
import android.content.res.AssetManager
|
|
||||||
import androidx.room.Room
|
|
||||||
import com.example.hpostesting.data.api.MolbioAuthApi
|
|
||||||
import com.example.hpostesting.data.api.MolbioResultApi
|
|
||||||
import com.example.hpostesting.util.PropertyProvider
|
|
||||||
import com.example.hpostesting.data.dao.HemoCubeBufferDao
|
|
||||||
import com.example.hpostesting.data.dao.HemoCubeDao
|
|
||||||
import com.example.hpostesting.data.dao.MyDatabase
|
|
||||||
import com.example.hpostesting.data.dao.UserDao
|
|
||||||
import com.example.hpostesting.data.datasource.LocalFileDataSource
|
|
||||||
import com.example.hpostesting.data.datasource.LocalFileDataSourceImpl
|
|
||||||
import com.example.hpostesting.data.repository.DatabaseRepository
|
|
||||||
import com.example.hpostesting.data.repository.LocalFileRepository
|
|
||||||
import com.example.hpostesting.data.repository.Repository
|
|
||||||
import com.example.hpostesting.domain.AuthInterceptor
|
|
||||||
import com.example.hpostesting.domain.LogFileManager
|
|
||||||
import com.example.hpostesting.domain.LogFileManagerImpl
|
|
||||||
import com.example.hpostesting.domain.SaveRawData
|
|
||||||
import com.example.hpostesting.domain.SaveRawDataTest
|
|
||||||
import com.example.hpostesting.presentation.utils.UsbServiceListener
|
|
||||||
import com.example.hpostesting.presentation.utils.UsbServiceListenerImpl
|
|
||||||
import com.example.hpostesting.util.PropertyProviderImpl
|
|
||||||
import dagger.Module
|
|
||||||
import dagger.Provides
|
|
||||||
import dagger.hilt.InstallIn
|
|
||||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
|
||||||
import dagger.hilt.components.SingletonComponent
|
|
||||||
import okhttp3.OkHttpClient
|
|
||||||
import retrofit2.Retrofit
|
|
||||||
import retrofit2.converter.gson.GsonConverterFactory
|
|
||||||
import java.util.concurrent.TimeUnit
|
|
||||||
import javax.inject.Named
|
|
||||||
import javax.inject.Singleton
|
|
||||||
|
|
||||||
@Module
|
|
||||||
@InstallIn(SingletonComponent::class)
|
|
||||||
object AppModule {
|
|
||||||
|
|
||||||
@Provides
|
|
||||||
@Singleton
|
|
||||||
fun provideMyDatabase(@ApplicationContext context: Context): MyDatabase {
|
|
||||||
return Room.databaseBuilder(
|
|
||||||
context, MyDatabase::class.java, "my_database"
|
|
||||||
).fallbackToDestructiveMigration().build()
|
|
||||||
}
|
|
||||||
|
|
||||||
@Provides
|
|
||||||
@Singleton
|
|
||||||
fun provideMyDao(myDatabase: MyDatabase): UserDao {
|
|
||||||
return myDatabase.userDao()
|
|
||||||
}
|
|
||||||
|
|
||||||
@Provides
|
|
||||||
@Singleton
|
|
||||||
fun provideMyHemo(myDatabase: MyDatabase): HemoCubeDao {
|
|
||||||
return myDatabase.hemoCubeDao()
|
|
||||||
}
|
|
||||||
|
|
||||||
@Provides
|
|
||||||
@Singleton
|
|
||||||
fun provideMyHemoCubeBuffer(myDatabase: MyDatabase): HemoCubeBufferDao {
|
|
||||||
return myDatabase.hemoCubeBufferDao()
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Provides
|
|
||||||
@Singleton
|
|
||||||
fun provideContext(application: Application): Context {
|
|
||||||
return application.applicationContext
|
|
||||||
}
|
|
||||||
|
|
||||||
@Provides
|
|
||||||
@Singleton
|
|
||||||
fun provideSaveRawData(): SaveRawData {
|
|
||||||
val repository = LocalFileRepository(LocalFileDataSourceImpl())
|
|
||||||
return SaveRawData(repository)
|
|
||||||
}
|
|
||||||
|
|
||||||
@Provides
|
|
||||||
@Singleton
|
|
||||||
fun provideSaveRawDataTest(): SaveRawDataTest {
|
|
||||||
val repository = LocalFileRepository(LocalFileDataSourceImpl())
|
|
||||||
return SaveRawDataTest(repository)
|
|
||||||
}
|
|
||||||
|
|
||||||
@Provides
|
|
||||||
@Singleton
|
|
||||||
fun provideDatabaseRepository(
|
|
||||||
@Named("Auth") molbioAuthApi: MolbioAuthApi,
|
|
||||||
molbioResultApi: MolbioResultApi
|
|
||||||
): DatabaseRepository {
|
|
||||||
return DatabaseRepository(molbioAuthApi = molbioAuthApi, molbioResultApi = molbioResultApi)
|
|
||||||
}
|
|
||||||
|
|
||||||
@Provides
|
|
||||||
@Singleton
|
|
||||||
fun provideRepository(
|
|
||||||
@Named("Auth") molbioAuthApi: MolbioAuthApi,
|
|
||||||
molbioResultApi: MolbioResultApi
|
|
||||||
): Repository {
|
|
||||||
return DatabaseRepository(molbioAuthApi, molbioResultApi)
|
|
||||||
}
|
|
||||||
|
|
||||||
@Provides
|
|
||||||
@Singleton
|
|
||||||
fun provideAssetManager(@ApplicationContext context: Context): AssetManager {
|
|
||||||
return context.assets
|
|
||||||
}
|
|
||||||
|
|
||||||
@Provides
|
|
||||||
@Singleton
|
|
||||||
fun providePropertyProvider(assetManager: AssetManager): PropertyProvider {
|
|
||||||
return PropertyProviderImpl(assetManager)
|
|
||||||
}
|
|
||||||
|
|
||||||
@Provides
|
|
||||||
@Singleton
|
|
||||||
fun provideSharedPreferences(@ApplicationContext context: Context): SharedPreferences {
|
|
||||||
return context.getSharedPreferences("HEMOCUBE", Context.MODE_PRIVATE)
|
|
||||||
}
|
|
||||||
|
|
||||||
@Provides
|
|
||||||
@Singleton
|
|
||||||
fun provideAuthInterceptor(sharedPreferences: SharedPreferences): AuthInterceptor {
|
|
||||||
return AuthInterceptor(sharedPreferences)
|
|
||||||
}
|
|
||||||
|
|
||||||
@Provides
|
|
||||||
@Singleton
|
|
||||||
@Named("Auth")
|
|
||||||
fun provideAuthOkHttpClient(authInterceptor: AuthInterceptor): OkHttpClient {
|
|
||||||
return OkHttpClient.Builder().addInterceptor(authInterceptor)
|
|
||||||
.connectTimeout(30, TimeUnit.SECONDS).readTimeout(30, TimeUnit.SECONDS).build()
|
|
||||||
}
|
|
||||||
|
|
||||||
@Provides
|
|
||||||
@Singleton
|
|
||||||
fun provideOkHttpClient(): OkHttpClient =
|
|
||||||
OkHttpClient.Builder().connectTimeout(30, TimeUnit.SECONDS)
|
|
||||||
.readTimeout(30, TimeUnit.SECONDS).build()
|
|
||||||
|
|
||||||
@Provides
|
|
||||||
@Singleton
|
|
||||||
fun provideRetrofit(
|
|
||||||
propertyProvider: PropertyProvider, @Named("Auth") client: OkHttpClient
|
|
||||||
): Retrofit {
|
|
||||||
return Retrofit.Builder().baseUrl(propertyProvider.getProperty("BASE_URL")).client(client)
|
|
||||||
.addConverterFactory(GsonConverterFactory.create()).build()
|
|
||||||
}
|
|
||||||
|
|
||||||
@Provides
|
|
||||||
@Singleton
|
|
||||||
@Named("Auth")
|
|
||||||
fun provideAuthRetrofit(propertyProvider: PropertyProvider, client: OkHttpClient): Retrofit {
|
|
||||||
return Retrofit.Builder().baseUrl(propertyProvider.getProperty("BASE_URL")).client(client)
|
|
||||||
.addConverterFactory(GsonConverterFactory.create()).build()
|
|
||||||
}
|
|
||||||
|
|
||||||
@Provides
|
|
||||||
@Singleton
|
|
||||||
@Named("Auth")
|
|
||||||
fun provideAuthApi(@Named("Auth") retrofit: Retrofit): MolbioAuthApi =
|
|
||||||
retrofit.create(MolbioAuthApi::class.java)
|
|
||||||
|
|
||||||
@Provides
|
|
||||||
@Singleton
|
|
||||||
fun provideResultApi(retrofit: Retrofit): MolbioResultApi =
|
|
||||||
retrofit.create(MolbioResultApi::class.java)
|
|
||||||
|
|
||||||
@Provides
|
|
||||||
@Singleton
|
|
||||||
fun provideLogFileManager(context: Context): LogFileManager = LogFileManagerImpl(context)
|
|
||||||
|
|
||||||
@Provides
|
|
||||||
@Singleton
|
|
||||||
fun provideLocalFileDataSource(): LocalFileDataSource {
|
|
||||||
return LocalFileDataSourceImpl()
|
|
||||||
}
|
|
||||||
|
|
||||||
@Provides
|
|
||||||
@Singleton
|
|
||||||
fun provideUsbServiceListener(context: Context): UsbServiceListener {
|
|
||||||
return UsbServiceListenerImpl(context)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.domain
|
|
||||||
|
|
||||||
import android.content.SharedPreferences
|
|
||||||
import com.example.hpostesting.data.constant.Constants
|
|
||||||
import okhttp3.Interceptor
|
|
||||||
import okhttp3.Response
|
|
||||||
|
|
||||||
class AuthInterceptor(private val sharedPreferences: SharedPreferences) : Interceptor {
|
|
||||||
|
|
||||||
override fun intercept(chain: Interceptor.Chain): Response {
|
|
||||||
var request = chain.request()
|
|
||||||
|
|
||||||
val token = sharedPreferences.getString(Constants.ACCESS_TOKEN, null)
|
|
||||||
|
|
||||||
if (token != null) {
|
|
||||||
request = request.newBuilder()
|
|
||||||
.addHeader("Authorization", "Bearer $token")
|
|
||||||
.build()
|
|
||||||
}
|
|
||||||
|
|
||||||
return chain.proceed(request)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,41 +0,0 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.domain
|
|
||||||
|
|
||||||
import android.content.Context
|
|
||||||
import android.util.Log
|
|
||||||
import androidx.work.CoroutineWorker
|
|
||||||
import androidx.work.WorkerParameters
|
|
||||||
import kotlinx.coroutines.Dispatchers
|
|
||||||
import kotlinx.coroutines.delay
|
|
||||||
import kotlinx.coroutines.withContext
|
|
||||||
|
|
||||||
class CheckUpdateWorker(
|
|
||||||
context: Context,
|
|
||||||
workerParams: WorkerParameters
|
|
||||||
) : CoroutineWorker(context, workerParams) {
|
|
||||||
|
|
||||||
override suspend fun doWork(): Result = withContext(Dispatchers.IO) {
|
|
||||||
try {
|
|
||||||
// for (i in 1..900){
|
|
||||||
// delay(1000)
|
|
||||||
// Log.d("Work for every second", "doWork: Running")
|
|
||||||
// }
|
|
||||||
|
|
||||||
Result.success()
|
|
||||||
} catch (e: Exception) {
|
|
||||||
Result.failure()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.domain
|
|
||||||
|
|
||||||
import android.content.Context
|
|
||||||
import android.util.Log
|
|
||||||
import java.io.File
|
|
||||||
import java.io.FileOutputStream
|
|
||||||
import java.io.IOException
|
|
||||||
|
|
||||||
interface LogFileManager {
|
|
||||||
|
|
||||||
fun createLogFile(): File?
|
|
||||||
}
|
|
||||||
@@ -1,51 +0,0 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.domain
|
|
||||||
|
|
||||||
import android.content.Context
|
|
||||||
import java.io.File
|
|
||||||
import java.io.FileOutputStream
|
|
||||||
import java.io.IOException
|
|
||||||
import javax.inject.Inject
|
|
||||||
|
|
||||||
class LogFileManagerImpl @Inject constructor(private val context: Context) : LogFileManager {
|
|
||||||
|
|
||||||
override fun createLogFile(): File? {
|
|
||||||
val unixTime = System.currentTimeMillis() / 1000L
|
|
||||||
val logFileName = "hpos_$unixTime.log"
|
|
||||||
|
|
||||||
return try {
|
|
||||||
val process = Runtime.getRuntime().exec("logcat -d -v threadtime -t 1000")
|
|
||||||
val logBuilder = StringBuilder()
|
|
||||||
val input = process.inputStream
|
|
||||||
val bufferedReader = input.bufferedReader()
|
|
||||||
|
|
||||||
bufferedReader.forEachLine { line ->
|
|
||||||
logBuilder.append(line).append("\n")
|
|
||||||
}
|
|
||||||
|
|
||||||
val logContent = logBuilder.toString()
|
|
||||||
|
|
||||||
val file = File(context.filesDir, logFileName)
|
|
||||||
val fileOutputStream = FileOutputStream(file)
|
|
||||||
fileOutputStream.write(logContent.toByteArray())
|
|
||||||
fileOutputStream.close()
|
|
||||||
|
|
||||||
file
|
|
||||||
} catch (e: IOException) {
|
|
||||||
// Log.e("LogFileManager", "Error creating log file: ${e.message}")
|
|
||||||
null
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,16 +1,3 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.domain
|
package com.example.hpostesting.domain
|
||||||
|
|
||||||
import com.example.hpostesting.data.constant.Constants
|
import com.example.hpostesting.data.constant.Constants
|
||||||
|
|||||||
@@ -1,23 +1,10 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.domain
|
package com.example.hpostesting.domain
|
||||||
|
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
|
import com.example.hpostesting.data.repository.LocalFileRepository
|
||||||
import com.example.hpostesting.data.constant.Constants
|
import com.example.hpostesting.data.constant.Constants
|
||||||
import com.example.hpostesting.data.model.patient.UserData
|
import com.example.hpostesting.data.model.patient.UserData
|
||||||
import com.example.hpostesting.data.model.test.TestRightCalculationData
|
import com.example.hpostesting.data.model.test.TestRightCalculationData
|
||||||
import com.example.hpostesting.data.repository.LocalFileRepository
|
|
||||||
import java.util.Collections.sort
|
import java.util.Collections.sort
|
||||||
|
|
||||||
class SaveRawData(private val localFileRepository: LocalFileRepository) {
|
class SaveRawData(private val localFileRepository: LocalFileRepository) {
|
||||||
@@ -111,7 +98,7 @@ class SaveRawData(private val localFileRepository: LocalFileRepository) {
|
|||||||
folderPath: String,
|
folderPath: String,
|
||||||
fileName: String,
|
fileName: String,
|
||||||
calculationData: TestRightCalculationData,
|
calculationData: TestRightCalculationData,
|
||||||
testDetails: UserData?,
|
testDetails: UserData?
|
||||||
) {
|
) {
|
||||||
// val fileObj = File(folderPath, fileName)
|
// val fileObj = File(folderPath, fileName)
|
||||||
// val writer = FileWriter(fileObj)
|
// val writer = FileWriter(fileObj)
|
||||||
@@ -129,7 +116,7 @@ class SaveRawData(private val localFileRepository: LocalFileRepository) {
|
|||||||
|
|
||||||
private fun getLogStringFromObjWithPatientData(
|
private fun getLogStringFromObjWithPatientData(
|
||||||
calculationData: TestRightCalculationData,
|
calculationData: TestRightCalculationData,
|
||||||
testDetails: UserData?,
|
testDetails: UserData?
|
||||||
): String {
|
): String {
|
||||||
var outputString = "Test calculation logs ==>\n"
|
var outputString = "Test calculation logs ==>\n"
|
||||||
outputString += "Name = ${testDetails?.name}\n"
|
outputString += "Name = ${testDetails?.name}\n"
|
||||||
|
|||||||
@@ -1,16 +1,3 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.domain
|
package com.example.hpostesting.domain
|
||||||
|
|
||||||
import com.example.hpostesting.data.repository.LocalFileRepository
|
import com.example.hpostesting.data.repository.LocalFileRepository
|
||||||
|
|||||||
@@ -1,16 +1,3 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.domain
|
package com.example.hpostesting.domain
|
||||||
|
|
||||||
import com.example.hpostesting.data.constant.Constants
|
import com.example.hpostesting.data.constant.Constants
|
||||||
|
|||||||
@@ -1,16 +1,3 @@
|
|||||||
/*
|
|
||||||
* // Copyright (c) 2024 ShanMukha Innovations Pvt. Ltd. All rights reserved.
|
|
||||||
* // Notice: All information contained herein is, and remains
|
|
||||||
* // the property of ShanMukha Innovations Pvt. Ltd. and its suppliers,
|
|
||||||
* // if any. The intellectual and technical concepts contained
|
|
||||||
* // herein are proprietary to ShanMukha Innovations Pvt. Ltd.
|
|
||||||
* // and its suppliers and may be covered by Indian and Foreign Patents,
|
|
||||||
* // patents in process, and are protected by trade secret or copyright law.
|
|
||||||
* // Dissemination of this information or reproduction of this material
|
|
||||||
* // is strictly forbidden unless prior written permission is obtained
|
|
||||||
* // from ShanMukha Innovations Pvt. Ltd.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package com.example.hpostesting.domain
|
package com.example.hpostesting.domain
|
||||||
|
|
||||||
import com.example.hpostesting.data.model.test.TestRightCalculationData
|
import com.example.hpostesting.data.model.test.TestRightCalculationData
|
||||||
|
|||||||
@@ -0,0 +1,72 @@
|
|||||||
|
package com.example.hpostesting.domain.di
|
||||||
|
|
||||||
|
import android.app.Application
|
||||||
|
import android.content.Context
|
||||||
|
import androidx.room.Room
|
||||||
|
import com.example.hpostesting.data.dao.HemoCubeDao
|
||||||
|
import com.example.hpostesting.data.dao.MyDatabase
|
||||||
|
import com.example.hpostesting.data.dao.UserDao
|
||||||
|
import com.example.hpostesting.data.datasource.LocalFileDataSource
|
||||||
|
import com.example.hpostesting.data.repository.DatabaseRepository
|
||||||
|
import com.example.hpostesting.data.repository.LocalFileRepository
|
||||||
|
import com.example.hpostesting.domain.SaveRawData
|
||||||
|
import com.example.hpostesting.domain.SaveRawDataTest
|
||||||
|
import dagger.Module
|
||||||
|
import dagger.Provides
|
||||||
|
import dagger.hilt.InstallIn
|
||||||
|
import dagger.hilt.android.qualifiers.ApplicationContext
|
||||||
|
import dagger.hilt.components.SingletonComponent
|
||||||
|
import javax.inject.Singleton
|
||||||
|
|
||||||
|
@Module
|
||||||
|
@InstallIn(SingletonComponent::class)
|
||||||
|
object AppModule {
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
@Singleton
|
||||||
|
fun provideMyDatabase(@ApplicationContext context: Context): MyDatabase {
|
||||||
|
return Room.databaseBuilder(
|
||||||
|
context, MyDatabase::class.java, "my_database"
|
||||||
|
)
|
||||||
|
.fallbackToDestructiveMigration()
|
||||||
|
.build()
|
||||||
|
}
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
@Singleton
|
||||||
|
fun provideMyDao(myDatabase: MyDatabase): UserDao {
|
||||||
|
return myDatabase.userDao()
|
||||||
|
}
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
@Singleton
|
||||||
|
fun provideMyHemo(myDatabase: MyDatabase): HemoCubeDao {
|
||||||
|
return myDatabase.hemoCubeDao()
|
||||||
|
}
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
@Singleton
|
||||||
|
fun provideContext(application: Application): Context {
|
||||||
|
return application.applicationContext
|
||||||
|
}
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
@Singleton
|
||||||
|
fun provideSaveRawData(): SaveRawData {
|
||||||
|
val repository = LocalFileRepository(LocalFileDataSource())
|
||||||
|
return SaveRawData(repository)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
@Singleton
|
||||||
|
fun provideSaveRawDataTest(): SaveRawDataTest {
|
||||||
|
val repository = LocalFileRepository(LocalFileDataSource())
|
||||||
|
return SaveRawDataTest(repository)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
@Singleton
|
||||||
|
fun provideDatabaseRepository(): DatabaseRepository {
|
||||||
|
return DatabaseRepository()
|
||||||
|
}
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user