Compare commits
3 Commits
review_rel
...
dev-update
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d82ecf624e | ||
|
|
d2d965d524 | ||
|
|
5e0d333fca |
124
.gitlab-ci.yml
124
.gitlab-ci.yml
@@ -1,31 +1,63 @@
|
|||||||
|
# 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
|
image: eclipse-temurin:17-jdk-jammy
|
||||||
|
|
||||||
variables:
|
variables:
|
||||||
ANDROID_COMPILE_SDK: "34"
|
|
||||||
ANDROID_BUILD_TOOLS: "33.0.2"
|
|
||||||
ANDROID_SDK_TOOLS: "9477386"
|
|
||||||
|
|
||||||
# Keystore credentials stored as GitLab CI/CD variables
|
|
||||||
KEYSTORE_PASSWORD: $KS_PASSWORD
|
|
||||||
KEY_ALIAS: $KS_ALIAS
|
|
||||||
KEY_PASSWORD: $KS_KEY_PASSWORD
|
|
||||||
|
|
||||||
|
# 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:
|
before_script:
|
||||||
- apt-get --quiet update --yes
|
- apt-get --quiet update --yes
|
||||||
- apt-get --quiet install --yes wget unzip
|
- 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"
|
- export ANDROID_HOME="${PWD}/android-sdk-root"
|
||||||
|
# Create a new directory at specified location
|
||||||
- install -d $ANDROID_HOME
|
- 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
|
- 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"
|
- 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"
|
- 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
|
- export PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/cmdline-tools/tools/bin
|
||||||
|
|
||||||
|
# Nothing fancy here, just checking sdkManager version
|
||||||
- sdkmanager --version
|
- sdkmanager --version
|
||||||
|
|
||||||
|
# use yes to accept all licenses
|
||||||
- yes | sdkmanager --licenses > /dev/null || true
|
- yes | sdkmanager --licenses > /dev/null || true
|
||||||
- sdkmanager "platforms;android-${ANDROID_COMPILE_SDK}"
|
- sdkmanager "platforms;android-${ANDROID_COMPILE_SDK}"
|
||||||
- sdkmanager "platform-tools"
|
- sdkmanager "platform-tools"
|
||||||
- sdkmanager "build-tools;${ANDROID_BUILD_TOOLS}"
|
- sdkmanager "build-tools;${ANDROID_BUILD_TOOLS}"
|
||||||
|
|
||||||
|
# Not necessary, but just for surity
|
||||||
- chmod +x ./gradlew
|
- chmod +x ./gradlew
|
||||||
|
|
||||||
|
# Basic android and gradle stuff
|
||||||
|
# Check linting
|
||||||
lintDebug:
|
lintDebug:
|
||||||
interruptible: true
|
interruptible: true
|
||||||
stage: build
|
stage: build
|
||||||
@@ -37,6 +69,7 @@ lintDebug:
|
|||||||
expose_as: "lint-report"
|
expose_as: "lint-report"
|
||||||
when: always
|
when: always
|
||||||
|
|
||||||
|
# Make Project
|
||||||
assembleDebug:
|
assembleDebug:
|
||||||
interruptible: true
|
interruptible: true
|
||||||
stage: build
|
stage: build
|
||||||
@@ -45,84 +78,11 @@ assembleDebug:
|
|||||||
artifacts:
|
artifacts:
|
||||||
paths:
|
paths:
|
||||||
- app/build/outputs/
|
- app/build/outputs/
|
||||||
|
|
||||||
# Job for building signed release APK for tags containing "release" on any branch
|
|
||||||
assembleRelease:
|
|
||||||
stage: build
|
|
||||||
script:
|
|
||||||
- |
|
|
||||||
if [[ "$CI_COMMIT_TAG" =~ release ]]; then
|
|
||||||
echo "Decoding keystore file from Base64"
|
|
||||||
|
|
||||||
# Debug: Print the first few characters of BASE64_KEYSTORE
|
|
||||||
echo "First 20 characters of BASE64_KEYSTORE: ${BASE64_KEYSTORE:0:20}..."
|
|
||||||
|
|
||||||
# Check if BASE64_KEYSTORE is a file path
|
|
||||||
if [[ "$BASE64_KEYSTORE" == /* ]] && [[ -f "$BASE64_KEYSTORE" ]]; then
|
|
||||||
echo "BASE64_KEYSTORE appears to be a file path. Reading content..."
|
|
||||||
BASE64_CONTENT=$(cat "$BASE64_KEYSTORE")
|
|
||||||
else
|
|
||||||
echo "BASE64_KEYSTORE is not a file path. Using as-is."
|
|
||||||
BASE64_CONTENT="$BASE64_KEYSTORE"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Remove any potential whitespace or newline characters
|
|
||||||
CLEANED_KEYSTORE=$(echo "$BASE64_CONTENT" | tr -d '[:space:]')
|
|
||||||
|
|
||||||
# Attempt to decode and save to a file
|
|
||||||
if echo "$CLEANED_KEYSTORE" | base64 -d > "$CI_PROJECT_DIR/app/keystore.jks" 2>/tmp/base64_error; then
|
|
||||||
echo "Keystore file decoded successfully"
|
|
||||||
else
|
|
||||||
echo "Error decoding keystore file:"
|
|
||||||
cat /tmp/base64_error
|
|
||||||
echo "First 20 characters of cleaned content: ${CLEANED_KEYSTORE:0:20}..."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Check if the keystore file was created and has content
|
|
||||||
if [ -s "$CI_PROJECT_DIR/app/keystore.jks" ]; then
|
|
||||||
echo "Keystore file created successfully"
|
|
||||||
# Print file size for verification
|
|
||||||
ls -l "$CI_PROJECT_DIR/app/keystore.jks"
|
|
||||||
else
|
|
||||||
echo "Error: Keystore file is empty or not created"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Building signed release APK"
|
|
||||||
./gradlew assembleRelease \
|
|
||||||
-Pandroid.injected.signing.store.file="$CI_PROJECT_DIR/app/keystore.jks" \
|
|
||||||
-Pandroid.injected.signing.store.password="$KEYSTORE_PASSWORD" \
|
|
||||||
-Pandroid.injected.signing.key.alias="$KEY_ALIAS" \
|
|
||||||
-Pandroid.injected.signing.key.password="$KEY_PASSWORD"
|
|
||||||
else
|
|
||||||
echo "Tag '$CI_COMMIT_TAG' does not contain 'release'. Skipping release build."
|
|
||||||
fi
|
|
||||||
artifacts:
|
|
||||||
paths:
|
|
||||||
- app/build/outputs/
|
|
||||||
expire_in: never
|
|
||||||
rules:
|
|
||||||
- if: $CI_COMMIT_TAG =~ /release/
|
|
||||||
when: always
|
|
||||||
- when: never
|
|
||||||
|
|
||||||
|
# Run all tests, if any fails, interrupt the pipeline(fail it)
|
||||||
debugTests:
|
debugTests:
|
||||||
needs: [lintDebug, assembleDebug]
|
needs: [lintDebug, assembleDebug]
|
||||||
interruptible: true
|
interruptible: true
|
||||||
stage: test
|
stage: test
|
||||||
script:
|
script:
|
||||||
- ./gradlew -Pci --console=plain :app:testDebug
|
- ./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
|
|
||||||
3
.idea/gradle.xml
generated
3
.idea/gradle.xml
generated
@@ -4,8 +4,9 @@
|
|||||||
<component name="GradleSettings">
|
<component name="GradleSettings">
|
||||||
<option name="linkedExternalProjectsSettings">
|
<option name="linkedExternalProjectsSettings">
|
||||||
<GradleProjectSettings>
|
<GradleProjectSettings>
|
||||||
|
<option name="testRunner" value="GRADLE" />
|
||||||
<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$" />
|
||||||
|
|||||||
1
app/.gitignore
vendored
1
app/.gitignore
vendored
@@ -1,4 +1,3 @@
|
|||||||
/build
|
/build
|
||||||
/release
|
|
||||||
/google-services*
|
/google-services*
|
||||||
/idea
|
/idea
|
||||||
@@ -14,18 +14,17 @@ 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
|
// prod - production, preprod - preproduction, quality - qc, dev - development
|
||||||
// server -> for server switching for internal test
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
applicationId "in.sminnovations.hpostesting.server"
|
applicationId "in.sminnovations.hpostesting"
|
||||||
minSdk 21
|
minSdk 21
|
||||||
targetSdk 34
|
targetSdk 34
|
||||||
versionCode 130
|
versionCode 93
|
||||||
versionName "2.1.130"
|
versionName "2.1.93"
|
||||||
|
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
buildTypes {
|
buildTypes {
|
||||||
release {
|
release {
|
||||||
minifyEnabled false
|
minifyEnabled false
|
||||||
@@ -62,7 +61,6 @@ android {
|
|||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation "com.google.dagger:hilt-android:2.46"
|
implementation "com.google.dagger:hilt-android:2.46"
|
||||||
implementation 'androidx.activity:activity:1.8.0'
|
|
||||||
kapt "com.google.dagger:hilt-android-compiler: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'
|
||||||
@@ -76,29 +74,27 @@ dependencies {
|
|||||||
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-perf-ktx")
|
||||||
implementation("com.google.firebase:firebase-crashlytics-ktx")
|
implementation("com.google.firebase:firebase-crashlytics-ktx")
|
||||||
implementation("com.google.firebase:firebase-config-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-beta11'
|
||||||
implementation("com.google.firebase:firebase-appdistribution-api-ktx:16.0.0-beta12")
|
implementation("com.google.firebase:firebase-appdistribution-api-ktx:16.0.0-beta11")
|
||||||
implementation 'androidx.preference:preference-ktx:1.2.1'
|
implementation 'androidx.preference:preference-ktx:1.2.1'
|
||||||
implementation 'androidx.preference:preference-ktx:1.2.1'
|
implementation 'androidx.preference:preference-ktx:1.2.1'
|
||||||
implementation 'io.nats:jnats:2.11.4'
|
implementation 'com.google.android.play:core:1.10.3'
|
||||||
|
implementation 'io.nats:jnats:2.11.2'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 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"
|
testImplementation "androidx.work:work-testing:2.9.0"
|
||||||
androidTestImplementation 'androidx.test:core-ktx:1.5.0'
|
androidTestImplementation 'androidx.test:core-ktx:1.5.0'
|
||||||
@@ -113,17 +109,17 @@ dependencies {
|
|||||||
androidTestImplementation 'org.mockito:mockito-android:3.12.4'
|
androidTestImplementation 'org.mockito:mockito-android:3.12.4'
|
||||||
androidTestImplementation 'org.mockito:mockito-inline:3.12.4'
|
androidTestImplementation 'org.mockito:mockito-inline:3.12.4'
|
||||||
androidTestImplementation 'org.mockito:mockito-android: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 "androidx.arch.core:core-testing:2.2.0"
|
||||||
testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.7.1'
|
testImplementation 'org.jetbrains.kotlinx:kotlinx-coroutines-test:1.7.1'
|
||||||
|
|
||||||
|
|
||||||
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.7.0"
|
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.7.0"
|
||||||
implementation 'com.opencsv:opencsv:5.9'
|
implementation 'com.opencsv:opencsv:5.9'
|
||||||
implementation 'com.github.mik3y:usb-serial-for-android:3.8.0'
|
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.2"
|
||||||
|
|
||||||
// CSV read, write
|
// CSV read, write
|
||||||
implementation 'com.opencsv:opencsv:5.9'
|
implementation 'com.opencsv:opencsv:5.9'
|
||||||
|
|
||||||
@@ -137,15 +133,14 @@ dependencies {
|
|||||||
implementation "androidx.room:room-ktx:2.6.1"
|
implementation "androidx.room:room-ktx:2.6.1"
|
||||||
implementation "androidx.room:room-runtime:2.6.1"
|
implementation "androidx.room:room-runtime:2.6.1"
|
||||||
kapt ("androidx.room:room-compiler:2.6.1")
|
kapt ("androidx.room:room-compiler:2.6.1")
|
||||||
implementation "net.zetetic:android-database-sqlcipher:4.4.0"
|
|
||||||
|
|
||||||
//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.6"
|
||||||
implementation "androidx.navigation:navigation-ui-ktx:2.7.7"
|
implementation "androidx.navigation:navigation-ui-ktx:2.7.6"
|
||||||
|
|
||||||
//Dagger - Hilt
|
//Dagger - Hilt
|
||||||
implementation "com.google.dagger:hilt-android:2.46"
|
implementation "com.google.dagger:hilt-android:2.46"
|
||||||
@@ -158,17 +153,11 @@ dependencies {
|
|||||||
implementation("com.squareup.okhttp3:okhttp:4.9.3")
|
implementation("com.squareup.okhttp3:okhttp:4.9.3")
|
||||||
|
|
||||||
implementation "androidx.preference:preference-ktx:1.2.1"
|
implementation "androidx.preference:preference-ktx:1.2.1"
|
||||||
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.7.1'
|
implementation 'io.nats:jnats:2.11.2'
|
||||||
|
|
||||||
implementation("androidx.work:work-runtime-ktx:2.9.0")
|
implementation("androidx.work:work-runtime-ktx:2.9.0")
|
||||||
|
|
||||||
// implementation("io.nats:jnats:2.11.2")
|
// implementation("io.nats:jnats:2.11.2")
|
||||||
// implementation 'com.google.android.play:core:1.10.3'
|
implementation 'com.google.android.play:core:1.10.3'
|
||||||
|
|
||||||
implementation fileTree(dir: 'libs', include: ['*.aar'])
|
|
||||||
implementation 'io.nats:jnats:2.11.4'
|
|
||||||
implementation 'org.apache.commons:commons-math3:3.6.1'
|
|
||||||
implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.17'
|
|
||||||
implementation 'androidx.security:security-crypto:1.1.0-alpha03'
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -7,9 +7,178 @@
|
|||||||
"client": [
|
"client": [
|
||||||
{
|
{
|
||||||
"client_info": {
|
"client_info": {
|
||||||
"mobilesdk_app_id": "1:650071678820:android:f6fd45e2f6a63aef6c6471",
|
"mobilesdk_app_id": "1:650071678820:android:f1435a1c07f710036c6471",
|
||||||
"android_client_info": {
|
"android_client_info": {
|
||||||
"package_name": "in.sminnovations.hpostesting.server"
|
"package_name": "com.example.hposconsentform"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"oauth_client": [
|
||||||
|
{
|
||||||
|
"client_id": "650071678820-to41afi9f0gi5r3k6v7pe1e5p96nupcs.apps.googleusercontent.com",
|
||||||
|
"client_type": 3
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"api_key": [
|
||||||
|
{
|
||||||
|
"current_key": "AIzaSyAVdNGCev_AFX0qmuZJF6kxzRzXUTeAW5I"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"services": {
|
||||||
|
"appinvite_service": {
|
||||||
|
"other_platform_oauth_client": [
|
||||||
|
{
|
||||||
|
"client_id": "650071678820-to41afi9f0gi5r3k6v7pe1e5p96nupcs.apps.googleusercontent.com",
|
||||||
|
"client_type": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"client_info": {
|
||||||
|
"mobilesdk_app_id": "1:650071678820:android:7865bef608cdee6f6c6471",
|
||||||
|
"android_client_info": {
|
||||||
|
"package_name": "com.smi.counselling"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"oauth_client": [
|
||||||
|
{
|
||||||
|
"client_id": "650071678820-to41afi9f0gi5r3k6v7pe1e5p96nupcs.apps.googleusercontent.com",
|
||||||
|
"client_type": 3
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"api_key": [
|
||||||
|
{
|
||||||
|
"current_key": "AIzaSyAVdNGCev_AFX0qmuZJF6kxzRzXUTeAW5I"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"services": {
|
||||||
|
"appinvite_service": {
|
||||||
|
"other_platform_oauth_client": [
|
||||||
|
{
|
||||||
|
"client_id": "650071678820-to41afi9f0gi5r3k6v7pe1e5p96nupcs.apps.googleusercontent.com",
|
||||||
|
"client_type": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"client_info": {
|
||||||
|
"mobilesdk_app_id": "1:650071678820:android:2925e9ce3417d2386c6471",
|
||||||
|
"android_client_info": {
|
||||||
|
"package_name": "in.sminnovations.hemocube"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"oauth_client": [
|
||||||
|
{
|
||||||
|
"client_id": "650071678820-srhm9spm9hjn4frcd3r6o02gdhdbtd15.apps.googleusercontent.com",
|
||||||
|
"client_type": 1,
|
||||||
|
"android_info": {
|
||||||
|
"package_name": "in.sminnovations.hemocube",
|
||||||
|
"certificate_hash": "7714b9268a81d0cf0fb178b0af8dbb630f8fc70a"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"client_id": "650071678820-to41afi9f0gi5r3k6v7pe1e5p96nupcs.apps.googleusercontent.com",
|
||||||
|
"client_type": 3
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"api_key": [
|
||||||
|
{
|
||||||
|
"current_key": "AIzaSyAVdNGCev_AFX0qmuZJF6kxzRzXUTeAW5I"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"services": {
|
||||||
|
"appinvite_service": {
|
||||||
|
"other_platform_oauth_client": [
|
||||||
|
{
|
||||||
|
"client_id": "650071678820-to41afi9f0gi5r3k6v7pe1e5p96nupcs.apps.googleusercontent.com",
|
||||||
|
"client_type": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"client_info": {
|
||||||
|
"mobilesdk_app_id": "1:650071678820:android:7569c1cad4fc99916c6471",
|
||||||
|
"android_client_info": {
|
||||||
|
"package_name": "in.sminnovations.hposregistration"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"oauth_client": [
|
||||||
|
{
|
||||||
|
"client_id": "650071678820-70kp5jvjda4r5diqch2kn4lc40p4f42g.apps.googleusercontent.com",
|
||||||
|
"client_type": 1,
|
||||||
|
"android_info": {
|
||||||
|
"package_name": "in.sminnovations.hposregistration",
|
||||||
|
"certificate_hash": "7714b9268a81d0cf0fb178b0af8dbb630f8fc70a"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"client_id": "650071678820-to41afi9f0gi5r3k6v7pe1e5p96nupcs.apps.googleusercontent.com",
|
||||||
|
"client_type": 3
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"api_key": [
|
||||||
|
{
|
||||||
|
"current_key": "AIzaSyAVdNGCev_AFX0qmuZJF6kxzRzXUTeAW5I"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"services": {
|
||||||
|
"appinvite_service": {
|
||||||
|
"other_platform_oauth_client": [
|
||||||
|
{
|
||||||
|
"client_id": "650071678820-to41afi9f0gi5r3k6v7pe1e5p96nupcs.apps.googleusercontent.com",
|
||||||
|
"client_type": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"client_info": {
|
||||||
|
"mobilesdk_app_id": "1:650071678820:android:f96be19e5d43102b6c6471",
|
||||||
|
"android_client_info": {
|
||||||
|
"package_name": "in.sminnovations.hpostesting"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"oauth_client": [
|
||||||
|
{
|
||||||
|
"client_id": "650071678820-l87dnr0bdj95get0khgnvfv2an1k6ogq.apps.googleusercontent.com",
|
||||||
|
"client_type": 1,
|
||||||
|
"android_info": {
|
||||||
|
"package_name": "in.sminnovations.hpostesting",
|
||||||
|
"certificate_hash": "7714b9268a81d0cf0fb178b0af8dbb630f8fc70a"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"client_id": "650071678820-to41afi9f0gi5r3k6v7pe1e5p96nupcs.apps.googleusercontent.com",
|
||||||
|
"client_type": 3
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"api_key": [
|
||||||
|
{
|
||||||
|
"current_key": "AIzaSyAVdNGCev_AFX0qmuZJF6kxzRzXUTeAW5I"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"services": {
|
||||||
|
"appinvite_service": {
|
||||||
|
"other_platform_oauth_client": [
|
||||||
|
{
|
||||||
|
"client_id": "650071678820-to41afi9f0gi5r3k6v7pe1e5p96nupcs.apps.googleusercontent.com",
|
||||||
|
"client_type": 3
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"client_info": {
|
||||||
|
"mobilesdk_app_id": "1:650071678820:android:a53292637abb7c0d6c6471",
|
||||||
|
"android_client_info": {
|
||||||
|
"package_name": "in.sminnovations.hpostesting.dev"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"oauth_client": [
|
"oauth_client": [
|
||||||
|
|||||||
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,34 +4,17 @@
|
|||||||
"type": "APK",
|
"type": "APK",
|
||||||
"kind": "Directory"
|
"kind": "Directory"
|
||||||
},
|
},
|
||||||
"applicationId": "in.sminnovations.hpostesting.dev",
|
"applicationId": "com.example.hpos",
|
||||||
"variantName": "release",
|
"variantName": "release",
|
||||||
"elements": [
|
"elements": [
|
||||||
{
|
{
|
||||||
"type": "SINGLE",
|
"type": "SINGLE",
|
||||||
"filters": [],
|
"filters": [],
|
||||||
"attributes": [],
|
"attributes": [],
|
||||||
"versionCode": 127,
|
"versionCode": 1,
|
||||||
"versionName": "2.1.127",
|
"versionName": "1.0",
|
||||||
"outputFile": "app-release.apk"
|
"outputFile": "app-release.apk"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"elementType": "File",
|
"elementType": "File"
|
||||||
"baselineProfiles": [
|
|
||||||
{
|
|
||||||
"minApi": 28,
|
|
||||||
"maxApi": 30,
|
|
||||||
"baselineProfiles": [
|
|
||||||
"baselineProfiles/1/app-release.dm"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"minApi": 31,
|
|
||||||
"maxApi": 2147483647,
|
|
||||||
"baselineProfiles": [
|
|
||||||
"baselineProfiles/0/app-release.dm"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"minSdkVersionForDexing": 21
|
|
||||||
}
|
}
|
||||||
@@ -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.core.app.ActivityScenario
|
import androidx.test.core.app.ActivityScenario
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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.
|
|
||||||
-->
|
|
||||||
|
|
||||||
<vector android:height="24dp" android:tint="@color/primary"
|
<vector android:height="24dp" android:tint="@color/primary"
|
||||||
android:viewportHeight="24" android:viewportWidth="24"
|
android:viewportHeight="24" android:viewportWidth="24"
|
||||||
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
|||||||
@@ -2,13 +2,11 @@
|
|||||||
<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.AUTHENTICATE_ACCOUNTS"
|
|
||||||
android:maxSdkVersion="22" />
|
|
||||||
<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.REQUEST_INSTALL_PACKAGES" />
|
||||||
|
|
||||||
<uses-permission
|
<uses-permission
|
||||||
android:name="android.permission.BATTERY_STATS"
|
android:name="android.permission.BATTERY_STATS"
|
||||||
tools:ignore="ProtectedPermissions" />
|
tools:ignore="ProtectedPermissions" />
|
||||||
@@ -25,12 +23,6 @@
|
|||||||
|
|
||||||
<uses-permission android:name="android.permission.USB_PERMISSION" />
|
<uses-permission android:name="android.permission.USB_PERMISSION" />
|
||||||
|
|
||||||
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
|
|
||||||
<uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
|
|
||||||
<uses-permission android:name="android.permission.ACCOUNT_MANAGER"
|
|
||||||
tools:ignore="ProtectedPermissions" />
|
|
||||||
|
|
||||||
|
|
||||||
<application
|
<application
|
||||||
android:name="com.example.hpostesting.HPOSTestingApplication"
|
android:name="com.example.hpostesting.HPOSTestingApplication"
|
||||||
android:allowBackup="true"
|
android:allowBackup="true"
|
||||||
@@ -38,41 +30,13 @@
|
|||||||
android:fullBackupContent="@xml/backup_rules"
|
android:fullBackupContent="@xml/backup_rules"
|
||||||
android:icon="@mipmap/hpos_icon"
|
android:icon="@mipmap/hpos_icon"
|
||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
android:largeHeap="true"
|
|
||||||
android:roundIcon="@mipmap/hpos_icon_round"
|
android:roundIcon="@mipmap/hpos_icon_round"
|
||||||
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.dashboard.UpdateValuesActivity"
|
|
||||||
android:exported="false"
|
|
||||||
android:screenOrientation="portrait"/>
|
|
||||||
|
|
||||||
<service
|
|
||||||
android:name="com.example.hpostesting.util.MyAuthenticatorService"
|
|
||||||
android:exported="true"
|
|
||||||
android:permission="android.permission.BIND_AUTOFILL_SERVICE">
|
|
||||||
<intent-filter>
|
|
||||||
<action android:name="android.accounts.AccountAuthenticator" />
|
|
||||||
</intent-filter>
|
|
||||||
|
|
||||||
<meta-data
|
|
||||||
android:name="android.accounts.AccountAuthenticator"
|
|
||||||
android:resource="@xml/authenticator" />
|
|
||||||
</service>
|
|
||||||
|
|
||||||
<activity
|
|
||||||
android:name="com.example.hpostesting.presentation.dashboard.ui.PasswordResetActivity"
|
|
||||||
android:exported="false"
|
|
||||||
android:screenOrientation="portrait" />
|
|
||||||
<activity
|
|
||||||
android:name="com.example.hpostesting.presentation.usb_teminal.UsbTerminalActivity"
|
|
||||||
android:exported="false"
|
|
||||||
android:screenOrientation="portrait" />
|
|
||||||
<activity
|
<activity
|
||||||
android:name="com.example.hpostesting.presentation.deviceinfo.DeviceActivity"
|
android:name="com.example.hpostesting.presentation.deviceinfo.DeviceActivity"
|
||||||
android:exported="false"
|
android:exported="false" />
|
||||||
android:theme="@style/Theme.HPOS.NoActionBar" />
|
|
||||||
<activity
|
<activity
|
||||||
android:name="com.example.hpostesting.presentation.hemocube.DigitalCardActivity"
|
android:name="com.example.hpostesting.presentation.hemocube.DigitalCardActivity"
|
||||||
android:exported="false" />
|
android:exported="false" />
|
||||||
@@ -80,18 +44,10 @@
|
|||||||
android:name="com.example.hpostesting.presentation.diagnostics.DiagnosticsActivity"
|
android:name="com.example.hpostesting.presentation.diagnostics.DiagnosticsActivity"
|
||||||
android:exported="false"
|
android:exported="false"
|
||||||
android:theme="@style/Theme.HPOS.NoActionBar" />
|
android:theme="@style/Theme.HPOS.NoActionBar" />
|
||||||
<activity
|
|
||||||
android:name="com.example.hpostesting.presentation.hb_test.HBTestActivity"
|
|
||||||
android:exported="false"
|
|
||||||
android:theme="@style/Theme.HPOS.NoActionBar" />
|
|
||||||
<activity
|
<activity
|
||||||
android:name="com.example.hpostesting.presentation.autodac.AutoDacActivity"
|
android:name="com.example.hpostesting.presentation.autodac.AutoDacActivity"
|
||||||
android:exported="false"
|
android:exported="false"
|
||||||
android:theme="@style/Theme.HPOS.NoActionBar" />
|
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
|
<activity
|
||||||
android:name="com.example.hpostesting.presentation.deviceprovision.DeviceProvisionActivity"
|
android:name="com.example.hpostesting.presentation.deviceprovision.DeviceProvisionActivity"
|
||||||
android:exported="false"
|
android:exported="false"
|
||||||
@@ -99,25 +55,18 @@
|
|||||||
<activity
|
<activity
|
||||||
android:name="com.example.hpostesting.presentation.calibration.CalibrationActivity"
|
android:name="com.example.hpostesting.presentation.calibration.CalibrationActivity"
|
||||||
android:exported="false"
|
android:exported="false"
|
||||||
android:theme="@style/Theme.HPOS.NoActionBar" />
|
android:theme="@style/Theme.HPOS.NoActionBar"/>
|
||||||
|
|
||||||
<activity
|
<activity
|
||||||
android:name="com.example.hpostesting.presentation.assurance.AssuranceControlsActivity"
|
android:name="com.example.hpostesting.presentation.assurance.AssuranceControlsActivity"
|
||||||
android:exported="false"
|
android:exported="false"
|
||||||
android:screenOrientation="portrait"
|
android:theme="@style/Theme.HPOS.NoActionBar"/>
|
||||||
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:parentActivityName="com.example.hpostesting.presentation.MainActivity"
|
android:parentActivityName="com.example.hpostesting.presentation.MainActivity"
|
||||||
android:screenOrientation="portrait"
|
|
||||||
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:theme="@style/Theme.HPOS.NoActionBar"
|
||||||
android:windowSoftInputMode="adjustPan" />
|
android:windowSoftInputMode="adjustPan" />
|
||||||
<activity
|
<activity
|
||||||
@@ -134,25 +83,23 @@
|
|||||||
android:theme="@style/Theme.HPOS.NoActionBar" />
|
android:theme="@style/Theme.HPOS.NoActionBar" />
|
||||||
<activity
|
<activity
|
||||||
android:name="com.example.hpostesting.presentation.dashboard.DashboardActivity"
|
android:name="com.example.hpostesting.presentation.dashboard.DashboardActivity"
|
||||||
android:exported="true"
|
android:exported="false"
|
||||||
android:permission=""
|
|
||||||
android:label="@string/title_activity_dashboard"
|
android:label="@string/title_activity_dashboard"
|
||||||
android:screenOrientation="portrait"
|
|
||||||
android:theme="@style/Theme.HPOS.NoActionBar"
|
android:theme="@style/Theme.HPOS.NoActionBar"
|
||||||
tools:ignore="AppLinkUrlError,MissingClass">
|
tools:ignore="AppLinkUrlError,MissingClass">
|
||||||
|
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.VIEW" />
|
<action android:name="android.intent.action.VIEW" />
|
||||||
|
|
||||||
<category android:name="android.intent.category.DEFAULT" />
|
<category android:name="android.intent.category.DEFAULT" />
|
||||||
|
|
||||||
<data android:scheme="content" />
|
<data android:scheme="content" />
|
||||||
<data android:scheme="file" />
|
<data android:scheme="file" />
|
||||||
<data android:mimeType="application/vnd.android.package-archive" />
|
<data android:mimeType="application/vnd.android.package-archive" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</activity>
|
</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" />
|
||||||
|
|
||||||
@@ -164,22 +111,13 @@
|
|||||||
<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.MONKEY" />
|
|
||||||
<category android:name="android.intent.category.LAUNCHER_APP" />
|
|
||||||
</intent-filter>
|
|
||||||
<intent-filter>
|
|
||||||
<action android:name="android.intent.action.MAIN" />
|
|
||||||
|
|
||||||
<category android:name="android.intent.category.LAUNCHER" />
|
<category android:name="android.intent.category.LAUNCHER" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</activity>
|
</activity>
|
||||||
<activity
|
<activity
|
||||||
android:name="com.example.hpostesting.presentation.testRight.TestRightActivity"
|
android:name="com.example.hpostesting.presentation.testRight.TestRightActivity"
|
||||||
android:exported="true"
|
android:exported="false"
|
||||||
android:noHistory="true"
|
android:noHistory="true"
|
||||||
android:permission=""
|
|
||||||
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">
|
||||||
@@ -196,8 +134,6 @@
|
|||||||
<activity
|
<activity
|
||||||
android:name="com.example.hpostesting.presentation.MainActivity"
|
android:name="com.example.hpostesting.presentation.MainActivity"
|
||||||
android:exported="true"
|
android:exported="true"
|
||||||
android:permission=""
|
|
||||||
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" />
|
||||||
@@ -211,16 +147,18 @@
|
|||||||
android:name="com.journeyapps.barcodescanner.CaptureActivity"
|
android:name="com.journeyapps.barcodescanner.CaptureActivity"
|
||||||
android:screenOrientation="portrait"
|
android:screenOrientation="portrait"
|
||||||
android:stateNotNeeded="true"
|
android:stateNotNeeded="true"
|
||||||
tools:replace="android:screenOrientation" /> <!-- ${applicationId} -->
|
tools:replace="android:screenOrientation" />
|
||||||
|
|
||||||
<provider
|
<provider
|
||||||
android:name="androidx.core.content.FileProvider"
|
android:name="androidx.core.content.FileProvider"
|
||||||
android:authorities="${applicationId}.fileprovider"
|
android:authorities="com.example.hpostesting.fileprovider"
|
||||||
android:exported="false"
|
android:exported="false"
|
||||||
android:grantUriPermissions="true">
|
android:grantUriPermissions="true">
|
||||||
<meta-data
|
<meta-data
|
||||||
android:name="android.support.FILE_PROVIDER_PATHS"
|
android:name="android.support.FILE_PROVIDER_PATHS"
|
||||||
android:resource="@xml/file_paths" />
|
android:resource="@xml/file_paths" />
|
||||||
</provider>
|
</provider>
|
||||||
|
|
||||||
</application>
|
</application>
|
||||||
|
|
||||||
</manifest>
|
</manifest>
|
||||||
@@ -1,14 +1 @@
|
|||||||
#
|
|
||||||
# // 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/
|
BASE_URL= https://datacollection.micropcr.com/api/
|
||||||
@@ -1,41 +1,30 @@
|
|||||||
/*
|
|
||||||
* // 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 com.example.hpostesting.firebase.FirebaseManager
|
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.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.Inject
|
import javax.inject.Singleton
|
||||||
|
|
||||||
@HiltAndroidApp
|
@HiltAndroidApp
|
||||||
class HPOSTestingApplication : Application() {
|
class HPOSTestingApplication: Application() {
|
||||||
@Inject
|
val applicationScope = CoroutineScope(SupervisorJob() + Dispatchers.IO)
|
||||||
lateinit var firebaseManager: FirebaseManager
|
|
||||||
override fun onCreate() {
|
override fun onCreate() {
|
||||||
super.onCreate()
|
super.onCreate()
|
||||||
val applicationScope = CoroutineScope(SupervisorJob() + Dispatchers.IO)
|
val applicationScope = CoroutineScope(SupervisorJob() + Dispatchers.IO)
|
||||||
|
|
||||||
// You can now use firebaseManager here after Hilt injects it
|
|
||||||
val firestoreSettings = FirebaseFirestoreSettings.Builder()
|
val firestoreSettings = FirebaseFirestoreSettings.Builder()
|
||||||
.setPersistenceEnabled(true) // Enable offline persistence if needed
|
.setPersistenceEnabled(true) // Enable offline persistence if needed
|
||||||
.build()
|
.build()
|
||||||
|
|
||||||
val firestore = firebaseManager.getCurrentFirestoreF()
|
val firestore = FirebaseFirestore.getInstance()
|
||||||
firestore.firestoreSettings = firestoreSettings
|
firestore.firestoreSettings = firestoreSettings
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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.os.Environment
|
import android.os.Environment
|
||||||
@@ -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
|
||||||
@@ -21,14 +8,12 @@ import com.example.hpostesting.data.model.test.TestType
|
|||||||
|
|
||||||
object DataHolder {
|
object DataHolder {
|
||||||
|
|
||||||
var sampleId: String = "sampleId"
|
|
||||||
var selectedTestType: TestType = TestType.SICKLECERT
|
var selectedTestType: TestType = TestType.SICKLECERT
|
||||||
val usbConnected = MutableLiveData(true)
|
val usbConnected = MutableLiveData(true)
|
||||||
var mobileUniqueId: String? = null
|
var mobileUniqueId: String? = null
|
||||||
var isAppFolderCreated = false
|
var isAppFolderCreated = false
|
||||||
var appFolderPath = ""
|
var appFolderPath = ""
|
||||||
var isReferenceTaken = false
|
var isReferenceTaken = false
|
||||||
var isToken = false
|
|
||||||
var sampleReadCounter = 0
|
var sampleReadCounter = 0
|
||||||
|
|
||||||
var deviceConstant: TestRightDeviceConstants? = null
|
var deviceConstant: TestRightDeviceConstants? = null
|
||||||
@@ -38,14 +23,8 @@ object DataHolder {
|
|||||||
val intensityReferenceArray = ArrayList<Double>()
|
val intensityReferenceArray = ArrayList<Double>()
|
||||||
var selectedTest: UserData? = null
|
var selectedTest: UserData? = null
|
||||||
var hemoCubeTestData: HemoCubeTestData? = null
|
var hemoCubeTestData: HemoCubeTestData? = null
|
||||||
var bloodGroup: String = "Unknown"
|
|
||||||
var age = "0"
|
|
||||||
var kitSerial: String = ""
|
var kitSerial: String = ""
|
||||||
var centerName: String = ""
|
|
||||||
var district: String = ""
|
|
||||||
var quickCapture:Boolean = false
|
|
||||||
var location: UserData.Location? = null
|
var location: UserData.Location? = null
|
||||||
var ipAddress: String ="0.0"
|
|
||||||
var testExp: Boolean = true
|
var testExp: Boolean = true
|
||||||
var hemocubeResult: Double? = null
|
var hemocubeResult: Double? = null
|
||||||
}
|
}
|
||||||
@@ -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
|
||||||
7
app/src/main/java/com/example/hpostesting/data/Result.kt
Normal file
7
app/src/main/java/com/example/hpostesting/data/Result.kt
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
package com.example.hpostesting.data
|
||||||
|
|
||||||
|
sealed class Result<out T : Any> {
|
||||||
|
data class Success<out T : Any>(val data: T) : Result<T>()
|
||||||
|
data class Error(val exception: Exception) : Result<Nothing>()
|
||||||
|
class Loading<T : Any> : Result<T>()
|
||||||
|
}
|
||||||
@@ -1,20 +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.api
|
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.DeviceProvisionRequest
|
||||||
import com.example.hpostesting.data.model.deviceprovision.DeviceProvisionResponse
|
import com.example.hpostesting.data.model.deviceprovision.DeviceProvisionResponse
|
||||||
import com.example.hpostesting.data.model.login.LoginRequest
|
import com.example.hpostesting.data.model.login.LoginRequest
|
||||||
@@ -26,12 +11,11 @@ interface MolbioAuthApi {
|
|||||||
|
|
||||||
@POST("deviceManagement/device/provision")
|
@POST("deviceManagement/device/provision")
|
||||||
suspend fun deviceProvision(
|
suspend fun deviceProvision(
|
||||||
@Body deviceProvisionRequest: DeviceProvisionRequest,
|
@Body deviceProvisionRequest: DeviceProvisionRequest
|
||||||
): DeviceProvisionResponse
|
): DeviceProvisionResponse
|
||||||
|
|
||||||
@POST("deviceService/device/login")
|
@POST("deviceService/device/login")
|
||||||
suspend fun login(
|
suspend fun login(
|
||||||
@Body loginRequest: LoginRequest,
|
@Body loginRequest: LoginRequest
|
||||||
): LoginResponse
|
): LoginResponse
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1,20 +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.api
|
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.log.UploadLogsResponse
|
||||||
import com.example.hpostesting.data.model.molbioresult.MolbioV2ResultRequest
|
import com.example.hpostesting.data.model.molbioresult.MolbioV2ResultRequest
|
||||||
import com.example.hpostesting.data.model.molbioresult.MolbioV2ResultResponse
|
import com.example.hpostesting.data.model.molbioresult.MolbioV2ResultResponse
|
||||||
@@ -23,9 +8,7 @@ import com.example.hpostesting.data.model.updates.CheckUpdateResponse
|
|||||||
import com.example.hpostesting.data.model.updates.DeviceUpdateRequest
|
import com.example.hpostesting.data.model.updates.DeviceUpdateRequest
|
||||||
import okhttp3.MultipartBody
|
import okhttp3.MultipartBody
|
||||||
import okhttp3.ResponseBody
|
import okhttp3.ResponseBody
|
||||||
import retrofit2.Response
|
|
||||||
import retrofit2.http.Body
|
import retrofit2.http.Body
|
||||||
import retrofit2.http.GET
|
|
||||||
import retrofit2.http.Multipart
|
import retrofit2.http.Multipart
|
||||||
import retrofit2.http.POST
|
import retrofit2.http.POST
|
||||||
import retrofit2.http.PUT
|
import retrofit2.http.PUT
|
||||||
@@ -35,32 +18,22 @@ interface MolbioResultApi {
|
|||||||
|
|
||||||
@PUT("deviceService/results/HPOS")
|
@PUT("deviceService/results/HPOS")
|
||||||
suspend fun uploadResults(
|
suspend fun uploadResults(
|
||||||
@Body molbioV2ResultRequest: MolbioV2ResultRequest,
|
@Body molbioV2ResultRequest: MolbioV2ResultRequest
|
||||||
): MolbioV2ResultResponse
|
): MolbioV2ResultResponse
|
||||||
|
|
||||||
@POST("deviceService/device/checkUpdate")
|
@POST("deviceService/device/checkUpdate")
|
||||||
suspend fun checkUpdate(
|
suspend fun checkUpdate(
|
||||||
@Body checkUpdateRequest: CheckUpdateRequest,
|
@Body checkUpdateRequest: CheckUpdateRequest
|
||||||
): CheckUpdateResponse
|
): CheckUpdateResponse
|
||||||
|
|
||||||
@POST("deviceService/device/getUpdate")
|
@POST("deviceService/device/getUpdate")
|
||||||
suspend fun deviceUpdate(
|
suspend fun deviceUpdate(
|
||||||
@Body deviceUpdateRequest: DeviceUpdateRequest,
|
@Body deviceUpdateRequest: DeviceUpdateRequest
|
||||||
): Response<ResponseBody>
|
|
||||||
|
|
||||||
@GET("deviceService/device/getClientCertificate")
|
|
||||||
suspend fun downloadClientCertificate(
|
|
||||||
): ResponseBody
|
): ResponseBody
|
||||||
|
|
||||||
@Multipart
|
@Multipart
|
||||||
@POST("deviceService/device/uploadLogs")
|
@POST("deviceService/device/uploadLogs")
|
||||||
suspend fun uploadLogs(
|
suspend fun uploadLogs(
|
||||||
@Part logFile: MultipartBody.Part,
|
@Part logFile: MultipartBody.Part
|
||||||
): UploadLogsResponse
|
): UploadLogsResponse
|
||||||
|
|
||||||
|
|
||||||
@PUT("deviceService/device/uploadDeviceDiagnostics")
|
|
||||||
suspend fun deviceDiagnostics(
|
|
||||||
@Body deviceDiagnosticsRequest: DeviceDiagnosticsRequest
|
|
||||||
): DeviceDiagnosticsResponse
|
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
package com.example.hpostesting.data.api
|
||||||
|
|
||||||
|
interface PropertyProvider {
|
||||||
|
|
||||||
|
fun getProperty(key: String): String
|
||||||
|
}
|
||||||
@@ -1,35 +1,14 @@
|
|||||||
/*
|
|
||||||
* // 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
|
||||||
|
|
||||||
object Constants {
|
object Constants {
|
||||||
const val CENTER_NAME =""
|
|
||||||
const val DISTRICT =""
|
|
||||||
const val BUFFER_FLAGS_ENABLED = true//testing flag disable then pass buffer and sample checks
|
|
||||||
const val ABS_FLAGS_ENABLED = false
|
|
||||||
const val IP_ADDRESS="ip_address"
|
|
||||||
const val QUICK_CAPTURE="quick_capture"
|
|
||||||
const val KIT_TIME = "kit_time"
|
|
||||||
const val ACTION_USB_PERMISSION = "shanmukha.in.sickle_cell.USB_PERMISSION"
|
const val ACTION_USB_PERMISSION = "shanmukha.in.sickle_cell.USB_PERMISSION"
|
||||||
const val HEMOCUBE_USB_PERMISSION = "shanmukha.in.sickle_cell_homocube.USB_PERMISSION"
|
const val HOMOCUBE_USB_PERMISSION = "shanmukha.in.sickle_cell_homocube.USB_PERMISSION"
|
||||||
const val passphrase = "smi_#@sql"
|
|
||||||
const val BASE_URL = "www.google.com"
|
const val BASE_URL = "www.google.com"
|
||||||
const val DOCUMENT_ID_FOR_UPDATE ="2o71vBKLqdgEKYtFG8Lb"
|
|
||||||
const val ABHA_APP_PACKAGE = "in.ndhm.phr"
|
const val ABHA_APP_PACKAGE = "in.ndhm.phr"
|
||||||
|
|
||||||
const val MOLBIO_INTEGRATION = false
|
const val MOLBIO_INTERGATION = false
|
||||||
const val FIREBASE_INTEGRATION = true
|
|
||||||
const val deviceProvisionEmail = "HPOS_provisioner@bigtec.co.in"
|
const val deviceProvisionEmail = "HPOS_provisioner@bigtec.co.in"
|
||||||
const val deviceProvisionPassword = "f2ab0e7f9d69"
|
const val deviceProvisionPassword = "f2ab0e7f9d69"
|
||||||
const val DEVICE_ID_API = "deviceIDAPI"
|
const val DEVICE_ID_API = "deviceIDAPI"
|
||||||
@@ -45,8 +24,7 @@ object Constants {
|
|||||||
|
|
||||||
const val TEST_RIGHT_TOTAL_PIXEL = 3694
|
const val TEST_RIGHT_TOTAL_PIXEL = 3694
|
||||||
|
|
||||||
const val MAXIMUM_TEST_ALLOWED_BEFORE_REFERENCE = 34
|
const val MAXIMUM_TEST_ALLOWED_BEFORE_REFERENCE = 40
|
||||||
const val MAXIMUM_TEST_ALLOWED_BEFORE_REFERENCE10MM = 9
|
|
||||||
|
|
||||||
const val RANGE_IN_RESULT_CALCULATIONS = 10
|
const val RANGE_IN_RESULT_CALCULATIONS = 10
|
||||||
|
|
||||||
@@ -57,9 +35,8 @@ object Constants {
|
|||||||
const val MAX_WAVELENGTH_RANGE_TO_RECORD = 750
|
const val MAX_WAVELENGTH_RANGE_TO_RECORD = 750
|
||||||
|
|
||||||
const val DEVICE_PRODUCT_ID = 24597
|
const val DEVICE_PRODUCT_ID = 24597
|
||||||
const val DEVICE_TYPE_HEMOCUBE = "HEMOCUBE"
|
const val DEVICE_TYPE_HOMOCUBE = "HOMOCUBE"
|
||||||
const val DEVICE_TYPE_TEST_RIGHT = "TEST_RIGHT"
|
const val DEVICE_TYPE_TEST_RIGHT = "TEST_RIGHT"
|
||||||
const val DEVICE_TYPE_TRUEHEME = "TRUEHEME"
|
|
||||||
|
|
||||||
const val DEVICE_VENDOR_ID = 1027
|
const val DEVICE_VENDOR_ID = 1027
|
||||||
const val HOMO_CUBE_ID = 29987
|
const val HOMO_CUBE_ID = 29987
|
||||||
@@ -77,42 +54,144 @@ object Constants {
|
|||||||
const val USER_ID = "usernameId"
|
const val USER_ID = "usernameId"
|
||||||
|
|
||||||
const val QUICK_CAPTURE_SOLUTION = "SOLUTION"
|
const val QUICK_CAPTURE_SOLUTION = "SOLUTION"
|
||||||
const val QUICK_CAPTURE_FOR_ADMIN = "ADMIN"
|
|
||||||
const val QUICK_CAPTURE_CONCENTRATION = "CONCENTRATION"
|
const val QUICK_CAPTURE_CONCENTRATION = "CONCENTRATION"
|
||||||
const val QUICK_CAPTURE_VOLUME = "VOLUME"
|
const val QUICK_CAPTURE_VOLUME = "VOLUME"
|
||||||
const val QUICK_CAPTURE_READING_PER_SAMPLE = "READING_PER_SAMPLE"
|
const val QUICK_CAPTURE_READING_PER_SAMPLE = "READING_PER_SAMPLE"
|
||||||
|
|
||||||
const val BLANK_EVERY_TEST = false
|
val STATICID = listOf(
|
||||||
|
"FACTORY",
|
||||||
|
"ADMIN",
|
||||||
|
"VIZ-1000-0004",
|
||||||
|
"VIZ-1000-0005",
|
||||||
|
"VIZ-1000-0006",
|
||||||
|
"HC-V1-001",
|
||||||
|
"HC-V1-002",
|
||||||
|
"HC-V1-003",
|
||||||
|
"HC-V1-004",
|
||||||
|
"HC-V1-005",
|
||||||
|
"HC-V1-006",
|
||||||
|
"HC-V1-007",
|
||||||
|
"HC-V1-008",
|
||||||
|
"HC-V1-009",
|
||||||
|
"HC-V1-010",
|
||||||
|
"HC-V1-011",
|
||||||
|
"HC-V1-012",
|
||||||
|
"HC-V1-013",
|
||||||
|
"HC-V1-014",
|
||||||
|
"HC-V1-015",
|
||||||
|
"HC-V1-016",
|
||||||
|
"HC-V1-017",
|
||||||
|
"HC-V1-018",
|
||||||
|
"HC-V1-019",
|
||||||
|
"HC-V1-020",
|
||||||
|
"HCV-000-1015",
|
||||||
|
"HCV-000-3002",
|
||||||
|
"HCV-000-3003",
|
||||||
|
"HCV-000-3004",
|
||||||
|
"HCV-000-3005",
|
||||||
|
"HCV-000-3006",
|
||||||
|
"HCV-000-3007",
|
||||||
|
"HCV-000-3008",
|
||||||
|
"HCV-000-3009",
|
||||||
|
"HCV-000-3010",
|
||||||
|
"HCV-000-3011",
|
||||||
|
"HCV-000-3012",
|
||||||
|
"HCV-000-3013",
|
||||||
|
"HCV-000-3014",
|
||||||
|
"HCV-000-3015",
|
||||||
|
"HCV-000-3016",
|
||||||
|
"HCV-000-3017",
|
||||||
|
"HCV-000-3018",
|
||||||
|
"HCV-000-3019",
|
||||||
|
"HCV-000-3020",
|
||||||
|
"HCV-000-3021",
|
||||||
|
"HCV-000-3022",
|
||||||
|
"HCV-000-3023",
|
||||||
|
"HCV-000-3024",
|
||||||
|
"HCV-000-3025",
|
||||||
|
"HCV-000-3026",
|
||||||
|
"HCV-000-3027",
|
||||||
|
"HCV-000-3028",
|
||||||
|
"HCV-000-3029",
|
||||||
|
"HCV-000-3030",
|
||||||
|
"HPP1-0124-0001",
|
||||||
|
"HPP1-0124-0002",
|
||||||
|
"HPP1-0124-0003",
|
||||||
|
"HPP1-0124-0004",
|
||||||
|
"HPP1-0124-0005",
|
||||||
|
"HPP1-0124-0006",
|
||||||
|
"HPP1-0124-0007",
|
||||||
|
"HPP1-0124-0008",
|
||||||
|
"HPP1-0124-0009",
|
||||||
|
"HPP1-0124-0010",
|
||||||
|
"HPP1-0124-0011",
|
||||||
|
"HPP1-0124-0012",
|
||||||
|
"HPP1-0124-0013",
|
||||||
|
"HPP1-0124-0014",
|
||||||
|
"HPP1-0124-0015",
|
||||||
|
"HPP1-0124-0016",
|
||||||
|
"HPP1-0124-0017",
|
||||||
|
"HPP1-0124-0018",
|
||||||
|
"HPP1-0124-0019",
|
||||||
|
"HPP1-0124-0020",
|
||||||
|
"HPP1-0124-0021",
|
||||||
|
"HPP1-0124-0022",
|
||||||
|
"HPP1-0124-0023",
|
||||||
|
"HPP1-0124-0024",
|
||||||
|
"HPP1-0124-0025",
|
||||||
|
"HPP1-0124-0026",
|
||||||
|
"HPP1-0124-0027",
|
||||||
|
"HPP1-0124-0028",
|
||||||
|
"HPP1-0124-0029",
|
||||||
|
"HPP1-0124-0030",
|
||||||
|
"HPP1-0124-0031",
|
||||||
|
"HPP1-0124-0032",
|
||||||
|
"HPP1-0124-0033",
|
||||||
|
"HPP1-0124-0034",
|
||||||
|
"HPP1-0124-0035",
|
||||||
|
"HPP1-0124-0036",
|
||||||
|
"HPP1-0124-0037",
|
||||||
|
"HPP1-0124-0038",
|
||||||
|
"HPP1-0124-0039",
|
||||||
|
"HPP1-0124-0040",
|
||||||
|
"HPP1-0124-0041",
|
||||||
|
"HPP1-0124-0042",
|
||||||
|
"HPP1-0124-0043",
|
||||||
|
"HPP1-0124-0044",
|
||||||
|
"HPP1-0124-0045",
|
||||||
|
"HPP1-0124-0046",
|
||||||
|
"HPP1-0124-0047",
|
||||||
|
"HPP1-0124-0048",
|
||||||
|
"HPP1-0124-0049",
|
||||||
|
"HPP1-0124-0050",
|
||||||
|
)
|
||||||
|
|
||||||
// jig
|
const val password = "SMI@12345"
|
||||||
const val NAVIGATE_TO_TEST_JIG_DIRECTLY = false
|
|
||||||
|
|
||||||
//update values of abs
|
|
||||||
const val ABS2LED1MMLL = "ABS2LED1MMLL"
|
|
||||||
const val ABS2LED1MMUL = "ABS2LED1MMUL"
|
|
||||||
const val ABS2LED2MMLL = "ABS2LED2MMLL"
|
|
||||||
const val ABS2LED2MMUL = "ABS2LED2MMUL"
|
|
||||||
|
|
||||||
const val ABS10LED1MMLL = "ABS10LED1MMLL"
|
|
||||||
const val ABS10LED1MMUL = "ABS10LED1MMUL"
|
|
||||||
const val ABS10LED2MMLL = "ABS10LED2MMLL"
|
|
||||||
const val ABS10LED2MMUL = "ABS10LED2MMUL"
|
|
||||||
|
|
||||||
const val KIT_NUMBER = "KitNumber"
|
const val KIT_NUMBER = "KitNumber"
|
||||||
const val KIT_COUNT = "KitCount"
|
const val KIT_COUNT = "KitCount"
|
||||||
const val KIT_CAPACITY = Int.MAX_VALUE // Enforceable
|
|
||||||
const val BUFFER_VALUE_1 = "BufferValue1"
|
const val BUFFER_VALUE_1 = "BufferValue1"
|
||||||
const val BUFFER_VALUE_2 = "BufferValue2"
|
const val BUFFER_VALUE_2 = "BufferValue2"
|
||||||
const val BUFFER_VALUE_3 = "BufferValue3"
|
const val BUFFER_VALUE_3 = "BufferValue3"
|
||||||
const val BUFFER_VALUE_4 = "BufferValue4"
|
const val BUFFER_VALUE_4 = "BufferValue4"
|
||||||
const val DEVICE_ID = "DEVICE_ID"
|
const val DEVICE_ID = "DEVICE_ID"
|
||||||
const val LABNAME = "LAB_NAME"
|
|
||||||
const val CUVETTE_SIZE = "CUVETTE_SIZE"
|
|
||||||
const val LAST_UPDATED = "LAST_UPDATED"
|
|
||||||
const val IS_TOKEN_AVAILABLE = "IS_TOKEN_AVAILABLE"
|
|
||||||
const val BUFFER_LED_LOWER_BOUND = 21000
|
const val BUFFER_LED_LOWER_BOUND = 21000
|
||||||
const val BUFFER_LED_UPPER_BOUND = 23500
|
const val BUFFER_LED_UPPER_BOUND = 23500
|
||||||
|
|
||||||
|
const val TEST_STATUS_CODE_TEST_STARTED = 1.0
|
||||||
|
const val TEST_STATUS_CODE_CONFIG_STARTED = 2.0
|
||||||
|
const val TEST_STATUS_CODE_CONFIG_COMPLETED = 3.0
|
||||||
|
const val TEST_STATUS_CODE_BUFFER_STARTED = 4.0
|
||||||
|
const val TEST_STATUS_CODE_BUFFER_COMPLETED = 5.0
|
||||||
|
const val TEST_STATUS_CODE_BUFFER_PRINT_STARTED = 6.0
|
||||||
|
const val TEST_STATUS_CODE_BUFFER_PRINT_COMPLETED = 7.0
|
||||||
|
const val TEST_STATUS_CODE_SAMPLE_STARTED = 8.0
|
||||||
|
const val TEST_STATUS_CODE_SAMPLE_COMPLETED = 9.0
|
||||||
|
const val TEST_STATUS_CODE_SAMPLE_PRINT_STARTED = 10.0
|
||||||
|
const val TEST_STATUS_CODE_SAMPLE_PRINT_COMPLETED = 11.0
|
||||||
|
const val TEST_STATUS_CODE_TEST_COMPLETED = 12.0
|
||||||
|
|
||||||
val DEVICE_CONFIGURATION: Map<String, List<List<Double>>> = mapOf<String, List<List<Double>>>(
|
val DEVICE_CONFIGURATION: Map<String, List<List<Double>>> = mapOf<String, List<List<Double>>>(
|
||||||
"HCV-000-3001" to listOf(
|
"HCV-000-3001" to listOf(
|
||||||
listOf(1.0, 0.0), // LED1, 435nm
|
listOf(1.0, 0.0), // LED1, 435nm
|
||||||
@@ -1086,8 +1165,7 @@ object Constants {
|
|||||||
)
|
)
|
||||||
|
|
||||||
const val INCUBATION_TIME_MIN = 0
|
const val INCUBATION_TIME_MIN = 0
|
||||||
const val INCUBATION_TIME_MAX = 300
|
const val INCUBATION_TIME_MAX = 1400
|
||||||
const val MAX_KIT_TIME = 240
|
|
||||||
const val BATTERY_LEVEL_MIN = Int.MIN_VALUE
|
const val BATTERY_LEVEL_MIN = Int.MIN_VALUE
|
||||||
|
|
||||||
const val PQ_MODE = true
|
const val PQ_MODE = true
|
||||||
@@ -1168,7 +1246,7 @@ object Constants {
|
|||||||
listOf(23500, 26250),
|
listOf(23500, 26250),
|
||||||
listOf(23500, 26250),
|
listOf(23500, 26250),
|
||||||
),
|
),
|
||||||
"HCV-000-3013" to listOf(
|
"HCV-000-1015" to listOf(
|
||||||
listOf(23500, 26250),
|
listOf(23500, 26250),
|
||||||
listOf(23500, 26250),
|
listOf(23500, 26250),
|
||||||
listOf(23500, 26250),
|
listOf(23500, 26250),
|
||||||
@@ -1578,54 +1656,12 @@ object Constants {
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
val COEFFICIENTS: Map<String, List<List<Double>>> = mapOf(
|
val COEFFICIENTS: Map<String, List<List<Double>>> = mapOf(
|
||||||
"HC-V1-005" to listOf(
|
"HC-V1-005" to listOf(
|
||||||
listOf(1.5, 0.0),
|
listOf(1.5,0.0),
|
||||||
listOf(0.0, 0.0)
|
listOf(0.0,0.0)
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
//Hemocube for 10mm
|
|
||||||
const val positiveBoderLine10mm1 = 1.3
|
|
||||||
const val positiveBoderLine10mm2 = 1.66
|
|
||||||
const val negativeBoderLine10mm1 = 2.0
|
|
||||||
const val negativeBoderLine10mm2 = 2.4
|
|
||||||
const val normalMin10mm = 0.07
|
|
||||||
const val normalMax10mm = 0.23
|
|
||||||
const val negativeBorderlineMin10mm = 0.23
|
|
||||||
const val negativeBorderlineMax10mm = 0.27
|
|
||||||
const val sickleCellTraitMin10mm = 0.27
|
|
||||||
const val sickleCellTraitMax10mm = 0.31
|
|
||||||
const val positiveForSickleCellMin10mm = 0.31
|
|
||||||
const val positiveForSickleCellMax10mm = 0.39
|
|
||||||
const val sickleCellDiseaseMin10mm = 0.39
|
|
||||||
const val sickleCellDiseaseMax10mm = 0.7
|
|
||||||
//Hemocube for 2mm
|
|
||||||
const val positiveBoderLine2mm1 = 0.8
|
|
||||||
const val positiveBoderLine2mm2 = 1.1
|
|
||||||
const val negativeBoderLine2mm1 = 1.5
|
|
||||||
const val negativeBoderLine2mm2 = 1.9
|
|
||||||
const val normalMin2mm = 0.1
|
|
||||||
const val normalMax2mm = 0.23
|
|
||||||
const val negativeBorderlineMin2mm = 0.23
|
|
||||||
const val negativeBorderlineMax2mm = 0.25
|
|
||||||
const val sickleCellTraitMin2mm = 0.25
|
|
||||||
const val sickleCellTraitMax2mm = 0.31
|
|
||||||
const val positiveForSickleCellMin2mm = 0.31
|
|
||||||
const val positiveForSickleCellMax2mm = 0.45
|
|
||||||
const val sickleCellDiseaseMin2mm = 0.45
|
|
||||||
const val sickleCellDiseaseMax2mm = 0.7
|
|
||||||
|
|
||||||
const val min2mmLed1 = 0.34
|
|
||||||
const val max2mmLed1 = 1.48
|
|
||||||
const val min2mmLed2 = 0.04
|
|
||||||
const val max2mmLed2 = 0.33
|
|
||||||
const val min10mmLed1 = 0.22
|
|
||||||
const val max10mmLed1 = 1.12
|
|
||||||
const val min10mmLed2 = 0.05
|
|
||||||
const val max10mmLed2 = 0.41
|
|
||||||
|
|
||||||
const val bufferMinLed1 = 21000.00
|
|
||||||
const val bufferMaxLed1 = 23000.00
|
|
||||||
const val bufferMinLed2 = 17000.00
|
|
||||||
const val bufferMaxLed2 = 19000.00
|
|
||||||
}
|
}
|
||||||
@@ -1,34 +1,16 @@
|
|||||||
/*
|
|
||||||
* // 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"),
|
START_BUFFER_COMMAND("B\r"),
|
||||||
AUTO_DAC_COMMAND("C\r"),
|
AUTO_DAC_COMMAND("C\r"),
|
||||||
SET_AUTO_DAC_TO_EPROM_COMMAND("G\r"),
|
|
||||||
DIAGNOSTICS_COMMAND("D\r"),
|
DIAGNOSTICS_COMMAND("D\r"),
|
||||||
FIRMWARE_INFO_COMMAND("F\r"),
|
FIRMWARE_INFO_COMMAND("F\r"),
|
||||||
START_SAMPLE("S\r"),
|
START_SAMPLE("S\r"),
|
||||||
PRINT_COMMAND("P\r"),
|
PRINT_COMMAND("P\r"),
|
||||||
READ_DAC_COMMAND("R\r"),
|
READ_DAC_COMMAND("R\r"),
|
||||||
DEVICE_CONFIGURATION_COMMAND("I\r"),
|
DEVICE_CONFIGURATION_COMMAND("I\r"),
|
||||||
LOAD_DAC_VALUES("E\r"),
|
|
||||||
FIRST_GAIN_COMMAND("T\r"),
|
FIRST_GAIN_COMMAND("T\r"),
|
||||||
SECOND_GAIN_COMMAND("U\r"),
|
SECOND_GAIN_COMMAND("U\r"),
|
||||||
THIRD_GAIN_COMMAND("V\r"),
|
THIRD_GAIN_COMMAND("V\r"),
|
||||||
FORTH_GAIN_COMMAND("W\r"),
|
FORTH_GAIN_COMMAND("W\r"),
|
||||||
CHECK_CUVETTE_COMMAND("L\r"),
|
|
||||||
CHECK_TEMP_COMMAND("A\r"),
|
|
||||||
J_COMMAND("J\r"),
|
|
||||||
}
|
}
|
||||||
@@ -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
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
@@ -32,14 +19,12 @@ object LanguageManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun persistLanguagePreference(context: Context, languageCode: String) {
|
fun persistLanguagePreference(context: Context, languageCode: String) {
|
||||||
val prefs: SharedPreferences =
|
val prefs: SharedPreferences = context.getSharedPreferences("AppPrefs", Context.MODE_PRIVATE)
|
||||||
context.getSharedPreferences("AppPrefs", Context.MODE_PRIVATE)
|
|
||||||
prefs.edit().putString(LANGUAGE_PREF_KEY, languageCode).apply()
|
prefs.edit().putString(LANGUAGE_PREF_KEY, languageCode).apply()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getSavedLanguage(context: Context): String {
|
fun getSavedLanguage(context: Context): String {
|
||||||
val prefs: SharedPreferences =
|
val prefs: SharedPreferences = context.getSharedPreferences("AppPrefs", Context.MODE_PRIVATE)
|
||||||
context.getSharedPreferences("AppPrefs", Context.MODE_PRIVATE)
|
|
||||||
return prefs.getString(LANGUAGE_PREF_KEY, "en") ?: "en"
|
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,49 +1,17 @@
|
|||||||
/*
|
|
||||||
* // 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 TestStatus(val code: Double) {
|
enum class TestStatus(val code: Double) {
|
||||||
TEST_STARTED(1.0),
|
TEST_STARTED(1.0),
|
||||||
CONFIG_STARTED(2.0),
|
CONFIG_STARTED(2.0),
|
||||||
CONFIG_COMPLETED(3.0),
|
CONFIG_COMPLETED(3.0),
|
||||||
FIRST_EMPTY_AIR_READING_STARTED(4.1),
|
BUFFER_STARTED(4.0),
|
||||||
FIRST_EMPTY_AIR_READING_COMPLETED(4.2),
|
BUFFER_COMPLETED(5.0),
|
||||||
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_ABSENTR(5.1),
|
|
||||||
CUVETTE_PRESENTR(5.2),
|
|
||||||
CUVETTE_ABSENTS(7.7),
|
|
||||||
CUVETTE_PRESENTS(7.8),
|
|
||||||
BUFFER_STARTED(5.4),
|
|
||||||
BUFFER_COMPLETED(5.5),
|
|
||||||
BUFFER_PRINT_STARTED(6.0),
|
BUFFER_PRINT_STARTED(6.0),
|
||||||
BUFFER_PRINT_COMPLETED(7.0),
|
BUFFER_PRINT_COMPLETED(7.0),
|
||||||
SAMPLE_STARTED(8.0),
|
SAMPLE_STARTED(8.0),
|
||||||
CUVETTE_ABSENTT(30.2),
|
|
||||||
CUVETTE_PRESENTT(30.1),
|
|
||||||
SAMPLE_COMPLETED(9.0),
|
SAMPLE_COMPLETED(9.0),
|
||||||
SAMPLE_PRINT_STARTED(10.0),
|
SAMPLE_PRINT_STARTED(10.0),
|
||||||
SAMPLE_PRINT_COMPLETED(11.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_STARTED(12.0),
|
||||||
FIRST_GAIN_COMPLETED(13.0),
|
FIRST_GAIN_COMPLETED(13.0),
|
||||||
FIRST_GAIN_PRINT_STARTED(14.0),
|
FIRST_GAIN_PRINT_STARTED(14.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,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,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=0")
|
|
||||||
fun getMolbioPending(): List<HemoCubeTestData>
|
|
||||||
|
|
||||||
@Query("SELECT * from hemo_cube_test_table WHERE localFlag=0")
|
|
||||||
fun getFirebasePending():List<HemoCubeTestData>
|
|
||||||
|
|
||||||
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
@Insert(onConflict = OnConflictStrategy.REPLACE)
|
||||||
suspend fun insertAll(hemoCubeTestData: HemoCubeTestData)
|
suspend fun insertAll(hemoCubeTestData: HemoCubeTestData)
|
||||||
|
|
||||||
@@ -40,8 +20,7 @@ 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("DELETE FROM hemo_cube_test_table WHERE testStatus = 0")
|
|
||||||
suspend fun deleteByStatus()
|
|
||||||
@Query("UPDATE hemo_cube_test_table SET localFlag = :newValue WHERE _id = :id")
|
@Query("UPDATE hemo_cube_test_table SET localFlag = :newValue WHERE _id = :id")
|
||||||
suspend fun updateFieldById(id: String, newValue: Boolean)
|
suspend fun updateFieldById(id: String, newValue: Boolean)
|
||||||
|
|
||||||
@@ -50,12 +29,4 @@ interface HemoCubeDao {
|
|||||||
|
|
||||||
@Query("UPDATE hemo_cube_test_table SET isCSVCreated = :newValue WHERE _id = :id")
|
@Query("UPDATE hemo_cube_test_table SET isCSVCreated = :newValue WHERE _id = :id")
|
||||||
suspend fun updateCSVFieldById(id: String, newValue: Boolean)
|
suspend fun updateCSVFieldById(id: String, newValue: Boolean)
|
||||||
|
|
||||||
@Query("SELECT * from hemo_cube_test_table WHERE localFlag = 0")
|
|
||||||
fun getPendingUser(): LiveData<List<HemoCubeTestData>>
|
|
||||||
|
|
||||||
@Update
|
|
||||||
suspend fun updateTest(hemoCubeTestData: HemoCubeTestData)
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -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.Database
|
import androidx.room.Database
|
||||||
@@ -21,11 +8,7 @@ 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
|
||||||
|
|
||||||
@Database(
|
@Database(entities = [UserData::class, HemoCubeTestData::class, DeviceData::class, BufferCheckData::class], version = 23, exportSchema = false)
|
||||||
entities = [UserData::class, HemoCubeTestData::class, DeviceData::class, BufferCheckData::class],
|
|
||||||
version = 38,
|
|
||||||
exportSchema = false
|
|
||||||
)
|
|
||||||
@TypeConverters(Converters::class)
|
@TypeConverters(Converters::class)
|
||||||
abstract class MyDatabase : RoomDatabase() {
|
abstract class MyDatabase : RoomDatabase() {
|
||||||
abstract fun userDao(): UserDao
|
abstract fun userDao(): UserDao
|
||||||
|
|||||||
@@ -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,19 +1,11 @@
|
|||||||
/*
|
|
||||||
* // 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 android.os.Environment
|
||||||
import com.example.hpostesting.data.model.patient.HemoCubeTestData
|
import com.example.hpostesting.data.model.patient.HemoCubeTestData
|
||||||
|
import com.opencsv.CSVWriter
|
||||||
|
import java.io.File
|
||||||
|
import java.io.FileWriter
|
||||||
|
import java.io.IOException
|
||||||
|
|
||||||
interface LocalFileDataSource {
|
interface LocalFileDataSource {
|
||||||
|
|
||||||
@@ -22,8 +14,6 @@ interface LocalFileDataSource {
|
|||||||
fun saveTextToDisk(filepath: String, contents: String)
|
fun saveTextToDisk(filepath: String, contents: String)
|
||||||
|
|
||||||
fun exportDataToCSV(
|
fun exportDataToCSV(
|
||||||
fileName: String, dataList: List<HemoCubeTestData>,
|
fileName: String, dataList: List<HemoCubeTestData>
|
||||||
): Boolean
|
): Boolean
|
||||||
fun backUpDataToCSV(fileName: String, dataList: List<HemoCubeTestData>)
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -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.datasource
|
package com.example.hpostesting.data.datasource
|
||||||
|
|
||||||
import android.os.Environment
|
import android.os.Environment
|
||||||
@@ -21,7 +8,7 @@ import java.io.FileWriter
|
|||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
class LocalFileDataSourceImpl @Inject constructor() : LocalFileDataSource {
|
class LocalFileDataSourceImpl @Inject constructor(): LocalFileDataSource {
|
||||||
|
|
||||||
override fun saveCsvToDisk(filepath: String, contents: ArrayList<Array<String>>) {
|
override fun saveCsvToDisk(filepath: String, contents: ArrayList<Array<String>>) {
|
||||||
val writer = CSVWriter(FileWriter(filepath))
|
val writer = CSVWriter(FileWriter(filepath))
|
||||||
@@ -38,13 +25,10 @@ class LocalFileDataSourceImpl @Inject constructor() : LocalFileDataSource {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun exportDataToCSV(
|
override fun exportDataToCSV(
|
||||||
fileName: String, dataList: List<HemoCubeTestData>,
|
fileName: String, dataList: List<HemoCubeTestData>
|
||||||
): Boolean {
|
): Boolean {
|
||||||
try {
|
try {
|
||||||
val formattedFileName = fileName.replace(
|
val formattedFileName = fileName.replace(Regex("[^a-zA-Z0-9.-]"), "_") // Replace special characters with underscores
|
||||||
Regex("[^a-zA-Z0-9.-]"),
|
|
||||||
"_"
|
|
||||||
) // Replace special characters with underscores
|
|
||||||
val filePath = File(getExternalStorageDirectory(), formattedFileName)
|
val filePath = File(getExternalStorageDirectory(), formattedFileName)
|
||||||
val writer = FileWriter(filePath)
|
val writer = FileWriter(filePath)
|
||||||
val csvWriter = CSVWriter(writer)
|
val csvWriter = CSVWriter(writer)
|
||||||
@@ -54,7 +38,7 @@ class LocalFileDataSourceImpl @Inject constructor() : LocalFileDataSource {
|
|||||||
"name",
|
"name",
|
||||||
"incubationTime",
|
"incubationTime",
|
||||||
"bloodGroup",
|
"bloodGroup",
|
||||||
"age", // Include other fields from the data class
|
"birthYear", // Include other fields from the data class
|
||||||
"state",
|
"state",
|
||||||
"abhaId",
|
"abhaId",
|
||||||
"userImageURL",
|
"userImageURL",
|
||||||
@@ -102,15 +86,14 @@ class LocalFileDataSourceImpl @Inject constructor() : LocalFileDataSource {
|
|||||||
)
|
)
|
||||||
csvWriter.writeNext(header)
|
csvWriter.writeNext(header)
|
||||||
|
|
||||||
// Filter and write data rows where testStatus is true
|
// Write data rows
|
||||||
val filteredDataList = dataList.filter { it.testStatus == true }
|
for (data in dataList) {
|
||||||
for (data in filteredDataList) {
|
|
||||||
val row = arrayOf(
|
val row = arrayOf(
|
||||||
data._id,
|
data._id,
|
||||||
data.name,
|
data.name,
|
||||||
data.incubationTime,
|
data.incubationTime,
|
||||||
data.bloodGroup,
|
data.bloodGroup,
|
||||||
data.age, // Include other fields similarly
|
data.birthYear, // Include other fields similarly
|
||||||
data.state,
|
data.state,
|
||||||
data.abhaId,
|
data.abhaId,
|
||||||
data.userImageURL,
|
data.userImageURL,
|
||||||
@@ -166,127 +149,6 @@ class LocalFileDataSourceImpl @Inject constructor() : LocalFileDataSource {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
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",
|
|
||||||
"age", // 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.age, // 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 {
|
private fun getExternalStorageDirectory(): File {
|
||||||
val folder = File(Environment.getExternalStorageDirectory(), "HposFolder")
|
val folder = File(Environment.getExternalStorageDirectory(), "HposFolder")
|
||||||
|
|
||||||
|
|||||||
@@ -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,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.calibration
|
package com.example.hpostesting.data.model.calibration
|
||||||
|
|
||||||
data class CalibrationData (
|
data class CalibrationData (
|
||||||
|
|||||||
@@ -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 +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.model.deviceprovision
|
package com.example.hpostesting.data.model.deviceprovision
|
||||||
|
|
||||||
data class Credentials(
|
data class Credentials(
|
||||||
val password: String? = "",
|
val password: String? = "",
|
||||||
val username: String? = "",
|
val username: 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.deviceprovision
|
package com.example.hpostesting.data.model.deviceprovision
|
||||||
|
|
||||||
data class Device(
|
data class Device(
|
||||||
@@ -26,5 +13,5 @@ data class Device(
|
|||||||
val serialNumber: String? = "",
|
val serialNumber: String? = "",
|
||||||
val uid: String? = "",
|
val uid: String? = "",
|
||||||
val updatedAt: String? = "",
|
val updatedAt: String? = "",
|
||||||
val updatedBy: Int? = 0,
|
val updatedBy: Int? = 0
|
||||||
)
|
)
|
||||||
@@ -1,19 +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.model.deviceprovision
|
package com.example.hpostesting.data.model.deviceprovision
|
||||||
|
|
||||||
data class DeviceProvisionData(
|
data class DeviceProvisionData(
|
||||||
val credentials: Credentials? = Credentials(),
|
val credentials: Credentials? = Credentials(),
|
||||||
val device: Device? = Device(),
|
val device: Device? = Device()
|
||||||
)
|
)
|
||||||
@@ -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.deviceprovision
|
package com.example.hpostesting.data.model.deviceprovision
|
||||||
|
|
||||||
data class DeviceProvisionRequest(
|
data class DeviceProvisionRequest(
|
||||||
@@ -18,5 +5,5 @@ data class DeviceProvisionRequest(
|
|||||||
val email: String? = "",
|
val email: String? = "",
|
||||||
val password: String? = "",
|
val password: String? = "",
|
||||||
val serialNumber: String? = "",
|
val serialNumber: String? = "",
|
||||||
val uid: String? = "",
|
val uid: 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.deviceprovision
|
package com.example.hpostesting.data.model.deviceprovision
|
||||||
|
|
||||||
import com.google.gson.annotations.SerializedName
|
import com.google.gson.annotations.SerializedName
|
||||||
@@ -21,5 +8,5 @@ data class DeviceProvisionResponse(
|
|||||||
@SerializedName("Message")
|
@SerializedName("Message")
|
||||||
val message: String? = "",
|
val message: String? = "",
|
||||||
@SerializedName("Result")
|
@SerializedName("Result")
|
||||||
val result: String? = "",
|
val result: 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.deviceprovision
|
package com.example.hpostesting.data.model.deviceprovision
|
||||||
|
|
||||||
data class DeviceType(
|
data class DeviceType(
|
||||||
@@ -21,5 +8,5 @@ data class DeviceType(
|
|||||||
val id: Int? = 0,
|
val id: Int? = 0,
|
||||||
val name: String? = "",
|
val name: String? = "",
|
||||||
val updatedAt: String? = "",
|
val updatedAt: String? = "",
|
||||||
val updatedBy: Int? = 0,
|
val updatedBy: Int? = 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.model.deviceprovision
|
package com.example.hpostesting.data.model.deviceprovision
|
||||||
|
|
||||||
data class DeviceUser(
|
data class DeviceUser(
|
||||||
@@ -24,5 +11,5 @@ data class DeviceUser(
|
|||||||
val natsTokenExpiry: String? = "",
|
val natsTokenExpiry: String? = "",
|
||||||
val updatedAt: String? = "",
|
val updatedAt: String? = "",
|
||||||
val updatedBy: Int? = 0,
|
val updatedBy: Int? = 0,
|
||||||
val username: String? = "",
|
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 +1,9 @@
|
|||||||
/*
|
|
||||||
* // 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
|
package com.example.hpostesting.data.model.diagnostics
|
||||||
|
|
||||||
data class DiagnosticsData(
|
data class DiagnosticsData (
|
||||||
var deviceId: String = "",
|
var deviceId: String = "",
|
||||||
var appVersion: String? = "",
|
var appVersion: String? = "",
|
||||||
var deviceType: String = "HEMOCUBE",
|
var deviceType: String = "HEMOCUBE",
|
||||||
var deviceData: String = "",
|
var deviceData: String = "",
|
||||||
var devicePassword: String = "",
|
var runTime: 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 +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.model.log
|
package com.example.hpostesting.data.model.log
|
||||||
|
|
||||||
data class UploadLogsData(
|
data class UploadLogsData(
|
||||||
val filename: String? = "",
|
val filename: 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.log
|
package com.example.hpostesting.data.model.log
|
||||||
|
|
||||||
import com.google.gson.annotations.SerializedName
|
import com.google.gson.annotations.SerializedName
|
||||||
@@ -21,5 +8,5 @@ data class UploadLogsResponse(
|
|||||||
@SerializedName("Message")
|
@SerializedName("Message")
|
||||||
val message: String? = "",
|
val message: String? = "",
|
||||||
@SerializedName("Result")
|
@SerializedName("Result")
|
||||||
val result: String? = "",
|
val result: 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.login
|
package com.example.hpostesting.data.model.login
|
||||||
|
|
||||||
data class Device(
|
data class Device(
|
||||||
@@ -25,5 +12,5 @@ data class Device(
|
|||||||
val serialNumber: String? = "",
|
val serialNumber: String? = "",
|
||||||
val uid: String? = "",
|
val uid: String? = "",
|
||||||
val updatedAt: String? = "",
|
val updatedAt: String? = "",
|
||||||
val updatedBy: Int? = 0,
|
val updatedBy: Int? = 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.model.login
|
package com.example.hpostesting.data.model.login
|
||||||
|
|
||||||
data class DeviceType(
|
data class DeviceType(
|
||||||
@@ -21,5 +8,5 @@ data class DeviceType(
|
|||||||
val id: Int? = 0,
|
val id: Int? = 0,
|
||||||
val name: String? = "",
|
val name: String? = "",
|
||||||
val updatedAt: String? = "",
|
val updatedAt: String? = "",
|
||||||
val updatedBy: Int? = 0,
|
val updatedBy: Int? = 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.model.login
|
package com.example.hpostesting.data.model.login
|
||||||
|
|
||||||
data class DeviceUser(
|
data class DeviceUser(
|
||||||
@@ -25,5 +12,5 @@ data class DeviceUser(
|
|||||||
val natsTokenExpiry: String? = "",
|
val natsTokenExpiry: String? = "",
|
||||||
val updatedAt: String? = "",
|
val updatedAt: String? = "",
|
||||||
val updatedBy: Int? = 0,
|
val updatedBy: Int? = 0,
|
||||||
val username: String? = "",
|
val username: String? = ""
|
||||||
)
|
)
|
||||||
@@ -1,19 +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.model.login
|
package com.example.hpostesting.data.model.login
|
||||||
|
|
||||||
data class LoginData(
|
data class LoginData(
|
||||||
val accessToken: String? = "",
|
val accessToken: String? = "",
|
||||||
val deviceUser: DeviceUser? = DeviceUser(),
|
val deviceUser: DeviceUser? = DeviceUser()
|
||||||
)
|
)
|
||||||
@@ -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.login
|
package com.example.hpostesting.data.model.login
|
||||||
|
|
||||||
data class LoginRequest(
|
data class LoginRequest(
|
||||||
@@ -22,5 +9,5 @@ data class LoginRequest(
|
|||||||
val password: String? = "",
|
val password: String? = "",
|
||||||
val serialNumber: String? = "",
|
val serialNumber: String? = "",
|
||||||
val username: String? = "",
|
val username: String? = "",
|
||||||
val version: String? = "",
|
val version: 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.login
|
package com.example.hpostesting.data.model.login
|
||||||
|
|
||||||
import com.google.gson.annotations.SerializedName
|
import com.google.gson.annotations.SerializedName
|
||||||
@@ -21,5 +8,5 @@ data class LoginResponse(
|
|||||||
@SerializedName("Message")
|
@SerializedName("Message")
|
||||||
val message: String? = "",
|
val message: String? = "",
|
||||||
@SerializedName("Result")
|
@SerializedName("Result")
|
||||||
val result: String? = "",
|
val result: String? = ""
|
||||||
)
|
)
|
||||||
@@ -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.data.model.molbioresult
|
package com.example.hpostesting.data.model.molbioresult
|
||||||
|
|
||||||
import com.example.hpostesting.data.model.patient.HemoCubeTestData
|
import com.example.hpostesting.data.model.patient.HemoCubeTestData
|
||||||
|
|
||||||
data class MolbioV2Result(
|
data class MolbioV2Result(
|
||||||
val age: Int? = 31,
|
val age: Int? = 31,
|
||||||
val analysisDate: String? = "2024-02-08 16:33:56",
|
val analysisDate: String? = "",
|
||||||
val analysisId: String? = "",
|
val analysisId: String? = "",
|
||||||
val analysisStatus: String? = "",
|
val analysisStatus: String? = "",
|
||||||
val analysisType: String? = "HPOS",
|
val analysisType: String? = "HPOS",
|
||||||
@@ -25,11 +12,11 @@ data class MolbioV2Result(
|
|||||||
val bloodGroup: String? = "",
|
val bloodGroup: String? = "",
|
||||||
val coefficients: List<Int>? = listOf(22, 22),
|
val coefficients: List<Int>? = listOf(22, 22),
|
||||||
val collectionLocation: List<Any>? = listOf(),
|
val collectionLocation: List<Any>? = listOf(),
|
||||||
val collectionTime: String? = "2024-02-08 16:33:56",
|
val collectionTime: String? = "",
|
||||||
val collector: String? = "",
|
val collector: String? = "",
|
||||||
val curveFitting: String? = "Linear",
|
val curveFitting: String? = "Linear",
|
||||||
val deviceName: String? = "HPOS",
|
val deviceName: String? = "HPOS",
|
||||||
val expiryTime: String? = "2024-02-08 16:33:56",
|
val expiryTime: String? = "",
|
||||||
val gender: String? = "",
|
val gender: String? = "",
|
||||||
val interpretation: String? = "",
|
val interpretation: String? = "",
|
||||||
val `operator`: String? = "",
|
val `operator`: String? = "",
|
||||||
@@ -43,9 +30,9 @@ data class MolbioV2Result(
|
|||||||
val testId: String? = "",
|
val testId: String? = "",
|
||||||
val testResult: String? = "",
|
val testResult: String? = "",
|
||||||
val testStatus: String? = "",
|
val testStatus: String? = "",
|
||||||
val testTime: String? = "2024-02-08 16:33:56",
|
val testTime: String? = "",
|
||||||
val testType: String? = "",
|
val testType: String? = "",
|
||||||
val thresholds: String? = "",
|
val thresholds: String? = "",
|
||||||
val underMedication: Boolean? = false,
|
val underMedication: Boolean? = false,
|
||||||
val volume: Int? = 2,
|
val volume: Int? = 2
|
||||||
)
|
)
|
||||||
@@ -1,36 +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.model.molbioresult
|
package com.example.hpostesting.data.model.molbioresult
|
||||||
|
|
||||||
import com.example.hpostesting.data.model.patient.HemoCubeTestData
|
import com.example.hpostesting.data.model.patient.HemoCubeTestData
|
||||||
|
|
||||||
data class MolbioV2ResultData(
|
data class MolbioV2ResultData(
|
||||||
val age: Int? = 0,
|
val age: Int? = 0,
|
||||||
val analysisDate: String? = "2024-02-08 16:33:56",
|
val analysisDate: String? = "",
|
||||||
val analysisStatus: String? = "",
|
val analysisStatus: String? = "",
|
||||||
val analysisType: String? = "",
|
val analysisType: String? = "",
|
||||||
val analysisTypeMethod: String? = "",
|
val analysisTypeMethod: String? = "",
|
||||||
val bloodGroup: String? = "",
|
val bloodGroup: String? = "",
|
||||||
val coefficients: List<Int>? = listOf(),
|
val coefficients: List<Int>? = listOf(),
|
||||||
val collectionLocation: List<Any>? = listOf(),
|
val collectionLocation: List<Any>? = listOf(),
|
||||||
val collectionTime: String? = "2024-02-08 16:33:56",
|
val collectionTime: String? = "",
|
||||||
val collector: String? = "",
|
val collector: String? = "",
|
||||||
val createdAt: String? = "",
|
val createdAt: String? = "",
|
||||||
val createdBy: Int? = 0,
|
val createdBy: Int? = 0,
|
||||||
val curveFitting: String? = "",
|
val curveFitting: String? = "",
|
||||||
val deviceId: Int? = 0,
|
val deviceId: Int? = 0,
|
||||||
val expiryTime: String? = "2024-02-08 16:33:56",
|
val expiryTime: String? = "",
|
||||||
val gender: String? = "",
|
val gender: String? = "",
|
||||||
val id: Int? = 0,
|
val id: Int? = 0,
|
||||||
val interpretation: String? = "",
|
val interpretation: String? = "",
|
||||||
@@ -45,11 +32,11 @@ data class MolbioV2ResultData(
|
|||||||
val testId: String? = "",
|
val testId: String? = "",
|
||||||
val testResult: String? = "",
|
val testResult: String? = "",
|
||||||
val testStatus: String? = "",
|
val testStatus: String? = "",
|
||||||
val testTime: String? = "2024-02-08 16:33:56",
|
val testTime: String? = "",
|
||||||
val testType: String? = "",
|
val testType: String? = "",
|
||||||
val thresholds: String? = "",
|
val thresholds: String? = "",
|
||||||
val underMedication: Boolean? = false,
|
val underMedication: Boolean? = false,
|
||||||
val updatedAt: String? = "",
|
val updatedAt: String? = "",
|
||||||
val updatedBy: Int? = 0,
|
val updatedBy: Int? = 0,
|
||||||
val volume: Int? = 0,
|
val volume: Int? = 0
|
||||||
)
|
)
|
||||||
@@ -1,18 +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.model.molbioresult
|
package com.example.hpostesting.data.model.molbioresult
|
||||||
|
|
||||||
data class MolbioV2ResultRequest(
|
data class MolbioV2ResultRequest(
|
||||||
val results: MutableList<MolbioV2Result>? = mutableListOf(),
|
val results: MutableList<MolbioV2Result>? = mutableListOf()
|
||||||
)
|
)
|
||||||
@@ -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.molbioresult
|
package com.example.hpostesting.data.model.molbioresult
|
||||||
|
|
||||||
import com.google.gson.annotations.SerializedName
|
import com.google.gson.annotations.SerializedName
|
||||||
@@ -21,5 +8,5 @@ data class MolbioV2ResultResponse(
|
|||||||
@SerializedName("Message")
|
@SerializedName("Message")
|
||||||
val message: String? = "",
|
val message: String? = "",
|
||||||
@SerializedName("Result")
|
@SerializedName("Result")
|
||||||
val result: String? = "",
|
val result: 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.molbioresult
|
package com.example.hpostesting.data.model.molbioresult
|
||||||
|
|
||||||
import com.example.hpostesting.data.model.patient.UserData
|
import com.example.hpostesting.data.model.patient.UserData
|
||||||
@@ -32,7 +19,7 @@ data class RawData(
|
|||||||
var gender: String = "",
|
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 = "",
|
||||||
|
|||||||
@@ -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,7 +9,7 @@ data class BufferCheckData(
|
|||||||
var _id: String = "",
|
var _id: String = "",
|
||||||
var kitno: String = "",
|
var kitno: String = "",
|
||||||
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 localFlag: Boolean = false,
|
var localFlag: 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
|
||||||
@@ -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,13 +5,12 @@ 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 incubationTime: String = "",
|
||||||
var bloodGroup: String = "",
|
var bloodGroup: String = "",
|
||||||
var age: String = "",
|
var birthYear: String = "",
|
||||||
var state: String = "",
|
var state: String = "",
|
||||||
var abhaId: String = "",
|
var abhaId: String = "",
|
||||||
var userImageURL: String = "",
|
var userImageURL: String = "",
|
||||||
@@ -36,7 +22,7 @@ data class HemoCubeTestData(
|
|||||||
var gender: String = "",
|
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 = "",
|
||||||
@@ -75,14 +61,6 @@ data class HemoCubeTestData(
|
|||||||
var led2Gain4: Double? = null,
|
var led2Gain4: Double? = null,
|
||||||
var led3Gain4: Double? = null,
|
var led3Gain4: Double? = null,
|
||||||
var led4Gain4: 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 predictedDenovixRatio: Double? = null,
|
||||||
@@ -92,7 +70,6 @@ data class HemoCubeTestData(
|
|||||||
var prdClassification: String = "",
|
var prdClassification: String = "",
|
||||||
var deviceRatioClass: String = "",
|
var deviceRatioClass: String = "",
|
||||||
var slopeRatioClass: String = "",
|
var slopeRatioClass: String = "",
|
||||||
var borderlineMethod2Class: String = "",
|
|
||||||
var errorMessages: String = "",
|
var errorMessages: String = "",
|
||||||
var batteryLevel: String = "",
|
var batteryLevel: String = "",
|
||||||
var batteryCapacity: String = "",
|
var batteryCapacity: String = "",
|
||||||
@@ -103,13 +80,6 @@ data class HemoCubeTestData(
|
|||||||
var quickCapture: Boolean = false,
|
var quickCapture: Boolean = false,
|
||||||
var solution: String? = "",
|
var solution: String? = "",
|
||||||
var concentration: String? = "",
|
var concentration: String? = "",
|
||||||
var filter: String? = "",
|
|
||||||
var volume: String? = "",
|
var volume: String? = "",
|
||||||
var isCSVCreated: Boolean = false,
|
var isCSVCreated: Boolean = false
|
||||||
var labName: String? = "",
|
|
||||||
var cuvetteSize: String? = "",
|
|
||||||
var district: String? = "",
|
|
||||||
var centerName: String? = "",
|
|
||||||
var ipAddress:String?= "",
|
|
||||||
var configUpdatedRecent: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 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
|
||||||
@@ -24,7 +11,7 @@ data class UserData(
|
|||||||
var name: String = "",
|
var name: String = "",
|
||||||
var incubationTime: String = "",
|
var incubationTime: String = "",
|
||||||
var gender: String = "",
|
var gender: String = "",
|
||||||
var age: String = "",
|
var birthYear: String = "",
|
||||||
var abhaId: String = "",
|
var abhaId: String = "",
|
||||||
var bloodGroup: String = "",
|
var bloodGroup: String = "",
|
||||||
var userImageURL: String = "",
|
var userImageURL: String = "",
|
||||||
@@ -42,8 +29,7 @@ data class UserData(
|
|||||||
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 = "",
|
var prdClassification: String = ""
|
||||||
var sampleid: Int = 0
|
|
||||||
) {
|
) {
|
||||||
enum class Gender {
|
enum class Gender {
|
||||||
MALE,
|
MALE,
|
||||||
@@ -53,17 +39,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,
|
||||||
sampleid = sampleid,
|
|
||||||
bloodGroup = bloodGroup,
|
bloodGroup = bloodGroup,
|
||||||
incubationTime = incubationTime,
|
birthYear = birthYear,
|
||||||
age = age,
|
|
||||||
gender = gender,
|
gender = gender,
|
||||||
state = state,
|
state = state,
|
||||||
abhaId = abhaId,
|
abhaId = abhaId,
|
||||||
|
|||||||
@@ -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,20 +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.model.test
|
package com.example.hpostesting.data.model.test
|
||||||
|
|
||||||
enum class TestType {
|
enum class TestType {
|
||||||
SICKLECERT,
|
SICKLECERT,
|
||||||
SICKLEFIND,
|
SICKLEFIND
|
||||||
HB_EST
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,29 @@
|
|||||||
|
package com.example.hpostesting.di
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
|
import com.example.hpostesting.data.repository.DatabaseRepository
|
||||||
|
import com.example.hpostesting.data.dao.UserDao
|
||||||
|
import com.example.hpostesting.domain.SaveRawData
|
||||||
|
import com.example.hpostesting.domain.SaveRawDataTest
|
||||||
|
import com.example.hpostesting.presentation.testRight.TestRightViewModel
|
||||||
|
import dagger.Module
|
||||||
|
import dagger.Provides
|
||||||
|
import dagger.hilt.InstallIn
|
||||||
|
import dagger.hilt.android.components.ViewModelComponent
|
||||||
|
import dagger.hilt.android.qualifiers.ApplicationContext
|
||||||
|
|
||||||
|
@Module
|
||||||
|
@InstallIn(ViewModelComponent::class)
|
||||||
|
object ViewModelModule {
|
||||||
|
|
||||||
|
@Provides
|
||||||
|
fun provideTestRightViewModel(
|
||||||
|
saveRawData: SaveRawData,
|
||||||
|
saveRawDataTest: SaveRawDataTest,
|
||||||
|
databaseRepository: DatabaseRepository,
|
||||||
|
userDao: UserDao,
|
||||||
|
context: Context
|
||||||
|
): TestRightViewModel {
|
||||||
|
return TestRightViewModel(saveRawData, saveRawDataTest, databaseRepository, userDao, context)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,18 +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.model.updates
|
package com.example.hpostesting.data.model.updates
|
||||||
|
|
||||||
data class CheckUpdateData(
|
data class CheckUpdateData(
|
||||||
val version: String? = "",
|
val version: String? = ""
|
||||||
)
|
)
|
||||||
@@ -1,18 +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.model.updates
|
package com.example.hpostesting.data.model.updates
|
||||||
|
|
||||||
data class CheckUpdateRequest(
|
data class CheckUpdateRequest(
|
||||||
val currentVersion: String? = "",
|
val currentVersion: 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.updates
|
package com.example.hpostesting.data.model.updates
|
||||||
|
|
||||||
import com.google.gson.annotations.SerializedName
|
import com.google.gson.annotations.SerializedName
|
||||||
@@ -21,5 +8,5 @@ data class CheckUpdateResponse(
|
|||||||
@SerializedName("Message")
|
@SerializedName("Message")
|
||||||
val message: String? = "",
|
val message: String? = "",
|
||||||
@SerializedName("Result")
|
@SerializedName("Result")
|
||||||
val result: String? = "",
|
val result: String? = ""
|
||||||
)
|
)
|
||||||
@@ -1,18 +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.model.updates
|
package com.example.hpostesting.data.model.updates
|
||||||
|
|
||||||
data class DeviceUpdateRequest(
|
data class DeviceUpdateRequest(
|
||||||
val serial_no: String? = "",
|
val serial_no: String? = ""
|
||||||
)
|
)
|
||||||
@@ -1,29 +1,14 @@
|
|||||||
/*
|
|
||||||
* // 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.net.Uri
|
import android.net.Uri
|
||||||
|
import com.example.hpostesting.data.Result
|
||||||
import com.example.hpostesting.data.api.MolbioAuthApi
|
import com.example.hpostesting.data.api.MolbioAuthApi
|
||||||
import com.example.hpostesting.data.api.MolbioResultApi
|
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.DeviceProvisionRequest
|
||||||
import com.example.hpostesting.data.model.deviceprovision.DeviceProvisionResponse
|
import com.example.hpostesting.data.model.deviceprovision.DeviceProvisionResponse
|
||||||
import com.example.hpostesting.data.model.diagnostics.DiagnosticsData
|
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.log.UploadLogsResponse
|
||||||
import com.example.hpostesting.data.model.login.LoginRequest
|
import com.example.hpostesting.data.model.login.LoginRequest
|
||||||
import com.example.hpostesting.data.model.login.LoginResponse
|
import com.example.hpostesting.data.model.login.LoginResponse
|
||||||
@@ -36,12 +21,11 @@ import com.example.hpostesting.data.model.patient.UserData
|
|||||||
import com.example.hpostesting.data.model.updates.CheckUpdateRequest
|
import com.example.hpostesting.data.model.updates.CheckUpdateRequest
|
||||||
import com.example.hpostesting.data.model.updates.CheckUpdateResponse
|
import com.example.hpostesting.data.model.updates.CheckUpdateResponse
|
||||||
import com.example.hpostesting.data.model.updates.DeviceUpdateRequest
|
import com.example.hpostesting.data.model.updates.DeviceUpdateRequest
|
||||||
import com.example.hpostesting.firebase.FirebaseManager
|
|
||||||
import com.example.hpostesting.util.Result
|
|
||||||
import com.google.firebase.crashlytics.ktx.crashlytics
|
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.ktx.Firebase
|
import com.google.firebase.ktx.Firebase
|
||||||
import com.google.firebase.storage.FirebaseStorage
|
import com.google.firebase.storage.ktx.storage
|
||||||
import kotlinx.coroutines.tasks.await
|
import kotlinx.coroutines.tasks.await
|
||||||
import okhttp3.MultipartBody
|
import okhttp3.MultipartBody
|
||||||
import okhttp3.ResponseBody
|
import okhttp3.ResponseBody
|
||||||
@@ -53,17 +37,12 @@ import javax.inject.Named
|
|||||||
|
|
||||||
class NetworkException(message: String, cause: Throwable) : Exception(message, cause)
|
class NetworkException(message: String, cause: Throwable) : Exception(message, cause)
|
||||||
class DatabaseRepository @Inject constructor(
|
class DatabaseRepository @Inject constructor(
|
||||||
@Named("Auth") private val molbioAuthApi: MolbioAuthApi,
|
@Named("Auth")private val molbioAuthApi: MolbioAuthApi,
|
||||||
private val molbioResultApi: MolbioResultApi,
|
private val molbioResultApi: MolbioResultApi
|
||||||
private val firebaseManager: FirebaseManager,
|
|
||||||
) : Repository {
|
) : Repository {
|
||||||
|
|
||||||
private val localdb: FirebaseFirestore
|
private val db: FirebaseFirestore = Firebase.firestore
|
||||||
get() = firebaseManager.getCurrentFirestoreF()
|
private val storage = Firebase.storage
|
||||||
|
|
||||||
private val localStg: FirebaseStorage
|
|
||||||
get() = firebaseManager.getCurrentStorageF()
|
|
||||||
|
|
||||||
|
|
||||||
private suspend fun <T : Any> safeApiCall(apiCall: suspend () -> T): Result<T> {
|
private suspend fun <T : Any> safeApiCall(apiCall: suspend () -> T): Result<T> {
|
||||||
return try {
|
return try {
|
||||||
@@ -78,7 +57,7 @@ class DatabaseRepository @Inject constructor(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override suspend fun deviceProvision(deviceProvisionRequest: DeviceProvisionRequest): Result<DeviceProvisionResponse> {
|
suspend fun deviceProvision(deviceProvisionRequest: DeviceProvisionRequest): Result<DeviceProvisionResponse> {
|
||||||
return safeApiCall { molbioAuthApi.deviceProvision(deviceProvisionRequest) }
|
return safeApiCall { molbioAuthApi.deviceProvision(deviceProvisionRequest) }
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -94,16 +73,8 @@ class DatabaseRepository @Inject constructor(
|
|||||||
return safeApiCall { molbioResultApi.checkUpdate(checkUpdateRequest) }
|
return safeApiCall { molbioResultApi.checkUpdate(checkUpdateRequest) }
|
||||||
}
|
}
|
||||||
|
|
||||||
override suspend fun deviceUpdate(deviceUpdateRequest: DeviceUpdateRequest): retrofit2.Response<ResponseBody> {
|
override suspend fun deviceUpdate(deviceUpdateRequest: DeviceUpdateRequest): Result<ResponseBody> {
|
||||||
return molbioResultApi.deviceUpdate(deviceUpdateRequest)
|
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> {
|
override suspend fun uploadLogs(logFile: MultipartBody.Part): Result<UploadLogsResponse> {
|
||||||
@@ -113,36 +84,39 @@ class DatabaseRepository @Inject constructor(
|
|||||||
override suspend fun addTestToDatabase(data: HemoCubeTestData?): Response<String> {
|
override suspend fun addTestToDatabase(data: HemoCubeTestData?): Response<String> {
|
||||||
return try {
|
return try {
|
||||||
val userdata =
|
val userdata =
|
||||||
localdb.collection("patientData").whereEqualTo("_id", data!!._id).get().await()
|
db.collection("patientData").whereEqualTo("_id", data!!._id).get().await()
|
||||||
if (userdata.documents.isNotEmpty()) {
|
if (userdata.documents.isNotEmpty()) {
|
||||||
userdata.documents.forEach {
|
userdata.documents.forEach {
|
||||||
localdb.collection("patientData").document(it.id).update("testStatus", true)
|
db.collection("patientData").document(it.id).update("testStatus", true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
localdb.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 addQcTestToDatabase(data: HemoCubeTestData?): Response<String> {
|
|
||||||
return try {
|
|
||||||
|
|
||||||
localdb.collection("qcData").add(data!!).await()
|
|
||||||
Response.Success(data._id)
|
|
||||||
|
|
||||||
} catch (e: Exception) {
|
|
||||||
Response.Error(e)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override suspend fun addTestToDatabase(data: UserData?): Response<String> {
|
override suspend fun addTestToDatabase(data: UserData?): Response<String> {
|
||||||
TODO("Not yet implemented")
|
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)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override suspend fun addTestToDatabaseforBufferCheck(data: BufferCheckData?): Response<String> {
|
override suspend fun addTestToDatabaseforBufferCheck(data: BufferCheckData?): Response<String> {
|
||||||
return try {
|
return try {
|
||||||
localdb.collection("buffers").add(data!!).await()
|
db.collection("buffers").add(data!!).await()
|
||||||
Response.Success(data.kitno)
|
Response.Success(data.kitno)
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
Firebase.crashlytics.recordException(e)
|
Firebase.crashlytics.recordException(e)
|
||||||
@@ -152,18 +126,7 @@ class DatabaseRepository @Inject constructor(
|
|||||||
|
|
||||||
override suspend fun addDiagnostics(data: DiagnosticsData?): Response<String> {
|
override suspend fun addDiagnostics(data: DiagnosticsData?): Response<String> {
|
||||||
return try {
|
return try {
|
||||||
localdb.collection("diagnostics").add(data!!).await()
|
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 {
|
|
||||||
localdb.collection("jigs").add(data!!).await()
|
|
||||||
Response.Success(data.deviceId)
|
Response.Success(data.deviceId)
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
Firebase.crashlytics.recordException(e)
|
Firebase.crashlytics.recordException(e)
|
||||||
@@ -172,12 +135,12 @@ class DatabaseRepository @Inject constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
override suspend fun uploadFileToStorage(
|
override suspend fun uploadFileToStorage(
|
||||||
patientID: String, filePath: String,
|
patientID: String, filePath: String
|
||||||
): Response<Boolean> {
|
): Response<Boolean> {
|
||||||
try {
|
try {
|
||||||
|
|
||||||
val file = Uri.fromFile(File(filePath))
|
val file = Uri.fromFile(File(filePath))
|
||||||
val riversRef = localStg.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) {
|
||||||
@@ -188,7 +151,7 @@ class DatabaseRepository @Inject constructor(
|
|||||||
|
|
||||||
suspend fun addToPendingQueue(pendingUploads: PendingUploads): Response<Boolean> {
|
suspend fun addToPendingQueue(pendingUploads: PendingUploads): Response<Boolean> {
|
||||||
return try {
|
return try {
|
||||||
localdb.collection("pendingUploads").document(pendingUploads.pendingId).set(pendingUploads)
|
db.collection("pendingUploads").document(pendingUploads.pendingId).set(pendingUploads)
|
||||||
.await()
|
.await()
|
||||||
|
|
||||||
Response.Success(true)
|
Response.Success(true)
|
||||||
@@ -201,7 +164,7 @@ class DatabaseRepository @Inject constructor(
|
|||||||
suspend fun getAllFromPendingQueue(): List<PendingUploads> {
|
suspend fun getAllFromPendingQueue(): List<PendingUploads> {
|
||||||
val pendingList = mutableListOf<PendingUploads>()
|
val pendingList = mutableListOf<PendingUploads>()
|
||||||
return try {
|
return try {
|
||||||
val querySnapshot = localdb.collection("pendingUploads").orderBy("timeAdded").get().await()
|
val querySnapshot = db.collection("pendingUploads").orderBy("timeAdded").get().await()
|
||||||
|
|
||||||
for (doc in querySnapshot.documents) {
|
for (doc in querySnapshot.documents) {
|
||||||
val pendingFile = doc.toObject(PendingUploads::class.java)
|
val pendingFile = doc.toObject(PendingUploads::class.java)
|
||||||
@@ -219,7 +182,7 @@ class DatabaseRepository @Inject constructor(
|
|||||||
|
|
||||||
suspend fun removeFromPendingQueue(fileName: String): Response<Boolean> {
|
suspend fun removeFromPendingQueue(fileName: String): Response<Boolean> {
|
||||||
return try {
|
return try {
|
||||||
localdb.collection("pendingUploads").document(fileName).delete().await()
|
db.collection("pendingUploads").document(fileName).delete().await()
|
||||||
|
|
||||||
Response.Success(true)
|
Response.Success(true)
|
||||||
} catch (e: Exception) {
|
} catch (e: Exception) {
|
||||||
@@ -229,56 +192,18 @@ class DatabaseRepository @Inject constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
suspend fun getDeviceData(): List<DeviceData> {
|
suspend fun getDeviceData(): List<DeviceData> {
|
||||||
return localdb.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? {
|
override suspend fun getDeviceDataById(deviceId: String): DeviceData? {
|
||||||
val querySnapshot = localdb.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)
|
||||||
|
|
||||||
// Find the DeviceData object with the specified deviceId
|
// Find the DeviceData object with the specified deviceId
|
||||||
return allDeviceDataList.find { it.deviceId == deviceId }
|
return allDeviceDataList.find { it.deviceId == deviceId }
|
||||||
}
|
}
|
||||||
|
|
||||||
override suspend fun getDeviceResponse(data: DeviceData?): Response<String> {
|
|
||||||
return try {
|
|
||||||
localdb.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 {
|
|
||||||
localdb.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 {
|
override fun <UserData> addTestToDatabase(testDetails: UserData): Any {
|
||||||
TODO("Not yet implemented")
|
TODO("Not yet implemented")
|
||||||
}
|
}
|
||||||
|
|
||||||
override suspend fun addTestToDatabasefornew(data: HemoCubeTestData?): Response<String> {
|
|
||||||
return try {
|
|
||||||
val userdata =
|
|
||||||
localdb.collection("patientData").whereEqualTo("_id", data!!._id).get().await()
|
|
||||||
if (userdata.documents.isNotEmpty()) {
|
|
||||||
userdata.documents.forEach {
|
|
||||||
localdb.collection("patientData").document(it.id).update("testStatus", true)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
localdb.collection("testData").add(data).await()
|
|
||||||
Response.Success(data._id)
|
|
||||||
} catch (e: Exception) {
|
|
||||||
Firebase.crashlytics.recordException(e)
|
|
||||||
Response.Error(e)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1,19 +1,12 @@
|
|||||||
/*
|
|
||||||
* // 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,26 +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.repository
|
package com.example.hpostesting.data.repository
|
||||||
|
|
||||||
import com.example.hpostesting.util.Result
|
import com.example.hpostesting.data.Result
|
||||||
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.diagnostics.DiagnosticsData
|
||||||
import com.example.hpostesting.data.model.jig.JigData
|
|
||||||
import com.example.hpostesting.data.model.log.UploadLogsResponse
|
import com.example.hpostesting.data.model.log.UploadLogsResponse
|
||||||
import com.example.hpostesting.data.model.login.LoginRequest
|
import com.example.hpostesting.data.model.login.LoginRequest
|
||||||
import com.example.hpostesting.data.model.login.LoginResponse
|
import com.example.hpostesting.data.model.login.LoginResponse
|
||||||
@@ -38,8 +20,6 @@ import okhttp3.ResponseBody
|
|||||||
|
|
||||||
interface Repository {
|
interface Repository {
|
||||||
suspend fun addTestToDatabase(data: HemoCubeTestData?): Response<String>
|
suspend fun addTestToDatabase(data: HemoCubeTestData?): Response<String>
|
||||||
suspend fun addQcTestToDatabase(data: HemoCubeTestData?): Response<String>
|
|
||||||
suspend fun addTestToDatabasefornew(data: HemoCubeTestData?): Response<String>
|
|
||||||
|
|
||||||
suspend fun addTestToDatabase(data: UserData?): Response<String>
|
suspend fun addTestToDatabase(data: UserData?): Response<String>
|
||||||
|
|
||||||
@@ -47,26 +27,19 @@ interface Repository {
|
|||||||
|
|
||||||
suspend fun addDiagnostics(data: DiagnosticsData?): 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 uploadFileToStorage(patientID: String, filePath: String): Response<Boolean>
|
||||||
|
|
||||||
suspend fun getDeviceDataById(deviceId: String): DeviceData?
|
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
|
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 login(loginRequest: LoginRequest): Result<LoginResponse>
|
||||||
|
|
||||||
suspend fun uploadResults(molbioV2ResultRequest: MolbioV2ResultRequest): Result<MolbioV2ResultResponse>
|
suspend fun uploadResults(molbioV2ResultRequest: MolbioV2ResultRequest): Result<MolbioV2ResultResponse>
|
||||||
|
|
||||||
suspend fun checkUpdate(checkUpdateRequest: CheckUpdateRequest): Result<CheckUpdateResponse>
|
suspend fun checkUpdate(checkUpdateRequest: CheckUpdateRequest): Result<CheckUpdateResponse>
|
||||||
|
|
||||||
suspend fun deviceUpdate(deviceUpdateRequest: DeviceUpdateRequest): retrofit2.Response<ResponseBody>
|
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>
|
suspend fun uploadLogs(logFile: MultipartBody.Part): Result<UploadLogsResponse>
|
||||||
}
|
}
|
||||||
@@ -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 android.content.SharedPreferences
|
import android.content.SharedPreferences
|
||||||
|
|||||||
@@ -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 android.content.Context
|
import android.content.Context
|
||||||
|
|||||||
@@ -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 android.content.Context
|
import android.content.Context
|
||||||
|
|||||||
@@ -1,19 +1,7 @@
|
|||||||
/*
|
|
||||||
* // 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.content.Context
|
import android.content.Context
|
||||||
|
import android.util.Log
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.io.FileOutputStream
|
import java.io.FileOutputStream
|
||||||
import java.io.IOException
|
import java.io.IOException
|
||||||
@@ -44,6 +32,7 @@ class LogFileManagerImpl @Inject constructor(private val context: Context) : Log
|
|||||||
|
|
||||||
file
|
file
|
||||||
} catch (e: IOException) {
|
} catch (e: IOException) {
|
||||||
|
Log.e("LogFileManager", "Error creating log file: ${e.message}")
|
||||||
null
|
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
|
||||||
@@ -38,21 +25,17 @@ class ResultCalculationWithMaxImpl : TestRightResultCalculation {
|
|||||||
var wavelengthOfAbsorbanceTwo = 0.0
|
var wavelengthOfAbsorbanceTwo = 0.0
|
||||||
|
|
||||||
for (each in wavelengthToAbsorbance) {
|
for (each in wavelengthToAbsorbance) {
|
||||||
when {
|
if (each[0] >= startWavelengthOne && each[0] < endWavelengthOne) {
|
||||||
each[0] >= startWavelengthOne && each[0] < endWavelengthOne -> {
|
if (each[1] > maxAbsorbanceAtOne) {
|
||||||
if (each[1] > maxAbsorbanceAtOne) {
|
maxAbsorbanceAtOne = each[1]
|
||||||
maxAbsorbanceAtOne = each[1]
|
wavelengthOfAbsorbanceOne = each[0]
|
||||||
wavelengthOfAbsorbanceOne = each[0]
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
when {
|
if (each[0] >= startWavelengthTwo && each[0] < endWavelengthTwo) {
|
||||||
each[0] >= startWavelengthTwo && each[0] < endWavelengthTwo -> {
|
// maxAbsorbanceAtTwo = max(maxAbsorbanceAtTwo, each[1])
|
||||||
// maxAbsorbanceAtTwo = max(maxAbsorbanceAtTwo, each[1])
|
if (each[1] > maxAbsorbanceAtTwo) {
|
||||||
if (each[1] > maxAbsorbanceAtTwo) {
|
maxAbsorbanceAtTwo = each[1]
|
||||||
maxAbsorbanceAtTwo = each[1]
|
wavelengthOfAbsorbanceTwo = each[0]
|
||||||
wavelengthOfAbsorbanceTwo = each[0]
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -74,32 +57,26 @@ class ResultCalculationWithMaxImpl : TestRightResultCalculation {
|
|||||||
val value = absorbanceAtWaveTwo / absorbanceAtWaveOne
|
val value = absorbanceAtWaveTwo / absorbanceAtWaveOne
|
||||||
testRightCalculationData.ratioValue = value
|
testRightCalculationData.ratioValue = value
|
||||||
|
|
||||||
when {
|
if (value <= 0.29) {
|
||||||
value <= 0.29 -> {
|
testRightCalculationData.ratioMinRange = 0.0
|
||||||
testRightCalculationData.ratioMinRange = 0.0
|
testRightCalculationData.ratioMaxRange = 0.29
|
||||||
testRightCalculationData.ratioMaxRange = 0.29
|
return TestRightResultType.NORMAL
|
||||||
return TestRightResultType.NORMAL
|
} else if (value > 0.29 && value <= 0.32) {
|
||||||
}
|
testRightCalculationData.ratioMinRange = 0.29
|
||||||
value > 0.29 && value <= 0.32 -> {
|
testRightCalculationData.ratioMaxRange = 0.32
|
||||||
testRightCalculationData.ratioMinRange = 0.29
|
return TestRightResultType.NEGATIVEBORDERLINE
|
||||||
testRightCalculationData.ratioMaxRange = 0.32
|
} else if (value > 0.32 && value <= 0.50) {
|
||||||
return TestRightResultType.NEGATIVEBORDERLINE
|
testRightCalculationData.ratioMinRange = 0.32
|
||||||
}
|
testRightCalculationData.ratioMaxRange = 0.50
|
||||||
value > 0.32 && value <= 0.50 -> {
|
return TestRightResultType.SICKLECELLTRAIT
|
||||||
testRightCalculationData.ratioMinRange = 0.32
|
} else if (value > 0.50 && value <= 0.55) {
|
||||||
testRightCalculationData.ratioMaxRange = 0.50
|
testRightCalculationData.ratioMinRange = 0.50
|
||||||
return TestRightResultType.SICKLECELLTRAIT
|
testRightCalculationData.ratioMaxRange = 0.55
|
||||||
}
|
return TestRightResultType.POSITIVEBORDERLINE
|
||||||
value > 0.50 && value <= 0.55 -> {
|
}else if (value > 0.55) {
|
||||||
testRightCalculationData.ratioMinRange = 0.50
|
testRightCalculationData.ratioMinRange = 0.55
|
||||||
testRightCalculationData.ratioMaxRange = 0.55
|
testRightCalculationData.ratioMaxRange = 999.0
|
||||||
return TestRightResultType.POSITIVEBORDERLINE
|
return TestRightResultType.SICKLECELLDISEASE
|
||||||
}
|
|
||||||
value > 0.55 -> {
|
|
||||||
testRightCalculationData.ratioMinRange = 0.55
|
|
||||||
testRightCalculationData.ratioMaxRange = 999.0
|
|
||||||
return TestRightResultType.SICKLECELLDISEASE
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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) {
|
||||||
@@ -27,6 +14,7 @@ class SaveRawData(private val localFileRepository: LocalFileRepository) {
|
|||||||
fun saveCsv(folderPath: String, fileName: String, matrix: ArrayList<ArrayList<Double>>) {
|
fun saveCsv(folderPath: String, fileName: String, matrix: ArrayList<ArrayList<Double>>) {
|
||||||
// try {
|
// try {
|
||||||
val fullPath = "$folderPath/$fileName"
|
val fullPath = "$folderPath/$fileName"
|
||||||
|
// val writer = CSVWriter(FileWriter(fullPath))
|
||||||
|
|
||||||
sort(matrix) { one: ArrayList<Double>, two: ArrayList<Double> ->
|
sort(matrix) { one: ArrayList<Double>, two: ArrayList<Double> ->
|
||||||
one[0].compareTo(two[0])
|
one[0].compareTo(two[0])
|
||||||
@@ -38,6 +26,7 @@ class SaveRawData(private val localFileRepository: LocalFileRepository) {
|
|||||||
for (eachRow in matrix) {
|
for (eachRow in matrix) {
|
||||||
|
|
||||||
if (eachRow[0] >= Constants.MIN_WAVELENGTH_RANGE_TO_RECORD && eachRow[0] < Constants.MAX_WAVELENGTH_RANGE_TO_RECORD + 1) {
|
if (eachRow[0] >= Constants.MIN_WAVELENGTH_RANGE_TO_RECORD && eachRow[0] < Constants.MAX_WAVELENGTH_RANGE_TO_RECORD + 1) {
|
||||||
|
// val rowContent = arrayOf(String.format("%.3f", eachRow[0]), String.format("%.3f", eachRow[1]))
|
||||||
val rowContent =
|
val rowContent =
|
||||||
arrayOf(
|
arrayOf(
|
||||||
String.format("%.10f", eachRow[0]),
|
String.format("%.10f", eachRow[0]),
|
||||||
@@ -48,9 +37,22 @@ class SaveRawData(private val localFileRepository: LocalFileRepository) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
localFileRepository.saveCsvToDisk(fullPath, content)
|
localFileRepository.saveCsvToDisk(fullPath, content)
|
||||||
|
// writer.writeAll(content) // data is adding to csv
|
||||||
|
// writer.close()
|
||||||
|
|
||||||
|
// } catch (e: Exception) {
|
||||||
|
// Log.e(TAG, e.toString())
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
fun saveLog(folderPath: String, fileName: String, calculationData: TestRightCalculationData) {
|
fun saveLog(folderPath: String, fileName: String, calculationData: TestRightCalculationData) {
|
||||||
|
// val fileObj = File(folderPath, fileName)
|
||||||
|
// val writer = FileWriter(fileObj)
|
||||||
|
|
||||||
|
// writer.append(getLogStringFromObj(calculationData))
|
||||||
|
// writer.flush()
|
||||||
|
// writer.close()
|
||||||
|
|
||||||
val fullPath = folderPath + fileName
|
val fullPath = folderPath + fileName
|
||||||
localFileRepository.saveTextToDisk(fullPath, getLogStringFromObj(calculationData))
|
localFileRepository.saveTextToDisk(fullPath, getLogStringFromObj(calculationData))
|
||||||
}
|
}
|
||||||
@@ -96,8 +98,15 @@ 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 writer = FileWriter(fileObj)
|
||||||
|
|
||||||
|
// writer.append(getLogStringFromObjWithPatientData(calculationData, patientData))
|
||||||
|
// writer.flush()
|
||||||
|
// writer.close()
|
||||||
|
|
||||||
val fullPath = folderPath + fileName
|
val fullPath = folderPath + fileName
|
||||||
localFileRepository.saveTextToDisk(
|
localFileRepository.saveTextToDisk(
|
||||||
fullPath,
|
fullPath,
|
||||||
@@ -107,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
|
||||||
@@ -24,6 +11,7 @@ class SaveRawDataTest(private val localFileRepository: LocalFileRepository) {
|
|||||||
|
|
||||||
// try {
|
// try {
|
||||||
val fullPath = "$folderPath/$fileName"
|
val fullPath = "$folderPath/$fileName"
|
||||||
|
// val writer = CSVWriter(FileWriter(fullPath))
|
||||||
val content = ArrayList<Array<String>>()
|
val content = ArrayList<Array<String>>()
|
||||||
|
|
||||||
// Header
|
// Header
|
||||||
@@ -52,6 +40,19 @@ class SaveRawDataTest(private val localFileRepository: LocalFileRepository) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun saveLog(folderPath: String, fileName: String, isReference: Boolean, fullString: String) {
|
fun saveLog(folderPath: String, fileName: String, isReference: Boolean, fullString: String) {
|
||||||
|
// val fileObj = File(folderPath, fileName)
|
||||||
|
|
||||||
|
// Log.d(TAG, "$folderPath --- $fileName")
|
||||||
|
// val writer = FileWriter(fileObj)
|
||||||
|
|
||||||
|
// if (isReference)
|
||||||
|
// writer.append("\nREFERENCE OUTPUT\n")
|
||||||
|
// else
|
||||||
|
// writer.append("\nSAMPLE OUTPUT\n")
|
||||||
|
//
|
||||||
|
// writer.append(fullString)
|
||||||
|
// writer.flush()
|
||||||
|
// writer.close()
|
||||||
|
|
||||||
val filePath = folderPath + fileName
|
val filePath = folderPath + fileName
|
||||||
var stringToWrite = ""
|
var stringToWrite = ""
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -38,21 +25,17 @@ class SickleFindResultCaluculationWithMaxImpl : TestRightResultCalculation{
|
|||||||
var wavelengthOfAbsorbanceTwo = 0.0
|
var wavelengthOfAbsorbanceTwo = 0.0
|
||||||
|
|
||||||
for (each in wavelengthToAbsorbance) {
|
for (each in wavelengthToAbsorbance) {
|
||||||
when {
|
if (each[0] >= startWavelengthOne && each[0] < endWavelengthOne) {
|
||||||
each[0] >= startWavelengthOne && each[0] < endWavelengthOne -> {
|
if (each[1] > maxAbsorbanceAtOne) {
|
||||||
if (each[1] > maxAbsorbanceAtOne) {
|
maxAbsorbanceAtOne = each[1]
|
||||||
maxAbsorbanceAtOne = each[1]
|
wavelengthOfAbsorbanceOne = each[0]
|
||||||
wavelengthOfAbsorbanceOne = each[0]
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
when {
|
if (each[0] >= startWavelengthTwo && each[0] < endWavelengthTwo) {
|
||||||
each[0] >= startWavelengthTwo && each[0] < endWavelengthTwo -> {
|
// maxAbsorbanceAtTwo = max(maxAbsorbanceAtTwo, each[1])
|
||||||
// maxAbsorbanceAtTwo = max(maxAbsorbanceAtTwo, each[1])
|
if (each[1] > maxAbsorbanceAtTwo) {
|
||||||
if (each[1] > maxAbsorbanceAtTwo) {
|
maxAbsorbanceAtTwo = each[1]
|
||||||
maxAbsorbanceAtTwo = each[1]
|
wavelengthOfAbsorbanceTwo = each[0]
|
||||||
wavelengthOfAbsorbanceTwo = each[0]
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -74,22 +57,18 @@ class SickleFindResultCaluculationWithMaxImpl : TestRightResultCalculation{
|
|||||||
val value = absorbanceAtWaveTwo / absorbanceAtWaveOne
|
val value = absorbanceAtWaveTwo / absorbanceAtWaveOne
|
||||||
testRightCalculationData.ratioValue = value
|
testRightCalculationData.ratioValue = value
|
||||||
|
|
||||||
when {
|
if (value < 0.30 || value == 0.0) {
|
||||||
value < 0.30 || value == 0.0 -> {
|
testRightCalculationData.ratioMinRange = 0.0
|
||||||
testRightCalculationData.ratioMinRange = 0.0
|
testRightCalculationData.ratioMaxRange = 0.30
|
||||||
testRightCalculationData.ratioMaxRange = 0.30
|
return TestRightResultType.NORMAL
|
||||||
return TestRightResultType.NORMAL
|
} else if (value >= 0.30 && value < 0.31) {
|
||||||
}
|
testRightCalculationData.ratioMinRange = 0.30
|
||||||
value >= 0.30 && value < 0.31 -> {
|
testRightCalculationData.ratioMaxRange = 0.31
|
||||||
testRightCalculationData.ratioMinRange = 0.30
|
return TestRightResultType.UNDEFINED
|
||||||
testRightCalculationData.ratioMaxRange = 0.31
|
} else if (value >= 0.31) {
|
||||||
return TestRightResultType.UNDEFINED
|
testRightCalculationData.ratioMinRange = 0.31
|
||||||
}
|
testRightCalculationData.ratioMaxRange = 999.0
|
||||||
value >= 0.31 -> {
|
return TestRightResultType.SICKLECELLDISEASE
|
||||||
testRightCalculationData.ratioMinRange = 0.31
|
|
||||||
testRightCalculationData.ratioMaxRange = 999.0
|
|
||||||
return TestRightResultType.SICKLECELLDISEASE
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -1,17 +1,4 @@
|
|||||||
/*
|
package com.example.hpostesting.domain.di
|
||||||
* // 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.app.Application
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
@@ -20,7 +7,7 @@ import android.content.res.AssetManager
|
|||||||
import androidx.room.Room
|
import androidx.room.Room
|
||||||
import com.example.hpostesting.data.api.MolbioAuthApi
|
import com.example.hpostesting.data.api.MolbioAuthApi
|
||||||
import com.example.hpostesting.data.api.MolbioResultApi
|
import com.example.hpostesting.data.api.MolbioResultApi
|
||||||
import com.example.hpostesting.data.constant.Constants
|
import com.example.hpostesting.data.api.PropertyProvider
|
||||||
import com.example.hpostesting.data.dao.HemoCubeBufferDao
|
import com.example.hpostesting.data.dao.HemoCubeBufferDao
|
||||||
import com.example.hpostesting.data.dao.HemoCubeDao
|
import com.example.hpostesting.data.dao.HemoCubeDao
|
||||||
import com.example.hpostesting.data.dao.MyDatabase
|
import com.example.hpostesting.data.dao.MyDatabase
|
||||||
@@ -35,20 +22,12 @@ import com.example.hpostesting.domain.LogFileManager
|
|||||||
import com.example.hpostesting.domain.LogFileManagerImpl
|
import com.example.hpostesting.domain.LogFileManagerImpl
|
||||||
import com.example.hpostesting.domain.SaveRawData
|
import com.example.hpostesting.domain.SaveRawData
|
||||||
import com.example.hpostesting.domain.SaveRawDataTest
|
import com.example.hpostesting.domain.SaveRawDataTest
|
||||||
import com.example.hpostesting.firebase.FirebaseManager
|
|
||||||
import com.example.hpostesting.presentation.utils.UsbServiceListener
|
|
||||||
import com.example.hpostesting.presentation.utils.UsbServiceListenerImpl
|
|
||||||
import com.example.hpostesting.util.PropertyProvider
|
|
||||||
import com.example.hpostesting.util.PropertyProviderImpl
|
import com.example.hpostesting.util.PropertyProviderImpl
|
||||||
import com.google.firebase.firestore.FirebaseFirestore
|
|
||||||
import com.google.firebase.storage.FirebaseStorage
|
|
||||||
import dagger.Module
|
import dagger.Module
|
||||||
import dagger.Provides
|
import dagger.Provides
|
||||||
import dagger.hilt.InstallIn
|
import dagger.hilt.InstallIn
|
||||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
import dagger.hilt.android.qualifiers.ApplicationContext
|
||||||
import dagger.hilt.components.SingletonComponent
|
import dagger.hilt.components.SingletonComponent
|
||||||
import net.sqlcipher.database.SQLiteDatabase
|
|
||||||
import net.sqlcipher.database.SupportFactory
|
|
||||||
import okhttp3.OkHttpClient
|
import okhttp3.OkHttpClient
|
||||||
import retrofit2.Retrofit
|
import retrofit2.Retrofit
|
||||||
import retrofit2.converter.gson.GsonConverterFactory
|
import retrofit2.converter.gson.GsonConverterFactory
|
||||||
@@ -63,12 +42,9 @@ object AppModule {
|
|||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
fun provideMyDatabase(@ApplicationContext context: Context): MyDatabase {
|
fun provideMyDatabase(@ApplicationContext context: Context): MyDatabase {
|
||||||
val passphraseBytes: ByteArray = SQLiteDatabase.getBytes(Constants.passphrase.toCharArray())
|
|
||||||
val factory = SupportFactory(passphraseBytes)
|
|
||||||
|
|
||||||
return Room.databaseBuilder(
|
return Room.databaseBuilder(
|
||||||
context, MyDatabase::class.java, "my_database"
|
context, MyDatabase::class.java, "my_database"
|
||||||
).openHelperFactory(factory).fallbackToDestructiveMigration().build()
|
).fallbackToDestructiveMigration().build()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@@ -110,52 +86,22 @@ object AppModule {
|
|||||||
return SaveRawDataTest(repository)
|
return SaveRawDataTest(repository)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
|
||||||
@Singleton
|
|
||||||
fun provideFirebaseFirestore(): FirebaseFirestore {
|
|
||||||
return FirebaseFirestore.getInstance()
|
|
||||||
}
|
|
||||||
|
|
||||||
@Provides
|
|
||||||
@Singleton
|
|
||||||
fun provideFirebaseStorage(): FirebaseStorage {
|
|
||||||
return FirebaseStorage.getInstance()
|
|
||||||
}
|
|
||||||
|
|
||||||
@Provides
|
|
||||||
@Singleton
|
|
||||||
fun provideFirebaseManager(
|
|
||||||
@ApplicationContext context: Context,
|
|
||||||
): FirebaseManager {
|
|
||||||
return FirebaseManager(context)
|
|
||||||
}
|
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
fun provideDatabaseRepository(
|
fun provideDatabaseRepository(
|
||||||
firebaseManager: FirebaseManager,
|
|
||||||
@Named("Auth") molbioAuthApi: MolbioAuthApi,
|
@Named("Auth") molbioAuthApi: MolbioAuthApi,
|
||||||
molbioResultApi: MolbioResultApi
|
molbioResultApi: MolbioResultApi
|
||||||
): DatabaseRepository {
|
): DatabaseRepository {
|
||||||
return DatabaseRepository(
|
return DatabaseRepository(molbioAuthApi = molbioAuthApi, molbioResultApi = molbioResultApi)
|
||||||
firebaseManager = firebaseManager,
|
|
||||||
molbioAuthApi = molbioAuthApi,
|
|
||||||
molbioResultApi = molbioResultApi
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
fun provideRepository(
|
fun provideRepository(
|
||||||
firebaseManager: FirebaseManager,
|
|
||||||
@Named("Auth") molbioAuthApi: MolbioAuthApi,
|
@Named("Auth") molbioAuthApi: MolbioAuthApi,
|
||||||
molbioResultApi: MolbioResultApi
|
molbioResultApi: MolbioResultApi
|
||||||
): Repository {
|
): Repository {
|
||||||
return DatabaseRepository(
|
return DatabaseRepository(molbioAuthApi, molbioResultApi)
|
||||||
firebaseManager = firebaseManager,
|
|
||||||
molbioAuthApi = molbioAuthApi,
|
|
||||||
molbioResultApi = molbioResultApi
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
@Provides
|
||||||
@@ -199,7 +145,7 @@ object AppModule {
|
|||||||
@Provides
|
@Provides
|
||||||
@Singleton
|
@Singleton
|
||||||
fun provideRetrofit(
|
fun provideRetrofit(
|
||||||
propertyProvider: PropertyProvider, @Named("Auth") client: OkHttpClient
|
propertyProvider: PropertyProvider,@Named("Auth") client: OkHttpClient
|
||||||
): Retrofit {
|
): Retrofit {
|
||||||
return Retrofit.Builder().baseUrl(propertyProvider.getProperty("BASE_URL")).client(client)
|
return Retrofit.Builder().baseUrl(propertyProvider.getProperty("BASE_URL")).client(client)
|
||||||
.addConverterFactory(GsonConverterFactory.create()).build()
|
.addConverterFactory(GsonConverterFactory.create()).build()
|
||||||
@@ -233,15 +179,4 @@ object AppModule {
|
|||||||
fun provideLocalFileDataSource(): LocalFileDataSource {
|
fun provideLocalFileDataSource(): LocalFileDataSource {
|
||||||
return LocalFileDataSourceImpl()
|
return LocalFileDataSourceImpl()
|
||||||
}
|
}
|
||||||
|
|
||||||
@Provides
|
|
||||||
@Singleton
|
|
||||||
fun provideUsbServiceListener(context: Context): UsbServiceListener {
|
|
||||||
return UsbServiceListenerImpl(context)
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1,83 +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.encryption
|
|
||||||
|
|
||||||
import android.util.Base64
|
|
||||||
import java.security.SecureRandom
|
|
||||||
import javax.crypto.Cipher
|
|
||||||
import javax.crypto.SecretKeyFactory
|
|
||||||
import javax.crypto.spec.IvParameterSpec
|
|
||||||
import javax.crypto.spec.PBEKeySpec
|
|
||||||
import javax.crypto.spec.SecretKeySpec
|
|
||||||
|
|
||||||
object Encryption {
|
|
||||||
//private const val AES_MODE = "AES/CBC/PKCS5Padding"
|
|
||||||
private const val AES_MODE= "AES/GCM/NoPadding"
|
|
||||||
private const val KEY_SPEC_ALGORITHM = "PBKDF2WithHmacSHA1"
|
|
||||||
private const val SALT = "Bigtec"
|
|
||||||
private const val ITERATION_COUNT = 10000
|
|
||||||
private const val KEY_LENGTH = 256
|
|
||||||
private val FIXED_IV = byteArrayOf(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
|
|
||||||
|
|
||||||
fun encrypt(textToEncrypt: String, password: String): String {
|
|
||||||
val salt = ByteArray(16)
|
|
||||||
SecureRandom().nextBytes(salt)
|
|
||||||
val factory = SecretKeyFactory.getInstance(KEY_SPEC_ALGORITHM)
|
|
||||||
val spec = PBEKeySpec(password.toCharArray(), salt, ITERATION_COUNT, KEY_LENGTH)
|
|
||||||
val tmp = factory.generateSecret(spec)
|
|
||||||
val key = SecretKeySpec(tmp.encoded, "AES")
|
|
||||||
val cipher = Cipher.getInstance(AES_MODE)
|
|
||||||
cipher.init(Cipher.ENCRYPT_MODE, key, IvParameterSpec(FIXED_IV))
|
|
||||||
val encryptedBytes = cipher.doFinal(textToEncrypt.toByteArray(Charsets.UTF_8))
|
|
||||||
return Base64.encodeToString(salt + encryptedBytes, Base64.NO_WRAP)
|
|
||||||
}
|
|
||||||
|
|
||||||
fun decrypt(encryptedText: String, password: String): String {
|
|
||||||
val salt = encryptedText.substring(0, 24).toByteArray()
|
|
||||||
val encryptedBytes = Base64.decode(encryptedText.substring(24), Base64.NO_WRAP)
|
|
||||||
val factory = SecretKeyFactory.getInstance(KEY_SPEC_ALGORITHM)
|
|
||||||
val spec = PBEKeySpec(password.toCharArray(), salt, ITERATION_COUNT, KEY_LENGTH)
|
|
||||||
val tmp = factory.generateSecret(spec)
|
|
||||||
val key = SecretKeySpec(tmp.encoded, "AES")
|
|
||||||
val cipher = Cipher.getInstance(AES_MODE)
|
|
||||||
cipher.init(Cipher.DECRYPT_MODE, key, IvParameterSpec(FIXED_IV))
|
|
||||||
val decryptedBytes = cipher.doFinal(encryptedBytes)
|
|
||||||
return String(decryptedBytes, Charsets.UTF_8)
|
|
||||||
}
|
|
||||||
// fun encrypt(textToEncrypt: String, password: String): String {
|
|
||||||
// val salt = SALT.toByteArray()
|
|
||||||
// val factory = SecretKeyFactory.getInstance(KEY_SPEC_ALGORITHM)
|
|
||||||
// val spec = PBEKeySpec(password.toCharArray(), salt, ITERATION_COUNT, KEY_LENGTH)
|
|
||||||
// val tmp = factory.generateSecret(spec)
|
|
||||||
// val key = SecretKeySpec(tmp.encoded, "AES")
|
|
||||||
// val cipher = Cipher.getInstance(AES_MODE)
|
|
||||||
// cipher.init(Cipher.ENCRYPT_MODE, key, IvParameterSpec(FIXED_IV))
|
|
||||||
// val encryptedBytes = cipher.doFinal(textToEncrypt.toByteArray(Charsets.UTF_8))
|
|
||||||
// return Base64.encodeToString(encryptedBytes, Base64.NO_WRAP)
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// fun decrypt(encryptedText: String, password: String): String {
|
|
||||||
// val salt = SALT.toByteArray()
|
|
||||||
// val encryptedBytes = Base64.decode(encryptedText, Base64.NO_WRAP)
|
|
||||||
// val factory = SecretKeyFactory.getInstance(KEY_SPEC_ALGORITHM)
|
|
||||||
// val spec = PBEKeySpec(password.toCharArray(), salt, ITERATION_COUNT, KEY_LENGTH)
|
|
||||||
// val tmp = factory.generateSecret(spec)
|
|
||||||
// val key = SecretKeySpec(tmp.encoded, "AES")
|
|
||||||
// val cipher = Cipher.getInstance(AES_MODE)
|
|
||||||
// cipher.init(Cipher.DECRYPT_MODE, key, IvParameterSpec(FIXED_IV))
|
|
||||||
// val decryptedBytes = cipher.doFinal(encryptedBytes)
|
|
||||||
// return String(decryptedBytes, Charsets.UTF_8)
|
|
||||||
// }
|
|
||||||
|
|
||||||
}
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user