diff --git a/EurekaApp/.gitignore b/EurekaApp/.gitignore new file mode 100644 index 00000000..ebdd23d2 --- /dev/null +++ b/EurekaApp/.gitignore @@ -0,0 +1,14 @@ +*.iml +.gradle +/local.properties +/.idea/caches +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.DS_Store +/build +/captures +.externalNativeBuild +.cxx diff --git a/EurekaApp/.idea/.name b/EurekaApp/.idea/.name new file mode 100644 index 00000000..726eb3d7 --- /dev/null +++ b/EurekaApp/.idea/.name @@ -0,0 +1 @@ +Eureka App \ No newline at end of file diff --git a/EurekaApp/.idea/codeStyles/Project.xml b/EurekaApp/.idea/codeStyles/Project.xml new file mode 100644 index 00000000..1903f0a1 --- /dev/null +++ b/EurekaApp/.idea/codeStyles/Project.xml @@ -0,0 +1,113 @@ + + + + + +
+ + + + xmlns:android + + ^$ + + + +
+
+ + + + xmlns:.* + + ^$ + + + BY_NAME + +
+
+ + + + .*:id + + http://schemas.android.com/apk/res/android + + + +
+
+ + + + .*:name + + http://schemas.android.com/apk/res/android + + + +
+
+ + + + name + + ^$ + + + +
+
+ + + + style + + ^$ + + + +
+
+ + + + .* + + ^$ + + + BY_NAME + +
+
+ + + + .* + + http://schemas.android.com/apk/res/android + + + ANDROID_ATTRIBUTE_ORDER + +
+
+ + + + .* + + .* + + + BY_NAME + +
+
+
+
+
+
\ No newline at end of file diff --git a/EurekaApp/.idea/gradle.xml b/EurekaApp/.idea/gradle.xml new file mode 100644 index 00000000..5cd135a0 --- /dev/null +++ b/EurekaApp/.idea/gradle.xml @@ -0,0 +1,20 @@ + + + + + + + \ No newline at end of file diff --git a/EurekaApp/.idea/misc.xml b/EurekaApp/.idea/misc.xml new file mode 100644 index 00000000..23cea1a2 --- /dev/null +++ b/EurekaApp/.idea/misc.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/.idea/runConfigurations.xml b/EurekaApp/.idea/runConfigurations.xml new file mode 100644 index 00000000..7f68460d --- /dev/null +++ b/EurekaApp/.idea/runConfigurations.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/EurekaApp/.idea/vcs.xml b/EurekaApp/.idea/vcs.xml new file mode 100644 index 00000000..2e3f6920 --- /dev/null +++ b/EurekaApp/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.gitignore b/EurekaApp/app/.gitignore new file mode 100644 index 00000000..3543521e --- /dev/null +++ b/EurekaApp/app/.gitignore @@ -0,0 +1 @@ +/build diff --git a/EurekaApp/app/.idea/.gitignore b/EurekaApp/app/.idea/.gitignore new file mode 100644 index 00000000..5c98b428 --- /dev/null +++ b/EurekaApp/app/.idea/.gitignore @@ -0,0 +1,2 @@ +# Default ignored files +/workspace.xml \ No newline at end of file diff --git a/EurekaApp/app/.idea/.name b/EurekaApp/app/.idea/.name new file mode 100644 index 00000000..726eb3d7 --- /dev/null +++ b/EurekaApp/app/.idea/.name @@ -0,0 +1 @@ +Eureka App \ No newline at end of file diff --git a/EurekaApp/app/.idea/assetWizardSettings.xml b/EurekaApp/app/.idea/assetWizardSettings.xml new file mode 100644 index 00000000..6d463437 --- /dev/null +++ b/EurekaApp/app/.idea/assetWizardSettings.xml @@ -0,0 +1,46 @@ + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/caches/build_file_checksums.ser b/EurekaApp/app/.idea/caches/build_file_checksums.ser new file mode 100644 index 00000000..96aa40ec Binary files /dev/null and b/EurekaApp/app/.idea/caches/build_file_checksums.ser differ diff --git a/EurekaApp/app/.idea/codeStyles/Project.xml b/EurekaApp/app/.idea/codeStyles/Project.xml new file mode 100644 index 00000000..681f41ae --- /dev/null +++ b/EurekaApp/app/.idea/codeStyles/Project.xml @@ -0,0 +1,116 @@ + + + + + + + +
+ + + + xmlns:android + + ^$ + + + +
+
+ + + + xmlns:.* + + ^$ + + + BY_NAME + +
+
+ + + + .*:id + + http://schemas.android.com/apk/res/android + + + +
+
+ + + + .*:name + + http://schemas.android.com/apk/res/android + + + +
+
+ + + + name + + ^$ + + + +
+
+ + + + style + + ^$ + + + +
+
+ + + + .* + + ^$ + + + BY_NAME + +
+
+ + + + .* + + http://schemas.android.com/apk/res/android + + + ANDROID_ATTRIBUTE_ORDER + +
+
+ + + + .* + + .* + + + BY_NAME + +
+
+
+
+
+
\ No newline at end of file diff --git a/EurekaApp/app/.idea/gradle.xml b/EurekaApp/app/.idea/gradle.xml new file mode 100644 index 00000000..e52bfdfc --- /dev/null +++ b/EurekaApp/app/.idea/gradle.xml @@ -0,0 +1,20 @@ + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_activity_activity_1_1_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_activity_activity_1_1_0_aar.xml new file mode 100644 index 00000000..f11b9822 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_activity_activity_1_1_0_aar.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_annotation_annotation_1_1_0_jar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_annotation_annotation_1_1_0_jar.xml new file mode 100644 index 00000000..5b17db61 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_annotation_annotation_1_1_0_jar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_appcompat_appcompat_1_1_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_appcompat_appcompat_1_1_0_aar.xml new file mode 100644 index 00000000..e1319e25 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_appcompat_appcompat_1_1_0_aar.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_appcompat_appcompat_resources_1_1_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_appcompat_appcompat_resources_1_1_0_aar.xml new file mode 100644 index 00000000..c414b56c --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_appcompat_appcompat_resources_1_1_0_aar.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_arch_core_core_common_2_1_0_jar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_arch_core_core_common_2_1_0_jar.xml new file mode 100644 index 00000000..a7f501b6 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_arch_core_core_common_2_1_0_jar.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_arch_core_core_runtime_2_1_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_arch_core_core_runtime_2_1_0_aar.xml new file mode 100644 index 00000000..f3fa26ea --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_arch_core_core_runtime_2_1_0_aar.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_asynclayoutinflater_asynclayoutinflater_1_0_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_asynclayoutinflater_asynclayoutinflater_1_0_0_aar.xml new file mode 100644 index 00000000..26e789bd --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_asynclayoutinflater_asynclayoutinflater_1_0_0_aar.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_cardview_cardview_1_0_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_cardview_cardview_1_0_0_aar.xml new file mode 100644 index 00000000..d646bd2b --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_cardview_cardview_1_0_0_aar.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_collection_collection_1_1_0_jar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_collection_collection_1_1_0_jar.xml new file mode 100644 index 00000000..ecb16c34 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_collection_collection_1_1_0_jar.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_constraintlayout_constraintlayout_1_1_3_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_constraintlayout_constraintlayout_1_1_3_aar.xml new file mode 100644 index 00000000..9d18c990 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_constraintlayout_constraintlayout_1_1_3_aar.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_constraintlayout_constraintlayout_solver_1_1_3_jar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_constraintlayout_constraintlayout_solver_1_1_3_jar.xml new file mode 100644 index 00000000..f92fb426 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_constraintlayout_constraintlayout_solver_1_1_3_jar.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_coordinatorlayout_coordinatorlayout_1_1_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_coordinatorlayout_coordinatorlayout_1_1_0_aar.xml new file mode 100644 index 00000000..6a04aaa3 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_coordinatorlayout_coordinatorlayout_1_1_0_aar.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_core_core_1_1_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_core_core_1_1_0_aar.xml new file mode 100644 index 00000000..eb2d2db6 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_core_core_1_1_0_aar.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_cursoradapter_cursoradapter_1_0_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_cursoradapter_cursoradapter_1_0_0_aar.xml new file mode 100644 index 00000000..ef114428 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_cursoradapter_cursoradapter_1_0_0_aar.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_customview_customview_1_0_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_customview_customview_1_0_0_aar.xml new file mode 100644 index 00000000..f29a9980 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_customview_customview_1_0_0_aar.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_documentfile_documentfile_1_0_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_documentfile_documentfile_1_0_0_aar.xml new file mode 100644 index 00000000..cdedcb42 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_documentfile_documentfile_1_0_0_aar.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_drawerlayout_drawerlayout_1_0_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_drawerlayout_drawerlayout_1_0_0_aar.xml new file mode 100644 index 00000000..6c317919 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_drawerlayout_drawerlayout_1_0_0_aar.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_fragment_fragment_1_2_1_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_fragment_fragment_1_2_1_aar.xml new file mode 100644 index 00000000..82601be5 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_fragment_fragment_1_2_1_aar.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_interpolator_interpolator_1_0_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_interpolator_interpolator_1_0_0_aar.xml new file mode 100644 index 00000000..2f1959ce --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_interpolator_interpolator_1_0_0_aar.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_legacy_legacy_support_core_ui_1_0_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_legacy_legacy_support_core_ui_1_0_0_aar.xml new file mode 100644 index 00000000..acd4c1b7 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_legacy_legacy_support_core_ui_1_0_0_aar.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_legacy_legacy_support_core_utils_1_0_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_legacy_legacy_support_core_utils_1_0_0_aar.xml new file mode 100644 index 00000000..f3b3dfbf --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_legacy_legacy_support_core_utils_1_0_0_aar.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_legacy_legacy_support_v4_1_0_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_legacy_legacy_support_v4_1_0_0_aar.xml new file mode 100644 index 00000000..f02af47d --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_legacy_legacy_support_v4_1_0_0_aar.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_common_2_2_0_jar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_common_2_2_0_jar.xml new file mode 100644 index 00000000..26073f88 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_common_2_2_0_jar.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_extensions_2_2_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_extensions_2_2_0_aar.xml new file mode 100644 index 00000000..8ea862e0 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_extensions_2_2_0_aar.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_2_2_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_2_2_0_aar.xml new file mode 100644 index 00000000..67ef8a4f --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_2_2_0_aar.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_core_2_2_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_core_2_2_0_aar.xml new file mode 100644 index 00000000..12293427 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_core_2_2_0_aar.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_process_2_2_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_process_2_2_0_aar.xml new file mode 100644 index 00000000..561db1c9 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_process_2_2_0_aar.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_runtime_2_2_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_runtime_2_2_0_aar.xml new file mode 100644 index 00000000..75f781c1 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_runtime_2_2_0_aar.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_service_2_2_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_service_2_2_0_aar.xml new file mode 100644 index 00000000..23a46028 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_service_2_2_0_aar.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_2_2_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_2_2_0_aar.xml new file mode 100644 index 00000000..61140162 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_2_2_0_aar.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_savedstate_2_2_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_savedstate_2_2_0_aar.xml new file mode 100644 index 00000000..c9566d89 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_savedstate_2_2_0_aar.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_loader_loader_1_0_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_loader_loader_1_0_0_aar.xml new file mode 100644 index 00000000..c8ad8001 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_loader_loader_1_0_0_aar.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_localbroadcastmanager_localbroadcastmanager_1_0_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_localbroadcastmanager_localbroadcastmanager_1_0_0_aar.xml new file mode 100644 index 00000000..98b64593 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_localbroadcastmanager_localbroadcastmanager_1_0_0_aar.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_media_media_1_0_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_media_media_1_0_0_aar.xml new file mode 100644 index 00000000..5be03fbd --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_media_media_1_0_0_aar.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_navigation_navigation_common_2_2_1_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_navigation_navigation_common_2_2_1_aar.xml new file mode 100644 index 00000000..a7d87dae --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_navigation_navigation_common_2_2_1_aar.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_navigation_navigation_fragment_2_2_1_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_navigation_navigation_fragment_2_2_1_aar.xml new file mode 100644 index 00000000..e59ad722 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_navigation_navigation_fragment_2_2_1_aar.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_navigation_navigation_runtime_2_2_1_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_navigation_navigation_runtime_2_2_1_aar.xml new file mode 100644 index 00000000..31d99c45 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_navigation_navigation_runtime_2_2_1_aar.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_navigation_navigation_ui_2_2_1_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_navigation_navigation_ui_2_2_1_aar.xml new file mode 100644 index 00000000..4970830d --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_navigation_navigation_ui_2_2_1_aar.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_print_print_1_0_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_print_print_1_0_0_aar.xml new file mode 100644 index 00000000..7322eb45 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_print_print_1_0_0_aar.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_recyclerview_recyclerview_1_1_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_recyclerview_recyclerview_1_1_0_aar.xml new file mode 100644 index 00000000..f1e9c7aa --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_recyclerview_recyclerview_1_1_0_aar.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_savedstate_savedstate_1_0_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_savedstate_savedstate_1_0_0_aar.xml new file mode 100644 index 00000000..f73916c4 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_savedstate_savedstate_1_0_0_aar.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_slidingpanelayout_slidingpanelayout_1_0_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_slidingpanelayout_slidingpanelayout_1_0_0_aar.xml new file mode 100644 index 00000000..b11a6ec5 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_slidingpanelayout_slidingpanelayout_1_0_0_aar.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_swiperefreshlayout_swiperefreshlayout_1_0_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_swiperefreshlayout_swiperefreshlayout_1_0_0_aar.xml new file mode 100644 index 00000000..40b91b22 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_swiperefreshlayout_swiperefreshlayout_1_0_0_aar.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_test_core_1_2_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_test_core_1_2_0_aar.xml new file mode 100644 index 00000000..e6c6020f --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_test_core_1_2_0_aar.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_test_espresso_espresso_core_3_2_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_test_espresso_espresso_core_3_2_0_aar.xml new file mode 100644 index 00000000..e043bfe9 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_test_espresso_espresso_core_3_2_0_aar.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_test_espresso_espresso_idling_resource_3_2_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_test_espresso_espresso_idling_resource_3_2_0_aar.xml new file mode 100644 index 00000000..74021a44 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_test_espresso_espresso_idling_resource_3_2_0_aar.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_test_ext_junit_1_1_1_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_test_ext_junit_1_1_1_aar.xml new file mode 100644 index 00000000..3d3b7a75 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_test_ext_junit_1_1_1_aar.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_test_monitor_1_2_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_test_monitor_1_2_0_aar.xml new file mode 100644 index 00000000..2ddefccf --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_test_monitor_1_2_0_aar.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_test_runner_1_2_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_test_runner_1_2_0_aar.xml new file mode 100644 index 00000000..d41b9285 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_test_runner_1_2_0_aar.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_transition_transition_1_2_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_transition_transition_1_2_0_aar.xml new file mode 100644 index 00000000..f20e6008 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_transition_transition_1_2_0_aar.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_1_1_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_1_1_0_aar.xml new file mode 100644 index 00000000..9ce1dc06 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_1_1_0_aar.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_animated_1_1_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_animated_1_1_0_aar.xml new file mode 100644 index 00000000..4563e86c --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_animated_1_1_0_aar.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_versionedparcelable_versionedparcelable_1_1_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_versionedparcelable_versionedparcelable_1_1_0_aar.xml new file mode 100644 index 00000000..19056010 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_versionedparcelable_versionedparcelable_1_1_0_aar.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_viewpager2_viewpager2_1_0_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_viewpager2_viewpager2_1_0_0_aar.xml new file mode 100644 index 00000000..58f0a26c --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_viewpager2_viewpager2_1_0_0_aar.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__androidx_viewpager_viewpager_1_0_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__androidx_viewpager_viewpager_1_0_0_aar.xml new file mode 100644 index 00000000..a33bd3bf --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__androidx_viewpager_viewpager_1_0_0_aar.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__com_android_volley_volley_1_1_1_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__com_android_volley_volley_1_1_1_aar.xml new file mode 100644 index 00000000..7f135ab4 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__com_android_volley_volley_1_1_1_aar.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__com_google_android_gms_play_services_base_17_0_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__com_google_android_gms_play_services_base_17_0_0_aar.xml new file mode 100644 index 00000000..6d5c75a3 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__com_google_android_gms_play_services_base_17_0_0_aar.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__com_google_android_gms_play_services_basement_17_0_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__com_google_android_gms_play_services_basement_17_0_0_aar.xml new file mode 100644 index 00000000..91b919c7 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__com_google_android_gms_play_services_basement_17_0_0_aar.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__com_google_android_gms_play_services_location_17_0_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__com_google_android_gms_play_services_location_17_0_0_aar.xml new file mode 100644 index 00000000..0f344bf5 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__com_google_android_gms_play_services_location_17_0_0_aar.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__com_google_android_gms_play_services_maps_17_0_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__com_google_android_gms_play_services_maps_17_0_0_aar.xml new file mode 100644 index 00000000..b9969761 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__com_google_android_gms_play_services_maps_17_0_0_aar.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__com_google_android_gms_play_services_places_placereport_17_0_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__com_google_android_gms_play_services_places_placereport_17_0_0_aar.xml new file mode 100644 index 00000000..261b342e --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__com_google_android_gms_play_services_places_placereport_17_0_0_aar.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__com_google_android_gms_play_services_tasks_17_0_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__com_google_android_gms_play_services_tasks_17_0_0_aar.xml new file mode 100644 index 00000000..98429653 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__com_google_android_gms_play_services_tasks_17_0_0_aar.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__com_google_android_material_material_1_1_0_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__com_google_android_material_material_1_1_0_aar.xml new file mode 100644 index 00000000..0e8ca456 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__com_google_android_material_material_1_1_0_aar.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_2_0_1_jar.xml b/EurekaApp/app/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_2_0_1_jar.xml new file mode 100644 index 00000000..947e2512 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_2_0_1_jar.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__com_google_code_gson_gson_2_3_jar.xml b/EurekaApp/app/.idea/libraries/Gradle__com_google_code_gson_gson_2_3_jar.xml new file mode 100644 index 00000000..445518ea --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__com_google_code_gson_gson_2_3_jar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__com_jjoe64_graphview_4_2_2_aar.xml b/EurekaApp/app/.idea/libraries/Gradle__com_jjoe64_graphview_4_2_2_aar.xml new file mode 100644 index 00000000..f03b1841 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__com_jjoe64_graphview_4_2_2_aar.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__com_koushikdutta_async_androidasync_2_0_0_jar.xml b/EurekaApp/app/.idea/libraries/Gradle__com_koushikdutta_async_androidasync_2_0_0_jar.xml new file mode 100644 index 00000000..9aa452c5 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__com_koushikdutta_async_androidasync_2_0_0_jar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__com_koushikdutta_ion_ion_2_0_0_jar.xml b/EurekaApp/app/.idea/libraries/Gradle__com_koushikdutta_ion_ion_2_0_0_jar.xml new file mode 100644 index 00000000..4d0d7545 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__com_koushikdutta_ion_ion_2_0_0_jar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__com_squareup_javawriter_2_1_1_jar.xml b/EurekaApp/app/.idea/libraries/Gradle__com_squareup_javawriter_2_1_1_jar.xml new file mode 100644 index 00000000..f97c138c --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__com_squareup_javawriter_2_1_1_jar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_3_10_0_jar.xml b/EurekaApp/app/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_3_10_0_jar.xml new file mode 100644 index 00000000..ffed7c4f --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_3_10_0_jar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__com_squareup_okio_okio_1_14_0_jar.xml b/EurekaApp/app/.idea/libraries/Gradle__com_squareup_okio_okio_1_14_0_jar.xml new file mode 100644 index 00000000..6f8fadf6 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__com_squareup_okio_okio_1_14_0_jar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__javax_inject_javax_inject_1_jar.xml b/EurekaApp/app/.idea/libraries/Gradle__javax_inject_javax_inject_1_jar.xml new file mode 100644 index 00000000..5ac7d7b4 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__javax_inject_javax_inject_1_jar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__junit_junit_4_12_jar.xml b/EurekaApp/app/.idea/libraries/Gradle__junit_junit_4_12_jar.xml new file mode 100644 index 00000000..24e5b72d --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__junit_junit_4_12_jar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__net_sf_kxml_kxml2_2_3_0_jar.xml b/EurekaApp/app/.idea/libraries/Gradle__net_sf_kxml_kxml2_2_3_0_jar.xml new file mode 100644 index 00000000..ddd26354 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__net_sf_kxml_kxml2_2_3_0_jar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3_jar.xml b/EurekaApp/app/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3_jar.xml new file mode 100644 index 00000000..6b1e2e76 --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3_jar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__org_hamcrest_hamcrest_integration_1_3_jar.xml b/EurekaApp/app/.idea/libraries/Gradle__org_hamcrest_hamcrest_integration_1_3_jar.xml new file mode 100644 index 00000000..a8015c9b --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__org_hamcrest_hamcrest_integration_1_3_jar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/libraries/Gradle__org_hamcrest_hamcrest_library_1_3_jar.xml b/EurekaApp/app/.idea/libraries/Gradle__org_hamcrest_hamcrest_library_1_3_jar.xml new file mode 100644 index 00000000..00bb125e --- /dev/null +++ b/EurekaApp/app/.idea/libraries/Gradle__org_hamcrest_hamcrest_library_1_3_jar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/misc.xml b/EurekaApp/app/.idea/misc.xml new file mode 100644 index 00000000..7bfef59d --- /dev/null +++ b/EurekaApp/app/.idea/misc.xml @@ -0,0 +1,9 @@ + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/modules.xml b/EurekaApp/app/.idea/modules.xml new file mode 100644 index 00000000..b2d57b3f --- /dev/null +++ b/EurekaApp/app/.idea/modules.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/runConfigurations.xml b/EurekaApp/app/.idea/runConfigurations.xml new file mode 100644 index 00000000..7f68460d --- /dev/null +++ b/EurekaApp/app/.idea/runConfigurations.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/.idea/vcs.xml b/EurekaApp/app/.idea/vcs.xml new file mode 100644 index 00000000..b2bdec2d --- /dev/null +++ b/EurekaApp/app/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/build.gradle b/EurekaApp/app/build.gradle new file mode 100644 index 00000000..615b77fc --- /dev/null +++ b/EurekaApp/app/build.gradle @@ -0,0 +1,60 @@ +apply plugin: 'com.android.application' + +android { + compileSdkVersion 29 + buildToolsVersion "29.0.3" + + defaultConfig { + applicationId "com.example.eurekaapp" + minSdkVersion 27 + targetSdkVersion 29 + versionCode 1 + versionName "1.0" + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + compileOptions { + targetCompatibility = 1.8 + sourceCompatibility = 1.8 + } + +} +allprojects { + repositories { + google() + + // If you're using a version of Gradle lower than 4.1, you must + // instead use: + // + // maven { + // url 'https://maven.google.com' + // } + } +} + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar']) + implementation 'androidx.appcompat:appcompat:1.1.0' + implementation 'com.google.android.material:material:1.1.0' + implementation 'com.google.android.material:material:1.1.0' + implementation 'androidx.constraintlayout:constraintlayout:1.1.3' + implementation 'androidx.navigation:navigation-fragment:2.2.1' + implementation 'androidx.navigation:navigation-ui:2.2.1' + implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0' + testImplementation 'junit:junit:4.12' + androidTestImplementation 'androidx.test.ext:junit:1.1.1' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' + implementation 'com.jjoe64:graphview:4.2.2' + implementation 'com.squareup.okhttp3:okhttp:3.10.0' + implementation 'com.koushikdutta.ion:ion:2.0.0' + implementation 'com.android.volley:volley:1.1.1' + implementation 'com.google.android.gms:play-services-location:17.0.0' + implementation 'com.google.android.gms:play-services-maps:17.0.0' +} diff --git a/EurekaApp/app/gradle/wrapper/gradle-wrapper.jar b/EurekaApp/app/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 00000000..f6b961fd Binary files /dev/null and b/EurekaApp/app/gradle/wrapper/gradle-wrapper.jar differ diff --git a/EurekaApp/app/gradle/wrapper/gradle-wrapper.properties b/EurekaApp/app/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 00000000..e0d79447 --- /dev/null +++ b/EurekaApp/app/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Mon Apr 13 17:10:22 AEST 2020 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip diff --git a/EurekaApp/app/gradlew b/EurekaApp/app/gradlew new file mode 100644 index 00000000..cccdd3d5 --- /dev/null +++ b/EurekaApp/app/gradlew @@ -0,0 +1,172 @@ +#!/usr/bin/env sh + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/EurekaApp/app/gradlew.bat b/EurekaApp/app/gradlew.bat new file mode 100644 index 00000000..f9553162 --- /dev/null +++ b/EurekaApp/app/gradlew.bat @@ -0,0 +1,84 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/EurekaApp/app/local.properties b/EurekaApp/app/local.properties new file mode 100644 index 00000000..5b51738f --- /dev/null +++ b/EurekaApp/app/local.properties @@ -0,0 +1,8 @@ +## This file must *NOT* be checked into Version Control Systems, +# as it contains information specific to your local configuration. +# +# Location of the SDK. This is only used by Gradle. +# For customization when using a Version Control System, please read the +# header note. +#Mon Apr 13 17:10:11 AEST 2020 +sdk.dir=C\:\\Users\\Yash's PC\\AppData\\Local\\Android\\Sdk diff --git a/EurekaApp/app/proguard-rules.pro b/EurekaApp/app/proguard-rules.pro new file mode 100644 index 00000000..6e7ffa99 --- /dev/null +++ b/EurekaApp/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# 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 *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile diff --git a/EurekaApp/app/src/androidTest/java/com/example/eurekaapp/ExampleInstrumentedTest.java b/EurekaApp/app/src/androidTest/java/com/example/eurekaapp/ExampleInstrumentedTest.java new file mode 100644 index 00000000..d08acd5e --- /dev/null +++ b/EurekaApp/app/src/androidTest/java/com/example/eurekaapp/ExampleInstrumentedTest.java @@ -0,0 +1,27 @@ +package com.example.eurekaapp; + +import android.content.Context; + +import androidx.test.platform.app.InstrumentationRegistry; +import androidx.test.ext.junit.runners.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import static org.junit.Assert.*; + +/** + * Instrumented test, which will execute on an Android device. + * + * @see Testing documentation + */ +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + @Test + public void useAppContext() { + // Context of the app under test. + Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); + + assertEquals("com.example.eurekaapp", appContext.getPackageName()); + } +} diff --git a/EurekaApp/app/src/main/AndroidManifest.xml b/EurekaApp/app/src/main/AndroidManifest.xml new file mode 100644 index 00000000..be3861cf --- /dev/null +++ b/EurekaApp/app/src/main/AndroidManifest.xml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/EurekaApp/app/src/main/ic_launcher-playstore.png b/EurekaApp/app/src/main/ic_launcher-playstore.png new file mode 100644 index 00000000..f42d1f35 Binary files /dev/null and b/EurekaApp/app/src/main/ic_launcher-playstore.png differ diff --git a/EurekaApp/app/src/main/java/com/example/eurekaapp/GuidanceFragment.java b/EurekaApp/app/src/main/java/com/example/eurekaapp/GuidanceFragment.java new file mode 100644 index 00000000..12373e04 --- /dev/null +++ b/EurekaApp/app/src/main/java/com/example/eurekaapp/GuidanceFragment.java @@ -0,0 +1,172 @@ +package com.example.eurekaapp; + +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.os.Bundle; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; +import android.widget.ImageButton; +import android.widget.ImageView; +import android.widget.Toast; + +import com.android.volley.Request; +import com.android.volley.RequestQueue; +import com.android.volley.Response; +import com.android.volley.VolleyError; +import com.android.volley.toolbox.JsonObjectRequest; +import com.android.volley.toolbox.Volley; + +import org.json.JSONArray; +import org.json.JSONException; +import org.json.JSONObject; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentActivity; + +public class GuidanceFragment extends Fragment implements View.OnClickListener { + + Button button; + SharedPreferences sp; + String id; + + final String url = "http://128.199.175.144:1337/users"; + final String BUTTON_TXT_POSITIVE = "I HAVE NOT BEEN TESTED POSITIVE FOR COVID-19"; + final String BUTTON_TXT_NEGATIVE = "I HAVE BEEN TESTED POSITIVE FOR COVID-19"; + + @Nullable + public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + + View rootView =inflater.inflate(R.layout.fragment_guidance, container, false); + + return inflater.inflate(R.layout.fragment_guidance,container,false); + } + + @Override + public void onActivityCreated(Bundle savedInstanceState) { + super.onActivityCreated(savedInstanceState); + + button = (Button) getActivity().findViewById(R.id.guidanceButton); + button.setOnClickListener(this); + + sp = this.getActivity().getSharedPreferences("eureka", Context.MODE_PRIVATE); + id = sp.getString("id", "null"); + + RequestQueue requestQueue = Volley.newRequestQueue(getActivity().getApplicationContext()); + JSONObject object = new JSONObject(); + try { + // input API parameters + object.put("",""); + } catch (JSONException e) { + e.printStackTrace(); + } + + // Request a JSON response from the provided URL + JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, url+"/"+id, object, + new Response.Listener() { + @Override + public void onResponse(JSONObject response) { + try { + Boolean isUnderObservation = (Boolean) response.get("underObservation"); + Boolean isCovidPositive = (Boolean) response.get("isCovidPositive"); + if(isCovidPositive) { + button.setText(BUTTON_TXT_POSITIVE); + } else { + button.setText(BUTTON_TXT_NEGATIVE); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + }, new Response.ErrorListener() { + @Override + public void onErrorResponse(VolleyError error) { + Toast.makeText(getActivity(), "Invalid attempt. Try again", Toast.LENGTH_SHORT).show(); + } + }); + // Add the request to the RequestQueue. + requestQueue.add(jsonObjectRequest); + + } + public void onClick(final View v) { //check for what button is pressed + switch (v.getId()) { + case R.id.guidanceButton: + if(button.getText() == BUTTON_TXT_POSITIVE){ + declareUserNegative(); + } else { + declareUserPositive(); + } + break; + } + } + + private void declareUserPositive() { + RequestQueue requestQueue = Volley.newRequestQueue(getActivity().getApplicationContext()); + + JSONObject object = new JSONObject(); + try { + // input API parameters + object.put("underObservation","true"); + object.put("isCovidPositive","true"); + } catch (JSONException e) { + e.printStackTrace(); + } + + // Request a JSON response from the provided URL + JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.PUT, url+"/"+id, object, + new Response.Listener() { + @Override + public void onResponse(JSONObject response) { + try { + button.setText(BUTTON_TXT_POSITIVE); + } catch (Exception e) { + e.printStackTrace(); + } + } + }, new Response.ErrorListener() { + @Override + public void onErrorResponse(VolleyError error) { + Toast.makeText(getActivity(), "Invalid attempt. Try again", Toast.LENGTH_SHORT).show(); + } + }); + // Add the request to the RequestQueue. + requestQueue.add(jsonObjectRequest); + } + + private void declareUserNegative() { + RequestQueue requestQueue = Volley.newRequestQueue(getActivity().getApplicationContext()); + + JSONObject object = new JSONObject(); + try { + // input API parameters + object.put("isCovidPositive","false"); + } catch (JSONException e) { + e.printStackTrace(); + } + + // Request a JSON response from the provided URL + JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.PUT, url+"/"+id, object, + new Response.Listener() { + @Override + public void onResponse(JSONObject response) { + try { + button.setText(BUTTON_TXT_NEGATIVE); + } catch (Exception e) { + e.printStackTrace(); + } + } + }, new Response.ErrorListener() { + @Override + public void onErrorResponse(VolleyError error) { + Toast.makeText(getActivity(), "Invalid attempt. Try again", Toast.LENGTH_SHORT).show(); + } + }); + // Add the request to the RequestQueue. + requestQueue.add(jsonObjectRequest); + } +} diff --git a/EurekaApp/app/src/main/java/com/example/eurekaapp/LocationsFragment.java b/EurekaApp/app/src/main/java/com/example/eurekaapp/LocationsFragment.java new file mode 100644 index 00000000..0ccb2608 --- /dev/null +++ b/EurekaApp/app/src/main/java/com/example/eurekaapp/LocationsFragment.java @@ -0,0 +1,237 @@ +package com.example.eurekaapp; +//// +////import android.os.Bundle; +////import android.view.LayoutInflater; +////import android.view.View; +////import android.view.ViewGroup; +//// +////import androidx.annotation.NonNull; +////import androidx.annotation.Nullable; +import androidx.core.content.ContextCompat; +import androidx.fragment.app.Fragment; +////import androidx.fragment.app.FragmentActivity; +//// +//////package com.xomena.so47784512; +//// +////import android.graphics.Color; +//// +////import android.os.Bundle; +////import android.util.Log; +//// +////import com.google.android.gms.maps.CameraUpdateFactory; +////import com.google.android.gms.maps.GoogleMap; +////import com.google.android.gms.maps.OnMapReadyCallback; +////import com.google.android.gms.maps.SupportMapFragment; +////import com.google.android.gms.maps.model.LatLng; +////import com.google.android.gms.maps.model.MarkerOptions; +////import com.google.android.gms.maps.model.PolylineOptions; +//////import com.google.maps.DirectionsApi; +//////import com.google.maps.DirectionsApiRequest; +//////import com.google.maps.GeoApiContext; +//////import com.google.maps.android.SphericalUtil; +//////import com.google.maps.model.DirectionsLeg; +//////import com.google.maps.model.DirectionsResult; +//////import com.google.maps.model.DirectionsRoute; +//////import com.google.maps.model.DirectionsStep; +//////import com.google.maps.model.EncodedPolyline; +//// +////import android.os.Bundle; +//////import android.support.v4.app.Fragment; +//// +////import androidx.annotation.Nullable; +////import androidx.fragment.app.FragmentActivity; +//// +////import com.google.android.gms.maps.GoogleMap; +////import com.google.android.gms.maps.OnMapReadyCallback; +////import com.google.android.gms.maps.SupportMapFragment; +//// +////import com.google.android.gms.maps.CameraUpdateFactory; +////import com.google.android.gms.maps.GoogleMap; +////import com.google.android.gms.maps.OnMapReadyCallback; +////import com.google.android.gms.maps.SupportMapFragment; +////import com.google.android.gms.maps.model.BitmapDescriptorFactory; +////import com.google.android.gms.maps.model.LatLng; +////import com.google.android.gms.maps.model.MarkerOptions; +// +//import com.google.android.gms.maps.MapView +//import android.os.Bundle; +//import android.view.LayoutInflater; +//import android.view.View; +//import android.view.ViewGroup; +// +//import androidx.annotation.NonNull; +//import androidx.annotation.Nullable; +//import androidx.fragment.app.Fragment; +//import androidx.fragment.app.FragmentActivity; +// +//import com.google.android.gms.maps.CameraUpdateFactory; +//import com.google.android.gms.maps.GoogleMap; +//import com.google.android.gms.maps.MapView; +//import com.google.android.gms.maps.MapsInitializer; +//import com.google.android.gms.maps.OnMapReadyCallback; +//import com.google.android.gms.maps.SupportMapFragment; +//import com.google.android.gms.maps.model.BitmapDescriptorFactory; +//import com.google.android.gms.maps.model.CameraPosition; +//import com.google.android.gms.maps.model.LatLng; +//import com.google.android.gms.maps.model.MarkerOptions; +////import android.support.v4.app.Fragment; +// +// +// +//public class LocationsFragment extends Fragment { +// MapView mMapView; +// private GoogleMap googleMap; +// +// @Override +// public View onCreateView(LayoutInflater inflater, ViewGroup container, +// Bundle savedInstanceState) { +// // inflat and return the layout +// View v = inflater.inflate(R.layout.fragment_location, container, +// false); +// mMapView = (MapView) v.findViewById(R.id.map); +// mMapView.onCreate(savedInstanceState); +// +// mMapView.onResume();// needed to get the map to display immediately +// +// try { +// MapsInitializer.initialize(getActivity().getApplicationContext()); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// +// //googleMap = mMapView.getMap(); +// // latitude and longitude +// double latitude = 17.385044; +// double longitude = 78.486671; +// +// // create marker +// MarkerOptions marker = new MarkerOptions().position( +// new LatLng(latitude, longitude)).title("Hello Maps"); +// +// // Changing marker icon +// marker.icon(BitmapDescriptorFactory +// .defaultMarker(BitmapDescriptorFactory.HUE_ROSE)); +// +// // adding marker +// googleMap.addMarker(marker); +// CameraPosition cameraPosition = new CameraPosition.Builder() +// .target(new LatLng(17.385044, 78.486671)).zoom(12).build(); +// googleMap.animateCamera(CameraUpdateFactory +// .newCameraPosition(cameraPosition)); +// +// // Perform any camera updates here +// return v; +// } +// +// @Override +// public void onResume() { +// super.onResume(); +// mMapView.onResume(); +// } +// +// @Override +// public void onPause() { +// super.onPause(); +// mMapView.onPause(); +// } +// +// @Override +// public void onDestroy() { +// super.onDestroy(); +// mMapView.onDestroy(); +// } +// +// @Override +// public void onLowMemory() { +// super.onLowMemory(); +// mMapView.onLowMemory(); +// } +// +//} +// + +import android.content.Context; +import android.graphics.Bitmap; +import android.graphics.Canvas; +import android.graphics.drawable.Drawable; +import android.os.Bundle; +//import android.support.v4.app.Fragment; +//import android.support.v4.content.ContextCompat; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import com.google.android.gms.maps.CameraUpdateFactory; +import com.google.android.gms.maps.GoogleMap; +import com.google.android.gms.maps.OnMapReadyCallback; +import com.google.android.gms.maps.SupportMapFragment; +import com.google.android.gms.maps.model.BitmapDescriptor; +import com.google.android.gms.maps.model.BitmapDescriptorFactory; +import com.google.android.gms.maps.model.CameraPosition; +import com.google.android.gms.maps.model.LatLng; +import com.google.android.gms.maps.model.MarkerOptions; + +public class LocationsFragment extends Fragment { + + public LocationsFragment() { + // Required empty public constructor + } + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + } + + @Override + public View onCreateView(LayoutInflater inflater, ViewGroup container, + Bundle savedInstanceState) { + // Inflate the layout for this fragment + View rootView = inflater.inflate(R.layout.fragment_location, container, false); + + SupportMapFragment mapFragment = (SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.map); //use SuppoprtMapFragment for using in fragment instead of activity MapFragment = activity SupportMapFragment = fragment + mapFragment.getMapAsync(new OnMapReadyCallback() { + @Override + public void onMapReady(GoogleMap mMap) { + mMap.setMapType(GoogleMap.MAP_TYPE_NORMAL); + + mMap.clear(); //clear old markers + + CameraPosition googlePlex = CameraPosition.builder() + .target(new LatLng(37.4219999,-122.0862462)) + .zoom(10) + .bearing(0) + .tilt(45) + .build(); + + mMap.animateCamera(CameraUpdateFactory.newCameraPosition(googlePlex), 10000, null); + + mMap.addMarker(new MarkerOptions() + .position(new LatLng(37.4219999, -122.0862462)) + .title("Spider Man") + .icon(bitmapDescriptorFromVector(getActivity(),R.drawable.ic_beenhere_black_24dp))); + + mMap.addMarker(new MarkerOptions() + .position(new LatLng(37.4629101,-122.2449094)) + .title("Iron Man") + .snippet("His Talent : Plenty of money")); + + mMap.addMarker(new MarkerOptions() + .position(new LatLng(37.3092293,-122.1136845)) + .title("Captain America")); + } + }); + + + return rootView; + } + + private BitmapDescriptor bitmapDescriptorFromVector(Context context, int vectorResId) { + Drawable vectorDrawable = ContextCompat.getDrawable(context, vectorResId); + vectorDrawable.setBounds(0, 0, vectorDrawable.getIntrinsicWidth(), vectorDrawable.getIntrinsicHeight()); + Bitmap bitmap = Bitmap.createBitmap(vectorDrawable.getIntrinsicWidth(), vectorDrawable.getIntrinsicHeight(), Bitmap.Config.ARGB_8888); + Canvas canvas = new Canvas(bitmap); + vectorDrawable.draw(canvas); + return BitmapDescriptorFactory.fromBitmap(bitmap); + } + +} \ No newline at end of file diff --git a/EurekaApp/app/src/main/java/com/example/eurekaapp/LoginActivity.java b/EurekaApp/app/src/main/java/com/example/eurekaapp/LoginActivity.java new file mode 100644 index 00000000..00049aae --- /dev/null +++ b/EurekaApp/app/src/main/java/com/example/eurekaapp/LoginActivity.java @@ -0,0 +1,122 @@ +package com.example.eurekaapp; + +import androidx.appcompat.app.AppCompatActivity; +import okhttp3.FormBody; +import okhttp3.OkHttpClient; +//import okhttp3.Request; +import okhttp3.RequestBody; +//import okhttp3.Response; + +import android.content.Intent; +import android.content.SharedPreferences; +import android.os.AsyncTask; +import android.os.Bundle; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.EditText; +import android.widget.TextView; +import android.widget.Toast; + +import com.android.volley.RequestQueue; +import com.android.volley.Request; +import com.android.volley.Response; +import com.android.volley.VolleyError; +import com.android.volley.toolbox.JsonObjectRequest; +import com.android.volley.toolbox.StringRequest; +import com.android.volley.toolbox.Volley; +import com.google.gson.JsonObject; +import com.koushikdutta.async.future.FutureCallback; +import com.koushikdutta.ion.Ion; + +import org.json.JSONException; +import org.json.JSONObject; + +public class LoginActivity extends AppCompatActivity { + + SharedPreferences sp; + + EditText etEmail, etPassword; + TextView tvRegister; + Button btnLogin; + + final String loginURL = "http://128.199.175.144:1337/auth/local"; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_login); + + sp = getSharedPreferences("eureka", MODE_PRIVATE); + + etEmail = (EditText) findViewById(R.id.emailField); + etPassword = (EditText) findViewById(R.id.passwordField); + btnLogin = (Button) findViewById(R.id.loginButton); + tvRegister = (TextView) findViewById(R.id.registerHereButton); + + tvRegister.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent i = new Intent(LoginActivity.this, RegisterActivity.class); + startActivity(i); + finish(); + } + }); + +// Handle login + btnLogin.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { +// Get login credentials + final String email = etEmail.getText().toString(); + String password = etPassword.getText().toString(); + + // Instantiate the RequestQueue. + RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext()); + JSONObject object = new JSONObject(); + try { + // input API parameters + object.put("identifier",email); + object.put("password",password); + } catch (JSONException e) { + e.printStackTrace(); + } + + // Request a JSON response from the provided URL + JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, loginURL, object, + new Response.Listener() { + @Override + public void onResponse(JSONObject response) { + try { + JSONObject user = (JSONObject) response.get("user"); + String id = (String) user.get("id"); + String firstName = (String) user.get("firstName"); + String lastName = (String) user.get("lastName"); + String phoneNo = (String) user.get("phoneNo"); + sp.edit().putString("id", id).apply(); + sp.edit().putString("firstName", firstName).apply(); + sp.edit().putString("lastName", lastName).apply(); + sp.edit().putString("email", email).apply(); + sp.edit().putString("phone", phoneNo).apply(); + sp.edit().putBoolean("logged",true).apply(); +// Redirect to MainActivity + Intent i = new Intent(LoginActivity.this, MainActivity.class); + startActivity(i); + finish(); + } catch (Exception e) { + e.printStackTrace(); + } + } + }, new Response.ErrorListener() { + @Override + public void onErrorResponse(VolleyError error) { + Toast.makeText(LoginActivity.this, "Invalid attempt. Try again", Toast.LENGTH_SHORT).show(); + } + }); + // Add the request to the RequestQueue. + requestQueue.add(jsonObjectRequest); + } + }); + } +} + diff --git a/EurekaApp/app/src/main/java/com/example/eurekaapp/MainActivity.java b/EurekaApp/app/src/main/java/com/example/eurekaapp/MainActivity.java new file mode 100644 index 00000000..bc6ce487 --- /dev/null +++ b/EurekaApp/app/src/main/java/com/example/eurekaapp/MainActivity.java @@ -0,0 +1,197 @@ +package com.example.eurekaapp; + +import android.Manifest; +import android.annotation.SuppressLint; +import android.content.Context; +import android.content.Intent; +import android.content.SharedPreferences; +import android.content.pm.PackageManager; +import android.location.Location; +import android.location.LocationManager; +import android.os.Bundle; +import android.os.Looper; +import android.provider.Settings; +import android.util.Log; +import android.view.MenuItem; +import android.widget.Toast; + +import com.google.android.gms.location.FusedLocationProviderClient; +import com.google.android.gms.location.LocationCallback; +import com.google.android.gms.location.LocationRequest; +import com.google.android.gms.location.LocationResult; +import com.google.android.gms.location.LocationServices; +import com.google.android.gms.tasks.OnCompleteListener; +import com.google.android.gms.tasks.Task; +import com.google.android.material.bottomnavigation.BottomNavigationView; + +import androidx.annotation.NonNull; +import androidx.appcompat.app.AppCompatActivity; +import androidx.core.app.ActivityCompat; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentActivity; +import androidx.fragment.app.FragmentManager; +import androidx.navigation.NavController; +import androidx.navigation.Navigation; +import androidx.navigation.ui.AppBarConfiguration; +import androidx.navigation.ui.NavigationUI; + +public class MainActivity extends AppCompatActivity { + + SharedPreferences sp; + FusedLocationProviderClient mFusedLocationClient; + + int PERMISSION_ID = 99; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + sp = getSharedPreferences("eureka", MODE_PRIVATE); + mFusedLocationClient = LocationServices.getFusedLocationProviderClient(this); + + setContentView(R.layout.activity_main); + BottomNavigationView navView = findViewById(R.id.bottom_navigation); + navView.setOnNavigationItemSelectedListener(navListener); + // Passing each menu ID as a set of Ids because each + // menu should be considered as top level destinations. +// AppBarConfiguration appBarConfiguration = new AppBarConfiguration.Builder( +// R.id.navigation_home, R.id.navigation_dashboard, R.id.navigation_notifications) +// .build(); +// NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment); +// NavigationUI.setupActionBarWithNavController(this, navController, appBarConfiguration); +// NavigationUI.setupWithNavController(navView, navController); + +// REDIRECT TO LOGIN PAGE + if(!sp.getBoolean("logged",false)){ + Intent intent = new Intent(MainActivity.this, LoginActivity.class); + startActivity(intent); + finish(); + } + + getLastLocation(); + + } + private BottomNavigationView.OnNavigationItemSelectedListener navListener = + new BottomNavigationView.OnNavigationItemSelectedListener() { + @Override + public boolean onNavigationItemSelected(@NonNull MenuItem item) { + Fragment selectedFragment = null; + + switch (item.getItemId()){ + case R.id.nav_stats: + selectedFragment = new StatisticsFragment(); + break; + case R.id.nav_location: + selectedFragment = new LocationsFragment(); + break; + case R.id.nav_guidance: + selectedFragment = new GuidanceFragment(); + break; + + + } + try { + if (selectedFragment!=null) { + getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, selectedFragment).commit(); + } + } catch (Exception e){ + e.printStackTrace(); + } + return true; + } + }; + + private boolean checkPermissions(){ + if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED && + ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED){ + return true; + } + return false; + } + + private void requestPermissions(){ + ActivityCompat.requestPermissions( + this, + new String[]{Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION}, + PERMISSION_ID + ); + } + + @Override + public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) { + super.onRequestPermissionsResult(requestCode, permissions, grantResults); + if (requestCode == PERMISSION_ID) { + if(grantResults.length>0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){ + // Granted. Start getting the location information + } + } + } + + private boolean isLocationEnabled(){ + LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); + return locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER) || locationManager.isProviderEnabled( + LocationManager.NETWORK_PROVIDER + ); + } + + @SuppressLint("MissingPermission") + private void requestNewLocationData(){ + + LocationRequest mLocationRequest = new LocationRequest(); + mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); + mLocationRequest.setInterval(0); // every 15 mins + mLocationRequest.setFastestInterval(0); // every 15 mins + mLocationRequest.setNumUpdates(1); + + mFusedLocationClient = LocationServices.getFusedLocationProviderClient(this); + mFusedLocationClient.requestLocationUpdates( + mLocationRequest, mLocationCallback, + Looper.myLooper() + ); + + } + + private LocationCallback mLocationCallback = new LocationCallback() { + @Override + public void onLocationResult(LocationResult locationResult) { + Location mLastLocation = locationResult.getLastLocation(); +// latTextView.setText(mLastLocation.getLatitude()+""); +// lonTextView.setText(mLastLocation.getLongitude()+""); + Log.e("LOCATION:",+mLastLocation.getLatitude()+" "+mLastLocation.getLongitude()); + } + }; + + @SuppressLint("MissingPermission") + private void getLastLocation(){ + if (checkPermissions()) { + if (isLocationEnabled()) { + mFusedLocationClient.getLastLocation().addOnCompleteListener( + new OnCompleteListener() { + @Override + public void onComplete(@NonNull Task task) { + Location location = task.getResult(); + if (location == null) { + requestNewLocationData(); + } else { +// latTextView.setText(location.getLatitude()+""); +// lonTextView.setText(location.getLongitude()+""); + Log.e("LOCATION:", location.getLatitude()+" "+location.getLongitude()); + Toast.makeText(MainActivity.this, + location.getLatitude()+" "+location.getLongitude(), + Toast.LENGTH_SHORT).show(); + // TODO: POST LOCATION + } + } + } + ); + } else { + Toast.makeText(this, "Turn on location", Toast.LENGTH_LONG).show(); + Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); + startActivity(intent); + } + } else { + requestPermissions(); + } + } + +} diff --git a/EurekaApp/app/src/main/java/com/example/eurekaapp/RegisterActivity.java b/EurekaApp/app/src/main/java/com/example/eurekaapp/RegisterActivity.java new file mode 100644 index 00000000..2cbd8f3e --- /dev/null +++ b/EurekaApp/app/src/main/java/com/example/eurekaapp/RegisterActivity.java @@ -0,0 +1,130 @@ +package com.example.eurekaapp; + +import androidx.appcompat.app.AppCompatActivity; + +import android.content.Intent; +import android.content.SharedPreferences; +import android.os.Bundle; +import android.util.Log; +import android.view.View; +import android.widget.Button; +import android.widget.CheckBox; +import android.widget.EditText; +import android.widget.TextView; +import android.widget.Toast; + +import com.android.volley.Request; +import com.android.volley.RequestQueue; +import com.android.volley.Response; +import com.android.volley.VolleyError; +import com.android.volley.toolbox.JsonObjectRequest; +import com.android.volley.toolbox.Volley; + +import org.json.JSONException; +import org.json.JSONObject; + +public class RegisterActivity extends AppCompatActivity { + + SharedPreferences sp; + + TextView tvLoginHere; + EditText etFirstName, etLastName, etRegisterEmail, etNumber, etRegisterPassword; + CheckBox chkObservation, chkPositive; + Button btnRegister; + + final String loginURL = "http://128.199.175.144:1337/auth/local/register"; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_register); + + sp = getSharedPreferences("eureka", MODE_PRIVATE); + + etFirstName = (EditText) findViewById(R.id.firstNameField); + etLastName = (EditText) findViewById(R.id.lastNameField); + etRegisterEmail = (EditText) findViewById(R.id.registerEmailField); + etNumber = (EditText) findViewById(R.id.numberField); + etRegisterPassword = (EditText) findViewById(R.id.registerPasswordField); + chkObservation = (CheckBox) findViewById(R.id.observationField); + chkPositive = (CheckBox) findViewById(R.id.positiveCheck); + btnRegister = (Button) findViewById(R.id.registerButton); + tvLoginHere = (TextView) findViewById(R.id.loginHereButton); + + tvLoginHere.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + Intent i = new Intent(RegisterActivity.this, LoginActivity.class); + startActivity(i); + finish(); + } + }); + +// Register handle + btnRegister.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + // Get register credentials + String firstName = etFirstName.getText().toString(); + String lastName = etLastName.getText().toString(); + String email = etRegisterEmail.getText().toString(); + Integer phoneNo = Integer.parseInt(etNumber.getText().toString()); + String password = etRegisterPassword.getText().toString(); + Boolean isUnderObservation = chkObservation.isChecked(); + Boolean isCovidPositive = chkPositive.isChecked(); + + // Instantiate the RequestQueue. + RequestQueue requestQueue = Volley.newRequestQueue(getApplicationContext()); + JSONObject object = new JSONObject(); + try { + // input API parameters + object.put("username",email); + object.put("email",email); + object.put("password",password); + object.put("firstName",firstName); + object.put("lastName",lastName); + object.put("phoneNo",phoneNo); + object.put("underObservation",isUnderObservation); + object.put("isCovidPositive",isCovidPositive); + } catch (JSONException e) { + e.printStackTrace(); + } + + // Request a JSON response from the provided URL + JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, loginURL, object, + new Response.Listener() { + @Override + public void onResponse(JSONObject response) { + try { + JSONObject user = (JSONObject) response.get("user"); + String id = (String) user.get("id"); + String email = (String) user.get("email"); + String firstName = (String) user.get("firstName"); + String lastName = (String) user.get("lastName"); + String phoneNo = (String) user.get("phoneNo"); + sp.edit().putString("id", id).apply(); + sp.edit().putString("firstName", firstName).apply(); + sp.edit().putString("lastName", lastName).apply(); + sp.edit().putString("email", email).apply(); + sp.edit().putString("phone", phoneNo).apply(); + sp.edit().putBoolean("logged",true).apply(); +// Redirect to MainActivity + Intent i = new Intent(RegisterActivity.this, MainActivity.class); + startActivity(i); + finish(); + } catch (Exception e) { + e.printStackTrace(); + } + } + }, new Response.ErrorListener() { + @Override + public void onErrorResponse(VolleyError error) { + Toast.makeText(RegisterActivity.this, "Invalid attempt. Try again", Toast.LENGTH_SHORT).show(); + } + }); + // Add the request to the RequestQueue. + requestQueue.add(jsonObjectRequest); + } + }); + } +} diff --git a/EurekaApp/app/src/main/java/com/example/eurekaapp/StatisticsFragment.java b/EurekaApp/app/src/main/java/com/example/eurekaapp/StatisticsFragment.java new file mode 100644 index 00000000..fb37b545 --- /dev/null +++ b/EurekaApp/app/src/main/java/com/example/eurekaapp/StatisticsFragment.java @@ -0,0 +1,68 @@ +package com.example.eurekaapp; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.Button; +import android.widget.EditText; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; +import androidx.fragment.app.FragmentActivity; + +import com.jjoe64.graphview.GraphView; +import com.jjoe64.graphview.GridLabelRenderer; +import com.jjoe64.graphview.series.DataPoint; +import com.jjoe64.graphview.series.LineGraphSeries; + +public class StatisticsFragment extends Fragment { + LineGraphSeries series; + EditText score; + + + public void onCreate(Bundle savedInstanceState){ + super.onCreate(savedInstanceState); + } + @Nullable + public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { + double y,x; + x = -5.0; + View rootView = inflater.inflate(R.layout.fragment_statistics,container,false); + GraphView graph = (GraphView) rootView.findViewById(R.id.graph); + final EditText score = rootView.findViewById(R.id.scoreText); + +// Button button = (Button) rootView.findViewById(R.id.scoreButton); +// button.setOnClickListener(new View.OnClickListener() +// { +// @Override +// public void onClick(View v) +// { +// // do something +// score.setText("12321"); +// } +// }); + + + graph.setTitle("Total Confirmed Cases"); + GridLabelRenderer gridLabel = graph.getGridLabelRenderer(); + gridLabel.setHorizontalAxisTitle("Date"); + gridLabel.setVerticalAxisTitle("Number of Cases"); + LineGraphSeries series = new LineGraphSeries<>(new DataPoint[] { + new DataPoint(0, 1), + new DataPoint(1, 5), + new DataPoint(2, 3), + new DataPoint(3, 2), + new DataPoint(4, 6) + }); + graph.addSeries(series); + + return rootView; + } + public void onClick(View view){ + + + } +} diff --git a/EurekaApp/app/src/main/java/com/example/eurekaapp/ui/dashboard/DashboardFragment.java b/EurekaApp/app/src/main/java/com/example/eurekaapp/ui/dashboard/DashboardFragment.java new file mode 100644 index 00000000..aef2179b --- /dev/null +++ b/EurekaApp/app/src/main/java/com/example/eurekaapp/ui/dashboard/DashboardFragment.java @@ -0,0 +1,35 @@ +package com.example.eurekaapp.ui.dashboard; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; +import androidx.lifecycle.Observer; +import androidx.lifecycle.ViewModelProviders; + +import com.example.eurekaapp.R; + +public class DashboardFragment extends Fragment { + + private DashboardViewModel dashboardViewModel; + + public View onCreateView(@NonNull LayoutInflater inflater, + ViewGroup container, Bundle savedInstanceState) { + dashboardViewModel = + ViewModelProviders.of(this).get(DashboardViewModel.class); + View root = inflater.inflate(R.layout.fragment_dashboard, container, false); + final TextView textView = root.findViewById(R.id.text_dashboard); + dashboardViewModel.getText().observe(getViewLifecycleOwner(), new Observer() { + @Override + public void onChanged(@Nullable String s) { + textView.setText(s); + } + }); + return root; + } +} diff --git a/EurekaApp/app/src/main/java/com/example/eurekaapp/ui/dashboard/DashboardViewModel.java b/EurekaApp/app/src/main/java/com/example/eurekaapp/ui/dashboard/DashboardViewModel.java new file mode 100644 index 00000000..4be2b79f --- /dev/null +++ b/EurekaApp/app/src/main/java/com/example/eurekaapp/ui/dashboard/DashboardViewModel.java @@ -0,0 +1,19 @@ +package com.example.eurekaapp.ui.dashboard; + +import androidx.lifecycle.LiveData; +import androidx.lifecycle.MutableLiveData; +import androidx.lifecycle.ViewModel; + +public class DashboardViewModel extends ViewModel { + + private MutableLiveData mText; + + public DashboardViewModel() { + mText = new MutableLiveData<>(); + mText.setValue("This is dashboard fragment"); + } + + public LiveData getText() { + return mText; + } +} \ No newline at end of file diff --git a/EurekaApp/app/src/main/java/com/example/eurekaapp/ui/home/HomeFragment.java b/EurekaApp/app/src/main/java/com/example/eurekaapp/ui/home/HomeFragment.java new file mode 100644 index 00000000..f911adc1 --- /dev/null +++ b/EurekaApp/app/src/main/java/com/example/eurekaapp/ui/home/HomeFragment.java @@ -0,0 +1,35 @@ +package com.example.eurekaapp.ui.home; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; +import androidx.lifecycle.Observer; +import androidx.lifecycle.ViewModelProviders; + +import com.example.eurekaapp.R; + +public class HomeFragment extends Fragment { + + private HomeViewModel homeViewModel; + + public View onCreateView(@NonNull LayoutInflater inflater, + ViewGroup container, Bundle savedInstanceState) { + homeViewModel = + ViewModelProviders.of(this).get(HomeViewModel.class); + View root = inflater.inflate(R.layout.fragment_home, container, false); + final TextView textView = root.findViewById(R.id.text_home); + homeViewModel.getText().observe(getViewLifecycleOwner(), new Observer() { + @Override + public void onChanged(@Nullable String s) { + textView.setText(s); + } + }); + return root; + } +} diff --git a/EurekaApp/app/src/main/java/com/example/eurekaapp/ui/home/HomeViewModel.java b/EurekaApp/app/src/main/java/com/example/eurekaapp/ui/home/HomeViewModel.java new file mode 100644 index 00000000..ae6719a6 --- /dev/null +++ b/EurekaApp/app/src/main/java/com/example/eurekaapp/ui/home/HomeViewModel.java @@ -0,0 +1,19 @@ +package com.example.eurekaapp.ui.home; + +import androidx.lifecycle.LiveData; +import androidx.lifecycle.MutableLiveData; +import androidx.lifecycle.ViewModel; + +public class HomeViewModel extends ViewModel { + + private MutableLiveData mText; + + public HomeViewModel() { + mText = new MutableLiveData<>(); + mText.setValue("This is home fragment"); + } + + public LiveData getText() { + return mText; + } +} \ No newline at end of file diff --git a/EurekaApp/app/src/main/java/com/example/eurekaapp/ui/notifications/NotificationsFragment.java b/EurekaApp/app/src/main/java/com/example/eurekaapp/ui/notifications/NotificationsFragment.java new file mode 100644 index 00000000..641a960e --- /dev/null +++ b/EurekaApp/app/src/main/java/com/example/eurekaapp/ui/notifications/NotificationsFragment.java @@ -0,0 +1,35 @@ +package com.example.eurekaapp.ui.notifications; + +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.TextView; + +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.fragment.app.Fragment; +import androidx.lifecycle.Observer; +import androidx.lifecycle.ViewModelProviders; + +import com.example.eurekaapp.R; + +public class NotificationsFragment extends Fragment { + + private NotificationsViewModel notificationsViewModel; + + public View onCreateView(@NonNull LayoutInflater inflater, + ViewGroup container, Bundle savedInstanceState) { + notificationsViewModel = + ViewModelProviders.of(this).get(NotificationsViewModel.class); + View root = inflater.inflate(R.layout.fragment_notifications, container, false); + final TextView textView = root.findViewById(R.id.text_notifications); + notificationsViewModel.getText().observe(getViewLifecycleOwner(), new Observer() { + @Override + public void onChanged(@Nullable String s) { + textView.setText(s); + } + }); + return root; + } +} diff --git a/EurekaApp/app/src/main/java/com/example/eurekaapp/ui/notifications/NotificationsViewModel.java b/EurekaApp/app/src/main/java/com/example/eurekaapp/ui/notifications/NotificationsViewModel.java new file mode 100644 index 00000000..3c073504 --- /dev/null +++ b/EurekaApp/app/src/main/java/com/example/eurekaapp/ui/notifications/NotificationsViewModel.java @@ -0,0 +1,19 @@ +package com.example.eurekaapp.ui.notifications; + +import androidx.lifecycle.LiveData; +import androidx.lifecycle.MutableLiveData; +import androidx.lifecycle.ViewModel; + +public class NotificationsViewModel extends ViewModel { + + private MutableLiveData mText; + + public NotificationsViewModel() { + mText = new MutableLiveData<>(); + mText.setValue("This is notifications fragment"); + } + + public LiveData getText() { + return mText; + } +} \ No newline at end of file diff --git a/EurekaApp/app/src/main/res/drawable/covid_symptoms.png b/EurekaApp/app/src/main/res/drawable/covid_symptoms.png new file mode 100644 index 00000000..91452bd0 Binary files /dev/null and b/EurekaApp/app/src/main/res/drawable/covid_symptoms.png differ diff --git a/EurekaApp/app/src/main/res/drawable/ic_assessment_black_24dp.xml b/EurekaApp/app/src/main/res/drawable/ic_assessment_black_24dp.xml new file mode 100644 index 00000000..75d0dde7 --- /dev/null +++ b/EurekaApp/app/src/main/res/drawable/ic_assessment_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/EurekaApp/app/src/main/res/drawable/ic_beenhere_black_24dp.xml b/EurekaApp/app/src/main/res/drawable/ic_beenhere_black_24dp.xml new file mode 100644 index 00000000..5f1c0519 --- /dev/null +++ b/EurekaApp/app/src/main/res/drawable/ic_beenhere_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/EurekaApp/app/src/main/res/drawable/ic_dashboard_black_24dp.xml b/EurekaApp/app/src/main/res/drawable/ic_dashboard_black_24dp.xml new file mode 100644 index 00000000..46fc8dee --- /dev/null +++ b/EurekaApp/app/src/main/res/drawable/ic_dashboard_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/EurekaApp/app/src/main/res/drawable/ic_forum_black_24dp.xml b/EurekaApp/app/src/main/res/drawable/ic_forum_black_24dp.xml new file mode 100644 index 00000000..26eda090 --- /dev/null +++ b/EurekaApp/app/src/main/res/drawable/ic_forum_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/EurekaApp/app/src/main/res/drawable/ic_home_black_24dp.xml b/EurekaApp/app/src/main/res/drawable/ic_home_black_24dp.xml new file mode 100644 index 00000000..f8bb0b55 --- /dev/null +++ b/EurekaApp/app/src/main/res/drawable/ic_home_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/EurekaApp/app/src/main/res/drawable/ic_launcher_foreground.xml b/EurekaApp/app/src/main/res/drawable/ic_launcher_foreground.xml new file mode 100644 index 00000000..b38dc266 --- /dev/null +++ b/EurekaApp/app/src/main/res/drawable/ic_launcher_foreground.xml @@ -0,0 +1,13 @@ + + + + + diff --git a/EurekaApp/app/src/main/res/drawable/ic_notifications_black_24dp.xml b/EurekaApp/app/src/main/res/drawable/ic_notifications_black_24dp.xml new file mode 100644 index 00000000..78b75c39 --- /dev/null +++ b/EurekaApp/app/src/main/res/drawable/ic_notifications_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/EurekaApp/app/src/main/res/drawable/ic_place_black_24dp.xml b/EurekaApp/app/src/main/res/drawable/ic_place_black_24dp.xml new file mode 100644 index 00000000..e3291a94 --- /dev/null +++ b/EurekaApp/app/src/main/res/drawable/ic_place_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/EurekaApp/app/src/main/res/drawable/ic_settings_black_24dp.xml b/EurekaApp/app/src/main/res/drawable/ic_settings_black_24dp.xml new file mode 100644 index 00000000..24a5623c --- /dev/null +++ b/EurekaApp/app/src/main/res/drawable/ic_settings_black_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/EurekaApp/app/src/main/res/layout/activity_login.xml b/EurekaApp/app/src/main/res/layout/activity_login.xml new file mode 100644 index 00000000..9c6ea364 --- /dev/null +++ b/EurekaApp/app/src/main/res/layout/activity_login.xml @@ -0,0 +1,91 @@ + + + + + + + + + + + + + +