diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser
deleted file mode 100644
index 016aa39..0000000
Binary files a/.idea/caches/build_file_checksums.ser and /dev/null differ
diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
deleted file mode 100644
index e96cda9..0000000
--- a/.idea/codeStyles/Project.xml
+++ /dev/null
@@ -1,147 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- xmlns:android
- ^$
-
-
-
-
-
-
-
-
- xmlns:.*
- ^$
-
-
- BY_NAME
-
-
-
-
-
-
- .*:id
- http://schemas.android.com/apk/res/android
-
-
-
-
-
-
-
-
- .*:name
- http://schemas.android.com/apk/res/android
-
-
-
-
-
-
-
-
- name
- ^$
-
-
-
-
-
-
-
-
- style
- ^$
-
-
-
-
-
-
-
-
- .*
- ^$
-
-
- BY_NAME
-
-
-
-
-
-
- .*
- http://schemas.android.com/apk/res/android
-
-
- ANDROID_ATTRIBUTE_ORDER
-
-
-
-
-
-
- .*
- .*
-
-
- BY_NAME
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml
deleted file mode 100644
index 79ee123..0000000
--- a/.idea/codeStyles/codeStyleConfig.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/dictionaries/phoenix.xml b/.idea/dictionaries/phoenix.xml
deleted file mode 100644
index 0a47e59..0000000
--- a/.idea/dictionaries/phoenix.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
deleted file mode 100644
index 7ac24c7..0000000
--- a/.idea/gradle.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__android_arch_core_common_1_1_1_jar.xml b/.idea/libraries/Gradle__android_arch_core_common_1_1_1_jar.xml
deleted file mode 100644
index bf16fff..0000000
--- a/.idea/libraries/Gradle__android_arch_core_common_1_1_1_jar.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__android_arch_core_runtime_1_1_1_aar.xml b/.idea/libraries/Gradle__android_arch_core_runtime_1_1_1_aar.xml
deleted file mode 100644
index 5603030..0000000
--- a/.idea/libraries/Gradle__android_arch_core_runtime_1_1_1_aar.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__android_arch_lifecycle_common_1_1_1_jar.xml b/.idea/libraries/Gradle__android_arch_lifecycle_common_1_1_1_jar.xml
deleted file mode 100644
index 27b1867..0000000
--- a/.idea/libraries/Gradle__android_arch_lifecycle_common_1_1_1_jar.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__android_arch_lifecycle_livedata_1_1_1_aar.xml b/.idea/libraries/Gradle__android_arch_lifecycle_livedata_1_1_1_aar.xml
deleted file mode 100644
index 33c0f8e..0000000
--- a/.idea/libraries/Gradle__android_arch_lifecycle_livedata_1_1_1_aar.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__android_arch_lifecycle_livedata_core_1_1_1_aar.xml b/.idea/libraries/Gradle__android_arch_lifecycle_livedata_core_1_1_1_aar.xml
deleted file mode 100644
index 76f7531..0000000
--- a/.idea/libraries/Gradle__android_arch_lifecycle_livedata_core_1_1_1_aar.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__android_arch_lifecycle_runtime_1_1_1_aar.xml b/.idea/libraries/Gradle__android_arch_lifecycle_runtime_1_1_1_aar.xml
deleted file mode 100644
index 7fb4ce2..0000000
--- a/.idea/libraries/Gradle__android_arch_lifecycle_runtime_1_1_1_aar.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__android_arch_lifecycle_viewmodel_1_1_1_aar.xml b/.idea/libraries/Gradle__android_arch_lifecycle_viewmodel_1_1_1_aar.xml
deleted file mode 100644
index 5f31ded..0000000
--- a/.idea/libraries/Gradle__android_arch_lifecycle_viewmodel_1_1_1_aar.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_animated_vector_drawable_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_animated_vector_drawable_28_0_0_aar.xml
deleted file mode 100644
index ad913ea..0000000
--- a/.idea/libraries/Gradle__com_android_support_animated_vector_drawable_28_0_0_aar.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_appcompat_v7_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_appcompat_v7_28_0_0_aar.xml
deleted file mode 100644
index 5121a96..0000000
--- a/.idea/libraries/Gradle__com_android_support_appcompat_v7_28_0_0_aar.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_asynclayoutinflater_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_asynclayoutinflater_28_0_0_aar.xml
deleted file mode 100644
index a341379..0000000
--- a/.idea/libraries/Gradle__com_android_support_asynclayoutinflater_28_0_0_aar.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_cardview_v7_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_cardview_v7_28_0_0_aar.xml
deleted file mode 100644
index bd27aaf..0000000
--- a/.idea/libraries/Gradle__com_android_support_cardview_v7_28_0_0_aar.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_collections_28_0_0_jar.xml b/.idea/libraries/Gradle__com_android_support_collections_28_0_0_jar.xml
deleted file mode 100644
index 80e4d73..0000000
--- a/.idea/libraries/Gradle__com_android_support_collections_28_0_0_jar.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_1_1_3_aar.xml b/.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_1_1_3_aar.xml
deleted file mode 100644
index db9d213..0000000
--- a/.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_1_1_3_aar.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_solver_1_1_3_jar.xml b/.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_solver_1_1_3_jar.xml
deleted file mode 100644
index c0adf88..0000000
--- a/.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_solver_1_1_3_jar.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_coordinatorlayout_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_coordinatorlayout_28_0_0_aar.xml
deleted file mode 100644
index 59a8aef..0000000
--- a/.idea/libraries/Gradle__com_android_support_coordinatorlayout_28_0_0_aar.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_cursoradapter_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_cursoradapter_28_0_0_aar.xml
deleted file mode 100644
index 6c9c951..0000000
--- a/.idea/libraries/Gradle__com_android_support_cursoradapter_28_0_0_aar.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_customview_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_customview_28_0_0_aar.xml
deleted file mode 100644
index 3dde12d..0000000
--- a/.idea/libraries/Gradle__com_android_support_customview_28_0_0_aar.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_design_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_design_28_0_0_aar.xml
deleted file mode 100644
index a35919a..0000000
--- a/.idea/libraries/Gradle__com_android_support_design_28_0_0_aar.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_documentfile_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_documentfile_28_0_0_aar.xml
deleted file mode 100644
index 326d261..0000000
--- a/.idea/libraries/Gradle__com_android_support_documentfile_28_0_0_aar.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_drawerlayout_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_drawerlayout_28_0_0_aar.xml
deleted file mode 100644
index ca5d96f..0000000
--- a/.idea/libraries/Gradle__com_android_support_drawerlayout_28_0_0_aar.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_interpolator_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_interpolator_28_0_0_aar.xml
deleted file mode 100644
index 5e96e13..0000000
--- a/.idea/libraries/Gradle__com_android_support_interpolator_28_0_0_aar.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_loader_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_loader_28_0_0_aar.xml
deleted file mode 100644
index 34ace15..0000000
--- a/.idea/libraries/Gradle__com_android_support_loader_28_0_0_aar.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_localbroadcastmanager_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_localbroadcastmanager_28_0_0_aar.xml
deleted file mode 100644
index 6d81c6b..0000000
--- a/.idea/libraries/Gradle__com_android_support_localbroadcastmanager_28_0_0_aar.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_print_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_print_28_0_0_aar.xml
deleted file mode 100644
index d317aeb..0000000
--- a/.idea/libraries/Gradle__com_android_support_print_28_0_0_aar.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_recyclerview_v7_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_recyclerview_v7_28_0_0_aar.xml
deleted file mode 100644
index 70962b4..0000000
--- a/.idea/libraries/Gradle__com_android_support_recyclerview_v7_28_0_0_aar.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_slidingpanelayout_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_slidingpanelayout_28_0_0_aar.xml
deleted file mode 100644
index 6a45d60..0000000
--- a/.idea/libraries/Gradle__com_android_support_slidingpanelayout_28_0_0_aar.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_support_annotations_28_0_0_jar.xml b/.idea/libraries/Gradle__com_android_support_support_annotations_28_0_0_jar.xml
deleted file mode 100644
index 0fdecce..0000000
--- a/.idea/libraries/Gradle__com_android_support_support_annotations_28_0_0_jar.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_support_compat_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_support_compat_28_0_0_aar.xml
deleted file mode 100644
index 199584c..0000000
--- a/.idea/libraries/Gradle__com_android_support_support_compat_28_0_0_aar.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_support_core_ui_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_support_core_ui_28_0_0_aar.xml
deleted file mode 100644
index 8fb748a..0000000
--- a/.idea/libraries/Gradle__com_android_support_support_core_ui_28_0_0_aar.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_support_core_utils_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_support_core_utils_28_0_0_aar.xml
deleted file mode 100644
index e6cf7f4..0000000
--- a/.idea/libraries/Gradle__com_android_support_support_core_utils_28_0_0_aar.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_support_fragment_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_support_fragment_28_0_0_aar.xml
deleted file mode 100644
index 8da58c0..0000000
--- a/.idea/libraries/Gradle__com_android_support_support_fragment_28_0_0_aar.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_support_media_compat_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_support_media_compat_28_0_0_aar.xml
deleted file mode 100644
index cec6e91..0000000
--- a/.idea/libraries/Gradle__com_android_support_support_media_compat_28_0_0_aar.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_support_v4_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_support_v4_28_0_0_aar.xml
deleted file mode 100644
index 8c28805..0000000
--- a/.idea/libraries/Gradle__com_android_support_support_v4_28_0_0_aar.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_support_vector_drawable_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_support_vector_drawable_28_0_0_aar.xml
deleted file mode 100644
index 56ebb81..0000000
--- a/.idea/libraries/Gradle__com_android_support_support_vector_drawable_28_0_0_aar.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_swiperefreshlayout_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_swiperefreshlayout_28_0_0_aar.xml
deleted file mode 100644
index 743581e..0000000
--- a/.idea/libraries/Gradle__com_android_support_swiperefreshlayout_28_0_0_aar.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_core_3_0_2_aar.xml b/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_core_3_0_2_aar.xml
deleted file mode 100644
index 2d8cc8c..0000000
--- a/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_core_3_0_2_aar.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_idling_resource_3_0_2_aar.xml b/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_idling_resource_3_0_2_aar.xml
deleted file mode 100644
index 9ed8c54..0000000
--- a/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_idling_resource_3_0_2_aar.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_test_monitor_1_0_2_aar.xml b/.idea/libraries/Gradle__com_android_support_test_monitor_1_0_2_aar.xml
deleted file mode 100644
index 8ee4c05..0000000
--- a/.idea/libraries/Gradle__com_android_support_test_monitor_1_0_2_aar.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_test_runner_1_0_2_aar.xml b/.idea/libraries/Gradle__com_android_support_test_runner_1_0_2_aar.xml
deleted file mode 100644
index 84c71e6..0000000
--- a/.idea/libraries/Gradle__com_android_support_test_runner_1_0_2_aar.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_transition_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_transition_28_0_0_aar.xml
deleted file mode 100644
index 8e1ad51..0000000
--- a/.idea/libraries/Gradle__com_android_support_transition_28_0_0_aar.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_versionedparcelable_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_versionedparcelable_28_0_0_aar.xml
deleted file mode 100644
index 36d1aa9..0000000
--- a/.idea/libraries/Gradle__com_android_support_versionedparcelable_28_0_0_aar.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_android_support_viewpager_28_0_0_aar.xml b/.idea/libraries/Gradle__com_android_support_viewpager_28_0_0_aar.xml
deleted file mode 100644
index d1c1cf4..0000000
--- a/.idea/libraries/Gradle__com_android_support_viewpager_28_0_0_aar.xml
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_ealva_ealvalog_0_3_0_jar.xml b/.idea/libraries/Gradle__com_ealva_ealvalog_0_3_0_jar.xml
deleted file mode 100644
index 19f7429..0000000
--- a/.idea/libraries/Gradle__com_ealva_ealvalog_0_3_0_jar.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_ealva_ealvalog_android_0_3_0_aar.xml b/.idea/libraries/Gradle__com_ealva_ealvalog_android_0_3_0_aar.xml
deleted file mode 100644
index 6576fd7..0000000
--- a/.idea/libraries/Gradle__com_ealva_ealvalog_android_0_3_0_aar.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_ealva_ealvalog_core_0_3_0_jar.xml b/.idea/libraries/Gradle__com_ealva_ealvalog_core_0_3_0_jar.xml
deleted file mode 100644
index 5de757f..0000000
--- a/.idea/libraries/Gradle__com_ealva_ealvalog_core_0_3_0_jar.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_ealva_ealvatag_0_4_2_jar.xml b/.idea/libraries/Gradle__com_ealva_ealvatag_0_4_2_jar.xml
deleted file mode 100644
index 29c0e5c..0000000
--- a/.idea/libraries/Gradle__com_ealva_ealvatag_0_4_2_jar.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_2_0_1_jar.xml b/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_2_0_1_jar.xml
deleted file mode 100644
index 947e251..0000000
--- a/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_2_0_1_jar.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_google_guava_guava_20_0_jar.xml b/.idea/libraries/Gradle__com_google_guava_guava_20_0_jar.xml
deleted file mode 100644
index bbfeb85..0000000
--- a/.idea/libraries/Gradle__com_google_guava_guava_20_0_jar.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_squareup_javawriter_2_1_1_jar.xml b/.idea/libraries/Gradle__com_squareup_javawriter_2_1_1_jar.xml
deleted file mode 100644
index 5c4dd4e..0000000
--- a/.idea/libraries/Gradle__com_squareup_javawriter_2_1_1_jar.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_squareup_okio_okio_1_11_0_jar.xml b/.idea/libraries/Gradle__com_squareup_okio_okio_1_11_0_jar.xml
deleted file mode 100644
index 4af9d3f..0000000
--- a/.idea/libraries/Gradle__com_squareup_okio_okio_1_11_0_jar.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__javax_inject_javax_inject_1_jar.xml b/.idea/libraries/Gradle__javax_inject_javax_inject_1_jar.xml
deleted file mode 100644
index f9c9a30..0000000
--- a/.idea/libraries/Gradle__javax_inject_javax_inject_1_jar.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__junit_junit_4_12_jar.xml b/.idea/libraries/Gradle__junit_junit_4_12_jar.xml
deleted file mode 100644
index f4f25a8..0000000
--- a/.idea/libraries/Gradle__junit_junit_4_12_jar.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__net_sf_kxml_kxml2_2_3_0_jar.xml b/.idea/libraries/Gradle__net_sf_kxml_kxml2_2_3_0_jar.xml
deleted file mode 100644
index 5855a29..0000000
--- a/.idea/libraries/Gradle__net_sf_kxml_kxml2_2_3_0_jar.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3_jar.xml b/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3_jar.xml
deleted file mode 100644
index 50cf2b9..0000000
--- a/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3_jar.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__org_hamcrest_hamcrest_integration_1_3_jar.xml b/.idea/libraries/Gradle__org_hamcrest_hamcrest_integration_1_3_jar.xml
deleted file mode 100644
index a5eaca5..0000000
--- a/.idea/libraries/Gradle__org_hamcrest_hamcrest_integration_1_3_jar.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__org_hamcrest_hamcrest_library_1_3_jar.xml b/.idea/libraries/Gradle__org_hamcrest_hamcrest_library_1_3_jar.xml
deleted file mode 100644
index b4dabdc..0000000
--- a/.idea/libraries/Gradle__org_hamcrest_hamcrest_library_1_3_jar.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__org_jetbrains_anko_anko_0_10_8_aar.xml b/.idea/libraries/Gradle__org_jetbrains_anko_anko_0_10_8_aar.xml
deleted file mode 100644
index 20c5b76..0000000
--- a/.idea/libraries/Gradle__org_jetbrains_anko_anko_0_10_8_aar.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__org_jetbrains_anko_anko_appcompat_v7_0_10_8_aar.xml b/.idea/libraries/Gradle__org_jetbrains_anko_anko_appcompat_v7_0_10_8_aar.xml
deleted file mode 100644
index 86c7687..0000000
--- a/.idea/libraries/Gradle__org_jetbrains_anko_anko_appcompat_v7_0_10_8_aar.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__org_jetbrains_anko_anko_appcompat_v7_commons_0_10_8_aar.xml b/.idea/libraries/Gradle__org_jetbrains_anko_anko_appcompat_v7_commons_0_10_8_aar.xml
deleted file mode 100644
index 774b249..0000000
--- a/.idea/libraries/Gradle__org_jetbrains_anko_anko_appcompat_v7_commons_0_10_8_aar.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__org_jetbrains_anko_anko_appcompat_v7_coroutines_0_10_8_aar.xml b/.idea/libraries/Gradle__org_jetbrains_anko_anko_appcompat_v7_coroutines_0_10_8_aar.xml
deleted file mode 100644
index aeb61f1..0000000
--- a/.idea/libraries/Gradle__org_jetbrains_anko_anko_appcompat_v7_coroutines_0_10_8_aar.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__org_jetbrains_anko_anko_commons_0_10_8_aar.xml b/.idea/libraries/Gradle__org_jetbrains_anko_anko_commons_0_10_8_aar.xml
deleted file mode 100644
index 8ce44b1..0000000
--- a/.idea/libraries/Gradle__org_jetbrains_anko_anko_commons_0_10_8_aar.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__org_jetbrains_anko_anko_coroutines_0_10_8_aar.xml b/.idea/libraries/Gradle__org_jetbrains_anko_anko_coroutines_0_10_8_aar.xml
deleted file mode 100644
index db4639c..0000000
--- a/.idea/libraries/Gradle__org_jetbrains_anko_anko_coroutines_0_10_8_aar.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__org_jetbrains_anko_anko_sdk27_0_10_8_aar.xml b/.idea/libraries/Gradle__org_jetbrains_anko_anko_sdk27_0_10_8_aar.xml
deleted file mode 100644
index 8c67725..0000000
--- a/.idea/libraries/Gradle__org_jetbrains_anko_anko_sdk27_0_10_8_aar.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__org_jetbrains_anko_anko_sdk27_coroutines_0_10_8_aar.xml b/.idea/libraries/Gradle__org_jetbrains_anko_anko_sdk27_coroutines_0_10_8_aar.xml
deleted file mode 100644
index 106d063..0000000
--- a/.idea/libraries/Gradle__org_jetbrains_anko_anko_sdk27_coroutines_0_10_8_aar.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__org_jetbrains_anko_anko_sqlite_0_10_8_aar.xml b/.idea/libraries/Gradle__org_jetbrains_anko_anko_sqlite_0_10_8_aar.xml
deleted file mode 100644
index bee9c1f..0000000
--- a/.idea/libraries/Gradle__org_jetbrains_anko_anko_sqlite_0_10_8_aar.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__org_jetbrains_anko_anko_support_v4_0_10_8_aar.xml b/.idea/libraries/Gradle__org_jetbrains_anko_anko_support_v4_0_10_8_aar.xml
deleted file mode 100644
index 7b44d00..0000000
--- a/.idea/libraries/Gradle__org_jetbrains_anko_anko_support_v4_0_10_8_aar.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__org_jetbrains_anko_anko_support_v4_commons_0_10_8_aar.xml b/.idea/libraries/Gradle__org_jetbrains_anko_anko_support_v4_commons_0_10_8_aar.xml
deleted file mode 100644
index 4af1163..0000000
--- a/.idea/libraries/Gradle__org_jetbrains_anko_anko_support_v4_commons_0_10_8_aar.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__org_jetbrains_anko_appcompatV7_base_0_10_8_aar.xml b/.idea/libraries/Gradle__org_jetbrains_anko_appcompatV7_base_0_10_8_aar.xml
deleted file mode 100644
index d09e18e..0000000
--- a/.idea/libraries/Gradle__org_jetbrains_anko_appcompatV7_base_0_10_8_aar.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__org_jetbrains_anko_commons_base_0_10_8_aar.xml b/.idea/libraries/Gradle__org_jetbrains_anko_commons_base_0_10_8_aar.xml
deleted file mode 100644
index e8beb2a..0000000
--- a/.idea/libraries/Gradle__org_jetbrains_anko_commons_base_0_10_8_aar.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__org_jetbrains_anko_platform_base_0_10_8_aar.xml b/.idea/libraries/Gradle__org_jetbrains_anko_platform_base_0_10_8_aar.xml
deleted file mode 100644
index f6bd125..0000000
--- a/.idea/libraries/Gradle__org_jetbrains_anko_platform_base_0_10_8_aar.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__org_jetbrains_anko_sqlite_base_0_10_8_aar.xml b/.idea/libraries/Gradle__org_jetbrains_anko_sqlite_base_0_10_8_aar.xml
deleted file mode 100644
index de79de4..0000000
--- a/.idea/libraries/Gradle__org_jetbrains_anko_sqlite_base_0_10_8_aar.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__org_jetbrains_anko_supportV4_base_0_10_8_aar.xml b/.idea/libraries/Gradle__org_jetbrains_anko_supportV4_base_0_10_8_aar.xml
deleted file mode 100644
index f771de2..0000000
--- a/.idea/libraries/Gradle__org_jetbrains_anko_supportV4_base_0_10_8_aar.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__org_jetbrains_annotations_16_0_2_jar.xml b/.idea/libraries/Gradle__org_jetbrains_annotations_16_0_2_jar.xml
deleted file mode 100644
index 39c2558..0000000
--- a/.idea/libraries/Gradle__org_jetbrains_annotations_16_0_2_jar.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_3_20_jar.xml b/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_3_20_jar.xml
deleted file mode 100644
index e7c3f2f..0000000
--- a/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_3_20_jar.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_3_20_jar.xml b/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_3_20_jar.xml
deleted file mode 100644
index 70d36cc..0000000
--- a/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_3_20_jar.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_3_20_jar.xml b/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_3_20_jar.xml
deleted file mode 100644
index fbc6260..0000000
--- a/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_3_20_jar.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__org_jetbrains_kotlinx_kotlinx_coroutines_android_1_0_0_jar.xml b/.idea/libraries/Gradle__org_jetbrains_kotlinx_kotlinx_coroutines_android_1_0_0_jar.xml
deleted file mode 100644
index 66dccaf..0000000
--- a/.idea/libraries/Gradle__org_jetbrains_kotlinx_kotlinx_coroutines_android_1_0_0_jar.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__org_jetbrains_kotlinx_kotlinx_coroutines_core_1_0_0_jar.xml b/.idea/libraries/Gradle__org_jetbrains_kotlinx_kotlinx_coroutines_core_1_0_0_jar.xml
deleted file mode 100644
index 4200a1b..0000000
--- a/.idea/libraries/Gradle__org_jetbrains_kotlinx_kotlinx_coroutines_core_1_0_0_jar.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__org_jetbrains_kotlinx_kotlinx_coroutines_core_common_1_0_0_jar.xml b/.idea/libraries/Gradle__org_jetbrains_kotlinx_kotlinx_coroutines_core_common_1_0_0_jar.xml
deleted file mode 100644
index 4d48228..0000000
--- a/.idea/libraries/Gradle__org_jetbrains_kotlinx_kotlinx_coroutines_core_common_1_0_0_jar.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
deleted file mode 100644
index 37a7509..0000000
--- a/.idea/misc.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
deleted file mode 100644
index 7ee44d3..0000000
--- a/.idea/modules.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/render.experimental.xml b/.idea/render.experimental.xml
deleted file mode 100644
index 8abbf83..0000000
--- a/.idea/render.experimental.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml
deleted file mode 100644
index 7f68460..0000000
--- a/.idea/runConfigurations.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
deleted file mode 100644
index 94a25f7..0000000
--- a/.idea/vcs.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/app.iml b/app/app.iml
deleted file mode 100644
index 56a300f..0000000
--- a/app/app.iml
+++ /dev/null
@@ -1,244 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- generateDebugSources
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
deleted file mode 100644
index fdb3557..0000000
--- a/app/build.gradle
+++ /dev/null
@@ -1,45 +0,0 @@
-apply plugin: 'com.android.application'
-
-apply plugin: 'kotlin-android'
-
-apply plugin: 'kotlin-android-extensions'
-
-android {
- compileSdkVersion 28
- defaultConfig {
- applicationId "com.example.mear"
- minSdkVersion 23
- targetSdkVersion 28
- versionCode 1
- versionName "1.0"
- testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
- }
- buildTypes {
- release {
- minifyEnabled false
- proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
- }
- }
-}
-
-dependencies {
- implementation fileTree(dir: 'libs', include: ['*.jar'])
- implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
- implementation 'com.android.support:appcompat-v7:28.0.0'
- implementation 'com.android.support:support-v4:28.0.0'
- implementation 'com.android.support:design:28.0.0'
- implementation 'com.android.support.constraint:constraint-layout:1.1.3'
- implementation "org.jetbrains.anko:anko:0.10.8"
- implementation 'com.ealva:ealvatag:0.4.2'
- implementation 'com.ealva:ealvalog:0.3.0'
- implementation 'com.ealva:ealvalog-core:0.3.0'
- implementation 'com.ealva:ealvalog-android:0.3.0'
- implementation 'com.google.guava:guava:20.0'
- implementation 'com.squareup.okio:okio:1.11.0'
- testImplementation 'junit:junit:4.12'
- androidTestImplementation 'com.android.support.test:runner:1.0.2'
- androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
- implementation 'com.android.support:cardview-v7:28.0.0'
- implementation 'com.squareup.picasso:picasso:2.71828'
- implementation 'com.github.XuDeveloper:XPopupWindow:1.0.1'
-}
diff --git a/app/build/generated/source/buildConfig/debug/com/example/mear/BuildConfig.java b/app/build/generated/source/buildConfig/debug/com/example/mear/BuildConfig.java
deleted file mode 100644
index 591f6e4..0000000
--- a/app/build/generated/source/buildConfig/debug/com/example/mear/BuildConfig.java
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * Automatically generated file. DO NOT MODIFY
- */
-package com.example.mear;
-
-public final class BuildConfig {
- public static final boolean DEBUG = Boolean.parseBoolean("true");
- public static final String APPLICATION_ID = "com.example.mear";
- public static final String BUILD_TYPE = "debug";
- public static final String FLAVOR = "";
- public static final int VERSION_CODE = 1;
- public static final String VERSION_NAME = "1.0";
-}
diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro
deleted file mode 100644
index f1b4245..0000000
--- a/app/proguard-rules.pro
+++ /dev/null
@@ -1,21 +0,0 @@
-# Add project specific ProGuard rules here.
-# You can control the set of applied configuration files using the
-# proguardFiles setting in build.gradle.
-#
-# For more details, see
-# http://developer.android.com/guide/developing/tools/proguard.html
-
-# If your project uses WebView with JS, uncomment the following
-# and specify the fully qualified class name to the JavaScript interface
-# class:
-#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
-# public *;
-#}
-
-# Uncomment this to preserve the line number information for
-# debugging stack traces.
-#-keepattributes SourceFile,LineNumberTable
-
-# If you keep the line number information, uncomment this to
-# hide the original source file name.
-#-renamesourcefileattribute SourceFile
diff --git a/app/src/androidTest/java/com/example/mear/ExampleInstrumentedTest.kt b/app/src/androidTest/java/com/example/mear/ExampleInstrumentedTest.kt
deleted file mode 100644
index 32c793c..0000000
--- a/app/src/androidTest/java/com/example/mear/ExampleInstrumentedTest.kt
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.example.mear
-
-import android.support.test.InstrumentationRegistry
-import android.support.test.runner.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.getTargetContext()
- assertEquals("com.example.mear", appContext.packageName)
- }
-}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
deleted file mode 100644
index f3a3a4c..0000000
--- a/app/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,48 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/java/com/example/mear/AppCompatPreferenceActivity.kt b/app/src/main/java/com/example/mear/AppCompatPreferenceActivity.kt
deleted file mode 100644
index 42d1989..0000000
--- a/app/src/main/java/com/example/mear/AppCompatPreferenceActivity.kt
+++ /dev/null
@@ -1,90 +0,0 @@
-package com.example.mear
-
-import android.content.res.Configuration
-import android.os.Bundle
-import android.preference.PreferenceActivity
-import android.support.annotation.LayoutRes
-import android.support.v7.app.ActionBar
-import android.support.v7.app.AppCompatDelegate
-import android.support.v7.widget.Toolbar
-import android.view.MenuInflater
-import android.view.View
-import android.view.ViewGroup
-
-/**
- * A [android.preference.PreferenceActivity] which implements and proxies the necessary calls
- * to be used with AppCompat.
- */
-abstract class AppCompatPreferenceActivity : PreferenceActivity() {
-
- override fun onCreate(savedInstanceState: Bundle?) {
- delegate.installViewFactory()
- delegate.onCreate(savedInstanceState)
- super.onCreate(savedInstanceState)
- }
-
- override fun onPostCreate(savedInstanceState: Bundle?) {
- super.onPostCreate(savedInstanceState)
- delegate.onPostCreate(savedInstanceState)
- }
-
- val supportActionBar: ActionBar?
- get() = delegate.supportActionBar
-
- fun setSupportActionBar(toolbar: Toolbar?) {
- delegate.setSupportActionBar(toolbar)
- }
-
- override fun getMenuInflater(): MenuInflater {
- return delegate.menuInflater
- }
-
- override fun setContentView(@LayoutRes layoutResID: Int) {
- delegate.setContentView(layoutResID)
- }
-
- override fun setContentView(view: View) {
- delegate.setContentView(view)
- }
-
- override fun setContentView(view: View, params: ViewGroup.LayoutParams) {
- delegate.setContentView(view, params)
- }
-
- override fun addContentView(view: View, params: ViewGroup.LayoutParams) {
- delegate.addContentView(view, params)
- }
-
- override fun onPostResume() {
- super.onPostResume()
- delegate.onPostResume()
- }
-
- override fun onTitleChanged(title: CharSequence, color: Int) {
- super.onTitleChanged(title, color)
- delegate.setTitle(title)
- }
-
- override fun onConfigurationChanged(newConfig: Configuration) {
- super.onConfigurationChanged(newConfig)
- delegate.onConfigurationChanged(newConfig)
- }
-
- override fun onStop() {
- super.onStop()
- delegate.onStop()
- }
-
- override fun onDestroy() {
- super.onDestroy()
- delegate.onDestroy()
- }
-
- override fun invalidateOptionsMenu() {
- delegate.invalidateOptionsMenu()
- }
-
- private val delegate: AppCompatDelegate by lazy {
- AppCompatDelegate.create(this, null)
- }
-}
diff --git a/app/src/main/java/com/example/mear/activities/BaseServiceActivity.kt b/app/src/main/java/com/example/mear/activities/BaseServiceActivity.kt
deleted file mode 100644
index dd46234..0000000
--- a/app/src/main/java/com/example/mear/activities/BaseServiceActivity.kt
+++ /dev/null
@@ -1,86 +0,0 @@
-package com.example.mear.activities
-
-import android.app.ActivityManager
-import android.content.ComponentName
-import android.content.Context
-import android.content.Intent
-import android.content.ServiceConnection
-import android.os.IBinder
-import android.support.v7.app.AppCompatActivity
-import android.widget.Toast
-
-import kotlinx.coroutines.launch
-import kotlinx.coroutines.runBlocking
-
-import com.example.mear.playback.service.MusicService
-
-open class BaseServiceActivity: AppCompatActivity() {
- protected var musicService: MusicService? = null
-
-
- protected open fun resetControls() {
- val d = "l"
- }
- protected open fun initializeChangeListeners() {
- val d = "l"
- }
- protected open fun updateTrackProgress() {
- val d = "l"
- }
- protected open fun configureTrackDisplay() {
- val d = "l"
- }
-
- protected fun isServiceRunning(serviceClass: Class<*>): Boolean {
- val activityManager = getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager
-
- for (service in activityManager.getRunningServices(Integer.MAX_VALUE)) {
- if (serviceClass.name == service.service.className) {
- return true
- }
- }
- return false
- }
- protected val mConnection = object : ServiceConnection {
- override fun onServiceConnected(className: ComponentName, service: IBinder) {
- resetControls()
-
- runBlocking {
- val demo = launch {
- musicService = (service as MusicService.LocalBinder).service
- initializeChangeListeners()
- updateTrackProgress()
- }
- demo.start()
- }
- if (musicService != null) {
- if (musicService!!.isPlaying()) {
- configureTrackDisplay()
- }
- }
- }
-
- override fun onServiceDisconnected(className: ComponentName) {
- resetControls()
- Toast.makeText(
- this@BaseServiceActivity, "Music Service Stopped",
- Toast.LENGTH_SHORT
- ).show()
- }
- }
- protected fun doBindService() {
- val intent = Intent(this, MusicService::class.java)
- if (isServiceRunning(MusicService::class.java)) {
- val suc = "Service is already running"
- }
- else {
- startService(intent)
- }
-
- var result = bindService(intent, mConnection, Context.BIND_AUTO_CREATE)
- if (result) {
- }
- else {
- }
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/mear/activities/MainActivity.kt b/app/src/main/java/com/example/mear/activities/MainActivity.kt
deleted file mode 100644
index e2d92a1..0000000
--- a/app/src/main/java/com/example/mear/activities/MainActivity.kt
+++ /dev/null
@@ -1,410 +0,0 @@
-package com.example.mear.activities
-
-import android.Manifest
-import android.content.Context
-import android.content.Intent
-import android.content.pm.PackageManager
-import android.graphics.Color
-import android.os.Bundle
-import android.os.Handler
-import android.R as RDroid
-import android.support.v4.app.ActivityCompat
-import android.support.v4.content.ContextCompat
-import android.view.MenuItem
-import android.view.View
-import android.widget.PopupMenu
-import android.widget.Toast
-
-import java.lang.Exception
-import java.lang.Runnable
-import java.util.concurrent.TimeUnit
-import kotlin.io.*
-import kotlinx.android.synthetic.main.activity_main.*
-import kotlinx.android.synthetic.main.fragment_play_controls.*
-import kotlinx.android.synthetic.main.fragment_track_cover.*
-import kotlinx.android.synthetic.main.fragment_track_details.*
-import kotlinx.android.synthetic.main.fragment_track_elapsing.*
-import kotlinx.android.synthetic.main.fragment_track_flow.*
-
-import org.jetbrains.anko.imageBitmap
-
-import com.example.mear.constants.ControlTypes
-import com.example.mear.listeners.TrackElaspingChange
-import com.example.mear.models.PlayControls
-import com.example.mear.R
-import com.example.mear.models.PlayCount
-import com.example.mear.repositories.PlayCountRepository
-import com.example.mear.repositories.RepeatRepository
-import com.example.mear.repositories.ShuffleRepository
-import com.example.mear.repositories.TrackRepository
-import com.example.mear.util.ConvertByteArray
-import com.example.mear.util.ExtractCover
-import kotlinx.coroutines.delay
-
-
-class MainActivity : BaseServiceActivity() {
-
- private val ctx: Context? = this
- private var coverArtHandler: Handler? = Handler()
- private var musicHandler: Handler? = Handler()
- private var updateLibraryHandler: Handler? = Handler()
- private var playCountUpdated: Boolean? = false
- private var serviceBinded: Boolean? = false
- private var repeatOn: Boolean? = false
- private var shuffleOn: Boolean? = false
-
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_main)
- setSupportActionBar(toolbar)
-
- permissionPrompt()
-
- initialize()
- }
- override fun onStop() {
- super.onStop()
- try {
- if (serviceBinded == null || serviceBinded!! == false) {
- unbindService(mConnection)
- serviceBinded = true
- }
- }
- catch (ex: Exception) {
- val exMsg = ex.message
- }
- }
-
- override fun onResume() {
- super.onResume()
-
- }
-
- override fun onDestroy() {
- super.onDestroy()
- try {
- if (serviceBinded!!.equals(null) || serviceBinded!! == false ) {
- unbindService(mConnection)
- serviceBinded = true
- }
- }
- catch (ex: Exception) {
- val exMsg = ex.message
- }
- }
-
-
- private fun initialize() {
- TrackElapsing.progress = 0
- TrackElapsing.max = 100
-
- try {
- window.statusBarColor = resources.getColor(R.color.track_seek)
- initializeShuffle()
- initializeRepeat()
- initializeServices()
- initializeClickListeners()
- }
- catch (ex: Exception) {
- val exMsg = ex.message
- }
- }
- override fun initializeChangeListeners() {
- val newListener = TrackElaspingChange(TrackElapsing)
- if (musicService != null) {
- newListener.musicService = musicService
- newListener.initialize()
- TrackElapsing.setOnSeekBarChangeListener(newListener)
- }
- }
- private fun initializeClickListeners() {
- PlayTrack.setOnClickListener {
- playSongTrack()
- }
- NextTrack.setOnClickListener {
- playNextSongTrack()
- }
- PreviousTrack.setOnClickListener {
- playPreviousSongTrack()
- }
- ShuffleTracks.setOnClickListener {
- toggleShuffle()
- }
- RepeatTrack.setOnClickListener {
- toggleRepeat()
- }
- val clickListener = View.OnClickListener { view ->
- when (view.id) {
- R.id.SettingsLink-> {
- showPopup(view)
- }
- }
- }
- SettingsLink.setOnClickListener (clickListener )
- }
- private fun initializeServices() {
- doBindService()
- }
- private fun initializeShuffle() {
- val shuffleMode = ShuffleRepository(this).getShuffleMode()
- when (shuffleMode) {
- ControlTypes.SHUFFLE_ON -> {
- ShuffleTracks.setText(R.string.shuffle_on)
- }
- ControlTypes.SHUFFLE_OFF -> {
- ShuffleTracks.setText(R.string.shuffle_off)
- }
- }
- }
- private fun initializeRepeat() {
- val repeatMode = RepeatRepository(this).getRepeatMode()
- when (repeatMode) {
- ControlTypes.REPEAT_ON -> {
- RepeatTrack.text = resources.getText(R.string.repeat_on)
- }
- ControlTypes.REPEAT_OFF -> {
- RepeatTrack.text = resources.getText(R.string.repeat_off)
- }
- }
- }
-
- private fun toggleShuffle() {
- val shuffleText = ShuffleTracks.text.toString()
- val on = getString(R.string.shuffle_on)
- val off = getString(R.string.shuffle_off)
- when (shuffleText) {
- on -> {
- shuffleOn = false
- ShuffleTracks.setText(R.string.shuffle_off)
- }
- off -> {
- shuffleOn = true
- ShuffleTracks.setText(R.string.shuffle_on)
- }
- else -> {
- shuffleOn = false
- ShuffleTracks.setText(R.string.shuffle_off)
- }
- }
- val playC = PlayControls(shuffleOn!!, null)
- ShuffleRepository(this).updateShuffleMode(playC)
- }
- private fun toggleRepeat() {
- val repeatText = RepeatTrack.text.toString()
- val on = resources.getString(R.string.repeat_on)
- val off = resources.getString(R.string.repeat_off)
- when (repeatText) {
- on -> {
- repeatOn = false
- RepeatTrack.text = off
- }
- off -> {
- repeatOn = true
- RepeatTrack.text = on
- }
- else -> {
- repeatOn = false
- RepeatTrack.text = off
- }
- }
- val playC = PlayControls(null, repeatOn)
- RepeatRepository(this).updateRepeatMode(playC)
- }
-
- private fun playSongTrack() {
- PlayTrack.isEnabled = false
- try {
- if (!musicService!!.isPlaying()) {
- musicService!!.playSongTrack()
- } else {
- musicService!!.pauseSongTrack()
- }
- configureTrackDisplay()
- }
- catch (ex: Exception) {
- val exMsg = ex.message
- }
- PlayTrack.isEnabled = true
- }
- private fun playNextSongTrack() {
- NextTrack.isEnabled = false
- try {
- musicService!!.playNextTrack()
-
- configureTrackDisplay()
- }
- catch (ex: Exception) {
- val exMsg = ex.message
- print(exMsg)
- }
- NextTrack.isEnabled = true
- playCountUpdated = false
- }
- private fun playPreviousSongTrack() {
- PreviousTrack.isEnabled = false
- try {
- musicService!!.playPreviousTrack()
-
- configureTrackDisplay()
- }
- catch (ex: Exception) {
- val exMsg = ex.message
- print(exMsg)
- }
- PreviousTrack.isEnabled = true
- playCountUpdated = false
- }
- override fun configureTrackDisplay() {
- try {
- runOnUiThread {
- playCountUpdated = false
- configurePlayControlsDisplay()
- val currTrack = musicService!!.getCurrentTrack()
- val trackTitle = currTrack.title
- val artistTitle = currTrack.artist
- val albumTitle = currTrack.album
- val trackDuration = currTrack.length
- var trackCover: ByteArray? = null
- val dur = String.format(
- "%02d:%02d", TimeUnit.SECONDS.toMinutes(trackDuration.toLong()),
- (trackDuration % 60)
- )
-
- var coverExt = ExtractCover(currTrack.songPath)
-
- if (coverExt.hasCover()) {
- trackCover = coverExt.retrieveCover()
- }
- resetControls()
-
- TrackTitle.text = trackTitle
- ArtistTitle.text = artistTitle
- AlbumTitle.text = albumTitle
- TrackDuration.text = dur
- if (trackCover != null) {
- val convertToBmp = ConvertByteArray(trackCover!!)
- var songImage = convertToBmp.convertToBmp()
- TrackCover.imageBitmap = songImage
- }
- }
- }
- catch (ex: Exception) {
- val msg = ex.message
- }
- }
- override fun resetControls() {
- TrackTitle!!.text = null
- ArtistTitle!!.text = null
- AlbumTitle!!.text = null
- CurrentPosition!!.text = null
- TrackCover!!.imageBitmap = null
- }
- override fun updateTrackProgress() {
- musicHandler!!.postDelayed(musicTrackTimeUpdateTask, 100)
- coverArtHandler!!.postDelayed(updateCoverArt, 100)
- updateLibraryHandler!!.postDelayed(updateLibrary, 1000)
- }
- private fun configurePlayControlsDisplay() {
- PlayTrack.background = null
- PlayTrack.colorFilter = null
-
- if (!musicService!!.isPlaying()) {
- PlayTrack.setImageResource(android.R.drawable.ic_media_pause)
- PlayTrack.setColorFilter(Color.RED)
- }
- else {
- PlayTrack.setImageResource(android.R.drawable.ic_media_play)
- PlayTrack.setColorFilter(Color.GREEN)
- }
- }
-
- private fun permissionPrompt() {
- if (ContextCompat.checkSelfPermission(this,
- Manifest.permission.READ_EXTERNAL_STORAGE)
- != PackageManager.PERMISSION_GRANTED) {
-
- if (ActivityCompat.shouldShowRequestPermissionRationale(this,
- Manifest.permission.READ_EXTERNAL_STORAGE)) {
- }
- else {
- ActivityCompat.requestPermissions(this,
- arrayOf(Manifest.permission.READ_EXTERNAL_STORAGE), 0)
- }
- }
- }
-
- private fun showPopup(view: View) {
- try {
- var popup = PopupMenu(this, view)
- popup.inflate(R.menu.popup_menu)
-
- popup.setOnMenuItemClickListener{ item: MenuItem? ->
- when (item!!.itemId) {
- R.id.action_settings-> {
- startActivity(Intent(this, SettingsActivity::class.java))
- }
- R.id.action_song_view -> {
- startActivity(Intent(this, SongViewActivity::class.java))
- }
- R.id.action_song_play_count-> {
- val trk = musicService!!.getCurrentTrack()
- val pc = PlayCountRepository(this).getPlayCount(trk.id)
- val playCount = pc.playCount
- Toast.makeText(this, "Song played $playCount times", Toast.LENGTH_LONG).show()
- }
- }
- true
- }
-
- popup.show()
- }
- catch (ex: Exception) {
- val exMsg = ex.message
- }
- }
-
- private var musicTrackTimeUpdateTask = object: Runnable {
- override fun run() {
- try {
- val currentPosition = musicService!!.currentPositionOfTrack() / 1000
- val dur = String.format( "%02d:%02d", TimeUnit.SECONDS.toMinutes(currentPosition.toLong()),
- (currentPosition % 60) )
-
- CurrentPosition.text = dur
-
- musicHandler!!.postDelayed(this, 100)
- }
- catch (ex: Exception) {
- val exMsg = ex.message
- }
- }
- }
- private var updateCoverArt = object: Runnable {
- override fun run() {
- try {
- val trackTitle = musicService!!.getCurrentTrack().title
-
- if (!(TrackTitle.text == trackTitle)) {
- configureTrackDisplay()
- }
-
- coverArtHandler!!.postDelayed(this, 100)
- }
- catch (ex: Exception) {
- val exMsg = ex.message
- }
- }
- }
- private var updateLibrary = object: Runnable {
- override fun run() {
- try {
- musicService!!.updateLibrary()
-
- updateLibraryHandler!!.postDelayed(this, 1000)
- }
- catch (ex: Exception) {
- val exMsg = ex.message
- }
- }
- }
-}
diff --git a/app/src/main/java/com/example/mear/activities/SettingsActivity.kt b/app/src/main/java/com/example/mear/activities/SettingsActivity.kt
deleted file mode 100644
index 328f870..0000000
--- a/app/src/main/java/com/example/mear/activities/SettingsActivity.kt
+++ /dev/null
@@ -1,91 +0,0 @@
-package com.example.mear.activities
-
-import android.content.Context
-import android.os.Bundle
-import android.os.Environment
-import android.support.v7.app.AppCompatActivity;
-import android.support.v7.widget.CardView
-import android.view.View
-import android.widget.LinearLayout
-import android.widget.Toast
-
-import java.lang.Exception
-import kotlinx.android.synthetic.main.activity_settings.*
-import kotlinx.android.synthetic.main.content_settings.*
-
-import com.example.mear.adapters.SettingsAdapter
-import com.example.mear.R
-import com.example.mear.management.MusicFiles
-import com.example.mear.management.TrackManager
-import com.example.mear.ui.popups.AboutPopup
-import com.example.mear.repositories.TrackRepository
-import kotlinx.android.synthetic.main.popup_layout.*
-
-
-class SettingsActivity : AppCompatActivity() {
-
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_settings)
- setSupportActionBar(toolbar)
-
- var aListener = AboutListener(aboutApp, this)
- About.setOnClickListener(aListener)
-
- /**
- About.setOnClickListener {
- val i =0
- var j = i.plus(500)
- }
- */
-
- initialize()
- supportActionBar?.setDisplayHomeAsUpEnabled(true)
- }
-
-
- private fun initialize() {
- window.statusBarColor = resources.getColor(R.color.track_seek)
- }
-
- private fun loadSongPaths(): MutableList {
- val demoPath = Environment.getExternalStorageDirectory()
- val mfPaths = MusicFiles(demoPath)
- mfPaths.loadAllMusicPaths()
- val allSongs = mfPaths.allSongs
-
- return allSongs!!
- }
- private fun loadTracks(allSongs: MutableList) {
- try {
- TrackRepository(this).delete()
- val trackMgr = TrackManager(allSongs)
- trackMgr.configureTracks(this)
- }
- catch (ex: Exception) {
- val exMsg = ex.message
- }
- }
-
-
-
- private fun updateLibrary() {
- loadTracks(loadSongPaths())
- }
-
- class AboutListener(var layout: LinearLayout?, val ctx: Context): View.OnClickListener {
- override fun onClick(v: View?) {
- val ss = 10
- var ob = ss.plus(500)
- try {
- val popup = AboutPopup(ctx)
- popup?.showPopupFromScreenCenter(R.layout.activity_settings)
- }
- catch (ex: Exception) {
- val exMsg = ex.message
- }
- Toast.makeText(ctx, "About Setting pressed", Toast.LENGTH_LONG).show()
- }
-
- }
-}
diff --git a/app/src/main/java/com/example/mear/activities/SongViewActivity.kt b/app/src/main/java/com/example/mear/activities/SongViewActivity.kt
deleted file mode 100644
index 5d25bf1..0000000
--- a/app/src/main/java/com/example/mear/activities/SongViewActivity.kt
+++ /dev/null
@@ -1,136 +0,0 @@
-package com.example.mear.activities
-
-import android.os.Build
-import android.os.Bundle
-import android.support.annotation.RequiresApi
-import android.support.v7.widget.LinearLayoutManager
-import android.view.View
-//import android.widget.SearchView
-import android.support.v7.widget.SearchView
-
-import java.lang.Exception
-import kotlinx.android.synthetic.main.activity_song_view.*
-import kotlinx.android.synthetic.main.content_song_view.*
-
-import com.example.mear.adapters.RecyclerAdapter
-import com.example.mear.models.TrackItems
-import com.example.mear.R
-import com.example.mear.repositories.TrackRepository
-import org.jetbrains.anko.appcompat.v7.tintedEditText
-import org.jetbrains.anko.backgroundColorResource
-import org.jetbrains.anko.editText
-import org.jetbrains.anko.textView
-import android.R as RDroid
-
-
-
-class SongViewActivity : BaseServiceActivity() {
-
- private var trackListItems = arrayListOf()
- private lateinit var adapter: RecyclerAdapter
- private lateinit var linearLayoutManager: LinearLayoutManager
-
-
- @RequiresApi(Build.VERSION_CODES.N)
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_song_view)
- setSupportActionBar(toolbar)
- supportActionBar?.setDisplayHomeAsUpEnabled(true)
-
- try {
- window.statusBarColor = resources.getColor(R.color.track_seek)
- doBindService()
- initializeAdapter()
- initializeSongSearchListener()
- }
- catch (ex: Exception) {
- var exMsg = ex.message
- }
- }
-
- override fun onStart() {
- super.onStart()
- if (trackListItems.size == 0) {
- val df = ""
- }
- }
-
-
- fun playTrack(trackItems: TrackItems) {
- val id = trackItems.id
- musicService!!.playTrack(id)
- }
-
- @RequiresApi(Build.VERSION_CODES.N)
- private fun initializeAdapter() {
- try {
- linearLayoutManager = LinearLayoutManager(this)
- trackList.layoutManager = linearLayoutManager
-
- trackListItems = retrieveTrackItems()
- trackListItems.sortedWith(compareBy { it.trackTitle })
-
- adapter = RecyclerAdapter({trackItem: TrackItems -> playTrack(trackItem)}, trackListItems)
- adapter.configureActivity(this)
-
- trackList.adapter = adapter
-
- trackList.setHasFixedSize(true)
- trackList.setItemViewCacheSize(20);
- trackList.setDrawingCacheEnabled(true);
- trackList.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_HIGH);
- }
- catch (ex: Exception) {
- val exMsg = ex.message
- }
- }
-
- @RequiresApi(Build.VERSION_CODES.N)
- private fun retrieveTrackItems(): ArrayList {
- var trackItems: ArrayList? = null
- try {
- trackItems = arrayListOf()
-
- val tracks = TrackRepository(this).getAll()
-
- for (track in tracks) {
- var trackCover = ByteArray(0)
- val trackItem = TrackItems(track.id, track.title, track.artist, track.songPath, trackCover!!)
- trackItems.add(trackItem)
- }
- return trackItems
- }
- catch (ex: Exception) {
- val exMsg = ex.message
- }
-
- return trackItems!!
- }
-
- private fun initializeSongSearchListener() {
- songSearch.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
- override fun onQueryTextSubmit(query: String): Boolean {
- try {
- adapter.filter.filter(query)
- }
- catch (ex: Exception) {
- val exMsg = ex.message
- }
-
- return false
- }
-
- override fun onQueryTextChange(newText: String): Boolean {
- try {
- adapter.filter.filter(newText)
- }
- catch (ex: Exception) {
- val exMsg = ex.message
- }
-
- return false
- }
- })
- }
-}
diff --git a/app/src/main/java/com/example/mear/adapters/RecyclerAdapter.kt b/app/src/main/java/com/example/mear/adapters/RecyclerAdapter.kt
deleted file mode 100644
index 56d6621..0000000
--- a/app/src/main/java/com/example/mear/adapters/RecyclerAdapter.kt
+++ /dev/null
@@ -1,125 +0,0 @@
-package com.example.mear.adapters
-
-import android.app.Activity
-import android.support.v7.widget.RecyclerView
-import android.view.View
-import android.view.ViewGroup
-import android.widget.Filter
-import android.widget.Filterable
-
-import java.lang.Exception
-import kotlinx.android.synthetic.main.fragment_song_view.view.*
-import kotlinx.coroutines.GlobalScope
-
-import com.squareup.picasso.Picasso
-
-import com.example.mear.constants.Filenames
-import com.example.mear.inflate
-import com.example.mear.models.TrackItems
-import com.example.mear.R
-import com.example.mear.util.ConvertByteArray
-import com.example.mear.util.ExtractCover
-import org.jetbrains.anko.imageBitmap
-
-
-class RecyclerAdapter(val mOnClickListenerI: (TrackItems) -> Unit,
- var trackItemsSourceInit: ArrayList):
- RecyclerView.Adapter(), Filterable {
-
- var allTrackItems = trackItemsSourceInit
- val adp = this
-
- override fun onBindViewHolder(holder: TrackItemsHolder, position: Int) {
- val itemPhoto = trackItemsSourceInit!![position]
- holder.bindTrackItems(itemPhoto, mOnClickListenerI)
- }
-
- override fun onCreateViewHolder(parent: ViewGroup, position: Int): TrackItemsHolder {
- val inflatedView = parent.inflate(R.layout.fragment_song_view, false)
- return TrackItemsHolder(inflatedView)
- }
-
- override fun getFilter(): Filter {
- return object: Filter() {
- override fun performFiltering(constraint: CharSequence?): FilterResults {
- val fr = FilterResults()
-
- val sortedList = mutableListOf()
-
- for (trackItm in allTrackItems) {
- if (trackItm.artistTitle.contains(constraint!!, true) ||
- trackItm.trackTitle.contains(constraint!!, true)) {
- sortedList.add(trackItm)
- }
- }
-
- fr.count = sortedList.size
- fr.values = sortedList
-
- return fr
- }
-
- override fun publishResults(constraint: CharSequence?, results: FilterResults?) {
- try {
- val itms = results!!.values as ArrayList
-
- adp.trackItemsSourceInit = itms
- }
- catch (ex: Exception) {
- val exMsg = ex.message
- }
-
- adp.notifyDataSetChanged()
- }
- }
- }
-
- override fun getItemCount(): Int {
- return trackItemsSourceInit!!.size
- }
-
-
- fun configureActivity(actvity: Activity) {
- }
-
- class TrackItemsHolder(v: View) : RecyclerView.ViewHolder(v) {
-
- private var view: View = v
- private var trackItem: TrackItems? = null
- private val imgWidth = 40
- private val imgHeight = 40
- private var mBound = false
-
- fun bindTrackItems(trackItems: TrackItems, clickList: (TrackItems) -> Unit) {
- try {
- var context = view.context
-
- this.trackItem = trackItems
-
- view.trackTitle.text = trackItem!!.trackTitle
- view.trackArtist.text = trackItem!!.artistTitle
-
- val id = trackItems.id
-
- var trackCoverPath = "${context.filesDir}/${Filenames.TRACK_COVERS}"
- trackCoverPath = "${trackCoverPath}${id}.bmp"
-
-
- //val extractArt = ExtractCover(null)
- //val coverArt = extractArt.retrieveCover(trackItem!!.trackPath)
-
- //val convertByte = ConvertByteArray(coverArt)
- //var coverArtBmp = convertByte.convertToBmptScales(imgWidth, imgHeight)
-
- //view.trackCover.imageBitmap = coverArtBmp
- // TODO: Implement usage of Picasso
- //Picasso.get().load(trackCoverPath).into(view.trackCover)
-
- view.setOnClickListener { clickList(trackItem!!) }
- }
- catch (ex:Exception) {
- val exMsg = ex.message
- }
- }
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/mear/adapters/SettingsAdapter.kt b/app/src/main/java/com/example/mear/adapters/SettingsAdapter.kt
deleted file mode 100644
index 41613d9..0000000
--- a/app/src/main/java/com/example/mear/adapters/SettingsAdapter.kt
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.example.mear.adapters
-
-import android.support.v7.widget.RecyclerView
-import android.view.View
-import android.view.ViewGroup
-
-import com.example.mear.holders.SettingItemsHolder
-import com.example.mear.models.SettingItems
-
-class SettingsAdapter(val settingItems: ArrayList) : RecyclerView.Adapter() {
-
- override fun getItemCount(): Int {
- TODO("not implemented")
- }
- override fun onBindViewHolder(holder: SettingItemsHolder, position: Int) {
- TODO("not implemented")
- }
- override fun onCreateViewHolder(parent: ViewGroup, position: Int): SettingItemsHolder {
- TODO("not implemented")
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/mear/constants/ControlTypes.kt b/app/src/main/java/com/example/mear/constants/ControlTypes.kt
deleted file mode 100644
index 0c08267..0000000
--- a/app/src/main/java/com/example/mear/constants/ControlTypes.kt
+++ /dev/null
@@ -1,8 +0,0 @@
-package com.example.mear.constants
-
-object ControlTypes {
- const val SHUFFLE_ON = "Shuffle On"
- const val SHUFFLE_OFF = "Shuffle Off"
- const val REPEAT_ON = "Repeat On"
- const val REPEAT_OFF = "Repeat Off"
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/mear/constants/DirectoryIgnore.kt b/app/src/main/java/com/example/mear/constants/DirectoryIgnore.kt
deleted file mode 100644
index 5978a7b..0000000
--- a/app/src/main/java/com/example/mear/constants/DirectoryIgnore.kt
+++ /dev/null
@@ -1,7 +0,0 @@
-package com.example.mear.constants
-
-object DirectoryIgnore {
- const val Android_Root = "Android/"
- const val Notifications = "Notifications/"
- const val Ringtones = "Ringtones/"
-}
diff --git a/app/src/main/java/com/example/mear/constants/FileTypes.kt b/app/src/main/java/com/example/mear/constants/FileTypes.kt
deleted file mode 100644
index 4f21193..0000000
--- a/app/src/main/java/com/example/mear/constants/FileTypes.kt
+++ /dev/null
@@ -1,5 +0,0 @@
-package com.example.mear.constants
-
-object FileTypes {
- const val Mp3 = "mp3"
-}
diff --git a/app/src/main/java/com/example/mear/constants/Filenames.kt b/app/src/main/java/com/example/mear/constants/Filenames.kt
deleted file mode 100644
index 6e44120..0000000
--- a/app/src/main/java/com/example/mear/constants/Filenames.kt
+++ /dev/null
@@ -1,5 +0,0 @@
-package com.example.mear.constants
-
-object Filenames {
- const val TRACK_COVERS = "TrackCover_"
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/mear/constants/Interval.kt b/app/src/main/java/com/example/mear/constants/Interval.kt
deleted file mode 100644
index ae787e8..0000000
--- a/app/src/main/java/com/example/mear/constants/Interval.kt
+++ /dev/null
@@ -1,5 +0,0 @@
-package com.example.mear.constants
-
-object Interval {
- const val SONG_REWIND = 4
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/mear/constants/SongSearch.kt b/app/src/main/java/com/example/mear/constants/SongSearch.kt
deleted file mode 100644
index 35722e5..0000000
--- a/app/src/main/java/com/example/mear/constants/SongSearch.kt
+++ /dev/null
@@ -1,5 +0,0 @@
-package com.example.mear.constants
-
-object SongSearch {
- const val INITIAL_SEARCH_AMOUNT = 1
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/mear/holders/SettingItemsHolder.kt b/app/src/main/java/com/example/mear/holders/SettingItemsHolder.kt
deleted file mode 100644
index 7b39f65..0000000
--- a/app/src/main/java/com/example/mear/holders/SettingItemsHolder.kt
+++ /dev/null
@@ -1,21 +0,0 @@
-package com.example.mear.holders
-
-import android.support.v7.widget.RecyclerView
-import android.view.View
-
-import com.example.mear.models.SettingItems
-
-class SettingItemsHolder(view: View): RecyclerView.ViewHolder(view){
-
- private var view: View = view
-
- fun bindSettingItem(settingItem: SettingItems, clickable: (SettingItems) -> Unit) {
- try {
- // TODO: Implement the binding of setting items
-
- }
- catch (ex: Exception) {
- val exMsg = ex.message
- }
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/mear/listeners/TrackElaspingChange.kt b/app/src/main/java/com/example/mear/listeners/TrackElaspingChange.kt
deleted file mode 100644
index 06fa52a..0000000
--- a/app/src/main/java/com/example/mear/listeners/TrackElaspingChange.kt
+++ /dev/null
@@ -1,63 +0,0 @@
-package com.example.mear.listeners
-
-import android.os.Handler
-import android.widget.SeekBar
-
-import java.lang.Exception
-import java.util.concurrent.TimeUnit
-
-import com.example.mear.playback.service.MusicService
-import com.example.mear.util.ConvertTrackPosition
-
-
-class TrackElaspingChange(var seekBar: SeekBar?): SeekBar.OnSeekBarChangeListener {
-
- var musicService: MusicService? = null
- var mHandler: Handler? = Handler()
-
- override fun onStartTrackingTouch(seekBar: SeekBar?) {
- this.seekBar = seekBar
- }
- override fun onStopTrackingTouch(seekBar: SeekBar?) {
- this.seekBar = seekBar
- val newPositionPercentage = this.seekBar!!.progress
- var convertPosition = ConvertTrackPosition(newPositionPercentage)
- val newPosition = convertPosition.newPosition(musicService!!.durationOfTrack())
- musicService!!.goToPosition(newPosition)
- this.seekBar!!.progress = newPosition
- }
- override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
- this.seekBar = seekBar
-
- if (fromUser ){
-
- mHandler!!.postDelayed( musicTrackTimeUpdateTask, 250)
- }
- }
-
- fun initialize() {
- mHandler!!.postDelayed(musicTrackTimeUpdateTask, 250)
- }
-
- private var musicTrackTimeUpdateTask = object: Runnable {
- override fun run() {
- try {
- var newPosition = 0
- val currentPosition = musicService!!.currentPositionOfTrack() / 1000
- val totalDuration = musicService!!.durationOfTrack() / 1000
- newPosition = (((currentPosition).toDouble() / totalDuration) * 100).toInt()
- val dur = String.format(
- "%02d:%02d", TimeUnit.SECONDS.toMinutes(currentPosition.toLong()),
- (currentPosition % 60)
- )
-
- seekBar!!.progress = newPosition
-
- mHandler!!.postDelayed(this, 250)
- }
- catch (ex: Exception) {
- val exMsg = ex.message
- }
- }
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/mear/management/DatabaseManager.kt b/app/src/main/java/com/example/mear/management/DatabaseManager.kt
deleted file mode 100644
index 7887b21..0000000
--- a/app/src/main/java/com/example/mear/management/DatabaseManager.kt
+++ /dev/null
@@ -1,93 +0,0 @@
-package com.example.mear.management
-
-import android.content.Context
-import android.database.sqlite.SQLiteDatabase
-import com.example.mear.constants.ControlTypes
-
-import java.lang.Exception
-
-import org.jetbrains.anko.db.*
-import org.jetbrains.anko.db.ManagedSQLiteOpenHelper
-
-import com.example.mear.models.PlayControls
-import com.example.mear.repositories.ShuffleRepository
-
-class DatabaseManager(ctx: Context): ManagedSQLiteOpenHelper(ctx, "Mear",
- null, 1) {
- companion object {
- private var instance: DatabaseManager? = null
-
- @Synchronized
- fun getInstance(ctx: Context): DatabaseManager {
- if (instance == null) {
- instance = DatabaseManager(ctx.applicationContext)
- }
- return instance!!
- }
- }
-
-
- override fun onCreate(db: SQLiteDatabase?) {
- try {
- db!!.createTable(
- "Track", true,
- "Id" to INTEGER + PRIMARY_KEY + UNIQUE,
- "Title" to TEXT, "Album" to TEXT, "Artist" to TEXT,
- "Duration" to INTEGER, "FilePath" to TEXT
- )
- db!!.createTable(
- "TrackCount", true,
- "Id" to INTEGER + PRIMARY_KEY + UNIQUE,
- "TotalSongs" to INTEGER
- )
- db!!.createTable(
- "PlayCount", true,
- "Id" to INTEGER + PRIMARY_KEY + AUTOINCREMENT,
- "PlayCount" to INTEGER,
- "TrackId" to INTEGER
- )
- db!!.createTable(
- "Settings", true,
- "Id" to INTEGER + PRIMARY_KEY + UNIQUE,
- "DarkTheme" to org.jetbrains.anko.db.REAL
- )
- db!!.createTable(
- "Shuffle", true,
- "Id" to INTEGER + PRIMARY_KEY + UNIQUE,
- "Mode" to TEXT
- )
- db!!.createTable(
- "Repeat", true,
- "Id" to INTEGER + PRIMARY_KEY + UNIQUE,
- "Mode" to TEXT)
- }
- catch (ex: Exception) {
- }
- initializeShuffle(db)
- initializeRepeat(db)
- }
-
- override fun onUpgrade(db: SQLiteDatabase?, oldVersion: Int, newVersion: Int) {
- try {
- db!!.dropTable("Track")
- db!!.dropTable("TrackCount")
- db!!.dropTable("PlayCount")
- db!!.dropTable("Settings")
- db!!.dropTable("Shuffle")
- db!!.dropTable("Repeat")
- }
- catch (ex: Exception) {
- }
- }
-
-
- private fun initializeShuffle(db: SQLiteDatabase?) {
- db!!.insert("Shuffle",
- "Mode" to ControlTypes.SHUFFLE_OFF)
- }
- private fun initializeRepeat(db: SQLiteDatabase?) {
- db!!.insert("Repeat",
- "Mode" to ControlTypes.REPEAT_OFF)
- }
-}
-
diff --git a/app/src/main/java/com/example/mear/management/MusicFiles.kt b/app/src/main/java/com/example/mear/management/MusicFiles.kt
deleted file mode 100644
index 1629369..0000000
--- a/app/src/main/java/com/example/mear/management/MusicFiles.kt
+++ /dev/null
@@ -1,120 +0,0 @@
-package com.example.mear.management
-
-import java.io.File
-import java.lang.Exception
-
-import com.example.mear.constants.DirectoryIgnore
-import com.example.mear.constants.FileTypes
-import com.example.mear.constants.SongSearch
-
-class MusicFiles (private val demoPath: File) {
-
- var allSongs: MutableList?= null
-
- private val musicSongLimit = Int.MAX_VALUE
-
- fun loadAllMusicPaths() {
- try {
- allSongs = mutableListOf()
- val demoPath = this.demoPath.absoluteFile.toString() + "/music/"
- val f = File(demoPath)
- var count = 0
-
- val folder = f
- val listOfFiles = folder.listFiles()
-
- for (i in listOfFiles) {
- for (j in i.listFiles()) {
- if (j.absolutePath.toString().contains("zip")) {
- }
- for (k in j.listFiles()) {
- if (k.absolutePath.toString().contains("mp3")) {
- if (count < musicSongLimit) {
- allSongs!!.add(k.absolutePath.toString())
- count++
- }
- else
- {
- break
- }
- }
- }
- }
- }
- }
- catch (ex: Exception) {
- var exMsg = ex.message
- }
- }
-
- fun initialMp3Search() {
- try {
- var pathList: MutableList?
- pathList = mutableListOf()
- var songsAdded = 0
-
- var fileSearch = File(demoPath.absolutePath)
- fileSearch.walkTopDown().forEach {
- println(it.absolutePath)
- if (!ignoreThisDirectory(it.absolutePath)) {
- if (it.isFile) {
- if (it.extension == (FileTypes.Mp3)) {
- if (songsAdded >= SongSearch.INITIAL_SEARCH_AMOUNT) {
- return
- }
- pathList.add(it.absolutePath)
- allSongs = pathList
- songsAdded = songsAdded.inc()
- }
- }
- }
- }
- }
- catch (ex: Exception) {
- val exMsg = ex.message
- }
- }
- fun searchForMp3Songs() {
- try {
- var pathList: MutableList?
- pathList = mutableListOf()
-
- var fileSearch = File(demoPath.absolutePath)
- fileSearch.walkTopDown().forEach {
- println(it.absolutePath)
- if (!ignoreThisDirectory(it.absolutePath)) {
- if (it.isFile) {
- if (it.extension == (FileTypes.Mp3)) {
- pathList.add(it.absolutePath)
- }
- }
- }
- }
-
- allSongs = pathList
- }
- catch (ex: Exception) {
- val exMsg = ex.message
- }
- }
-
- private fun ignoreThisDirectory(path: String): Boolean {
- var ignoreDirectory = false
- try {
- if (path.contains(DirectoryIgnore.Android_Root)) {
- ignoreDirectory = true
- }
- if (path.contains(DirectoryIgnore.Notifications)) {
- ignoreDirectory = true
- }
- if (path.contains(DirectoryIgnore.Ringtones)) {
- ignoreDirectory = true
- }
- return ignoreDirectory
- }
- catch (ex: Exception) {
- val exMsg = ex.message
- }
- return ignoreDirectory
- }
-}
\ No newline at end of file
diff --git a/app/src/main/java/com/example/mear/management/TrackManager.kt b/app/src/main/java/com/example/mear/management/TrackManager.kt
deleted file mode 100644
index 9ed1fda..0000000
--- a/app/src/main/java/com/example/mear/management/TrackManager.kt
+++ /dev/null
@@ -1,314 +0,0 @@
-package com.example.mear.management
-
-import android.content.Context
-import android.media.MediaMetadataRetriever
-import android.widget.Toast
-
-import java.io.FileInputStream
-import kotlinx.coroutines.*
-
-import com.example.mear.constants.Filenames
-import com.example.mear.constants.SongSearch
-import com.example.mear.models.Track
-import com.example.mear.repositories.PlayCountRepository
-import com.example.mear.repositories.TrackRepository
-import com.example.mear.util.ConvertByteArray
-import org.jetbrains.anko.custom.async
-import kotlin.Exception
-
-class TrackManager(var allSongPath: MutableList?) {
-
- private var allTracks: MutableList