diff --git a/.idea/.idea.Phonebook/.idea/.gitignore b/.idea/.idea.Phonebook/.idea/.gitignore
new file mode 100644
index 0000000..f8238a5
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/.gitignore
@@ -0,0 +1,15 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Rider ignored files
+/modules.xml
+/contentModel.xml
+/.idea.Phonebook.iml
+/projectSettingsUpdater.xml
+# Ignored default folder with query files
+/queries/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
+# Editor-based HTTP Client requests
+/httpRequests/
diff --git a/.idea/.idea.Phonebook/.idea/AndroidProjectSystem.xml b/.idea/.idea.Phonebook/.idea/AndroidProjectSystem.xml
new file mode 100644
index 0000000..e82600c
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/AndroidProjectSystem.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/deploymentTargetSelector.xml b/.idea/.idea.Phonebook/.idea/deploymentTargetSelector.xml
new file mode 100644
index 0000000..8011e36
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/deploymentTargetSelector.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/encodings.xml b/.idea/.idea.Phonebook/.idea/encodings.xml
new file mode 100644
index 0000000..df87cf9
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/encodings.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/indexLayout.xml b/.idea/.idea.Phonebook/.idea/indexLayout.xml
new file mode 100644
index 0000000..7b08163
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/indexLayout.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_activity_activity.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_activity_activity.xml
new file mode 100644
index 0000000..f9c4041
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_activity_activity.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_activity_activity_ktx.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_activity_activity_ktx.xml
new file mode 100644
index 0000000..de630a6
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_activity_activity_ktx.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_annotation_annotation.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_annotation_annotation.xml
new file mode 100644
index 0000000..a6bf744
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_annotation_annotation.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_annotation_annotation_experimental.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_annotation_annotation_experimental.xml
new file mode 100644
index 0000000..9c3fbbd
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_annotation_annotation_experimental.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_annotation_annotation_jvm.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_annotation_annotation_jvm.xml
new file mode 100644
index 0000000..121f9d3
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_annotation_annotation_jvm.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_appcompat_appcompat.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_appcompat_appcompat.xml
new file mode 100644
index 0000000..72460ec
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_appcompat_appcompat.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_appcompat_appcompat_resources.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_appcompat_appcompat_resources.xml
new file mode 100644
index 0000000..aaa23cf
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_appcompat_appcompat_resources.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_arch_core_core_common.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_arch_core_core_common.xml
new file mode 100644
index 0000000..e583107
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_arch_core_core_common.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_arch_core_core_runtime.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_arch_core_core_runtime.xml
new file mode 100644
index 0000000..62d717c
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_arch_core_core_runtime.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_browser_browser.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_browser_browser.xml
new file mode 100644
index 0000000..8bf0a23
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_browser_browser.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_cardview_cardview.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_cardview_cardview.xml
new file mode 100644
index 0000000..db7812b
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_cardview_cardview.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_collection_collection.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_collection_collection.xml
new file mode 100644
index 0000000..28c6be1
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_collection_collection.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_collection_collection_jvm.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_collection_collection_jvm.xml
new file mode 100644
index 0000000..f412f56
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_collection_collection_jvm.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_collection_collection_ktx.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_collection_collection_ktx.xml
new file mode 100644
index 0000000..df298d7
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_collection_collection_ktx.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_concurrent_concurrent_futures.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_concurrent_concurrent_futures.xml
new file mode 100644
index 0000000..6fa3f72
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_concurrent_concurrent_futures.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_constraintlayout_constraintlayout.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_constraintlayout_constraintlayout.xml
new file mode 100644
index 0000000..3b9a3fc
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_constraintlayout_constraintlayout.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_constraintlayout_constraintlayout_core.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_constraintlayout_constraintlayout_core.xml
new file mode 100644
index 0000000..4334dac
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_constraintlayout_constraintlayout_core.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_coordinatorlayout_coordinatorlayout.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_coordinatorlayout_coordinatorlayout.xml
new file mode 100644
index 0000000..be2b9cd
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_coordinatorlayout_coordinatorlayout.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_core_core.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_core_core.xml
new file mode 100644
index 0000000..d937f68
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_core_core.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_core_core_ktx.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_core_core_ktx.xml
new file mode 100644
index 0000000..3203bb9
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_core_core_ktx.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_cursoradapter_cursoradapter.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_cursoradapter_cursoradapter.xml
new file mode 100644
index 0000000..2e5715c
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_cursoradapter_cursoradapter.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_customview_customview.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_customview_customview.xml
new file mode 100644
index 0000000..5d66dac
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_customview_customview.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_customview_customview_poolingcontainer.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_customview_customview_poolingcontainer.xml
new file mode 100644
index 0000000..cdbdaa4
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_customview_customview_poolingcontainer.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_documentfile_documentfile.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_documentfile_documentfile.xml
new file mode 100644
index 0000000..dfcc871
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_documentfile_documentfile.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_drawerlayout_drawerlayout.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_drawerlayout_drawerlayout.xml
new file mode 100644
index 0000000..cfb80eb
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_drawerlayout_drawerlayout.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_dynamicanimation_dynamicanimation.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_dynamicanimation_dynamicanimation.xml
new file mode 100644
index 0000000..c9611a9
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_dynamicanimation_dynamicanimation.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_emoji2_emoji2.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_emoji2_emoji2.xml
new file mode 100644
index 0000000..868b903
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_emoji2_emoji2.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_emoji2_emoji2_views_helper.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_emoji2_emoji2_views_helper.xml
new file mode 100644
index 0000000..4e0be82
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_emoji2_emoji2_views_helper.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_exifinterface_exifinterface.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_exifinterface_exifinterface.xml
new file mode 100644
index 0000000..0c02d8b
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_exifinterface_exifinterface.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_fragment_fragment.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_fragment_fragment.xml
new file mode 100644
index 0000000..0084d5f
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_fragment_fragment.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_fragment_fragment_ktx.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_fragment_fragment_ktx.xml
new file mode 100644
index 0000000..6e3b224
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_fragment_fragment_ktx.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_interpolator_interpolator.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_interpolator_interpolator.xml
new file mode 100644
index 0000000..c36b6fb
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_interpolator_interpolator.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_legacy_legacy_support_core_utils.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_legacy_legacy_support_core_utils.xml
new file mode 100644
index 0000000..c28b504
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_legacy_legacy_support_core_utils.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_lifecycle_lifecycle_common.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_lifecycle_lifecycle_common.xml
new file mode 100644
index 0000000..0dce470
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_lifecycle_lifecycle_common.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_lifecycle_lifecycle_common_jvm.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_lifecycle_lifecycle_common_jvm.xml
new file mode 100644
index 0000000..f4ee6ee
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_lifecycle_lifecycle_common_jvm.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_lifecycle_lifecycle_livedata.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_lifecycle_lifecycle_livedata.xml
new file mode 100644
index 0000000..bc64a7a
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_lifecycle_lifecycle_livedata.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_lifecycle_lifecycle_livedata_core.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_lifecycle_lifecycle_livedata_core.xml
new file mode 100644
index 0000000..dc898a6
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_lifecycle_lifecycle_livedata_core.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_lifecycle_lifecycle_livedata_core_ktx.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_lifecycle_lifecycle_livedata_core_ktx.xml
new file mode 100644
index 0000000..03b697f
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_lifecycle_lifecycle_livedata_core_ktx.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_lifecycle_lifecycle_process.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_lifecycle_lifecycle_process.xml
new file mode 100644
index 0000000..6d3d921
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_lifecycle_lifecycle_process.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_lifecycle_lifecycle_runtime.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_lifecycle_lifecycle_runtime.xml
new file mode 100644
index 0000000..0e0047b
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_lifecycle_lifecycle_runtime.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_lifecycle_lifecycle_runtime_android.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_lifecycle_lifecycle_runtime_android.xml
new file mode 100644
index 0000000..ea09cda
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_lifecycle_lifecycle_runtime_android.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_lifecycle_lifecycle_runtime_ktx_android.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_lifecycle_lifecycle_runtime_ktx_android.xml
new file mode 100644
index 0000000..a4d3166
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_lifecycle_lifecycle_runtime_ktx_android.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_lifecycle_lifecycle_viewmodel.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_lifecycle_lifecycle_viewmodel.xml
new file mode 100644
index 0000000..5df892f
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_lifecycle_lifecycle_viewmodel.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_lifecycle_lifecycle_viewmodel_android.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_lifecycle_lifecycle_viewmodel_android.xml
new file mode 100644
index 0000000..29c746e
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_lifecycle_lifecycle_viewmodel_android.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_lifecycle_lifecycle_viewmodel_ktx.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_lifecycle_lifecycle_viewmodel_ktx.xml
new file mode 100644
index 0000000..f914307
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_lifecycle_lifecycle_viewmodel_ktx.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_lifecycle_lifecycle_viewmodel_savedstate.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_lifecycle_lifecycle_viewmodel_savedstate.xml
new file mode 100644
index 0000000..e5ea909
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_lifecycle_lifecycle_viewmodel_savedstate.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_loader_loader.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_loader_loader.xml
new file mode 100644
index 0000000..0a78fd0
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_loader_loader.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_localbroadcastmanager_localbroadcastmanager.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_localbroadcastmanager_localbroadcastmanager.xml
new file mode 100644
index 0000000..33bb9ce
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_localbroadcastmanager_localbroadcastmanager.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_navigation_navigation_fragment.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_navigation_navigation_fragment.xml
new file mode 100644
index 0000000..5758eec
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_navigation_navigation_fragment.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_navigation_navigation_ui.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_navigation_navigation_ui.xml
new file mode 100644
index 0000000..0ab34b6
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_navigation_navigation_ui.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_print_print.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_print_print.xml
new file mode 100644
index 0000000..ab89a08
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_print_print.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_profileinstaller_profileinstaller.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_profileinstaller_profileinstaller.xml
new file mode 100644
index 0000000..d708c14
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_profileinstaller_profileinstaller.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_recyclerview_recyclerview.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_recyclerview_recyclerview.xml
new file mode 100644
index 0000000..6d9e14d
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_recyclerview_recyclerview.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_resourceinspection_resourceinspection_annotation.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_resourceinspection_resourceinspection_annotation.xml
new file mode 100644
index 0000000..e4abe3a
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_resourceinspection_resourceinspection_annotation.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_savedstate_savedstate.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_savedstate_savedstate.xml
new file mode 100644
index 0000000..8643e82
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_savedstate_savedstate.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_savedstate_savedstate_ktx.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_savedstate_savedstate_ktx.xml
new file mode 100644
index 0000000..850eaba
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_savedstate_savedstate_ktx.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_security_security_crypto.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_security_security_crypto.xml
new file mode 100644
index 0000000..a47f73e
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_security_security_crypto.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_slidingpanelayout_slidingpanelayout.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_slidingpanelayout_slidingpanelayout.xml
new file mode 100644
index 0000000..0253a1c
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_slidingpanelayout_slidingpanelayout.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_startup_startup_runtime.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_startup_startup_runtime.xml
new file mode 100644
index 0000000..820ea4a
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_startup_startup_runtime.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_swiperefreshlayout_swiperefreshlayout.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_swiperefreshlayout_swiperefreshlayout.xml
new file mode 100644
index 0000000..55019e7
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_swiperefreshlayout_swiperefreshlayout.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_tracing_tracing.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_tracing_tracing.xml
new file mode 100644
index 0000000..fbd138f
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_tracing_tracing.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_transition_transition.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_transition_transition.xml
new file mode 100644
index 0000000..400df54
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_transition_transition.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_vectordrawable_vectordrawable.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_vectordrawable_vectordrawable.xml
new file mode 100644
index 0000000..cefc0db
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_vectordrawable_vectordrawable.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_vectordrawable_vectordrawable_animated.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_vectordrawable_vectordrawable_animated.xml
new file mode 100644
index 0000000..8b4cfd3
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_vectordrawable_vectordrawable_animated.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_versionedparcelable_versionedparcelable.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_versionedparcelable_versionedparcelable.xml
new file mode 100644
index 0000000..e6779dd
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_versionedparcelable_versionedparcelable.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_viewpager2_viewpager2.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_viewpager2_viewpager2.xml
new file mode 100644
index 0000000..8c71481
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_viewpager2_viewpager2.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_viewpager_viewpager.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_viewpager_viewpager.xml
new file mode 100644
index 0000000..c7a9bc3
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_viewpager_viewpager.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_window_extensions_core_core.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_window_extensions_core_core.xml
new file mode 100644
index 0000000..652c7ea
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_window_extensions_core_core.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/androidx_window_window.xml b/.idea/.idea.Phonebook/.idea/libraries/androidx_window_window.xml
new file mode 100644
index 0000000..020257a
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/androidx_window_window.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/com_google_android_material_material.xml b/.idea/.idea.Phonebook/.idea/libraries/com_google_android_material_material.xml
new file mode 100644
index 0000000..cf5a8a9
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/com_google_android_material_material.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/gifdecoder.xml b/.idea/.idea.Phonebook/.idea/libraries/gifdecoder.xml
new file mode 100644
index 0000000..b96d216
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/gifdecoder.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/glide.xml b/.idea/.idea.Phonebook/.idea/libraries/glide.xml
new file mode 100644
index 0000000..e9d1a59
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/glide.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/libraries/maui.xml b/.idea/.idea.Phonebook/.idea/libraries/maui.xml
new file mode 100644
index 0000000..0d12ba1
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/libraries/maui.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Phonebook/.idea/vcs.xml b/.idea/.idea.Phonebook/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/.idea.Phonebook/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/AppShell.xaml b/AppShell.xaml
index 96e7d2b..a7fd950 100644
--- a/AppShell.xaml
+++ b/AppShell.xaml
@@ -7,7 +7,7 @@
Shell.FlyoutBehavior="Disabled">
\ No newline at end of file
diff --git a/MainPage.xaml b/MainPage.xaml
index 8331ca3..35d4957 100644
--- a/MainPage.xaml
+++ b/MainPage.xaml
@@ -44,11 +44,22 @@
FontSize="24"
WidthRequest="60"
HeightRequest="60"
- CornerRadius="30"
+ CornerRadius="10"
HorizontalOptions="End"
VerticalOptions="End"
Margin="0,0,20,20"
Grid.Row="1"
Clicked="OnAddContactClicked"/>
+
+
\ No newline at end of file
diff --git a/MainPage.xaml.cs b/MainPage.xaml.cs
index 471b25a..539a2b5 100644
--- a/MainPage.xaml.cs
+++ b/MainPage.xaml.cs
@@ -1,13 +1,16 @@
using Phonebook.Models;
using Phonebook.Services;
using Contact = Phonebook.Models.Contact;
+using ClosedXML.Excel;
+using Communication = Microsoft.Maui.ApplicationModel.Communication;
+using Android.Content;
namespace Phonebook;
public partial class MainPage : ContentPage
{
- private DatabaseService _databaseService;
- private List _allContacts;
+ private readonly DatabaseService _databaseService;
+ private List _allContacts = [];
public MainPage()
{
@@ -23,17 +26,127 @@ public partial class MainPage : ContentPage
private async Task LoadContacts()
{
- _allContacts = await _databaseService.GetContactsAsync();
+ _allContacts = await GetAllContacts();
+
contactsList.ItemsSource = _allContacts;
}
+ private async Task> GetAllContacts()
+ {
+ var allContacts = await _databaseService.GetContactsAsync();
+
+ if (!await IsPermissionGranted())
+ return allContacts;
+
+ var contacts = GetContacts();
+
+ await foreach (var contact in contacts)
+ {
+ allContacts.Add(contact);
+ }
+
+ return allContacts;
+ }
+
+ private async Task IsPermissionGranted() where T : Permissions.BasePermission, new()
+ {
+ return await Permissions.RequestAsync() == PermissionStatus.Granted;
+ }
+
+ private async Task ExportToXlsx()
+ {
+ try
+ {
+ _allContacts = await GetAllContacts();
+
+ if (_allContacts.Count <= 0)
+ {
+ return;
+ }
+
+ var fileName = $"contacts_{DateTime.Now:yyyyMMdd_HHmmss}.xlsx";
+ var localPath = Path.Combine(FileSystem.CacheDirectory, fileName);
+
+ using (var workbook = new XLWorkbook())
+ {
+ var worksheet = workbook.Worksheets.Add("Contacts");
+
+ worksheet.Cell(1, 1).Value = "Id";
+ worksheet.Cell(1, 2).Value = "Name";
+ worksheet.Cell(1, 3).Value = "PhoneNumber";
+ worksheet.Cell(1, 4).Value = "Email";
+ worksheet.Cell(1, 5).Value = "Address";
+ worksheet.Cell(1, 6).Value = "Description";
+ worksheet.Cell(1, 7).Value = "PhotoPath";
+
+ for (var i = 0; i < _allContacts.Count; i++)
+ {
+ var contact = _allContacts[i];
+
+ worksheet.Cell(2 + i, 1).Value = contact.Id;
+ worksheet.Cell(2 + i, 2).Value = contact.Name;
+ worksheet.Cell(2 + i, 3).Value = contact.PhoneNumber;
+ worksheet.Cell(2 + i, 4).Value = contact.Email;
+ worksheet.Cell(2 + i, 5).Value = contact.Address;
+ worksheet.Cell(2 + i, 6).Value = contact.Description;
+ worksheet.Cell(2 + i, 7).Value = contact.PhotoPath;
+ }
+
+ workbook.SaveAs(localPath);
+ }
+
+ await Share.Default.RequestAsync(new ShareFileRequest
+ {
+ Title = "Сохранить контакты",
+ File = new ShareFile(localPath)
+ });
+
+ }
+ catch (Exception ex)
+ {
+ await DisplayAlert("Ошибка!", $"Не удалось экспортировать: {ex.Message}", "OK");
+ }
+
+ }
+
+ private async IAsyncEnumerable GetContacts()
+ {
+ var contacts = await Contacts.Default.GetAllAsync();
+
+ foreach (var userContact in contacts)
+ {
+ var contact = new Contact();
+
+ if(int.TryParse(userContact.Id, out var id))
+ contact.Id = id;
+
+ contact.Name = userContact.DisplayName;
+
+ var firstPhoneNumber = userContact.Phones.FirstOrDefault();
+
+ contact.PhoneNumber = firstPhoneNumber != null ?
+ firstPhoneNumber.PhoneNumber : "";
+
+ var firstEmail = userContact.Emails.FirstOrDefault();
+
+ contact.Email = firstEmail != null ?
+ firstEmail.EmailAddress : "";
+
+ contact.Address = "";
+ contact.Description = "";
+ contact.PhotoPath = "";
+
+ yield return contact;
+ }
+
+ }
+
private async void OnContactSelected(object sender, SelectionChangedEventArgs e)
{
- if (e.CurrentSelection.FirstOrDefault() is Contact selectedContact)
- {
- await Navigation.PushAsync(new ContactDetailPage(selectedContact));
- contactsList.SelectedItem = null;
- }
+ if (e.CurrentSelection.FirstOrDefault() is not Contact selectedContact)
+ return;
+ await Navigation.PushAsync(new ContactDetailPage(selectedContact));
+ contactsList.SelectedItem = null;
}
private async void OnSearchTextChanged(object sender, TextChangedEventArgs e)
@@ -48,6 +161,11 @@ public partial class MainPage : ContentPage
await Navigation.PushAsync(new ContactDetailPage(new Contact()));
}
+ private async void OnExportContactClicked(object sender, EventArgs e)
+ {
+ await ExportToXlsx();
+ }
+
private async void SearchBar_TextChanged(object sender, TextChangedEventArgs e)
{
if (string.IsNullOrWhiteSpace(e.NewTextValue))
diff --git a/Phonebook.csproj b/Phonebook.csproj
index d6c8edd..24dab3f 100644
--- a/Phonebook.csproj
+++ b/Phonebook.csproj
@@ -24,7 +24,7 @@
Phonebook
- com.companyname.phonebook
+ com.charplovers.phonebook
1.0
@@ -43,8 +43,10 @@
-
+
+
@@ -60,6 +62,7 @@
+
diff --git a/Platforms/Android/AndroidManifest.xml b/Platforms/Android/AndroidManifest.xml
index 89779d8..2a66aee 100644
--- a/Platforms/Android/AndroidManifest.xml
+++ b/Platforms/Android/AndroidManifest.xml
@@ -1,6 +1,11 @@
-
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Platforms/Android/Resources/values/colors.xml b/Platforms/Android/Resources/values/colors.xml
index c04d749..24a86ad 100644
--- a/Platforms/Android/Resources/values/colors.xml
+++ b/Platforms/Android/Resources/values/colors.xml
@@ -1,6 +1,6 @@
- #512BD4
- #2B0B98
- #2B0B98
+ #5dd42b
+ #2f980b
+ #0b9813
\ No newline at end of file
diff --git a/Resources/AppIcon/icon.png b/Resources/AppIcon/icon.png
new file mode 100644
index 0000000..e1e9efc
Binary files /dev/null and b/Resources/AppIcon/icon.png differ
diff --git a/Resources/Splash/splash.svg b/Resources/Splash/splash.svg
index 21dfb25..d8417b3 100644
--- a/Resources/Splash/splash.svg
+++ b/Resources/Splash/splash.svg
@@ -1,8 +1,8 @@
-
-
-