diff --git a/.gradle/7.0.2/executionHistory/executionHistory.bin b/.gradle/7.0.2/executionHistory/executionHistory.bin index cad3408..254495c 100644 Binary files a/.gradle/7.0.2/executionHistory/executionHistory.bin and b/.gradle/7.0.2/executionHistory/executionHistory.bin differ diff --git a/.gradle/7.0.2/executionHistory/executionHistory.lock b/.gradle/7.0.2/executionHistory/executionHistory.lock index b0397e3..dc80b14 100644 Binary files a/.gradle/7.0.2/executionHistory/executionHistory.lock and b/.gradle/7.0.2/executionHistory/executionHistory.lock differ diff --git a/.gradle/7.0.2/fileHashes/fileHashes.bin b/.gradle/7.0.2/fileHashes/fileHashes.bin index 59430c9..986f7ac 100644 Binary files a/.gradle/7.0.2/fileHashes/fileHashes.bin and b/.gradle/7.0.2/fileHashes/fileHashes.bin differ diff --git a/.gradle/7.0.2/fileHashes/fileHashes.lock b/.gradle/7.0.2/fileHashes/fileHashes.lock index af91e5d..979056b 100644 Binary files a/.gradle/7.0.2/fileHashes/fileHashes.lock and b/.gradle/7.0.2/fileHashes/fileHashes.lock differ diff --git a/.gradle/7.0.2/fileHashes/resourceHashesCache.bin b/.gradle/7.0.2/fileHashes/resourceHashesCache.bin index b4b51d2..49fef02 100644 Binary files a/.gradle/7.0.2/fileHashes/resourceHashesCache.bin and b/.gradle/7.0.2/fileHashes/resourceHashesCache.bin differ diff --git a/.gradle/7.0.2/javaCompile/classAnalysis.bin b/.gradle/7.0.2/javaCompile/classAnalysis.bin index c81f2d8..2cb294a 100644 Binary files a/.gradle/7.0.2/javaCompile/classAnalysis.bin and b/.gradle/7.0.2/javaCompile/classAnalysis.bin differ diff --git a/.gradle/7.0.2/javaCompile/jarAnalysis.bin b/.gradle/7.0.2/javaCompile/jarAnalysis.bin index 11b4377..3dd4339 100644 Binary files a/.gradle/7.0.2/javaCompile/jarAnalysis.bin and b/.gradle/7.0.2/javaCompile/jarAnalysis.bin differ diff --git a/.gradle/7.0.2/javaCompile/javaCompile.lock b/.gradle/7.0.2/javaCompile/javaCompile.lock index c790ce2..f1cbf97 100644 Binary files a/.gradle/7.0.2/javaCompile/javaCompile.lock and b/.gradle/7.0.2/javaCompile/javaCompile.lock differ diff --git a/.gradle/7.0.2/javaCompile/taskHistory.bin b/.gradle/7.0.2/javaCompile/taskHistory.bin index c0b6107..679115c 100644 Binary files a/.gradle/7.0.2/javaCompile/taskHistory.bin and b/.gradle/7.0.2/javaCompile/taskHistory.bin differ diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index be1c626..be5ce91 100644 Binary files a/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ diff --git a/.gradle/buildOutputCleanup/outputFiles.bin b/.gradle/buildOutputCleanup/outputFiles.bin index c6b5c4c..2688fe5 100644 Binary files a/.gradle/buildOutputCleanup/outputFiles.bin and b/.gradle/buildOutputCleanup/outputFiles.bin differ diff --git a/.gradle/checksums/checksums.lock b/.gradle/checksums/checksums.lock index 6816db2..957a84d 100644 Binary files a/.gradle/checksums/checksums.lock and b/.gradle/checksums/checksums.lock differ diff --git a/.gradle/checksums/md5-checksums.bin b/.gradle/checksums/md5-checksums.bin index 374f39b..c652cfb 100644 Binary files a/.gradle/checksums/md5-checksums.bin and b/.gradle/checksums/md5-checksums.bin differ diff --git a/.gradle/checksums/sha1-checksums.bin b/.gradle/checksums/sha1-checksums.bin index 7a0712d..47992d4 100644 Binary files a/.gradle/checksums/sha1-checksums.bin and b/.gradle/checksums/sha1-checksums.bin differ diff --git a/.idea/libraries/Gradle__androidx_annotation_annotation_experimental_1_1_0_aar.xml b/.idea/libraries/Gradle__androidx_annotation_annotation_experimental_1_1_0_aar.xml index dcdb7b3..9698567 100644 --- a/.idea/libraries/Gradle__androidx_annotation_annotation_experimental_1_1_0_aar.xml +++ b/.idea/libraries/Gradle__androidx_annotation_annotation_experimental_1_1_0_aar.xml @@ -1,9 +1,9 @@ - - - + + + diff --git a/.idea/libraries/Gradle__androidx_arch_core_core_runtime_2_1_0_aar.xml b/.idea/libraries/Gradle__androidx_arch_core_core_runtime_2_1_0_aar.xml index 495f433..879a908 100644 --- a/.idea/libraries/Gradle__androidx_arch_core_core_runtime_2_1_0_aar.xml +++ b/.idea/libraries/Gradle__androidx_arch_core_core_runtime_2_1_0_aar.xml @@ -1,9 +1,10 @@ - - + + + diff --git a/.idea/libraries/Gradle__androidx_asynclayoutinflater_asynclayoutinflater_1_0_0_aar.xml b/.idea/libraries/Gradle__androidx_asynclayoutinflater_asynclayoutinflater_1_0_0_aar.xml index 3dd6077..ecd48e4 100644 --- a/.idea/libraries/Gradle__androidx_asynclayoutinflater_asynclayoutinflater_1_0_0_aar.xml +++ b/.idea/libraries/Gradle__androidx_asynclayoutinflater_asynclayoutinflater_1_0_0_aar.xml @@ -1,9 +1,10 @@ - - + + + diff --git a/.idea/libraries/Gradle__androidx_cardview_cardview_1_0_0_aar.xml b/.idea/libraries/Gradle__androidx_cardview_cardview_1_0_0_aar.xml index 503fd05..08827f8 100644 --- a/.idea/libraries/Gradle__androidx_cardview_cardview_1_0_0_aar.xml +++ b/.idea/libraries/Gradle__androidx_cardview_cardview_1_0_0_aar.xml @@ -1,9 +1,9 @@ - - - + + + diff --git a/.idea/libraries/Gradle__androidx_coordinatorlayout_coordinatorlayout_1_1_0_aar.xml b/.idea/libraries/Gradle__androidx_coordinatorlayout_coordinatorlayout_1_1_0_aar.xml index 5e31e66..eeb4d37 100644 --- a/.idea/libraries/Gradle__androidx_coordinatorlayout_coordinatorlayout_1_1_0_aar.xml +++ b/.idea/libraries/Gradle__androidx_coordinatorlayout_coordinatorlayout_1_1_0_aar.xml @@ -1,12 +1,12 @@ - + - - - + + + diff --git a/.idea/libraries/Gradle__androidx_cursoradapter_cursoradapter_1_0_0_aar.xml b/.idea/libraries/Gradle__androidx_cursoradapter_cursoradapter_1_0_0_aar.xml index a2a7909..7f9fcfc 100644 --- a/.idea/libraries/Gradle__androidx_cursoradapter_cursoradapter_1_0_0_aar.xml +++ b/.idea/libraries/Gradle__androidx_cursoradapter_cursoradapter_1_0_0_aar.xml @@ -1,9 +1,10 @@ - - + + + diff --git a/.idea/libraries/Gradle__androidx_customview_customview_1_1_0_aar.xml b/.idea/libraries/Gradle__androidx_customview_customview_1_1_0_aar.xml index 8dede71..7d067fb 100644 --- a/.idea/libraries/Gradle__androidx_customview_customview_1_1_0_aar.xml +++ b/.idea/libraries/Gradle__androidx_customview_customview_1_1_0_aar.xml @@ -1,9 +1,10 @@ - - + + + diff --git a/.idea/libraries/Gradle__androidx_databinding_viewbinding_7_0_1_aar.xml b/.idea/libraries/Gradle__androidx_databinding_viewbinding_7_0_1_aar.xml index 099b294..fcd592c 100644 --- a/.idea/libraries/Gradle__androidx_databinding_viewbinding_7_0_1_aar.xml +++ b/.idea/libraries/Gradle__androidx_databinding_viewbinding_7_0_1_aar.xml @@ -1,9 +1,10 @@ - - + + + diff --git a/.idea/libraries/Gradle__androidx_documentfile_documentfile_1_0_0_aar.xml b/.idea/libraries/Gradle__androidx_documentfile_documentfile_1_0_0_aar.xml index fae160d..1bef50f 100644 --- a/.idea/libraries/Gradle__androidx_documentfile_documentfile_1_0_0_aar.xml +++ b/.idea/libraries/Gradle__androidx_documentfile_documentfile_1_0_0_aar.xml @@ -1,9 +1,10 @@ - - + + + diff --git a/.idea/libraries/Gradle__androidx_drawerlayout_drawerlayout_1_1_1_aar.xml b/.idea/libraries/Gradle__androidx_drawerlayout_drawerlayout_1_1_1_aar.xml index 34bb617..55e3d39 100644 --- a/.idea/libraries/Gradle__androidx_drawerlayout_drawerlayout_1_1_1_aar.xml +++ b/.idea/libraries/Gradle__androidx_drawerlayout_drawerlayout_1_1_1_aar.xml @@ -1,12 +1,12 @@ - + - - - + + + diff --git a/.idea/libraries/Gradle__androidx_dynamicanimation_dynamicanimation_1_0_0_aar.xml b/.idea/libraries/Gradle__androidx_dynamicanimation_dynamicanimation_1_0_0_aar.xml index f9ec2d9..944af8f 100644 --- a/.idea/libraries/Gradle__androidx_dynamicanimation_dynamicanimation_1_0_0_aar.xml +++ b/.idea/libraries/Gradle__androidx_dynamicanimation_dynamicanimation_1_0_0_aar.xml @@ -1,9 +1,10 @@ - - + + + diff --git a/.idea/libraries/Gradle__androidx_interpolator_interpolator_1_0_0_aar.xml b/.idea/libraries/Gradle__androidx_interpolator_interpolator_1_0_0_aar.xml index d19fcac..dee08ff 100644 --- a/.idea/libraries/Gradle__androidx_interpolator_interpolator_1_0_0_aar.xml +++ b/.idea/libraries/Gradle__androidx_interpolator_interpolator_1_0_0_aar.xml @@ -1,9 +1,10 @@ - - + + + diff --git a/.idea/libraries/Gradle__androidx_legacy_legacy_support_core_ui_1_0_0_aar.xml b/.idea/libraries/Gradle__androidx_legacy_legacy_support_core_ui_1_0_0_aar.xml index 1dbf44a..c413957 100644 --- a/.idea/libraries/Gradle__androidx_legacy_legacy_support_core_ui_1_0_0_aar.xml +++ b/.idea/libraries/Gradle__androidx_legacy_legacy_support_core_ui_1_0_0_aar.xml @@ -1,9 +1,10 @@ - - + + + diff --git a/.idea/libraries/Gradle__androidx_legacy_legacy_support_core_utils_1_0_0_aar.xml b/.idea/libraries/Gradle__androidx_legacy_legacy_support_core_utils_1_0_0_aar.xml index 4a28f82..59e2299 100644 --- a/.idea/libraries/Gradle__androidx_legacy_legacy_support_core_utils_1_0_0_aar.xml +++ b/.idea/libraries/Gradle__androidx_legacy_legacy_support_core_utils_1_0_0_aar.xml @@ -1,9 +1,10 @@ - - + + + diff --git a/.idea/libraries/Gradle__androidx_legacy_legacy_support_v4_1_0_0_aar.xml b/.idea/libraries/Gradle__androidx_legacy_legacy_support_v4_1_0_0_aar.xml index c865e96..03c3723 100644 --- a/.idea/libraries/Gradle__androidx_legacy_legacy_support_v4_1_0_0_aar.xml +++ b/.idea/libraries/Gradle__androidx_legacy_legacy_support_v4_1_0_0_aar.xml @@ -1,9 +1,10 @@ - - + + + diff --git a/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_core_2_3_1_aar.xml b/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_core_2_3_1_aar.xml index 69338ad..151f834 100644 --- a/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_core_2_3_1_aar.xml +++ b/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_core_2_3_1_aar.xml @@ -1,9 +1,10 @@ - - + + + diff --git a/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_runtime_2_3_1_aar.xml b/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_runtime_2_3_1_aar.xml index 6c4c76d..3f8187c 100644 --- a/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_runtime_2_3_1_aar.xml +++ b/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_runtime_2_3_1_aar.xml @@ -1,9 +1,9 @@ - - - + + + diff --git a/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_runtime_2_4_0_aar.xml b/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_runtime_2_4_0_aar.xml index 47a5778..8a4cdf7 100644 --- a/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_runtime_2_4_0_aar.xml +++ b/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_runtime_2_4_0_aar.xml @@ -1,9 +1,9 @@ - - - + + + diff --git a/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_savedstate_2_3_1_aar.xml b/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_savedstate_2_3_1_aar.xml index e007be1..136b292 100644 --- a/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_savedstate_2_3_1_aar.xml +++ b/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_savedstate_2_3_1_aar.xml @@ -1,9 +1,10 @@ - - + + + diff --git a/.idea/libraries/Gradle__androidx_loader_loader_1_0_0_aar.xml b/.idea/libraries/Gradle__androidx_loader_loader_1_0_0_aar.xml index 87e49d2..eaa0989 100644 --- a/.idea/libraries/Gradle__androidx_loader_loader_1_0_0_aar.xml +++ b/.idea/libraries/Gradle__androidx_loader_loader_1_0_0_aar.xml @@ -1,9 +1,10 @@ - - + + + diff --git a/.idea/libraries/Gradle__androidx_localbroadcastmanager_localbroadcastmanager_1_0_0_aar.xml b/.idea/libraries/Gradle__androidx_localbroadcastmanager_localbroadcastmanager_1_0_0_aar.xml index de6b04d..3ad622f 100644 --- a/.idea/libraries/Gradle__androidx_localbroadcastmanager_localbroadcastmanager_1_0_0_aar.xml +++ b/.idea/libraries/Gradle__androidx_localbroadcastmanager_localbroadcastmanager_1_0_0_aar.xml @@ -1,9 +1,10 @@ - - + + + diff --git a/.idea/libraries/Gradle__androidx_media_media_1_0_0_aar.xml b/.idea/libraries/Gradle__androidx_media_media_1_0_0_aar.xml index a515969..7c774eb 100644 --- a/.idea/libraries/Gradle__androidx_media_media_1_0_0_aar.xml +++ b/.idea/libraries/Gradle__androidx_media_media_1_0_0_aar.xml @@ -1,12 +1,12 @@ - + - - - + + + diff --git a/.idea/libraries/Gradle__androidx_print_print_1_0_0_aar.xml b/.idea/libraries/Gradle__androidx_print_print_1_0_0_aar.xml index 0e6d05c..5b42ffb 100644 --- a/.idea/libraries/Gradle__androidx_print_print_1_0_0_aar.xml +++ b/.idea/libraries/Gradle__androidx_print_print_1_0_0_aar.xml @@ -1,12 +1,13 @@ - + - - + + + diff --git a/.idea/libraries/Gradle__androidx_recyclerview_recyclerview_1_1_0_aar.xml b/.idea/libraries/Gradle__androidx_recyclerview_recyclerview_1_1_0_aar.xml index 9e3eb0b..2439b92 100644 --- a/.idea/libraries/Gradle__androidx_recyclerview_recyclerview_1_1_0_aar.xml +++ b/.idea/libraries/Gradle__androidx_recyclerview_recyclerview_1_1_0_aar.xml @@ -1,12 +1,12 @@ - + - - - + + + diff --git a/.idea/libraries/Gradle__androidx_savedstate_savedstate_1_1_0_aar.xml b/.idea/libraries/Gradle__androidx_savedstate_savedstate_1_1_0_aar.xml index 5bf858c..3d63487 100644 --- a/.idea/libraries/Gradle__androidx_savedstate_savedstate_1_1_0_aar.xml +++ b/.idea/libraries/Gradle__androidx_savedstate_savedstate_1_1_0_aar.xml @@ -1,9 +1,9 @@ - - - + + + diff --git a/.idea/libraries/Gradle__androidx_swiperefreshlayout_swiperefreshlayout_1_0_0_aar.xml b/.idea/libraries/Gradle__androidx_swiperefreshlayout_swiperefreshlayout_1_0_0_aar.xml index f9b6710..7feba0b 100644 --- a/.idea/libraries/Gradle__androidx_swiperefreshlayout_swiperefreshlayout_1_0_0_aar.xml +++ b/.idea/libraries/Gradle__androidx_swiperefreshlayout_swiperefreshlayout_1_0_0_aar.xml @@ -1,12 +1,13 @@ - + - - + + + diff --git a/.idea/libraries/Gradle__androidx_test_core_1_4_0_aar.xml b/.idea/libraries/Gradle__androidx_test_core_1_4_0_aar.xml index 6ddb1d6..b7caabe 100644 --- a/.idea/libraries/Gradle__androidx_test_core_1_4_0_aar.xml +++ b/.idea/libraries/Gradle__androidx_test_core_1_4_0_aar.xml @@ -1,9 +1,10 @@ - - + + + diff --git a/.idea/libraries/Gradle__androidx_test_espresso_espresso_core_3_4_0_aar.xml b/.idea/libraries/Gradle__androidx_test_espresso_espresso_core_3_4_0_aar.xml index 85a04b2..71f9952 100644 --- a/.idea/libraries/Gradle__androidx_test_espresso_espresso_core_3_4_0_aar.xml +++ b/.idea/libraries/Gradle__androidx_test_espresso_espresso_core_3_4_0_aar.xml @@ -1,9 +1,10 @@ - - + + + diff --git a/.idea/libraries/Gradle__androidx_test_espresso_espresso_idling_resource_3_4_0_aar.xml b/.idea/libraries/Gradle__androidx_test_espresso_espresso_idling_resource_3_4_0_aar.xml index 4075563..bdd947e 100644 --- a/.idea/libraries/Gradle__androidx_test_espresso_espresso_idling_resource_3_4_0_aar.xml +++ b/.idea/libraries/Gradle__androidx_test_espresso_espresso_idling_resource_3_4_0_aar.xml @@ -1,9 +1,10 @@ - - + + + diff --git a/.idea/libraries/Gradle__androidx_test_ext_junit_1_1_3_aar.xml b/.idea/libraries/Gradle__androidx_test_ext_junit_1_1_3_aar.xml index 9bb06ea..8957d1f 100644 --- a/.idea/libraries/Gradle__androidx_test_ext_junit_1_1_3_aar.xml +++ b/.idea/libraries/Gradle__androidx_test_ext_junit_1_1_3_aar.xml @@ -1,9 +1,10 @@ - - + + + diff --git a/.idea/libraries/Gradle__androidx_test_monitor_1_4_0_aar.xml b/.idea/libraries/Gradle__androidx_test_monitor_1_4_0_aar.xml index 4b30040..814152a 100644 --- a/.idea/libraries/Gradle__androidx_test_monitor_1_4_0_aar.xml +++ b/.idea/libraries/Gradle__androidx_test_monitor_1_4_0_aar.xml @@ -1,9 +1,10 @@ - - + + + diff --git a/.idea/libraries/Gradle__androidx_test_runner_1_4_0_aar.xml b/.idea/libraries/Gradle__androidx_test_runner_1_4_0_aar.xml index 977efcd..507b508 100644 --- a/.idea/libraries/Gradle__androidx_test_runner_1_4_0_aar.xml +++ b/.idea/libraries/Gradle__androidx_test_runner_1_4_0_aar.xml @@ -1,9 +1,10 @@ - - + + + diff --git a/.idea/libraries/Gradle__androidx_test_services_storage_1_4_0_aar.xml b/.idea/libraries/Gradle__androidx_test_services_storage_1_4_0_aar.xml index 940d0a9..37a8163 100644 --- a/.idea/libraries/Gradle__androidx_test_services_storage_1_4_0_aar.xml +++ b/.idea/libraries/Gradle__androidx_test_services_storage_1_4_0_aar.xml @@ -1,9 +1,10 @@ - - + + + diff --git a/.idea/libraries/Gradle__androidx_transition_transition_1_2_0_aar.xml b/.idea/libraries/Gradle__androidx_transition_transition_1_2_0_aar.xml index 29976ba..8b8cd8e 100644 --- a/.idea/libraries/Gradle__androidx_transition_transition_1_2_0_aar.xml +++ b/.idea/libraries/Gradle__androidx_transition_transition_1_2_0_aar.xml @@ -1,12 +1,12 @@ - + - - - + + + diff --git a/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_1_1_0_aar.xml b/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_1_1_0_aar.xml index 24b05bb..8b07d5e 100644 --- a/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_1_1_0_aar.xml +++ b/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_1_1_0_aar.xml @@ -1,9 +1,10 @@ - - + + + diff --git a/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_animated_1_1_0_aar.xml b/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_animated_1_1_0_aar.xml index fe218c8..2aa2d59 100644 --- a/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_animated_1_1_0_aar.xml +++ b/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_animated_1_1_0_aar.xml @@ -1,9 +1,10 @@ - - + + + diff --git a/.idea/libraries/Gradle__androidx_versionedparcelable_versionedparcelable_1_1_1_aar.xml b/.idea/libraries/Gradle__androidx_versionedparcelable_versionedparcelable_1_1_1_aar.xml index fe0e8ee..ffd280b 100644 --- a/.idea/libraries/Gradle__androidx_versionedparcelable_versionedparcelable_1_1_1_aar.xml +++ b/.idea/libraries/Gradle__androidx_versionedparcelable_versionedparcelable_1_1_1_aar.xml @@ -1,9 +1,10 @@ - - + + + diff --git a/.idea/libraries/Gradle__androidx_viewpager2_viewpager2_1_0_0_aar.xml b/.idea/libraries/Gradle__androidx_viewpager2_viewpager2_1_0_0_aar.xml index b1eb867..4497cfc 100644 --- a/.idea/libraries/Gradle__androidx_viewpager2_viewpager2_1_0_0_aar.xml +++ b/.idea/libraries/Gradle__androidx_viewpager2_viewpager2_1_0_0_aar.xml @@ -1,12 +1,12 @@ - + - - - + + + diff --git a/.idea/libraries/Gradle__androidx_viewpager_viewpager_1_0_0_aar.xml b/.idea/libraries/Gradle__androidx_viewpager_viewpager_1_0_0_aar.xml index de9ef73..e64dac5 100644 --- a/.idea/libraries/Gradle__androidx_viewpager_viewpager_1_0_0_aar.xml +++ b/.idea/libraries/Gradle__androidx_viewpager_viewpager_1_0_0_aar.xml @@ -1,9 +1,10 @@ - - + + + diff --git a/.idea/libraries/Gradle__de_hdodenhof_circleimageview_3_1_0_aar.xml b/.idea/libraries/Gradle__de_hdodenhof_circleimageview_3_1_0_aar.xml index 1894346..8fb7bed 100644 --- a/.idea/libraries/Gradle__de_hdodenhof_circleimageview_3_1_0_aar.xml +++ b/.idea/libraries/Gradle__de_hdodenhof_circleimageview_3_1_0_aar.xml @@ -1,9 +1,9 @@ - - - + + + diff --git a/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_android_extensions_runtime_1_5_21.xml b/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_android_extensions_runtime_1_5_21.xml deleted file mode 100644 index 04307c0..0000000 --- a/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_android_extensions_runtime_1_5_21.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_5_21.xml b/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_5_21.xml deleted file mode 100644 index ce352f3..0000000 --- a/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_5_21.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk8_1_5_21.xml b/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk8_1_5_21.xml deleted file mode 100644 index 433044f..0000000 --- a/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk8_1_5_21.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 6b8398b..5960587 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -2,16 +2,19 @@ - + + android:theme="@style/Theme.Assignment" + android:usesCleartextTraffic="true"> + diff --git a/app/src/main/java/org/techtown/assignment/ui/HomeActivity.kt b/app/src/main/java/org/techtown/assignment/ui/HomeActivity.kt index f7e6525..30ae527 100644 --- a/app/src/main/java/org/techtown/assignment/ui/HomeActivity.kt +++ b/app/src/main/java/org/techtown/assignment/ui/HomeActivity.kt @@ -5,6 +5,8 @@ import androidx.appcompat.app.AppCompatActivity import androidx.viewpager2.widget.ViewPager2 import org.techtown.assignment.R import org.techtown.assignment.databinding.ActivityHomeBinding +import org.techtown.assignment.ui.camera.CameraFragment +import org.techtown.assignment.ui.home.HomeFragment import org.techtown.assignment.ui.profile.ProfileFragment class HomeActivity : AppCompatActivity() { diff --git a/app/src/main/java/org/techtown/assignment/ui/login/SignInActivity.kt b/app/src/main/java/org/techtown/assignment/ui/login/SignInActivity.kt index 3339b4e..63a4601 100644 --- a/app/src/main/java/org/techtown/assignment/ui/login/SignInActivity.kt +++ b/app/src/main/java/org/techtown/assignment/ui/login/SignInActivity.kt @@ -1,24 +1,19 @@ package org.techtown.assignment.ui.login -import android.content.Context import android.content.Intent -import android.os.Bundle -import android.util.Log -import android.widget.Toast import androidx.activity.result.contract.ActivityResultContracts -import androidx.appcompat.app.AppCompatActivity -import org.techtown.assignment.ui.login.model.RequestSignIn -import org.techtown.assignment.ui.login.model.ServiceCreator +import androidx.activity.viewModels +import org.techtown.assignment.R import org.techtown.assignment.databinding.ActivitySigninBinding import org.techtown.assignment.ui.HomeActivity -import retrofit2.Call -import retrofit2.Callback -import retrofit2.Response +import org.techtown.assignment.ui.login.viewmodel.SignInViewModel +import org.techtown.assignment.util.BaseActivity +import org.techtown.assignment.util.showToast -class SignInActivity : AppCompatActivity() { - private var emptyCheck = false +class SignInActivity : + BaseActivity(R.layout.activity_signin) { + val viewModel: SignInViewModel by viewModels() - private lateinit var binding: ActivitySigninBinding private val resultLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { if (it.resultCode == RESULT_OK) { @@ -29,72 +24,19 @@ class SignInActivity : AppCompatActivity() { } } - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - - binding = ActivitySigninBinding.inflate(layoutInflater) - setContentView(binding.root) - initEvent() - } - - - private fun initEvent() { - binding.btnLogin.setOnClickListener { - val id = binding.etId.text.toString() - val pwd = binding.etPwd.text.toString() - - emptyCheck = id.isEmpty() || pwd.isEmpty() - - if (!emptyCheck) { - loginNetwork() - } else Toast.makeText(this, "정보를 모두 기입해주세요.", Toast.LENGTH_SHORT).show() - } + override fun init() { + binding.viewmodel = viewModel binding.btnJoin.setOnClickListener { val intent = Intent(this, SignUpActivity::class.java) resultLauncher.launch(intent) } - } - - fun Call.enqueueUtil( - onSuccess: (ResponseType) -> Unit, - onError: ((stateCode: Int) -> Unit)? = null - ){ - this.enqueue(object: Callback{ - override fun onResponse(call: Call, response: Response){ - if(response.isSuccessful){ - onSuccess.invoke(response.body()?:return) - }else{ - onError?.invoke(response.code()) - } - } - override fun onFailure(call: Call, t:Throwable){ - Log.d("NetworkTest", "error:$t") - } - }) - } - - fun Context.showToast(msg: String) { - Toast.makeText(this, msg, Toast.LENGTH_SHORT).show() - } - private fun loginNetwork() { - val requestSignIn = RequestSignIn( - id = binding.etId.text.toString(), - password = binding.etPwd.text.toString(), - ) - - val call = ServiceCreator.soptService.postLogin(requestSignIn) - - call.enqueueUtil( - onSuccess = { - val data = it?.data - showToast("${data?.name}님 반갑습니다!") + viewModel.successLogin.observe(this) { + if (it) { + showToast("${viewModel.id.value}님 안녕하세요.") startActivity(Intent(this@SignInActivity, HomeActivity::class.java)) - }, - onError = { - showToast("아이디/비밀번호를 확인해주세요.") - } - ) + } else showToast("아이디/비밀번호를 확인해주세요.") + } } } \ No newline at end of file diff --git a/app/src/main/java/org/techtown/assignment/ui/login/SignUpActivity.kt b/app/src/main/java/org/techtown/assignment/ui/login/SignUpActivity.kt index b8b88be..96047d6 100644 --- a/app/src/main/java/org/techtown/assignment/ui/login/SignUpActivity.kt +++ b/app/src/main/java/org/techtown/assignment/ui/login/SignUpActivity.kt @@ -1,90 +1,34 @@ package org.techtown.assignment.ui.login -import android.content.Context import android.content.Intent -import android.os.Bundle -import android.util.Log -import android.widget.Toast -import androidx.appcompat.app.AppCompatActivity -import org.techtown.assignment.ui.login.model.RequestSignUp -import org.techtown.assignment.ui.login.model.ServiceCreator +import androidx.activity.viewModels +import org.techtown.assignment.R import org.techtown.assignment.databinding.ActivitySignupBinding -import retrofit2.Call -import retrofit2.Callback -import retrofit2.Response +import org.techtown.assignment.ui.login.viewmodel.SignUpViewModel +import org.techtown.assignment.util.BaseActivity +import org.techtown.assignment.util.showToast -class SignUpActivity : AppCompatActivity() { - private lateinit var binding: ActivitySignupBinding - private var emptyCheck = false +class SignUpActivity : + BaseActivity(R.layout.activity_signup) { + val viewModel: SignUpViewModel by viewModels() - override fun onCreate(savedInstanceState: Bundle?) { + override fun init() { + binding.viewmodel = viewModel - super.onCreate(savedInstanceState) + val intent = Intent(this, SignInActivity::class.java) + intent.putExtra("userId", binding.etJoinid.text.toString()) + intent.putExtra("userPwd", binding.etJoinpwd.text.toString()) - binding = ActivitySignupBinding.inflate(layoutInflater) - setContentView(binding.root) - - binding.btnJoin2.setOnClickListener { - val name = binding.etName.text.toString() - val id = binding.etJoinid.text.toString() - val pwd = binding.etJoinpwd.text.toString() - - val intent = Intent(this, SignInActivity::class.java) - intent.putExtra("userId", binding.etJoinid.text.toString()) - intent.putExtra("userPwd", binding.etJoinpwd.text.toString()) - - emptyCheck = name.isEmpty() || id.isEmpty() || pwd.isEmpty() - - if (!emptyCheck) { - joinNetwork() - - } else { - Toast.makeText(this, "입력되지 않은 정보가 있습니다.", Toast.LENGTH_SHORT).show() + viewModel.fillInfo.observe(this) { + if (!it) { + showToast("입력되지 않은 정보가 있습니다.") } } - } - - fun Call.enqueueUtil( - onSuccess: (ResponseType) -> Unit, - onError: ((stateCode: Int) -> Unit)? = null - ) { - this.enqueue(object : Callback { - override fun onResponse(call: Call, response: Response) { - if (response.isSuccessful) { - onSuccess.invoke(response.body() ?: return) - } else { - onError?.invoke(response.code()) - } - } - - override fun onFailure(call: Call, t: Throwable) { - Log.d("NetworkTest", "error:$t") - } - }) - } - - fun Context.showToast(msg: String) { - Toast.makeText(this, msg, Toast.LENGTH_SHORT).show() - } - - private fun joinNetwork() { - val requestSignUp = RequestSignUp( - name = binding.etName.text.toString(), - id = binding.etJoinid.text.toString(), - password = binding.etJoinpwd.text.toString() - ) - - val call = ServiceCreator.soptService.postSignUp(requestSignUp) - - call.enqueueUtil( - onSuccess = { - val data = it?.data + viewModel.successJoin.observe(this) { + if (it) { showToast("회원가입 완료!") finish() - }, - onError = { - showToast("회원가입에 실패하였습니다.") - } - ) + } else showToast("중복된 아이디가 있습니다.") + } } } \ No newline at end of file diff --git a/app/src/main/java/org/techtown/assignment/ui/login/viewmodel/SignInViewModel.kt b/app/src/main/java/org/techtown/assignment/ui/login/viewmodel/SignInViewModel.kt new file mode 100644 index 0000000..fdcec70 --- /dev/null +++ b/app/src/main/java/org/techtown/assignment/ui/login/viewmodel/SignInViewModel.kt @@ -0,0 +1,33 @@ +package org.techtown.assignment.ui.login.viewmodel + +import androidx.lifecycle.MutableLiveData +import androidx.lifecycle.ViewModel +import org.techtown.assignment.ui.login.model.RequestSignIn +import org.techtown.assignment.ui.login.model.ServiceCreator +import org.techtown.assignment.util.enqueueUtil + +class SignInViewModel : ViewModel() { + private var _id = MutableLiveData() + val id get() = _id + private var _pwd = MutableLiveData() + val pwd get() = _pwd + private val _successLogin = MutableLiveData() + val successLogin get() = _successLogin + + fun onClickButton() { + if (id.value.isNullOrEmpty() || pwd.value.isNullOrEmpty()) { + _successLogin.value = false + return + } + + val call = ServiceCreator.soptService.postLogin(RequestSignIn(id.value!!, pwd.value!!)) + call.enqueueUtil( + onSuccess = { + _successLogin.value = true + }, + onError = { + _successLogin.value = false + } + ) + } +} \ No newline at end of file diff --git a/app/src/main/java/org/techtown/assignment/ui/login/viewmodel/SignUpViewModel.kt b/app/src/main/java/org/techtown/assignment/ui/login/viewmodel/SignUpViewModel.kt new file mode 100644 index 0000000..5b4c7f0 --- /dev/null +++ b/app/src/main/java/org/techtown/assignment/ui/login/viewmodel/SignUpViewModel.kt @@ -0,0 +1,44 @@ +package org.techtown.assignment.ui.login.viewmodel + +import androidx.lifecycle.MutableLiveData +import androidx.lifecycle.ViewModel +import org.techtown.assignment.ui.login.model.RequestSignUp +import org.techtown.assignment.ui.login.model.ServiceCreator +import org.techtown.assignment.util.enqueueUtil + +class SignUpViewModel : ViewModel() { + private var _name = MutableLiveData() + val name get() = _name + private var _id = MutableLiveData() + val id get() = _id + private var _pwd = MutableLiveData() + val pwd get() = _pwd + private val _successJoin = MutableLiveData() + val successJoin get() = _successJoin + private val _fillInfo = MutableLiveData() + val fillInfo get() = _fillInfo + + fun onClickButton() { + if (name.value.isNullOrEmpty() || id.value.isNullOrEmpty() || pwd.value.isNullOrEmpty()) { + _fillInfo.value = false + _successJoin.value = false + return + } + + val call = ServiceCreator.soptService.postSignUp( + RequestSignUp( + name.value!!, + id.value!!, + pwd.value!! + ) + ) + call.enqueueUtil( + onSuccess = { + _successJoin.value = true + }, + onError = { + _successJoin.value = false + } + ) + } +} \ No newline at end of file diff --git a/app/src/main/java/org/techtown/assignment/ui/login/viewmodel/SignViewModel.kt b/app/src/main/java/org/techtown/assignment/ui/login/viewmodel/SignViewModel.kt deleted file mode 100644 index b9fd791..0000000 --- a/app/src/main/java/org/techtown/assignment/ui/login/viewmodel/SignViewModel.kt +++ /dev/null @@ -1,9 +0,0 @@ -package org.techtown.assignment.ui.login.viewmodel - -import androidx.lifecycle.ViewModel - -class SignViewModel: ViewModel() { - val userId = "" - val userPwd = "" - -} \ No newline at end of file diff --git a/app/src/main/java/org/techtown/assignment/ui/profile/DetailActivity.kt b/app/src/main/java/org/techtown/assignment/ui/profile/DetailActivity.kt new file mode 100644 index 0000000..78051f9 --- /dev/null +++ b/app/src/main/java/org/techtown/assignment/ui/profile/DetailActivity.kt @@ -0,0 +1,11 @@ +package org.techtown.assignment.ui.profile + +import androidx.appcompat.app.AppCompatActivity +import android.os.Bundle + +class DetailActivity : AppCompatActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_detail) + } +} \ No newline at end of file diff --git a/app/src/main/java/org/techtown/assignment/ui/profile/model/FollowerAdapter.kt b/app/src/main/java/org/techtown/assignment/ui/profile/model/FollowerAdapter.kt index 0d2340a..fcc2a8c 100644 --- a/app/src/main/java/org/techtown/assignment/ui/profile/model/FollowerAdapter.kt +++ b/app/src/main/java/org/techtown/assignment/ui/profile/model/FollowerAdapter.kt @@ -5,26 +5,26 @@ import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView import org.techtown.assignment.databinding.FollowerListBinding -class FollowerAdapter : RecyclerView.Adapter() { +class FollowerAdapter : RecyclerView.Adapter() { val followerList = mutableListOf() - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): SampleViewHolder { + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): FollowerViewHolder { val binding = FollowerListBinding.inflate( LayoutInflater.from(parent.context), parent, false ) - return SampleViewHolder(binding) + return FollowerViewHolder(binding) } - override fun onBindViewHolder(holder: SampleViewHolder, position: Int) { + override fun onBindViewHolder(holder: FollowerViewHolder, position: Int) { holder.onBind(followerList[position]) } override fun getItemCount(): Int = followerList.size - class SampleViewHolder( + class FollowerViewHolder( private val binding: FollowerListBinding ) : RecyclerView.ViewHolder(binding.root) { fun onBind(data: FollowerData) { diff --git a/app/src/main/java/org/techtown/assignment/ui/profile/model/RepositoryAdapter.kt b/app/src/main/java/org/techtown/assignment/ui/profile/model/RepositoryAdapter.kt index f8cb019..4aa530b 100644 --- a/app/src/main/java/org/techtown/assignment/ui/profile/model/RepositoryAdapter.kt +++ b/app/src/main/java/org/techtown/assignment/ui/profile/model/RepositoryAdapter.kt @@ -6,22 +6,22 @@ import androidx.recyclerview.widget.RecyclerView import org.techtown.assignment.databinding.RepositoryListBinding -class RepositoryAdapter : RecyclerView.Adapter() { +class RepositoryAdapter : RecyclerView.Adapter() { val repositoryList = mutableListOf() - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): SampleViewHolder { + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RepositoryViewHolder { val binding = RepositoryListBinding.inflate(LayoutInflater.from(parent.context), parent, false) - return SampleViewHolder(binding) + return RepositoryViewHolder(binding) } - override fun onBindViewHolder(holder: SampleViewHolder, position: Int) { + override fun onBindViewHolder(holder: RepositoryViewHolder, position: Int) { holder.onBind(repositoryList[position]) } override fun getItemCount(): Int = repositoryList.size - class SampleViewHolder( + class RepositoryViewHolder( private val binding: RepositoryListBinding ) : RecyclerView.ViewHolder(binding.root) { fun onBind(data: RepositoryData) { diff --git a/app/src/main/java/org/techtown/assignment/util/BaseActivity.kt b/app/src/main/java/org/techtown/assignment/util/BaseActivity.kt new file mode 100644 index 0000000..f3615ae --- /dev/null +++ b/app/src/main/java/org/techtown/assignment/util/BaseActivity.kt @@ -0,0 +1,24 @@ +package org.techtown.assignment.util + +import android.os.Bundle +import androidx.annotation.LayoutRes +import androidx.appcompat.app.AppCompatActivity +import androidx.databinding.DataBindingUtil +import androidx.databinding.ViewDataBinding +import androidx.lifecycle.ViewModel + +abstract class BaseActivity(@LayoutRes private val layoutRes: Int) : + AppCompatActivity() { + protected lateinit var binding: T + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + binding = DataBindingUtil.setContentView(this, layoutRes) + binding.apply{ + binding.lifecycleOwner = this@BaseActivity + } + init() + } + + protected abstract fun init() +} \ No newline at end of file diff --git a/app/src/main/java/org/techtown/assignment/util/BaseFragment.kt b/app/src/main/java/org/techtown/assignment/util/BaseFragment.kt new file mode 100644 index 0000000..a9b2092 --- /dev/null +++ b/app/src/main/java/org/techtown/assignment/util/BaseFragment.kt @@ -0,0 +1,40 @@ +package org.techtown.assignment.util + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.annotation.LayoutRes +import androidx.appcompat.app.AppCompatActivity +import androidx.databinding.DataBindingUtil +import androidx.databinding.ViewDataBinding +import androidx.fragment.app.Fragment + +abstract class BaseFragment( + @LayoutRes val layoutResId: Int +) : Fragment() { + private var _binding: T? = null + protected val binding get() = _binding!! + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + _binding = DataBindingUtil.inflate(inflater, layoutResId, container, false) + return binding.root + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + binding.lifecycleOwner = viewLifecycleOwner + init() + } + + protected abstract fun init() + + override fun onDestroyView() { + super.onDestroyView() + _binding = null + } +} \ No newline at end of file diff --git a/app/src/main/java/org/techtown/assignment/util/contextUtil.kt b/app/src/main/java/org/techtown/assignment/util/contextUtil.kt new file mode 100644 index 0000000..130105d --- /dev/null +++ b/app/src/main/java/org/techtown/assignment/util/contextUtil.kt @@ -0,0 +1,8 @@ +package org.techtown.assignment.util + +import android.content.Context +import android.widget.Toast + +fun Context.showToast(msg: String) { + Toast.makeText(this, msg, Toast.LENGTH_SHORT).show() +} \ No newline at end of file diff --git a/app/src/main/java/org/techtown/assignment/util/networkUtil.kt b/app/src/main/java/org/techtown/assignment/util/networkUtil.kt new file mode 100644 index 0000000..8f61374 --- /dev/null +++ b/app/src/main/java/org/techtown/assignment/util/networkUtil.kt @@ -0,0 +1,27 @@ +package org.techtown.assignment.util + +import android.content.Context +import android.util.Log +import android.widget.Toast +import retrofit2.Call +import retrofit2.Callback +import retrofit2.Response + +fun Call.enqueueUtil( + onSuccess: (ResponseType) -> Unit, + onError: ((stateCode: Int) -> Unit)? = null +) { + this.enqueue(object : Callback { + override fun onResponse(call: Call, response: Response) { + if (response.isSuccessful) { + onSuccess.invoke(response.body() ?: return) + } else { + onError?.invoke(response.code()) + } + } + + override fun onFailure(call: Call, t: Throwable) { + Log.d("NetworkTest", "error:$t") + } + }) +} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_detail.xml b/app/src/main/res/layout/activity_detail.xml new file mode 100644 index 0000000..73f0e24 --- /dev/null +++ b/app/src/main/res/layout/activity_detail.xml @@ -0,0 +1,9 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_signin.xml b/app/src/main/res/layout/activity_signin.xml index 1c625ae..11234c1 100644 --- a/app/src/main/res/layout/activity_signin.xml +++ b/app/src/main/res/layout/activity_signin.xml @@ -6,7 +6,7 @@ + type="org.techtown.assignment.ui.login.viewmodel.SignInViewModel" /> - + xmlns:tools="http://schemas.android.com/tools"> - + + + - + - + - + - + - + - + -