diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..8c8ad30 Binary files /dev/null and b/.DS_Store differ diff --git a/.gradle/6.5/executionHistory/executionHistory.lock b/.gradle/6.5/executionHistory/executionHistory.lock new file mode 100644 index 0000000..5b4eceb Binary files /dev/null and b/.gradle/6.5/executionHistory/executionHistory.lock differ diff --git a/.gradle/6.5/fileChanges/last-build.bin b/.gradle/6.5/fileChanges/last-build.bin new file mode 100644 index 0000000..f76dd23 Binary files /dev/null and b/.gradle/6.5/fileChanges/last-build.bin differ diff --git a/.gradle/6.5/fileHashes/fileHashes.bin b/.gradle/6.5/fileHashes/fileHashes.bin new file mode 100644 index 0000000..5581931 Binary files /dev/null and b/.gradle/6.5/fileHashes/fileHashes.bin differ diff --git a/.gradle/6.5/fileHashes/fileHashes.lock b/.gradle/6.5/fileHashes/fileHashes.lock new file mode 100644 index 0000000..d7cf9c9 Binary files /dev/null and b/.gradle/6.5/fileHashes/fileHashes.lock differ diff --git a/.gradle/6.5/gc.properties b/.gradle/6.5/gc.properties new file mode 100644 index 0000000..e69de29 diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock new file mode 100644 index 0000000..1dd3cb3 Binary files /dev/null and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ diff --git a/.gradle/buildOutputCleanup/cache.properties b/.gradle/buildOutputCleanup/cache.properties new file mode 100644 index 0000000..97b6d78 --- /dev/null +++ b/.gradle/buildOutputCleanup/cache.properties @@ -0,0 +1,2 @@ +#Tue Jan 12 19:58:58 WIB 2021 +gradle.version=6.5 diff --git a/.gradle/checksums/checksums.lock b/.gradle/checksums/checksums.lock new file mode 100644 index 0000000..efaea33 Binary files /dev/null and b/.gradle/checksums/checksums.lock differ diff --git a/.gradle/vcs-1/gc.properties b/.gradle/vcs-1/gc.properties new file mode 100644 index 0000000..e69de29 diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/.name b/.idea/.name new file mode 100644 index 0000000..9adbcf9 --- /dev/null +++ b/.idea/.name @@ -0,0 +1 @@ +Exploration Calendar App UI \ No newline at end of file diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser new file mode 100644 index 0000000..87743a1 Binary files /dev/null and b/.idea/caches/build_file_checksums.ser differ diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..61a9130 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..18de3ac --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,21 @@ + + + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..146ab09 --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,10 @@ + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..a5f05cd --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__androidx_activity_activity_1_0_0_aar.xml b/.idea/libraries/Gradle__androidx_activity_activity_1_0_0_aar.xml new file mode 100644 index 0000000..4eaaf2f --- /dev/null +++ b/.idea/libraries/Gradle__androidx_activity_activity_1_0_0_aar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__androidx_annotation_annotation_1_1_0.xml b/.idea/libraries/Gradle__androidx_annotation_annotation_1_1_0.xml new file mode 100644 index 0000000..b2158ac --- /dev/null +++ b/.idea/libraries/Gradle__androidx_annotation_annotation_1_1_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__androidx_annotation_annotation_experimental_1_0_0_aar.xml b/.idea/libraries/Gradle__androidx_annotation_annotation_experimental_1_0_0_aar.xml new file mode 100644 index 0000000..5a15be5 --- /dev/null +++ b/.idea/libraries/Gradle__androidx_annotation_annotation_experimental_1_0_0_aar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__androidx_appcompat_appcompat_1_2_0_aar.xml b/.idea/libraries/Gradle__androidx_appcompat_appcompat_1_2_0_aar.xml new file mode 100644 index 0000000..1a20b74 --- /dev/null +++ b/.idea/libraries/Gradle__androidx_appcompat_appcompat_1_2_0_aar.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__androidx_appcompat_appcompat_resources_1_2_0_aar.xml b/.idea/libraries/Gradle__androidx_appcompat_appcompat_resources_1_2_0_aar.xml new file mode 100644 index 0000000..3d0c3e1 --- /dev/null +++ b/.idea/libraries/Gradle__androidx_appcompat_appcompat_resources_1_2_0_aar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__androidx_arch_core_core_common_2_1_0.xml b/.idea/libraries/Gradle__androidx_arch_core_core_common_2_1_0.xml new file mode 100644 index 0000000..2208415 --- /dev/null +++ b/.idea/libraries/Gradle__androidx_arch_core_core_common_2_1_0.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__androidx_arch_core_core_runtime_2_0_0_aar.xml b/.idea/libraries/Gradle__androidx_arch_core_core_runtime_2_0_0_aar.xml new file mode 100644 index 0000000..f00fdc6 --- /dev/null +++ b/.idea/libraries/Gradle__androidx_arch_core_core_runtime_2_0_0_aar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file 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 new file mode 100644 index 0000000..52965f0 --- /dev/null +++ b/.idea/libraries/Gradle__androidx_asynclayoutinflater_asynclayoutinflater_1_0_0_aar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file 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 new file mode 100644 index 0000000..1769f4f --- /dev/null +++ b/.idea/libraries/Gradle__androidx_cardview_cardview_1_0_0_aar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__androidx_collection_collection_1_1_0.xml b/.idea/libraries/Gradle__androidx_collection_collection_1_1_0.xml new file mode 100644 index 0000000..eafc05e --- /dev/null +++ b/.idea/libraries/Gradle__androidx_collection_collection_1_1_0.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__androidx_constraintlayout_constraintlayout_2_0_4_aar.xml b/.idea/libraries/Gradle__androidx_constraintlayout_constraintlayout_2_0_4_aar.xml new file mode 100644 index 0000000..2c48fc2 --- /dev/null +++ b/.idea/libraries/Gradle__androidx_constraintlayout_constraintlayout_2_0_4_aar.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__androidx_constraintlayout_constraintlayout_solver_2_0_4.xml b/.idea/libraries/Gradle__androidx_constraintlayout_constraintlayout_solver_2_0_4.xml new file mode 100644 index 0000000..cba1dae --- /dev/null +++ b/.idea/libraries/Gradle__androidx_constraintlayout_constraintlayout_solver_2_0_4.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file 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 new file mode 100644 index 0000000..81ae58c --- /dev/null +++ b/.idea/libraries/Gradle__androidx_coordinatorlayout_coordinatorlayout_1_1_0_aar.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__androidx_core_core_1_3_2_aar.xml b/.idea/libraries/Gradle__androidx_core_core_1_3_2_aar.xml new file mode 100644 index 0000000..5a6ee16 --- /dev/null +++ b/.idea/libraries/Gradle__androidx_core_core_1_3_2_aar.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__androidx_core_core_ktx_1_3_2_aar.xml b/.idea/libraries/Gradle__androidx_core_core_ktx_1_3_2_aar.xml new file mode 100644 index 0000000..1a755e4 --- /dev/null +++ b/.idea/libraries/Gradle__androidx_core_core_ktx_1_3_2_aar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file 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 new file mode 100644 index 0000000..90f2f5d --- /dev/null +++ b/.idea/libraries/Gradle__androidx_cursoradapter_cursoradapter_1_0_0_aar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__androidx_customview_customview_1_0_0_aar.xml b/.idea/libraries/Gradle__androidx_customview_customview_1_0_0_aar.xml new file mode 100644 index 0000000..4fbb5db --- /dev/null +++ b/.idea/libraries/Gradle__androidx_customview_customview_1_0_0_aar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file 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 new file mode 100644 index 0000000..b365c42 --- /dev/null +++ b/.idea/libraries/Gradle__androidx_documentfile_documentfile_1_0_0_aar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__androidx_drawerlayout_drawerlayout_1_0_0_aar.xml b/.idea/libraries/Gradle__androidx_drawerlayout_drawerlayout_1_0_0_aar.xml new file mode 100644 index 0000000..8709b1f --- /dev/null +++ b/.idea/libraries/Gradle__androidx_drawerlayout_drawerlayout_1_0_0_aar.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__androidx_fragment_fragment_1_1_0_aar.xml b/.idea/libraries/Gradle__androidx_fragment_fragment_1_1_0_aar.xml new file mode 100644 index 0000000..d361a38 --- /dev/null +++ b/.idea/libraries/Gradle__androidx_fragment_fragment_1_1_0_aar.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file 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 new file mode 100644 index 0000000..ba8e7fc --- /dev/null +++ b/.idea/libraries/Gradle__androidx_interpolator_interpolator_1_0_0_aar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file 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 new file mode 100644 index 0000000..d3fff7b --- /dev/null +++ b/.idea/libraries/Gradle__androidx_legacy_legacy_support_core_ui_1_0_0_aar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file 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 new file mode 100644 index 0000000..571865e --- /dev/null +++ b/.idea/libraries/Gradle__androidx_legacy_legacy_support_core_utils_1_0_0_aar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file 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 new file mode 100644 index 0000000..daef3d4 --- /dev/null +++ b/.idea/libraries/Gradle__androidx_legacy_legacy_support_v4_1_0_0_aar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_common_2_1_0.xml b/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_common_2_1_0.xml new file mode 100644 index 0000000..9354d44 --- /dev/null +++ b/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_common_2_1_0.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_2_0_0_aar.xml b/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_2_0_0_aar.xml new file mode 100644 index 0000000..a9160ab --- /dev/null +++ b/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_2_0_0_aar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_core_2_0_0_aar.xml b/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_core_2_0_0_aar.xml new file mode 100644 index 0000000..14b0155 --- /dev/null +++ b/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_livedata_core_2_0_0_aar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_runtime_2_1_0_aar.xml b/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_runtime_2_1_0_aar.xml new file mode 100644 index 0000000..0c150b4 --- /dev/null +++ b/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_runtime_2_1_0_aar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_2_1_0_aar.xml b/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_2_1_0_aar.xml new file mode 100644 index 0000000..fceb130 --- /dev/null +++ b/.idea/libraries/Gradle__androidx_lifecycle_lifecycle_viewmodel_2_1_0_aar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file 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 new file mode 100644 index 0000000..69abd0e --- /dev/null +++ b/.idea/libraries/Gradle__androidx_loader_loader_1_0_0_aar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file 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 new file mode 100644 index 0000000..17d9290 --- /dev/null +++ b/.idea/libraries/Gradle__androidx_localbroadcastmanager_localbroadcastmanager_1_0_0_aar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file 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 new file mode 100644 index 0000000..9ac4ee0 --- /dev/null +++ b/.idea/libraries/Gradle__androidx_media_media_1_0_0_aar.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file 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 new file mode 100644 index 0000000..89e7d3a --- /dev/null +++ b/.idea/libraries/Gradle__androidx_print_print_1_0_0_aar.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file 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 new file mode 100644 index 0000000..9f74dc1 --- /dev/null +++ b/.idea/libraries/Gradle__androidx_recyclerview_recyclerview_1_1_0_aar.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__androidx_recyclerview_recyclerview_selection_1_1_0_alpha06_aar.xml b/.idea/libraries/Gradle__androidx_recyclerview_recyclerview_selection_1_1_0_alpha06_aar.xml new file mode 100644 index 0000000..8ccffd2 --- /dev/null +++ b/.idea/libraries/Gradle__androidx_recyclerview_recyclerview_selection_1_1_0_alpha06_aar.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__androidx_savedstate_savedstate_1_0_0_aar.xml b/.idea/libraries/Gradle__androidx_savedstate_savedstate_1_0_0_aar.xml new file mode 100644 index 0000000..d096092 --- /dev/null +++ b/.idea/libraries/Gradle__androidx_savedstate_savedstate_1_0_0_aar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__androidx_slidingpanelayout_slidingpanelayout_1_0_0_aar.xml b/.idea/libraries/Gradle__androidx_slidingpanelayout_slidingpanelayout_1_0_0_aar.xml new file mode 100644 index 0000000..6656e94 --- /dev/null +++ b/.idea/libraries/Gradle__androidx_slidingpanelayout_slidingpanelayout_1_0_0_aar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file 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 new file mode 100644 index 0000000..dffeb1e --- /dev/null +++ b/.idea/libraries/Gradle__androidx_swiperefreshlayout_swiperefreshlayout_1_0_0_aar.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__androidx_test_core_1_3_0_aar.xml b/.idea/libraries/Gradle__androidx_test_core_1_3_0_aar.xml new file mode 100644 index 0000000..5fd897d --- /dev/null +++ b/.idea/libraries/Gradle__androidx_test_core_1_3_0_aar.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__androidx_test_espresso_espresso_core_3_3_0_aar.xml b/.idea/libraries/Gradle__androidx_test_espresso_espresso_core_3_3_0_aar.xml new file mode 100644 index 0000000..3fe17b3 --- /dev/null +++ b/.idea/libraries/Gradle__androidx_test_espresso_espresso_core_3_3_0_aar.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__androidx_test_espresso_espresso_idling_resource_3_3_0_aar.xml b/.idea/libraries/Gradle__androidx_test_espresso_espresso_idling_resource_3_3_0_aar.xml new file mode 100644 index 0000000..ac05ece --- /dev/null +++ b/.idea/libraries/Gradle__androidx_test_espresso_espresso_idling_resource_3_3_0_aar.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__androidx_test_ext_junit_1_1_2_aar.xml b/.idea/libraries/Gradle__androidx_test_ext_junit_1_1_2_aar.xml new file mode 100644 index 0000000..0317df6 --- /dev/null +++ b/.idea/libraries/Gradle__androidx_test_ext_junit_1_1_2_aar.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__androidx_test_monitor_1_3_0_aar.xml b/.idea/libraries/Gradle__androidx_test_monitor_1_3_0_aar.xml new file mode 100644 index 0000000..be62f62 --- /dev/null +++ b/.idea/libraries/Gradle__androidx_test_monitor_1_3_0_aar.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__androidx_test_runner_1_3_0_aar.xml b/.idea/libraries/Gradle__androidx_test_runner_1_3_0_aar.xml new file mode 100644 index 0000000..f5da397 --- /dev/null +++ b/.idea/libraries/Gradle__androidx_test_runner_1_3_0_aar.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file 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 new file mode 100644 index 0000000..e291592 --- /dev/null +++ b/.idea/libraries/Gradle__androidx_transition_transition_1_2_0_aar.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file 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 new file mode 100644 index 0000000..7e0ddd3 --- /dev/null +++ b/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_1_1_0_aar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file 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 new file mode 100644 index 0000000..271d756 --- /dev/null +++ b/.idea/libraries/Gradle__androidx_vectordrawable_vectordrawable_animated_1_1_0_aar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__androidx_versionedparcelable_versionedparcelable_1_1_0_aar.xml b/.idea/libraries/Gradle__androidx_versionedparcelable_versionedparcelable_1_1_0_aar.xml new file mode 100644 index 0000000..c179bd6 --- /dev/null +++ b/.idea/libraries/Gradle__androidx_versionedparcelable_versionedparcelable_1_1_0_aar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file 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 new file mode 100644 index 0000000..dca4edf --- /dev/null +++ b/.idea/libraries/Gradle__androidx_viewpager2_viewpager2_1_0_0_aar.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file 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 new file mode 100644 index 0000000..4e387cd --- /dev/null +++ b/.idea/libraries/Gradle__androidx_viewpager_viewpager_1_0_0_aar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__com_google_android_material_material_1_2_1_aar.xml b/.idea/libraries/Gradle__com_google_android_material_material_1_2_1_aar.xml new file mode 100644 index 0000000..7b140e4 --- /dev/null +++ b/.idea/libraries/Gradle__com_google_android_material_material_1_2_1_aar.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_2_0_1.xml b/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_2_0_1.xml new file mode 100644 index 0000000..2b834ea --- /dev/null +++ b/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_2_0_1.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__com_michalsvec_single_row_calednar_1_0_0_aar.xml b/.idea/libraries/Gradle__com_michalsvec_single_row_calednar_1_0_0_aar.xml new file mode 100644 index 0000000..af97530 --- /dev/null +++ b/.idea/libraries/Gradle__com_michalsvec_single_row_calednar_1_0_0_aar.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__com_squareup_javawriter_2_1_1.xml b/.idea/libraries/Gradle__com_squareup_javawriter_2_1_1.xml new file mode 100644 index 0000000..662b001 --- /dev/null +++ b/.idea/libraries/Gradle__com_squareup_javawriter_2_1_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__javax_inject_javax_inject_1.xml b/.idea/libraries/Gradle__javax_inject_javax_inject_1.xml new file mode 100644 index 0000000..62012ea --- /dev/null +++ b/.idea/libraries/Gradle__javax_inject_javax_inject_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__junit_junit_4_12.xml b/.idea/libraries/Gradle__junit_junit_4_12.xml new file mode 100644 index 0000000..6c078d6 --- /dev/null +++ b/.idea/libraries/Gradle__junit_junit_4_12.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__junit_junit_4_13_1.xml b/.idea/libraries/Gradle__junit_junit_4_13_1.xml new file mode 100644 index 0000000..4405e64 --- /dev/null +++ b/.idea/libraries/Gradle__junit_junit_4_13_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3.xml b/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3.xml new file mode 100644 index 0000000..09cf23d --- /dev/null +++ b/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__org_hamcrest_hamcrest_integration_1_3.xml b/.idea/libraries/Gradle__org_hamcrest_hamcrest_integration_1_3.xml new file mode 100644 index 0000000..1a77dd8 --- /dev/null +++ b/.idea/libraries/Gradle__org_hamcrest_hamcrest_integration_1_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__org_hamcrest_hamcrest_library_1_3.xml b/.idea/libraries/Gradle__org_hamcrest_hamcrest_library_1_3.xml new file mode 100644 index 0000000..3d45e8e --- /dev/null +++ b/.idea/libraries/Gradle__org_hamcrest_hamcrest_library_1_3.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__org_jetbrains_annotations_13_0.xml b/.idea/libraries/Gradle__org_jetbrains_annotations_13_0.xml new file mode 100644 index 0000000..1fa0fa9 --- /dev/null +++ b/.idea/libraries/Gradle__org_jetbrains_annotations_13_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_android_extensions_runtime_1_3_72.xml b/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_android_extensions_runtime_1_3_72.xml new file mode 100644 index 0000000..7929d63 --- /dev/null +++ b/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_android_extensions_runtime_1_3_72.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_3_72.xml b/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_3_72.xml new file mode 100644 index 0000000..cd57d89 --- /dev/null +++ b/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_3_72.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_3_72.xml b/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_3_72.xml new file mode 100644 index 0000000..c769fec --- /dev/null +++ b/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_3_72.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..d5d35ec --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,9 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..1661359 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules/Exploration_Calendar_App_UI.iml b/.idea/modules/Exploration_Calendar_App_UI.iml new file mode 100644 index 0000000..76cf0e8 --- /dev/null +++ b/.idea/modules/Exploration_Calendar_App_UI.iml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules/app/Exploration_Calendar_App_UI.app.iml b/.idea/modules/app/Exploration_Calendar_App_UI.app.iml new file mode 100644 index 0000000..5c1aa59 --- /dev/null +++ b/.idea/modules/app/Exploration_Calendar_App_UI.app.iml @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/README.md b/README.md index eb22260..134c8c0 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,62 @@ -# Schedule-App-UI +# Schedule App UI + +[![Platform](https://img.shields.io/badge/platform-Android-yellow.svg)](https://www.android.com) +[![License](https://img.shields.io/badge/license-Apache%202-4EB1BA.svg?style=flat-square)](https://www.apache.org/licenses/LICENSE-2.0.html) +[![Gradle Version](https://img.shields.io/badge/gradle-4.0-green.svg)](https://docs.gradle.org/current/release-notes) +[![Awesome Kotlin Badge](https://kotlin.link/awesome-kotlin.svg)](https://github.com/KotlinBy/awesome-kotlin) + 📅 A beautiful Schedule App UI written in Kotlin for android with examples. + +# Source +Repo to demonstrate Schedule App UI in Android app. This is a follow up on the source at : + +- [Instagram](https://www.instagram.com/p/CJvEeSrA2Dz) +- [Flat Icon](https://www.flaticon.com) +- [UnDraw Illustration](https://undraw.co) +- [Single Row Calendar Library](https://github.com/miso01/SingleRowCalendar) +- etc. + +# Demo App + +

+ + + +

+ + + + + + + + + + + + + + + + + + +
Example 1Example 2
Example 3Example 4
+ +# License + +``` + Copyright (C) Achmad Qomarudin + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +``` \ No newline at end of file diff --git a/app/.gitignore b/app/.gitignore new file mode 100644 index 0000000..42afabf --- /dev/null +++ b/app/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle new file mode 100644 index 0000000..f4d3812 --- /dev/null +++ b/app/build.gradle @@ -0,0 +1,50 @@ +plugins { + id 'com.android.application' + id 'kotlin-android' + id 'kotlin-android-extensions' +} + +android { + compileSdkVersion 30 + buildToolsVersion "30.0.2" + + defaultConfig { + applicationId "com.project.scheduleappui" + minSdkVersion 21 + targetSdkVersion 30 + versionCode 1 + versionName "1.0" + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + kotlinOptions { + jvmTarget = '1.8' + } +} + +dependencies { + + implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" + implementation 'androidx.core:core-ktx:1.3.2' + implementation 'androidx.appcompat:appcompat:1.2.0' + implementation 'com.google.android.material:material:1.2.1' + implementation 'androidx.constraintlayout:constraintlayout:2.0.4' + implementation 'androidx.legacy:legacy-support-v4:1.0.0' + testImplementation 'junit:junit:4.+' + androidTestImplementation 'androidx.test.ext:junit:1.1.2' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' + + //Extended library + implementation 'com.michalsvec:single-row-calednar:1.0.0' +} \ No newline at end of file diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro new file mode 100644 index 0000000..481bb43 --- /dev/null +++ b/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 \ No newline at end of file diff --git a/app/src/androidTest/java/com/project/scheduleappui/ExampleInstrumentedTest.kt b/app/src/androidTest/java/com/project/scheduleappui/ExampleInstrumentedTest.kt new file mode 100644 index 0000000..50eed4e --- /dev/null +++ b/app/src/androidTest/java/com/project/scheduleappui/ExampleInstrumentedTest.kt @@ -0,0 +1,24 @@ +package com.project.scheduleappui + +import androidx.test.platform.app.InstrumentationRegistry +import androidx.test.ext.junit.runners.AndroidJUnit4 + +import org.junit.Test +import org.junit.runner.RunWith + +import org.junit.Assert.* + +/** + * Instrumented test, which will execute on an Android device. + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +@RunWith(AndroidJUnit4::class) +class ExampleInstrumentedTest { + @Test + fun useAppContext() { + // Context of the app under test. + val appContext = InstrumentationRegistry.getInstrumentation().targetContext + assertEquals("com.project.explorationcalendarappui", appContext.packageName) + } +} \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..e5b3d47 --- /dev/null +++ b/app/src/main/AndroidManifest.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/java/com/project/scheduleappui/MainActivity.kt b/app/src/main/java/com/project/scheduleappui/MainActivity.kt new file mode 100644 index 0000000..f5c2f74 --- /dev/null +++ b/app/src/main/java/com/project/scheduleappui/MainActivity.kt @@ -0,0 +1,69 @@ +package com.project.scheduleappui + +import android.annotation.SuppressLint +import android.os.Build +import android.os.Bundle +import android.view.View +import android.view.WindowManager +import android.widget.Toast +import androidx.appcompat.app.AppCompatActivity +import androidx.fragment.app.Fragment +import com.google.android.material.bottomnavigation.BottomNavigationView +import com.project.scheduleappui.menu.dashboard.DashboardFragment +import com.project.scheduleappui.menu.home.HomeFragment +import com.project.scheduleappui.menu.profile.ProfileFragment +import kotlinx.android.synthetic.main.activity_main.* + +@Suppress("DEPRECATION") +class MainActivity : AppCompatActivity() { + + @SuppressLint("UseCompatLoadingForDrawables") + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + hiddenStatusBar() + setContentView(R.layout.activity_main) + setSupportActionBar(bottom_app_bar) + bottom_navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener) + replaceFragment(HomeFragment()) + + fab.setOnClickListener { + Toast.makeText(applicationContext, "Button clicked!", Toast.LENGTH_SHORT).show() + } + } + + @SuppressLint("ObsoleteSdkInt") + private fun hiddenStatusBar() { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { + window.setDecorFitsSystemWindows(true) + } else { + // hide status bar + window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN) + window.decorView.systemUiVisibility = + View.SYSTEM_UI_FLAG_IMMERSIVE or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION + } + } + + private val mOnNavigationItemSelectedListener = BottomNavigationView.OnNavigationItemSelectedListener { item -> + when (item.itemId) { + R.id.nav_home -> { + replaceFragment(HomeFragment()) + return@OnNavigationItemSelectedListener true + } + R.id.nav_dashboard -> { + replaceFragment(DashboardFragment()) + return@OnNavigationItemSelectedListener true + } + R.id.nav_profile -> { + replaceFragment(ProfileFragment()) + return@OnNavigationItemSelectedListener true + } + } + false + } + + private fun replaceFragment(fragment: Fragment) { + val transaction = supportFragmentManager.beginTransaction() + transaction.replace(R.id.fragment_container, fragment) + transaction.commit() + } +} \ No newline at end of file diff --git a/app/src/main/java/com/project/scheduleappui/menu/dashboard/DashboardAdapter.kt b/app/src/main/java/com/project/scheduleappui/menu/dashboard/DashboardAdapter.kt new file mode 100644 index 0000000..9099f18 --- /dev/null +++ b/app/src/main/java/com/project/scheduleappui/menu/dashboard/DashboardAdapter.kt @@ -0,0 +1,34 @@ +package com.project.scheduleappui.menu.dashboard + +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.recyclerview.widget.RecyclerView +import com.project.scheduleappui.R +import kotlinx.android.synthetic.main.item_dashboard.view.* +import kotlinx.android.synthetic.main.item_home.view.* + +class DashboardAdapter(private val dashboard: List) : RecyclerView.Adapter() { + + override fun onCreateViewHolder(viewGroup: ViewGroup, p1: Int): DashboardHolder { + return DashboardHolder(LayoutInflater.from(viewGroup.context).inflate(R.layout.item_dashboard, viewGroup, false)) + } + + override fun getItemCount(): Int = dashboard.size + + override fun onBindViewHolder(holder: DashboardHolder, position: Int) { + holder.bindHero(dashboard[position]) + } +} + +class DashboardHolder(view: View) : RecyclerView.ViewHolder(view) { + private val imgAgenda = view.image_agenda + private val tvAgenda = view.text_agenda + private val tvTime = view.text_agenda_time + + fun bindHero(dashboard: Dashboard) { + imgAgenda.setImageResource(dashboard.image) + tvAgenda.text = dashboard.agenda + tvTime.text = dashboard.time + } +} \ No newline at end of file diff --git a/app/src/main/java/com/project/scheduleappui/menu/dashboard/DashboardFragment.kt b/app/src/main/java/com/project/scheduleappui/menu/dashboard/DashboardFragment.kt new file mode 100644 index 0000000..01b851c --- /dev/null +++ b/app/src/main/java/com/project/scheduleappui/menu/dashboard/DashboardFragment.kt @@ -0,0 +1,42 @@ +package com.project.scheduleappui.menu.dashboard + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.fragment.app.Fragment +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.recyclerview.widget.RecyclerView +import com.project.scheduleappui.R +import kotlinx.android.synthetic.main.fragment_dashboard.* + +class DashboardFragment : Fragment() { + + override fun onCreateView( + inflater: LayoutInflater, container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + // Inflate the layout for this fragment + return inflater.inflate(R.layout.fragment_dashboard, container, false) + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + setData() + } + + private fun setData() { + val listHome = listOf( + Dashboard(image = R.drawable.bg_agenda1, agenda = "Hotel Cavana - Meeting with client from Russia", time = "07.00 - 07.30"), + Dashboard(image = R.drawable.bg_agenda2, agenda = "TA Caffe - Market potential at Tulungagung", time = "08.00 - 09.00"), + Dashboard(image = R.drawable.bg_agenda3, agenda = "Office - Internal project review & discussion", time = "09.00 - 09.30") + ) + + val homeAdapter = DashboardAdapter(listHome) + + recyclerview_dashboard.apply { + layoutManager = LinearLayoutManager(context, RecyclerView.HORIZONTAL, false) + adapter = homeAdapter + } + } +} \ No newline at end of file diff --git a/app/src/main/java/com/project/scheduleappui/menu/dashboard/DashboardModel.kt b/app/src/main/java/com/project/scheduleappui/menu/dashboard/DashboardModel.kt new file mode 100644 index 0000000..dc0d562 --- /dev/null +++ b/app/src/main/java/com/project/scheduleappui/menu/dashboard/DashboardModel.kt @@ -0,0 +1,7 @@ +package com.project.scheduleappui.menu.dashboard + +data class Dashboard ( + val image : Int, + val agenda : String, + val time : String +) \ No newline at end of file diff --git a/app/src/main/java/com/project/scheduleappui/menu/home/HomeAdapter.kt b/app/src/main/java/com/project/scheduleappui/menu/home/HomeAdapter.kt new file mode 100644 index 0000000..45fadfe --- /dev/null +++ b/app/src/main/java/com/project/scheduleappui/menu/home/HomeAdapter.kt @@ -0,0 +1,33 @@ +package com.project.scheduleappui.menu.home + +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.recyclerview.widget.RecyclerView +import com.project.scheduleappui.R +import kotlinx.android.synthetic.main.item_home.view.* + +class HomeAdapter(private val home: List) : RecyclerView.Adapter() { + + override fun onCreateViewHolder(viewGroup: ViewGroup, p1: Int): HomeHolder { + return HomeHolder(LayoutInflater.from(viewGroup.context).inflate(R.layout.item_home, viewGroup, false)) + } + + override fun getItemCount(): Int = home.size + + override fun onBindViewHolder(holder: HomeHolder, position: Int) { + holder.bindHero(home[position]) + } +} + +class HomeHolder(view: View) : RecyclerView.ViewHolder(view) { + private val tvTag = view.text_tag + private val tvSchedule = view.text_schedule + private val tvTime = view.text_schedule_time + + fun bindHero(home: Home) { + tvTag.text = home.tag + tvSchedule.text = home.schedule + tvTime.text = home.time + } +} \ No newline at end of file diff --git a/app/src/main/java/com/project/scheduleappui/menu/home/HomeFragment.kt b/app/src/main/java/com/project/scheduleappui/menu/home/HomeFragment.kt new file mode 100644 index 0000000..d172bbc --- /dev/null +++ b/app/src/main/java/com/project/scheduleappui/menu/home/HomeFragment.kt @@ -0,0 +1,199 @@ +package com.project.scheduleappui.menu.home + +import android.annotation.SuppressLint +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ArrayAdapter +import android.widget.Spinner +import androidx.fragment.app.Fragment +import androidx.recyclerview.widget.LinearLayoutManager +import com.michalsvec.singlerowcalendar.calendar.CalendarChangesObserver +import com.michalsvec.singlerowcalendar.calendar.CalendarViewManager +import com.michalsvec.singlerowcalendar.calendar.SingleRowCalendarAdapter +import com.michalsvec.singlerowcalendar.selection.CalendarSelectionManager +import com.michalsvec.singlerowcalendar.utils.DateUtils +import com.project.scheduleappui.R +import kotlinx.android.synthetic.main.calendar_item.view.* +import kotlinx.android.synthetic.main.fragment_home.* +import java.util.* + +class HomeFragment : Fragment() { + private val calendar = Calendar.getInstance() + private var currentMonth = 0 + + override fun onCreateView( + inflater: LayoutInflater, container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + // Inflate the layout for this fragment + return inflater.inflate(R.layout.fragment_home, container, false) + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + setData() + setDate() + setSpinner(view) + } + + private fun setData() { + val listHome = listOf( + Home(tag = "Developer", schedule = "Database Workshop - How to use SQLite Database in android", time = "08.00 - 09.00"), + Home(tag = "Designer", schedule = "UI Workshop - Using gridview to make more beautiful design", time = "09.00 - 10.00"), + Home(tag = "Marketing", schedule = "FB Ads - Strategy marketing for selling more products", time = "12.00 - 12.30") + ) + + val homeAdapter = HomeAdapter(listHome) + + recyclerview_home.apply { + layoutManager = LinearLayoutManager(context) + adapter = homeAdapter + } + } + + private fun setDate() { + // set current date to calendar and current month to currentMonth variable + calendar.time = Date() + currentMonth = calendar[Calendar.MONTH] + + // calendar view manager is responsible for our displaying logic + val myCalendarViewManager = object : + CalendarViewManager { + override fun setCalendarViewResourceId( + position: Int, + date: Date, + isSelected: Boolean + ): Int { + // set date to calendar according to position where we are + val cal = Calendar.getInstance() + cal.time = date + // if item is selected we return this layout items + // in this example. monday, wednesday and friday will have special item views and other days + // will be using basic item view + return if (isSelected) + R.layout.selected_calendar_item + else + // here we return items which are not selected + R.layout.calendar_item + + // NOTE: if we don't want to do it this way, we can simply change color of background + // in bindDataToCalendarView method + } + + override fun bindDataToCalendarView( + holder: SingleRowCalendarAdapter.CalendarViewHolder, + date: Date, + position: Int, + isSelected: Boolean + ) { + // using this method we can bind data to calendar view + // good practice is if all views in layout have same IDs in all item views + holder.itemView.tv_date_calendar_item.text = DateUtils.getDayNumber(date) + holder.itemView.tv_day_calendar_item.text = DateUtils.getDay3LettersName(date) + + } + } + + // using calendar changes observer we can track changes in calendar + val myCalendarChangesObserver = object : + CalendarChangesObserver { + // you can override more methods, in this example we need only this one + @SuppressLint("SetTextI18n") + override fun whenSelectionChanged(isSelected: Boolean, position: Int, date: Date) { + tvDate.text = "${DateUtils.getMonthName(date)} " + super.whenSelectionChanged(isSelected, position, date) + } + } + + // selection manager is responsible for managing selection + val mySelectionManager = object : CalendarSelectionManager { + override fun canBeItemSelected(position: Int, date: Date): Boolean { + // set date to calendar according to position + val cal = Calendar.getInstance() + cal.time = date + // in this example sunday and saturday can't be selected, others can + return when (cal[Calendar.DAY_OF_WEEK]) { + Calendar.SATURDAY -> false + Calendar.SUNDAY -> false + else -> true + } + } + } + + // here we init our calendar, also you can set more properties if you haven't specified in XML layout + val singleRowCalendar = main_single_row_calendar.apply { + calendarViewManager = myCalendarViewManager + calendarChangesObserver = myCalendarChangesObserver + calendarSelectionManager = mySelectionManager + setDates(getFutureDatesOfCurrentMonth()) + init() + } + + btnRight.setOnClickListener { + singleRowCalendar.setDates(getDatesOfNextMonth()) + } + + btnLeft.setOnClickListener { + singleRowCalendar.setDates(getDatesOfPreviousMonth()) + } + } + + private fun setSpinner(view: View) { + val spinner: Spinner = view.findViewById(R.id.task_spinner) + // Create an ArrayAdapter using the string array and a default spinner layout + context?.let { + ArrayAdapter.createFromResource( + it, + R.array.task_array, + R.layout.item_spinner + ).also { adapter -> + // Specify the layout to use when the list of choices appears + adapter.setDropDownViewResource(R.layout.item_spinner) + // Apply the adapter to the spinner + spinner.adapter = adapter + } + } + } + + private fun getDatesOfNextMonth(): List { + currentMonth++ // + because we want next month + if (currentMonth == 12) { + // we will switch to january of next year, when we reach last month of year + calendar.set(Calendar.YEAR, calendar[Calendar.YEAR] + 1) + currentMonth = 0 // 0 == january + } + return getDates(mutableListOf()) + } + + private fun getDatesOfPreviousMonth(): List { + currentMonth-- // - because we want previous month + if (currentMonth == -1) { + // we will switch to december of previous year, when we reach first month of year + calendar.set(Calendar.YEAR, calendar[Calendar.YEAR] - 1) + currentMonth = 11 // 11 == december + } + return getDates(mutableListOf()) + } + + private fun getFutureDatesOfCurrentMonth(): List { + // get all next dates of current month + currentMonth = calendar[Calendar.MONTH] + return getDates(mutableListOf()) + } + + private fun getDates(list: MutableList): List { + // load dates of whole month + calendar.set(Calendar.MONTH, currentMonth) + calendar.set(Calendar.DAY_OF_MONTH, 1) + list.add(calendar.time) + while (currentMonth == calendar[Calendar.MONTH]) { + calendar.add(Calendar.DATE, +1) + if (calendar[Calendar.MONTH] == currentMonth) + list.add(calendar.time) + } + calendar.add(Calendar.DATE, -1) + return list + } +} \ No newline at end of file diff --git a/app/src/main/java/com/project/scheduleappui/menu/home/HomeModel.kt b/app/src/main/java/com/project/scheduleappui/menu/home/HomeModel.kt new file mode 100644 index 0000000..cff7784 --- /dev/null +++ b/app/src/main/java/com/project/scheduleappui/menu/home/HomeModel.kt @@ -0,0 +1,7 @@ +package com.project.scheduleappui.menu.home + +data class Home ( + val tag : String, + val schedule : String, + val time : String +) \ No newline at end of file diff --git a/app/src/main/java/com/project/scheduleappui/menu/profile/ProfileFragment.kt b/app/src/main/java/com/project/scheduleappui/menu/profile/ProfileFragment.kt new file mode 100644 index 0000000..2de0dbd --- /dev/null +++ b/app/src/main/java/com/project/scheduleappui/menu/profile/ProfileFragment.kt @@ -0,0 +1,19 @@ +package com.project.scheduleappui.menu.profile + +import android.os.Bundle +import androidx.fragment.app.Fragment +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import com.project.scheduleappui.R + +class ProfileFragment : Fragment() { + + override fun onCreateView( + inflater: LayoutInflater, container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + // Inflate the layout for this fragment + return inflater.inflate(R.layout.fragment_profile, container, false) + } +} \ No newline at end of file diff --git a/app/src/main/res/color/bottom_bar_item_selector.xml b/app/src/main/res/color/bottom_bar_item_selector.xml new file mode 100644 index 0000000..be8d8cb --- /dev/null +++ b/app/src/main/res/color/bottom_bar_item_selector.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-hdpi/baseline_add_white_24.png b/app/src/main/res/drawable-hdpi/baseline_add_white_24.png new file mode 100755 index 0000000..ea78104 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/baseline_add_white_24.png differ diff --git a/app/src/main/res/drawable-mdpi/baseline_add_white_24.png b/app/src/main/res/drawable-mdpi/baseline_add_white_24.png new file mode 100755 index 0000000..eeba9f6 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/baseline_add_white_24.png differ diff --git a/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100755 index 0000000..1f6bb29 --- /dev/null +++ b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + diff --git a/app/src/main/res/drawable-xhdpi/baseline_add_white_24.png b/app/src/main/res/drawable-xhdpi/baseline_add_white_24.png new file mode 100755 index 0000000..67bb598 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/baseline_add_white_24.png differ diff --git a/app/src/main/res/drawable-xxhdpi/baseline_add_white_24.png b/app/src/main/res/drawable-xxhdpi/baseline_add_white_24.png new file mode 100755 index 0000000..0fdced8 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/baseline_add_white_24.png differ diff --git a/app/src/main/res/drawable-xxhdpi/bg_transparent.xml b/app/src/main/res/drawable-xxhdpi/bg_transparent.xml new file mode 100644 index 0000000..8d80766 --- /dev/null +++ b/app/src/main/res/drawable-xxhdpi/bg_transparent.xml @@ -0,0 +1,8 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_add_white_24.png b/app/src/main/res/drawable-xxxhdpi/baseline_add_white_24.png new file mode 100755 index 0000000..d64c22e Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/baseline_add_white_24.png differ diff --git a/app/src/main/res/drawable/bg_agenda1.xml b/app/src/main/res/drawable/bg_agenda1.xml new file mode 100644 index 0000000..4a48d43 --- /dev/null +++ b/app/src/main/res/drawable/bg_agenda1.xml @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/bg_agenda2.xml b/app/src/main/res/drawable/bg_agenda2.xml new file mode 100644 index 0000000..4286fce --- /dev/null +++ b/app/src/main/res/drawable/bg_agenda2.xml @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/bg_agenda3.xml b/app/src/main/res/drawable/bg_agenda3.xml new file mode 100644 index 0000000..cb5f119 --- /dev/null +++ b/app/src/main/res/drawable/bg_agenda3.xml @@ -0,0 +1,206 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/bg_btn_change_password.xml b/app/src/main/res/drawable/bg_btn_change_password.xml new file mode 100644 index 0000000..1431cc6 --- /dev/null +++ b/app/src/main/res/drawable/bg_btn_change_password.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_btn_logout.xml b/app/src/main/res/drawable/bg_btn_logout.xml new file mode 100644 index 0000000..a22c8d6 --- /dev/null +++ b/app/src/main/res/drawable/bg_btn_logout.xml @@ -0,0 +1,9 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_half_rounded_light.xml b/app/src/main/res/drawable/bg_half_rounded_light.xml new file mode 100644 index 0000000..b55831b --- /dev/null +++ b/app/src/main/res/drawable/bg_half_rounded_light.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_item_rounded.xml b/app/src/main/res/drawable/bg_item_rounded.xml new file mode 100644 index 0000000..fc88007 --- /dev/null +++ b/app/src/main/res/drawable/bg_item_rounded.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_spinner.xml b/app/src/main/res/drawable/bg_spinner.xml new file mode 100644 index 0000000..2e052ae --- /dev/null +++ b/app/src/main/res/drawable/bg_spinner.xml @@ -0,0 +1,9 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/bg_tag.xml b/app/src/main/res/drawable/bg_tag.xml new file mode 100644 index 0000000..81d2220 --- /dev/null +++ b/app/src/main/res/drawable/bg_tag.xml @@ -0,0 +1,9 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/calendar_item_background.xml b/app/src/main/res/drawable/calendar_item_background.xml new file mode 100644 index 0000000..786121c --- /dev/null +++ b/app/src/main/res/drawable/calendar_item_background.xml @@ -0,0 +1,9 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_arrow_left_24dp.xml b/app/src/main/res/drawable/ic_arrow_left_24dp.xml new file mode 100644 index 0000000..ddc8f9e --- /dev/null +++ b/app/src/main/res/drawable/ic_arrow_left_24dp.xml @@ -0,0 +1,5 @@ + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_arrow_right_24dp.xml b/app/src/main/res/drawable/ic_arrow_right_24dp.xml new file mode 100644 index 0000000..60b8822 --- /dev/null +++ b/app/src/main/res/drawable/ic_arrow_right_24dp.xml @@ -0,0 +1,5 @@ + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_avatar.xml b/app/src/main/res/drawable/ic_avatar.xml new file mode 100644 index 0000000..d5fbcf7 --- /dev/null +++ b/app/src/main/res/drawable/ic_avatar.xml @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_calendar.xml b/app/src/main/res/drawable/ic_calendar.xml new file mode 100644 index 0000000..7a2da4a --- /dev/null +++ b/app/src/main/res/drawable/ic_calendar.xml @@ -0,0 +1,42 @@ + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_dashboard.xml b/app/src/main/res/drawable/ic_dashboard.xml new file mode 100644 index 0000000..ef374a3 --- /dev/null +++ b/app/src/main/res/drawable/ic_dashboard.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_diamond.xml b/app/src/main/res/drawable/ic_diamond.xml new file mode 100644 index 0000000..1e01c0c --- /dev/null +++ b/app/src/main/res/drawable/ic_diamond.xml @@ -0,0 +1,30 @@ + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_help.xml b/app/src/main/res/drawable/ic_help.xml new file mode 100644 index 0000000..eb532a0 --- /dev/null +++ b/app/src/main/res/drawable/ic_help.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..07d5da9 --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_privacy.xml b/app/src/main/res/drawable/ic_privacy.xml new file mode 100644 index 0000000..ed1ccb1 --- /dev/null +++ b/app/src/main/res/drawable/ic_privacy.xml @@ -0,0 +1,18 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_profile.xml b/app/src/main/res/drawable/ic_profile.xml new file mode 100644 index 0000000..3bbb76b --- /dev/null +++ b/app/src/main/res/drawable/ic_profile.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_schedule.xml b/app/src/main/res/drawable/ic_schedule.xml new file mode 100644 index 0000000..f8696de --- /dev/null +++ b/app/src/main/res/drawable/ic_schedule.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/drawable/ic_security.xml b/app/src/main/res/drawable/ic_security.xml new file mode 100644 index 0000000..0d956b2 --- /dev/null +++ b/app/src/main/res/drawable/ic_security.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/progress_advertisement.xml b/app/src/main/res/drawable/progress_advertisement.xml new file mode 100644 index 0000000..3a1f2c9 --- /dev/null +++ b/app/src/main/res/drawable/progress_advertisement.xml @@ -0,0 +1,9 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/progress_designer.xml b/app/src/main/res/drawable/progress_designer.xml new file mode 100644 index 0000000..0c748cd --- /dev/null +++ b/app/src/main/res/drawable/progress_designer.xml @@ -0,0 +1,9 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/progress_developer.xml b/app/src/main/res/drawable/progress_developer.xml new file mode 100644 index 0000000..041c365 --- /dev/null +++ b/app/src/main/res/drawable/progress_developer.xml @@ -0,0 +1,9 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/progress_marketing.xml b/app/src/main/res/drawable/progress_marketing.xml new file mode 100644 index 0000000..fe17b21 --- /dev/null +++ b/app/src/main/res/drawable/progress_marketing.xml @@ -0,0 +1,9 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/selected_calendar_item_background.xml b/app/src/main/res/drawable/selected_calendar_item_background.xml new file mode 100644 index 0000000..7129b14 --- /dev/null +++ b/app/src/main/res/drawable/selected_calendar_item_background.xml @@ -0,0 +1,8 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/font/montserrat_alternates_black.ttf b/app/src/main/res/font/montserrat_alternates_black.ttf new file mode 100755 index 0000000..122f58c Binary files /dev/null and b/app/src/main/res/font/montserrat_alternates_black.ttf differ diff --git a/app/src/main/res/font/montserrat_alternates_light.ttf b/app/src/main/res/font/montserrat_alternates_light.ttf new file mode 100755 index 0000000..75c08f0 Binary files /dev/null and b/app/src/main/res/font/montserrat_alternates_light.ttf differ diff --git a/app/src/main/res/font/montserrat_alternates_medium.ttf b/app/src/main/res/font/montserrat_alternates_medium.ttf new file mode 100755 index 0000000..5cf21e6 Binary files /dev/null and b/app/src/main/res/font/montserrat_alternates_medium.ttf differ diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..1df0fed --- /dev/null +++ b/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + diff --git a/app/src/main/res/layout/calendar_item.xml b/app/src/main/res/layout/calendar_item.xml new file mode 100644 index 0000000..8a38298 --- /dev/null +++ b/app/src/main/res/layout/calendar_item.xml @@ -0,0 +1,40 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/content_main.xml b/app/src/main/res/layout/content_main.xml new file mode 100755 index 0000000..9cd76dc --- /dev/null +++ b/app/src/main/res/layout/content_main.xml @@ -0,0 +1,18 @@ + + + + + diff --git a/app/src/main/res/layout/first_special_calendar_item.xml b/app/src/main/res/layout/first_special_calendar_item.xml new file mode 100644 index 0000000..99d5cb3 --- /dev/null +++ b/app/src/main/res/layout/first_special_calendar_item.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/first_special_selected_calendar_item.xml b/app/src/main/res/layout/first_special_selected_calendar_item.xml new file mode 100644 index 0000000..be5850f --- /dev/null +++ b/app/src/main/res/layout/first_special_selected_calendar_item.xml @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_dashboard.xml b/app/src/main/res/layout/fragment_dashboard.xml new file mode 100644 index 0000000..49f7fc6 --- /dev/null +++ b/app/src/main/res/layout/fragment_dashboard.xml @@ -0,0 +1,172 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_home.xml b/app/src/main/res/layout/fragment_home.xml new file mode 100644 index 0000000..9066a45 --- /dev/null +++ b/app/src/main/res/layout/fragment_home.xml @@ -0,0 +1,112 @@ + + + + + + + +