From 53ba08f09742def3bef6271c535e25d2fff84149 Mon Sep 17 00:00:00 2001 From: r0r-5chach Date: Thu, 11 Jul 2024 10:17:50 +0100 Subject: [PATCH] init --- .editorconfig | 18 + .gitattributes | 2 + .gitignore | 122 + android/AndroidManifest.xml | 34 + android/build.gradle | 106 + android/proguard-rules.pro | 30 + android/project.properties | 9 + android/res/drawable/add_icon.xml | 9 + android/res/drawable/add_log_icon.xml | 9 + android/res/drawable/circle_button.xml | 8 + android/res/drawable/cog_icon.xml | 9 + android/res/drawable/flag_icon.xml | 10 + android/res/drawable/home_icon.xml | 9 + .../res/drawable/ic_launcher_background.xml | 170 + .../res/drawable/ic_launcher_foreground.xml | 30 + android/res/drawable/links_icon.xml | 9 + android/res/drawable/map_icon.xml | 9 + android/res/drawable/predict_icon.xml | 9 + android/res/drawable/save_icon.xml | 9 + android/res/drawable/server_icon.xml | 9 + android/res/drawable/user_icon.xml | 9 + android/res/layout/activity_main.xml | 24 + android/res/layout/fragment_account.xml | 126 + android/res/layout/fragment_camera.xml | 11 + android/res/layout/fragment_home.xml | 69 + android/res/layout/fragment_links.xml | 19 + android/res/layout/fragment_location.xml | 38 + android/res/layout/fragment_mole.xml | 292 + android/res/layout/links_list_item.xml | 20 + android/res/layout/log_list_item.xml | 6 + android/res/layout/mole_list_item.xml | 12 + android/res/mipmap-anydpi-v26/ic_launcher.xml | 6 + .../mipmap-anydpi-v26/ic_launcher_round.xml | 6 + android/res/mipmap-hdpi/ic_launcher.webp | Bin 0 -> 1404 bytes .../res/mipmap-hdpi/ic_launcher_round.webp | Bin 0 -> 2898 bytes android/res/mipmap-mdpi/ic_launcher.webp | Bin 0 -> 982 bytes .../res/mipmap-mdpi/ic_launcher_round.webp | Bin 0 -> 1772 bytes android/res/mipmap-xhdpi/ic_launcher.webp | Bin 0 -> 1900 bytes .../res/mipmap-xhdpi/ic_launcher_round.webp | Bin 0 -> 3918 bytes android/res/mipmap-xxhdpi/ic_launcher.webp | Bin 0 -> 2884 bytes .../res/mipmap-xxhdpi/ic_launcher_round.webp | Bin 0 -> 5914 bytes android/res/mipmap-xxxhdpi/ic_launcher.webp | Bin 0 -> 3844 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.webp | Bin 0 -> 7778 bytes android/res/values-night/themes.xml | 17 + android/res/values/colors.xml | 10 + android/res/values/strings.xml | 48 + android/res/values/themes.xml | 17 + android/res/xml/backup_rules.xml | 13 + android/res/xml/data_extraction_rules.xml | 19 + android/res/xml/preferences.xml | 31 + .../dermy_app/ExampleInstrumentedTest.kt | 24 + .../r0r5chach/dermy_app/ExampleUnitTest.kt | 17 + .../r0r5chach/dermy_app/AccountPreference.kt | 181 + .../xyz/r0r5chach/dermy_app/LinksAdapter.kt | 66 + .../xyz/r0r5chach/dermy_app/LogsAdapter.kt | 43 + .../xyz/r0r5chach/dermy_app/MainActivity.kt | 50 + .../xyz/r0r5chach/dermy_app/MolesAdapter.kt | 47 + .../xyz/r0r5chach/dermy_app/PredictionMode.kt | 7 + .../xyz/r0r5chach/dermy_app/api/DermyApi.kt | 13 + .../dermy_app/api/DermyApiService.kt | 31 + .../xyz/r0r5chach/dermy_app/api/Prediction.kt | 8 + .../xyz/r0r5chach/dermy_app/db/DBProcess.kt | 9 + .../r0r5chach/dermy_app/db/DermyDatabase.kt | 37 + .../xyz/r0r5chach/dermy_app/db/Entities.kt | 23 + .../src/xyz/r0r5chach/dermy_app/db/Tables.kt | 6 + .../dermy_app/fragments/CameraFragment.kt | 127 + .../dermy_app/fragments/HomeFragment.kt | 62 + .../dermy_app/fragments/LinksFragment.kt | 20 + .../dermy_app/fragments/LocationFragment.kt | 58 + .../dermy_app/fragments/MoleFragment.kt | 142 + .../dermy_app/fragments/SettingsFragment.kt | 31 + .../xyz/r0r5chach/dermy_app/map/BodyMap.kt | 114 + .../dermy_app/map/MapCameraController.kt | 84 + .../r0r5chach/dermy_app/map/MapEnvironment.kt | 21 + .../r0r5chach/dermy_app/map/MapFragment.kt | 55 + .../src/xyz/r0r5chach/dermy_app/map/Mode.kt | 6 + .../dermy_app/map/locations/BodyPart.kt | 37 + .../dermy_app/map/locations/Location.kt | 8 + .../r0r5chach/dermy_app/map/locations/Side.kt | 7 + assets/body.blend | Bin 0 -> 3172048 bytes assets/body.blend1 | Bin 0 -> 3167952 bytes assets/human.mtl | 12 + assets/human.obj | 78032 ++++++++++++++++ build.gradle | 107 + gradle.properties | 8 + settings.gradle | 1 + 86 files changed, 80907 insertions(+) create mode 100644 .editorconfig create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 android/AndroidManifest.xml create mode 100644 android/build.gradle create mode 100644 android/proguard-rules.pro create mode 100644 android/project.properties create mode 100644 android/res/drawable/add_icon.xml create mode 100644 android/res/drawable/add_log_icon.xml create mode 100644 android/res/drawable/circle_button.xml create mode 100644 android/res/drawable/cog_icon.xml create mode 100644 android/res/drawable/flag_icon.xml create mode 100644 android/res/drawable/home_icon.xml create mode 100644 android/res/drawable/ic_launcher_background.xml create mode 100644 android/res/drawable/ic_launcher_foreground.xml create mode 100644 android/res/drawable/links_icon.xml create mode 100644 android/res/drawable/map_icon.xml create mode 100644 android/res/drawable/predict_icon.xml create mode 100644 android/res/drawable/save_icon.xml create mode 100644 android/res/drawable/server_icon.xml create mode 100644 android/res/drawable/user_icon.xml create mode 100644 android/res/layout/activity_main.xml create mode 100644 android/res/layout/fragment_account.xml create mode 100644 android/res/layout/fragment_camera.xml create mode 100644 android/res/layout/fragment_home.xml create mode 100644 android/res/layout/fragment_links.xml create mode 100644 android/res/layout/fragment_location.xml create mode 100644 android/res/layout/fragment_mole.xml create mode 100644 android/res/layout/links_list_item.xml create mode 100644 android/res/layout/log_list_item.xml create mode 100644 android/res/layout/mole_list_item.xml create mode 100644 android/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 android/res/mipmap-anydpi-v26/ic_launcher_round.xml create mode 100644 android/res/mipmap-hdpi/ic_launcher.webp create mode 100644 android/res/mipmap-hdpi/ic_launcher_round.webp create mode 100644 android/res/mipmap-mdpi/ic_launcher.webp create mode 100644 android/res/mipmap-mdpi/ic_launcher_round.webp create mode 100644 android/res/mipmap-xhdpi/ic_launcher.webp create mode 100644 android/res/mipmap-xhdpi/ic_launcher_round.webp create mode 100644 android/res/mipmap-xxhdpi/ic_launcher.webp create mode 100644 android/res/mipmap-xxhdpi/ic_launcher_round.webp create mode 100644 android/res/mipmap-xxxhdpi/ic_launcher.webp create mode 100644 android/res/mipmap-xxxhdpi/ic_launcher_round.webp create mode 100644 android/res/values-night/themes.xml create mode 100644 android/res/values/colors.xml create mode 100644 android/res/values/strings.xml create mode 100644 android/res/values/themes.xml create mode 100644 android/res/xml/backup_rules.xml create mode 100644 android/res/xml/data_extraction_rules.xml create mode 100644 android/res/xml/preferences.xml create mode 100644 android/src/androidTest/java/xyz/r0r5chach/dermy_app/ExampleInstrumentedTest.kt create mode 100644 android/src/test/java/xyz/r0r5chach/dermy_app/ExampleUnitTest.kt create mode 100644 android/src/xyz/r0r5chach/dermy_app/AccountPreference.kt create mode 100644 android/src/xyz/r0r5chach/dermy_app/LinksAdapter.kt create mode 100644 android/src/xyz/r0r5chach/dermy_app/LogsAdapter.kt create mode 100644 android/src/xyz/r0r5chach/dermy_app/MainActivity.kt create mode 100644 android/src/xyz/r0r5chach/dermy_app/MolesAdapter.kt create mode 100644 android/src/xyz/r0r5chach/dermy_app/PredictionMode.kt create mode 100644 android/src/xyz/r0r5chach/dermy_app/api/DermyApi.kt create mode 100644 android/src/xyz/r0r5chach/dermy_app/api/DermyApiService.kt create mode 100644 android/src/xyz/r0r5chach/dermy_app/api/Prediction.kt create mode 100644 android/src/xyz/r0r5chach/dermy_app/db/DBProcess.kt create mode 100644 android/src/xyz/r0r5chach/dermy_app/db/DermyDatabase.kt create mode 100644 android/src/xyz/r0r5chach/dermy_app/db/Entities.kt create mode 100644 android/src/xyz/r0r5chach/dermy_app/db/Tables.kt create mode 100644 android/src/xyz/r0r5chach/dermy_app/fragments/CameraFragment.kt create mode 100644 android/src/xyz/r0r5chach/dermy_app/fragments/HomeFragment.kt create mode 100644 android/src/xyz/r0r5chach/dermy_app/fragments/LinksFragment.kt create mode 100644 android/src/xyz/r0r5chach/dermy_app/fragments/LocationFragment.kt create mode 100644 android/src/xyz/r0r5chach/dermy_app/fragments/MoleFragment.kt create mode 100644 android/src/xyz/r0r5chach/dermy_app/fragments/SettingsFragment.kt create mode 100644 android/src/xyz/r0r5chach/dermy_app/map/BodyMap.kt create mode 100644 android/src/xyz/r0r5chach/dermy_app/map/MapCameraController.kt create mode 100644 android/src/xyz/r0r5chach/dermy_app/map/MapEnvironment.kt create mode 100644 android/src/xyz/r0r5chach/dermy_app/map/MapFragment.kt create mode 100644 android/src/xyz/r0r5chach/dermy_app/map/Mode.kt create mode 100644 android/src/xyz/r0r5chach/dermy_app/map/locations/BodyPart.kt create mode 100644 android/src/xyz/r0r5chach/dermy_app/map/locations/Location.kt create mode 100644 android/src/xyz/r0r5chach/dermy_app/map/locations/Side.kt create mode 100644 assets/body.blend create mode 100644 assets/body.blend1 create mode 100644 assets/human.mtl create mode 100644 assets/human.obj create mode 100644 build.gradle create mode 100644 gradle.properties create mode 100644 settings.gradle diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..67df35c --- /dev/null +++ b/.editorconfig @@ -0,0 +1,18 @@ +# https://editorconfig.org +root = true + +[*] +indent_style = space +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +[*.{java,scala,groovy,kt,kts}] +indent_size = 4 + +[*.gradle] +indent_size = 2 + +[*.md] +trim_trailing_whitespace = false diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..6c84be0 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +* text=auto eol=lf +*.bat text=auto eol=crlf diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5662ca5 --- /dev/null +++ b/.gitignore @@ -0,0 +1,122 @@ +/core/ +/build/ +/gradle/ +/gradlew +/local.properties +/gradlew.bat + + +## Java + +*.class +*.war +*.ear +hs_err_pid* + +## Robovm +/ios/robovm-build/ + +## GWT +/html/war/ +/html/gwt-unitCache/ +.apt_generated/ +.gwt/ +gwt-unitCache/ +www-test/ +.gwt-tmp/ + +## Android Studio and Intellij and Android in general +/android/libs/armeabi-v7a/ +/android/libs/arm64-v8a/ +/android/libs/x86/ +/android/libs/x86_64/ +/android/gen/ +.idea/ +*.ipr +*.iws +*.iml +/android/out/ +com_crashlytics_export_strings.xml + +## Eclipse + +.classpath +.project +.metadata/ +/android/bin/ +/core/bin/ +/desktop/bin/ +/html/bin/ +/ios/bin/ +*.tmp +*.bak +*.swp +*~.nib +.settings/ +.loadpath +.externalToolBuilders/ +*.launch + +## NetBeans + +/nbproject/private/ +/android/nbproject/private/ +/core/nbproject/private/ +/desktop/nbproject/private/ +/html/nbproject/private/ +/ios/nbproject/private/ + +/build/ +/android/build/ +/core/build/ +/desktop/build/ +/html/build/ +/ios/build/ + +/nbbuild/ +/android/nbbuild/ +/core/nbbuild/ +/desktop/nbbuild/ +/html/nbbuild/ +/ios/nbbuild/ + +/dist/ +/android/dist/ +/core/dist/ +/desktop/dist/ +/html/dist/ +/ios/dist/ + +/nbdist/ +/android/nbdist/ +/core/nbdist/ +/desktop/nbdist/ +/html/nbdist/ +/ios/nbdist/ + +nbactions.xml +nb-configuration.xml + +## Gradle + +/local.properties +.gradle/ +gradle-app.setting +/build/ +/android/build/ +/core/build/ +/desktop/build/ +/html/build/ +/ios/build/ + +## OS Specific +.DS_Store +Thumbs.db + +## iOS +/ios/xcode/*.xcodeproj/* +!/ios/xcode/*.xcodeproj/xcshareddata +!/ios/xcode/*.xcodeproj/project.pbxproj +/ios/xcode/native/ +/ios/IOSLauncher.app +/ios/IOSLauncher.app.dSYM diff --git a/android/AndroidManifest.xml b/android/AndroidManifest.xml new file mode 100644 index 0000000..818ea46 --- /dev/null +++ b/android/AndroidManifest.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + diff --git a/android/build.gradle b/android/build.gradle new file mode 100644 index 0000000..33d1e59 --- /dev/null +++ b/android/build.gradle @@ -0,0 +1,106 @@ +android { + namespace "xyz.r0r5chach.dermy_app" + compileSdk 35 + sourceSets { + main { + manifest.srcFile 'AndroidManifest.xml' + java.srcDirs = ['src'] + aidl.srcDirs = ['src'] + renderscript.srcDirs = ['src'] + res.srcDirs = ['res'] + assets.srcDirs = ['../assets'] + jniLibs.srcDirs = ['libs'] + } + + } + packagingOptions { + exclude 'META-INF/robovm/ios/robovm.xml' + exclude 'META-INF/native-image/org.mongodb/bson/native-image.properties' + } + defaultConfig { + applicationId "xyz.r0r5chach.dermy_app" + minSdkVersion 26 + targetSdkVersion 35 + versionCode 1 + versionName "1.0" + } + buildTypes { + release { + minifyEnabled true + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } + buildFeatures { + renderScript true + aidl true + } + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + coreLibraryDesugaringEnabled false + } + kotlinOptions { + jvmTarget = "1.8" + } +} + +dependencies { + implementation "androidx.room:room-ktx:$roomVersion" + implementation "androidx.room:room-runtime:$roomVersion" + ksp "androidx.room:room-compiler:$roomVersion" +} + +// called every time gradle gets executed, takes the native dependencies of +// the natives configuration, and extracts them to the proper libs/ folders +// so they get packed with the APK. +tasks.register('copyAndroidNatives') { + doFirst { + file("libs/armeabi-v7a/").mkdirs() + file("libs/arm64-v8a/").mkdirs() + file("libs/x86_64/").mkdirs() + file("libs/x86/").mkdirs() + + configurations.natives.copy().files.each { jar -> + def outputDir = null + if (jar.name.endsWith("natives-arm64-v8a.jar")) outputDir = file("libs/arm64-v8a") + if (jar.name.endsWith("natives-armeabi-v7a.jar")) outputDir = file("libs/armeabi-v7a") + if (jar.name.endsWith("natives-x86_64.jar")) outputDir = file("libs/x86_64") + if (jar.name.endsWith("natives-x86.jar")) outputDir = file("libs/x86") + if (outputDir != null) { + copy { + from zipTree(jar) + into outputDir + include "*.so" + } + } + } + } +} + +tasks.matching { it.name.contains("merge") && it.name.contains("JniLibFolders") }.configureEach { packageTask -> + packageTask.dependsOn 'copyAndroidNatives' +} + +tasks.register('run', Exec) { + def path + def localProperties = project.file("../local.properties") + if (localProperties.exists()) { + Properties properties = new Properties() + localProperties.withInputStream { instr -> + properties.load(instr) + } + def sdkDir = properties.getProperty('sdk.dir') + if (sdkDir) { + path = sdkDir + } else { + path = "$System.env.ANDROID_HOME" + } + } else { + path = "$System.env.ANDROID_HOME" + } + + def adb = path + "/platform-tools/adb" + commandLine "$adb", 'shell', 'am', 'start', '-n', 'xyz.r0r5chach.dermy_app/xyz.r0r5chach.dermy_app.MainActivity' +} + +eclipse.project.name = appName + "-android" diff --git a/android/proguard-rules.pro b/android/proguard-rules.pro new file mode 100644 index 0000000..1b074de --- /dev/null +++ b/android/proguard-rules.pro @@ -0,0 +1,30 @@ +# To enable ProGuard in your project, edit project.properties +# to define the proguard.config property as described in that file. +# +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in ${sdk.dir}/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the ProGuard +# include property in project.properties. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +-verbose + +-dontwarn com.badlogic.gdx.backends.android.AndroidFragmentApplication + +# Required if using Gdx-Controllers extension + +# Required if using Box2D extension +-keep class androidx.room.* { *; } +-dontwarn androidx.room.** diff --git a/android/project.properties b/android/project.properties new file mode 100644 index 0000000..3fefa92 --- /dev/null +++ b/android/project.properties @@ -0,0 +1,9 @@ +# This file is used by the Eclipse ADT plugin. It is unnecessary for IDEA and Android Studio projects, which +# configure Proguard and the Android target via the build.gradle file. + +# To enable ProGuard to work with Eclipse ADT, uncomment this (available properties: sdk.dir, user.home) +# and ensure proguard.jar in the Android SDK is up to date (or alternately reduce the android target to 23 or lower): +# proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-rules.pro + +# Project target. +target=android-19 diff --git a/android/res/drawable/add_icon.xml b/android/res/drawable/add_icon.xml new file mode 100644 index 0000000..60089dc --- /dev/null +++ b/android/res/drawable/add_icon.xml @@ -0,0 +1,9 @@ + + + diff --git a/android/res/drawable/add_log_icon.xml b/android/res/drawable/add_log_icon.xml new file mode 100644 index 0000000..195c7f9 --- /dev/null +++ b/android/res/drawable/add_log_icon.xml @@ -0,0 +1,9 @@ + + + diff --git a/android/res/drawable/circle_button.xml b/android/res/drawable/circle_button.xml new file mode 100644 index 0000000..2834562 --- /dev/null +++ b/android/res/drawable/circle_button.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/android/res/drawable/cog_icon.xml b/android/res/drawable/cog_icon.xml new file mode 100644 index 0000000..0d0900b --- /dev/null +++ b/android/res/drawable/cog_icon.xml @@ -0,0 +1,9 @@ + + + diff --git a/android/res/drawable/flag_icon.xml b/android/res/drawable/flag_icon.xml new file mode 100644 index 0000000..04a8308 --- /dev/null +++ b/android/res/drawable/flag_icon.xml @@ -0,0 +1,10 @@ + + + + \ No newline at end of file diff --git a/android/res/drawable/home_icon.xml b/android/res/drawable/home_icon.xml new file mode 100644 index 0000000..61bcb61 --- /dev/null +++ b/android/res/drawable/home_icon.xml @@ -0,0 +1,9 @@ + + + diff --git a/android/res/drawable/ic_launcher_background.xml b/android/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..07d5da9 --- /dev/null +++ b/android/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/android/res/drawable/ic_launcher_foreground.xml b/android/res/drawable/ic_launcher_foreground.xml new file mode 100644 index 0000000..2b068d1 --- /dev/null +++ b/android/res/drawable/ic_launcher_foreground.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/android/res/drawable/links_icon.xml b/android/res/drawable/links_icon.xml new file mode 100644 index 0000000..7e304ab --- /dev/null +++ b/android/res/drawable/links_icon.xml @@ -0,0 +1,9 @@ + + + \ No newline at end of file diff --git a/android/res/drawable/map_icon.xml b/android/res/drawable/map_icon.xml new file mode 100644 index 0000000..94a196e --- /dev/null +++ b/android/res/drawable/map_icon.xml @@ -0,0 +1,9 @@ + + + diff --git a/android/res/drawable/predict_icon.xml b/android/res/drawable/predict_icon.xml new file mode 100644 index 0000000..101728a --- /dev/null +++ b/android/res/drawable/predict_icon.xml @@ -0,0 +1,9 @@ + + + diff --git a/android/res/drawable/save_icon.xml b/android/res/drawable/save_icon.xml new file mode 100644 index 0000000..1e50522 --- /dev/null +++ b/android/res/drawable/save_icon.xml @@ -0,0 +1,9 @@ + + + diff --git a/android/res/drawable/server_icon.xml b/android/res/drawable/server_icon.xml new file mode 100644 index 0000000..5b4c19b --- /dev/null +++ b/android/res/drawable/server_icon.xml @@ -0,0 +1,9 @@ + + + \ No newline at end of file diff --git a/android/res/drawable/user_icon.xml b/android/res/drawable/user_icon.xml new file mode 100644 index 0000000..767997c --- /dev/null +++ b/android/res/drawable/user_icon.xml @@ -0,0 +1,9 @@ + + + \ No newline at end of file diff --git a/android/res/layout/activity_main.xml b/android/res/layout/activity_main.xml new file mode 100644 index 0000000..45f7714 --- /dev/null +++ b/android/res/layout/activity_main.xml @@ -0,0 +1,24 @@ + + + + + + + + diff --git a/android/res/layout/fragment_account.xml b/android/res/layout/fragment_account.xml new file mode 100644 index 0000000..bfca064 --- /dev/null +++ b/android/res/layout/fragment_account.xml @@ -0,0 +1,126 @@ + + + + + + + +