From 74fcbd09c903ac605447bbd89826d04322bbc885 Mon Sep 17 00:00:00 2001 From: amazing-username Date: Sat, 2 Mar 2019 13:09:59 -0500 Subject: [PATCH] Able to play music, next song, previous song --- .idea/Mear.iml | 19 ++ .idea/caches/build_file_checksums.ser | Bin 0 -> 493 bytes ...le__android_arch_core_common_1_1_1_jar.xml | 11 + ...e__android_arch_core_runtime_1_1_1_aar.xml | 12 + ...ndroid_arch_lifecycle_common_1_1_1_jar.xml | 11 + ...roid_arch_lifecycle_livedata_1_1_1_aar.xml | 12 + ...arch_lifecycle_livedata_core_1_1_1_aar.xml | 12 + ...droid_arch_lifecycle_runtime_1_1_1_aar.xml | 12 + ...oid_arch_lifecycle_viewmodel_1_1_1_aar.xml | 12 + ...rt_animated_vector_drawable_28_0_0_aar.xml | 10 + ...ndroid_support_appcompat_v7_28_0_0_aar.xml | 13 + ...support_asynclayoutinflater_28_0_0_aar.xml | 10 + ...android_support_cardview_v7_28_0_0_aar.xml | 10 + ...android_support_collections_28_0_0_jar.xml | 9 + ...constraint_constraint_layout_1_1_3_aar.xml | 10 + ...int_constraint_layout_solver_1_1_3_jar.xml | 9 + ...d_support_coordinatorlayout_28_0_0_aar.xml | 13 + ...droid_support_cursoradapter_28_0_0_aar.xml | 10 + ..._android_support_customview_28_0_0_aar.xml | 10 + ..._com_android_support_design_28_0_0_aar.xml | 13 + ...ndroid_support_documentfile_28_0_0_aar.xml | 10 + ...ndroid_support_drawerlayout_28_0_0_aar.xml | 13 + ...ndroid_support_interpolator_28_0_0_aar.xml | 10 + ..._com_android_support_loader_28_0_0_aar.xml | 10 + ...pport_localbroadcastmanager_28_0_0_aar.xml | 10 + ...__com_android_support_print_28_0_0_aar.xml | 13 + ...oid_support_recyclerview_v7_28_0_0_aar.xml | 13 + ...d_support_slidingpanelayout_28_0_0_aar.xml | 10 + ...support_support_annotations_28_0_0_jar.xml | 9 + ...roid_support_support_compat_28_0_0_aar.xml | 13 + ...oid_support_support_core_ui_28_0_0_aar.xml | 10 + ..._support_support_core_utils_28_0_0_aar.xml | 10 + ...id_support_support_fragment_28_0_0_aar.xml | 13 + ...upport_support_media_compat_28_0_0_aar.xml | 13 + ..._android_support_support_v4_28_0_0_aar.xml | 10 + ...ort_support_vector_drawable_28_0_0_aar.xml | 10 + ..._support_swiperefreshlayout_28_0_0_aar.xml | 13 + ..._test_espresso_espresso_core_3_0_2_aar.xml | 12 + ...sso_espresso_idling_resource_3_0_2_aar.xml | 12 + ...android_support_test_monitor_1_0_2_aar.xml | 12 + ..._android_support_test_runner_1_0_2_aar.xml | 12 + ..._android_support_transition_28_0_0_aar.xml | 13 + ...support_versionedparcelable_28_0_0_aar.xml | 10 + ...m_android_support_viewpager_28_0_0_aar.xml | 10 + .../Gradle__com_ealva_ealvalog_0_3_0_jar.xml | 11 + ...__com_ealva_ealvalog_android_0_3_0_aar.xml | 12 + ...dle__com_ealva_ealvalog_core_0_3_0_jar.xml | 11 + .../Gradle__com_ealva_ealvatag_0_4_2_jar.xml | 11 + ..._google_code_findbugs_jsr305_2_0_1_jar.xml | 9 + ...radle__com_google_guava_guava_20_0_jar.xml | 11 + ...dle__com_squareup_javawriter_2_1_1_jar.xml | 11 + ...dle__com_squareup_okio_okio_1_11_0_jar.xml | 11 + ...radle__javax_inject_javax_inject_1_jar.xml | 11 + .../Gradle__junit_junit_4_12_jar.xml | 11 + .../Gradle__net_sf_kxml_kxml2_2_3_0_jar.xml | 11 + ...le__org_hamcrest_hamcrest_core_1_3_jar.xml | 11 + ..._hamcrest_hamcrest_integration_1_3_jar.xml | 11 + ..._org_hamcrest_hamcrest_library_1_3_jar.xml | 11 + ...org_jetbrains_anko_anko_common_0_9_jar.xml | 11 + ...__org_jetbrains_annotations_16_0_2_jar.xml | 11 + ...brains_kotlin_kotlin_stdlib_1_3_20_jar.xml | 11 + ...kotlin_kotlin_stdlib_common_1_3_20_jar.xml | 11 + ...s_kotlin_kotlin_stdlib_jdk7_1_3_20_jar.xml | 11 + .idea/misc.xml | 2 +- .idea/modules.xml | 9 + app/app.iml | 223 ++++++++++++++++++ app/build.gradle | 7 + .../java/com/example/mear/MainActivity.kt | 167 ++++++++++--- .../com/example/mear/management/MusicFiles.kt | 44 ++-- .../example/mear/management/TrackManager.kt | 56 +++++ .../java/com/example/mear/models/Track.kt | 2 +- app/src/main/res/layout/content_main.xml | 2 +- local.properties | 8 + 73 files changed, 1149 insertions(+), 68 deletions(-) create mode 100644 .idea/Mear.iml create mode 100644 .idea/caches/build_file_checksums.ser create mode 100644 .idea/libraries/Gradle__android_arch_core_common_1_1_1_jar.xml create mode 100644 .idea/libraries/Gradle__android_arch_core_runtime_1_1_1_aar.xml create mode 100644 .idea/libraries/Gradle__android_arch_lifecycle_common_1_1_1_jar.xml create mode 100644 .idea/libraries/Gradle__android_arch_lifecycle_livedata_1_1_1_aar.xml create mode 100644 .idea/libraries/Gradle__android_arch_lifecycle_livedata_core_1_1_1_aar.xml create mode 100644 .idea/libraries/Gradle__android_arch_lifecycle_runtime_1_1_1_aar.xml create mode 100644 .idea/libraries/Gradle__android_arch_lifecycle_viewmodel_1_1_1_aar.xml create mode 100644 .idea/libraries/Gradle__com_android_support_animated_vector_drawable_28_0_0_aar.xml create mode 100644 .idea/libraries/Gradle__com_android_support_appcompat_v7_28_0_0_aar.xml create mode 100644 .idea/libraries/Gradle__com_android_support_asynclayoutinflater_28_0_0_aar.xml create mode 100644 .idea/libraries/Gradle__com_android_support_cardview_v7_28_0_0_aar.xml create mode 100644 .idea/libraries/Gradle__com_android_support_collections_28_0_0_jar.xml create mode 100644 .idea/libraries/Gradle__com_android_support_constraint_constraint_layout_1_1_3_aar.xml create mode 100644 .idea/libraries/Gradle__com_android_support_constraint_constraint_layout_solver_1_1_3_jar.xml create mode 100644 .idea/libraries/Gradle__com_android_support_coordinatorlayout_28_0_0_aar.xml create mode 100644 .idea/libraries/Gradle__com_android_support_cursoradapter_28_0_0_aar.xml create mode 100644 .idea/libraries/Gradle__com_android_support_customview_28_0_0_aar.xml create mode 100644 .idea/libraries/Gradle__com_android_support_design_28_0_0_aar.xml create mode 100644 .idea/libraries/Gradle__com_android_support_documentfile_28_0_0_aar.xml create mode 100644 .idea/libraries/Gradle__com_android_support_drawerlayout_28_0_0_aar.xml create mode 100644 .idea/libraries/Gradle__com_android_support_interpolator_28_0_0_aar.xml create mode 100644 .idea/libraries/Gradle__com_android_support_loader_28_0_0_aar.xml create mode 100644 .idea/libraries/Gradle__com_android_support_localbroadcastmanager_28_0_0_aar.xml create mode 100644 .idea/libraries/Gradle__com_android_support_print_28_0_0_aar.xml create mode 100644 .idea/libraries/Gradle__com_android_support_recyclerview_v7_28_0_0_aar.xml create mode 100644 .idea/libraries/Gradle__com_android_support_slidingpanelayout_28_0_0_aar.xml create mode 100644 .idea/libraries/Gradle__com_android_support_support_annotations_28_0_0_jar.xml create mode 100644 .idea/libraries/Gradle__com_android_support_support_compat_28_0_0_aar.xml create mode 100644 .idea/libraries/Gradle__com_android_support_support_core_ui_28_0_0_aar.xml create mode 100644 .idea/libraries/Gradle__com_android_support_support_core_utils_28_0_0_aar.xml create mode 100644 .idea/libraries/Gradle__com_android_support_support_fragment_28_0_0_aar.xml create mode 100644 .idea/libraries/Gradle__com_android_support_support_media_compat_28_0_0_aar.xml create mode 100644 .idea/libraries/Gradle__com_android_support_support_v4_28_0_0_aar.xml create mode 100644 .idea/libraries/Gradle__com_android_support_support_vector_drawable_28_0_0_aar.xml create mode 100644 .idea/libraries/Gradle__com_android_support_swiperefreshlayout_28_0_0_aar.xml create mode 100644 .idea/libraries/Gradle__com_android_support_test_espresso_espresso_core_3_0_2_aar.xml create mode 100644 .idea/libraries/Gradle__com_android_support_test_espresso_espresso_idling_resource_3_0_2_aar.xml create mode 100644 .idea/libraries/Gradle__com_android_support_test_monitor_1_0_2_aar.xml create mode 100644 .idea/libraries/Gradle__com_android_support_test_runner_1_0_2_aar.xml create mode 100644 .idea/libraries/Gradle__com_android_support_transition_28_0_0_aar.xml create mode 100644 .idea/libraries/Gradle__com_android_support_versionedparcelable_28_0_0_aar.xml create mode 100644 .idea/libraries/Gradle__com_android_support_viewpager_28_0_0_aar.xml create mode 100644 .idea/libraries/Gradle__com_ealva_ealvalog_0_3_0_jar.xml create mode 100644 .idea/libraries/Gradle__com_ealva_ealvalog_android_0_3_0_aar.xml create mode 100644 .idea/libraries/Gradle__com_ealva_ealvalog_core_0_3_0_jar.xml create mode 100644 .idea/libraries/Gradle__com_ealva_ealvatag_0_4_2_jar.xml create mode 100644 .idea/libraries/Gradle__com_google_code_findbugs_jsr305_2_0_1_jar.xml create mode 100644 .idea/libraries/Gradle__com_google_guava_guava_20_0_jar.xml create mode 100644 .idea/libraries/Gradle__com_squareup_javawriter_2_1_1_jar.xml create mode 100644 .idea/libraries/Gradle__com_squareup_okio_okio_1_11_0_jar.xml create mode 100644 .idea/libraries/Gradle__javax_inject_javax_inject_1_jar.xml create mode 100644 .idea/libraries/Gradle__junit_junit_4_12_jar.xml create mode 100644 .idea/libraries/Gradle__net_sf_kxml_kxml2_2_3_0_jar.xml create mode 100644 .idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3_jar.xml create mode 100644 .idea/libraries/Gradle__org_hamcrest_hamcrest_integration_1_3_jar.xml create mode 100644 .idea/libraries/Gradle__org_hamcrest_hamcrest_library_1_3_jar.xml create mode 100644 .idea/libraries/Gradle__org_jetbrains_anko_anko_common_0_9_jar.xml create mode 100644 .idea/libraries/Gradle__org_jetbrains_annotations_16_0_2_jar.xml create mode 100644 .idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_3_20_jar.xml create mode 100644 .idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_3_20_jar.xml create mode 100644 .idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_3_20_jar.xml create mode 100644 .idea/modules.xml create mode 100644 app/app.iml create mode 100644 app/src/main/java/com/example/mear/management/TrackManager.kt create mode 100644 local.properties diff --git a/.idea/Mear.iml b/.idea/Mear.iml new file mode 100644 index 0000000..0fbbc63 --- /dev/null +++ b/.idea/Mear.iml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser new file mode 100644 index 0000000000000000000000000000000000000000..bc11bafd116d514f7b4ad2f3cfe22fa1b305f5e0 GIT binary patch literal 493 zcmZ4UmVvdnh`~NNKUXg?FQq6yGexf?KR>5fFEb@IQ7^qHF(oHeub?PDD>b=9F91S2 zm1gFoxMk*~I%lLNXBU^|7Q2L-Ts|(GuF1r}nf0c10S!18}mhbLxkeX0=^7o4WADqX^$ zs-Kaco2p-0oLXe457n%X2$_P^qLR$i;?hEfItDh730Gu$ZuT>5VtLuXIpfU_r@9gb zft>v0#2ipCVkov2`}bawL$z&pjXSBk=f{j;POP8i7V9 h78K|wfg%LvEx0=-E=hPZ%O + + + + + + + + + + \ 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 new file mode 100644 index 0000000..d92274f --- /dev/null +++ b/.idea/libraries/Gradle__android_arch_core_runtime_1_1_1_aar.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ 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 new file mode 100644 index 0000000..27b1867 --- /dev/null +++ b/.idea/libraries/Gradle__android_arch_lifecycle_common_1_1_1_jar.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ 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 new file mode 100644 index 0000000..c528813 --- /dev/null +++ b/.idea/libraries/Gradle__android_arch_lifecycle_livedata_1_1_1_aar.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ 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 new file mode 100644 index 0000000..4082ed2 --- /dev/null +++ b/.idea/libraries/Gradle__android_arch_lifecycle_livedata_core_1_1_1_aar.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ 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 new file mode 100644 index 0000000..453715b --- /dev/null +++ b/.idea/libraries/Gradle__android_arch_lifecycle_runtime_1_1_1_aar.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ 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 new file mode 100644 index 0000000..dad554f --- /dev/null +++ b/.idea/libraries/Gradle__android_arch_lifecycle_viewmodel_1_1_1_aar.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ 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 new file mode 100644 index 0000000..9e71b04 --- /dev/null +++ b/.idea/libraries/Gradle__com_android_support_animated_vector_drawable_28_0_0_aar.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ 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 new file mode 100644 index 0000000..8efa084 --- /dev/null +++ b/.idea/libraries/Gradle__com_android_support_appcompat_v7_28_0_0_aar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ 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 new file mode 100644 index 0000000..b3015a4 --- /dev/null +++ b/.idea/libraries/Gradle__com_android_support_asynclayoutinflater_28_0_0_aar.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ 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 new file mode 100644 index 0000000..c46336d --- /dev/null +++ b/.idea/libraries/Gradle__com_android_support_cardview_v7_28_0_0_aar.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ 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 new file mode 100644 index 0000000..80e4d73 --- /dev/null +++ b/.idea/libraries/Gradle__com_android_support_collections_28_0_0_jar.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ 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 new file mode 100644 index 0000000..c160235 --- /dev/null +++ b/.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_1_1_3_aar.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ 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 new file mode 100644 index 0000000..c0adf88 --- /dev/null +++ b/.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_solver_1_1_3_jar.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ 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 new file mode 100644 index 0000000..bd40006 --- /dev/null +++ b/.idea/libraries/Gradle__com_android_support_coordinatorlayout_28_0_0_aar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ 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 new file mode 100644 index 0000000..8edf861 --- /dev/null +++ b/.idea/libraries/Gradle__com_android_support_cursoradapter_28_0_0_aar.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ 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 new file mode 100644 index 0000000..9dfc909 --- /dev/null +++ b/.idea/libraries/Gradle__com_android_support_customview_28_0_0_aar.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ 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 new file mode 100644 index 0000000..4d1908a --- /dev/null +++ b/.idea/libraries/Gradle__com_android_support_design_28_0_0_aar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ 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 new file mode 100644 index 0000000..09543d2 --- /dev/null +++ b/.idea/libraries/Gradle__com_android_support_documentfile_28_0_0_aar.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ 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 new file mode 100644 index 0000000..b782241 --- /dev/null +++ b/.idea/libraries/Gradle__com_android_support_drawerlayout_28_0_0_aar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ 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 new file mode 100644 index 0000000..848a925 --- /dev/null +++ b/.idea/libraries/Gradle__com_android_support_interpolator_28_0_0_aar.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ 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 new file mode 100644 index 0000000..bb3f5c3 --- /dev/null +++ b/.idea/libraries/Gradle__com_android_support_loader_28_0_0_aar.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ 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 new file mode 100644 index 0000000..2bc1827 --- /dev/null +++ b/.idea/libraries/Gradle__com_android_support_localbroadcastmanager_28_0_0_aar.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ 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 new file mode 100644 index 0000000..2082668 --- /dev/null +++ b/.idea/libraries/Gradle__com_android_support_print_28_0_0_aar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ 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 new file mode 100644 index 0000000..7a51489 --- /dev/null +++ b/.idea/libraries/Gradle__com_android_support_recyclerview_v7_28_0_0_aar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ 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 new file mode 100644 index 0000000..8928625 --- /dev/null +++ b/.idea/libraries/Gradle__com_android_support_slidingpanelayout_28_0_0_aar.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ 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 new file mode 100644 index 0000000..0fdecce --- /dev/null +++ b/.idea/libraries/Gradle__com_android_support_support_annotations_28_0_0_jar.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ 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 new file mode 100644 index 0000000..dfedd1c --- /dev/null +++ b/.idea/libraries/Gradle__com_android_support_support_compat_28_0_0_aar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ 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 new file mode 100644 index 0000000..76c5a05 --- /dev/null +++ b/.idea/libraries/Gradle__com_android_support_support_core_ui_28_0_0_aar.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ 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 new file mode 100644 index 0000000..7c241d4 --- /dev/null +++ b/.idea/libraries/Gradle__com_android_support_support_core_utils_28_0_0_aar.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ 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 new file mode 100644 index 0000000..16ee1ea --- /dev/null +++ b/.idea/libraries/Gradle__com_android_support_support_fragment_28_0_0_aar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ 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 new file mode 100644 index 0000000..b5b1be3 --- /dev/null +++ b/.idea/libraries/Gradle__com_android_support_support_media_compat_28_0_0_aar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ 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 new file mode 100644 index 0000000..039afab --- /dev/null +++ b/.idea/libraries/Gradle__com_android_support_support_v4_28_0_0_aar.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ 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 new file mode 100644 index 0000000..19b4d73 --- /dev/null +++ b/.idea/libraries/Gradle__com_android_support_support_vector_drawable_28_0_0_aar.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ 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 new file mode 100644 index 0000000..da977cf --- /dev/null +++ b/.idea/libraries/Gradle__com_android_support_swiperefreshlayout_28_0_0_aar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ 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 new file mode 100644 index 0000000..bdd8505 --- /dev/null +++ b/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_core_3_0_2_aar.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ 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 new file mode 100644 index 0000000..1fc1ea9 --- /dev/null +++ b/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_idling_resource_3_0_2_aar.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ 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 new file mode 100644 index 0000000..8f77f9b --- /dev/null +++ b/.idea/libraries/Gradle__com_android_support_test_monitor_1_0_2_aar.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ 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 new file mode 100644 index 0000000..45f6a29 --- /dev/null +++ b/.idea/libraries/Gradle__com_android_support_test_runner_1_0_2_aar.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ 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 new file mode 100644 index 0000000..3155ba6 --- /dev/null +++ b/.idea/libraries/Gradle__com_android_support_transition_28_0_0_aar.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ 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 new file mode 100644 index 0000000..5d39e82 --- /dev/null +++ b/.idea/libraries/Gradle__com_android_support_versionedparcelable_28_0_0_aar.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ 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 new file mode 100644 index 0000000..f7e85f4 --- /dev/null +++ b/.idea/libraries/Gradle__com_android_support_viewpager_28_0_0_aar.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ 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 new file mode 100644 index 0000000..19f7429 --- /dev/null +++ b/.idea/libraries/Gradle__com_ealva_ealvalog_0_3_0_jar.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ 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 new file mode 100644 index 0000000..db15e3c --- /dev/null +++ b/.idea/libraries/Gradle__com_ealva_ealvalog_android_0_3_0_aar.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ 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 new file mode 100644 index 0000000..5de757f --- /dev/null +++ b/.idea/libraries/Gradle__com_ealva_ealvalog_core_0_3_0_jar.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ 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 new file mode 100644 index 0000000..29c0e5c --- /dev/null +++ b/.idea/libraries/Gradle__com_ealva_ealvatag_0_4_2_jar.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ 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 new file mode 100644 index 0000000..947e251 --- /dev/null +++ b/.idea/libraries/Gradle__com_google_code_findbugs_jsr305_2_0_1_jar.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__com_google_guava_guava_20_0_jar.xml b/.idea/libraries/Gradle__com_google_guava_guava_20_0_jar.xml new file mode 100644 index 0000000..bbfeb85 --- /dev/null +++ b/.idea/libraries/Gradle__com_google_guava_guava_20_0_jar.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ 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 new file mode 100644 index 0000000..5c4dd4e --- /dev/null +++ b/.idea/libraries/Gradle__com_squareup_javawriter_2_1_1_jar.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ 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 new file mode 100644 index 0000000..4af9d3f --- /dev/null +++ b/.idea/libraries/Gradle__com_squareup_okio_okio_1_11_0_jar.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ 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 new file mode 100644 index 0000000..f9c9a30 --- /dev/null +++ b/.idea/libraries/Gradle__javax_inject_javax_inject_1_jar.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ 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 new file mode 100644 index 0000000..f4f25a8 --- /dev/null +++ b/.idea/libraries/Gradle__junit_junit_4_12_jar.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ 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 new file mode 100644 index 0000000..5855a29 --- /dev/null +++ b/.idea/libraries/Gradle__net_sf_kxml_kxml2_2_3_0_jar.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ 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 new file mode 100644 index 0000000..50cf2b9 --- /dev/null +++ b/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3_jar.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ 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 new file mode 100644 index 0000000..a5eaca5 --- /dev/null +++ b/.idea/libraries/Gradle__org_hamcrest_hamcrest_integration_1_3_jar.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ 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 new file mode 100644 index 0000000..b4dabdc --- /dev/null +++ b/.idea/libraries/Gradle__org_hamcrest_hamcrest_library_1_3_jar.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Gradle__org_jetbrains_anko_anko_common_0_9_jar.xml b/.idea/libraries/Gradle__org_jetbrains_anko_anko_common_0_9_jar.xml new file mode 100644 index 0000000..c54834d --- /dev/null +++ b/.idea/libraries/Gradle__org_jetbrains_anko_anko_common_0_9_jar.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ 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 new file mode 100644 index 0000000..39c2558 --- /dev/null +++ b/.idea/libraries/Gradle__org_jetbrains_annotations_16_0_2_jar.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ 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 new file mode 100644 index 0000000..e7c3f2f --- /dev/null +++ b/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_3_20_jar.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ 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 new file mode 100644 index 0000000..70d36cc --- /dev/null +++ b/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_3_20_jar.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ 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 new file mode 100644 index 0000000..fbc6260 --- /dev/null +++ b/.idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_3_20_jar.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 7bfef59..37a7509 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,6 +1,6 @@ - + diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..9dd58e4 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/app/app.iml b/app/app.iml new file mode 100644 index 0000000..53276ad --- /dev/null +++ b/app/app.iml @@ -0,0 +1,223 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index fc521fe..be78ed8 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -29,6 +29,13 @@ dependencies { 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-common:0.9' + 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' diff --git a/app/src/main/java/com/example/mear/MainActivity.kt b/app/src/main/java/com/example/mear/MainActivity.kt index 18c1fc8..d7c3e96 100644 --- a/app/src/main/java/com/example/mear/MainActivity.kt +++ b/app/src/main/java/com/example/mear/MainActivity.kt @@ -1,20 +1,24 @@ package com.example.mear +import android.graphics.Bitmap +import android.graphics.BitmapFactory import android.media.MediaPlayer import android.os.Bundle import android.os.Environment import android.support.design.widget.Snackbar import android.support.v7.app.AppCompatActivity; +import java.lang.Exception import kotlinx.android.synthetic.main.activity_main.* import kotlinx.android.synthetic.main.content_main.* -import java.io.File -import java.lang.Exception -import java.nio.file.Files import kotlin.io.* +import kotlin.random.Random + +import org.jetbrains.anko.* import com.example.mear.management.MusicFiles -import kotlin.random.Random +import com.example.mear.management.TrackManager +import com.example.mear.models.Track class MainActivity : AppCompatActivity() { @@ -23,54 +27,42 @@ class MainActivity : AppCompatActivity() { setContentView(R.layout.activity_main) setSupportActionBar(toolbar) - loadSongs() + loadTracks(loadSongPaths()) initializeMediaPlayer() PlayTrack.setOnClickListener { playSongTrack() } - } - - - fun configureSongs() { - - } - fun configureDemoSong() { - val sdC = "sdcard0/" - var musicPath = "music/" - var artistPath = "Flueric/" - var albumPath = "New Death of a Phoenix/" - var songPath = "Qualm.mp3" - val pa = demoPath!!.absoluteFile.toString() + "/" + musicPath + artistPath + albumPath + - songPath - try { - var fl = File(pa) - if (fl.exists()) { - TrackPayer!!.setDataSource(pa) - } + NextTrack.setOnClickListener { + playNextSongTrack() } - catch (ex: Exception) { - var exMsg = ex.message + PreviousTrack.setOnClickListener { + playPreviousSongTrack() + } + TrackPayer!!.setOnCompletionListener { + playNextSongTrack() } } - fun initializeMediaPlayer() { + private fun initializeMediaPlayer() { if (TrackPayer == null) { TrackPayer = MediaPlayer() playerInitialized = true - TrackPayer!!.setDataSource(allSongs!![currentSong!!]) + TrackPayer!!.setDataSource(allTracks!![currentSong!!].songPath) TrackPayer!!.prepare() } } - fun playSongTrack() { + private fun playSongTrack() { try { if (!TrackPayer!!.isPlaying) { TrackPayer!!.start() - var musicData = TrackPayer!!.trackInfo + configureTrackDisplay() + + println("ss") } else { TrackPayer!!.pause() @@ -80,19 +72,120 @@ class MainActivity : AppCompatActivity() { val exMsg = ex.message } } + private fun playNextSongTrack() { + try { + currentSong = fetchSongIndex(PlayTypes.PlayNextSong) + if (TrackPayer!!.isPlaying) { + TrackPayer!!.stop() + } - private fun loadSongs() { - val mfPaths = MusicFiles(this.demoPath!!) + TrackPayer!!.reset() + TrackPayer!!.setDataSource(allTracks!![currentSong!!].songPath) + TrackPayer!!.prepare() + TrackPayer!!.start() + configureTrackDisplay() + } + catch (ex: Exception) { + val exMsg = ex.message + print(exMsg) + } + } + private fun playPreviousSongTrack() { + try { + currentSong = fetchSongIndex(PlayTypes.PlayPreviousSong) + + if (TrackPayer!!.isPlaying) { + TrackPayer!!.stop() + } + + TrackPayer!!.reset() + TrackPayer!!.setDataSource(allTracks!![currentSong!!].songPath) + TrackPayer!!.prepare() + TrackPayer!!.start() + configureTrackDisplay() + } + catch (ex: Exception) { + val exMsg = ex.message + print(exMsg) + } + } + private fun configureTrackDisplay() { + val trackTitle = allTracks!![currentSong!!].title + val albumTitle = allTracks!![currentSong!!].album + var trackCover: ByteArray? = null + + if (!(allTracks!![currentSong!!].TrackCover == null)) { + trackCover = allTracks!![currentSong!!].TrackCover + } + + TrackTitle.text.clear() + AlbumTitle.text.clear() + TrackCover.setImageBitmap(null) + + TrackTitle.setText(trackTitle) + AlbumTitle.setText(albumTitle) + if (trackCover != null) { + var songImage = BitmapFactory + .decodeByteArray(trackCover, 0, trackCover!!.size) + TrackCover.setImageBitmap(songImage) + } + } + + private fun fetchSongIndex(playType: PlayTypes): Int { + var songIndex: Int? = null + + try { + when (playType) { + PlayTypes.PlayPreviousSong -> { + if (currentSong!! == 0) { + songIndex = allTracks!!.size - 1 + } else { + songIndex = currentSong!!.dec() + } + } + PlayTypes.PlaySong -> { + songIndex = Random.nextInt(0, allTracks!!.size - 1) + } + PlayTypes.PlayNextSong -> { + if (currentSong!! == (allTracks!!.size - 1)) { + songIndex = 0 + } else { + songIndex = currentSong!!.inc() + } + } + } + } + catch (ex: Exception) { + val exMsg = ex.message + println(exMsg) + } + + return songIndex!! + } + + private fun loadSongPaths(): MutableList { + val demoPath = Environment.getExternalStorageDirectory() + val mfPaths = MusicFiles(demoPath) mfPaths.loadAllMusicPaths() - allSongs = mfPaths.allSongs - val songIndex = Random.nextInt(0, allSongs!!.size - 1) - currentSong = songIndex + val allSongs = mfPaths.allSongs + + return allSongs!! + } + private fun loadTracks(allSongs: MutableList) { + val trackMgr = TrackManager(allSongs!!) + trackMgr.configureTracks() + allTracks = trackMgr.allTracks + + currentSong = fetchSongIndex(PlayTypes.PlaySong) } private var TrackPayer: MediaPlayer? = null - private var demoPath: File? = Environment .getExternalStorageDirectory() - private var allSongs: MutableList? = null + private var allTracks: MutableList? = null private var currentSong: Int? = null private var playerInitialized: Boolean? = null + + private enum class PlayTypes { + PlayNextSong, PlaySong, PlayPreviousSong + } } diff --git a/app/src/main/java/com/example/mear/management/MusicFiles.kt b/app/src/main/java/com/example/mear/management/MusicFiles.kt index 4c73768..426981c 100644 --- a/app/src/main/java/com/example/mear/management/MusicFiles.kt +++ b/app/src/main/java/com/example/mear/management/MusicFiles.kt @@ -19,21 +19,25 @@ class MusicFiles (val demoPath: File) { val listOfFiles = folder.listFiles() for (i in listOfFiles) { - for (j in i.listFiles()) { - if (j.absolutePath.toString().contains("zip")) { - println("zip file") - } - for (k in j.listFiles()) { - println("What's good?") - if (k.absolutePath.toString().contains("mp3")) { - allSongs!!.add(k.absolutePath.toString()) - count++ + if (allSongs!!.count() < musicSongLimit) { + for (j in i.listFiles()) { + if (j.absolutePath.toString().contains("zip")) { + println("zip file") } - else { - println("Stranger") + for (k in j.listFiles()) { + println("What's good?") + if (k.absolutePath.toString().contains("mp3")) { + allSongs!!.add(k.absolutePath.toString()) + count++ + } else { + println("Stranger") + } } } } + else { + break + } } songCount = count } @@ -41,25 +45,9 @@ class MusicFiles (val demoPath: File) { var exMsg = ex.message } } - fun configureDemoSong() { - val sdC = "sdcard0/" - var musicPath = "music/" - var artistPath = "Flueric/" - var albumPath = "New Death of a Phoenix/" - var songPath = "Qualm.mp3" - val pa = demoPath.absoluteFile.toString() + "/" + musicPath + artistPath + albumPath + - songPath - try { - var fl = File(pa) - if (fl.exists()) { - } - } - catch (ex: Exception) { - var exMsg = ex.message - } - } var allSongs: MutableList?= null var songCount: Int? = null + val musicSongLimit = 50 } \ 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 new file mode 100644 index 0000000..a95a61e --- /dev/null +++ b/app/src/main/java/com/example/mear/management/TrackManager.kt @@ -0,0 +1,56 @@ +package com.example.mear.management + +import android.graphics.Bitmap +import android.graphics.BitmapFactory +import android.media.MediaMetadataRetriever + +import java.io.File +import java.lang.Exception + +import ealvatag.audio.AudioFile +import ealvatag.audio.AudioFileIO +import ealvatag.tag.FieldKey +import ealvatag.tag.NullTag + +import com.example.mear.models.Track + +class TrackManager(val allSongPath: List) { + + + fun configureTracks() { + try { + var id = 0 + allTracks = mutableListOf() + for (musicPath in allSongPath) { + var mmr = MediaMetadataRetriever() + mmr.setDataSource(musicPath) + val trackTitle = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_TITLE) + val trackArtist = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ARTIST) + val trackAlbum = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUM) + var trackLength: Int? = null + val trackLenghStr = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION) + trackLength = (trackLenghStr.toInt()/1000) + + var art: ByteArray? = null + if (mmr.embeddedPicture==null) { + art = ByteArray(0) + } + else { + art = mmr.embeddedPicture + var songImage = BitmapFactory + .decodeByteArray(art, 0, art!!.size) + } + + var track = Track(id, trackTitle, trackArtist, trackAlbum, trackLength, + art!!, musicPath) + id++ + allTracks!!.add(track) + } + } + catch (ex: Exception) { + val exMsg = ex.message + } + } + + var allTracks: MutableList? = null +} \ No newline at end of file diff --git a/app/src/main/java/com/example/mear/models/Track.kt b/app/src/main/java/com/example/mear/models/Track.kt index e3446d9..c3576f8 100644 --- a/app/src/main/java/com/example/mear/models/Track.kt +++ b/app/src/main/java/com/example/mear/models/Track.kt @@ -1,5 +1,5 @@ package com.example.mear.models class Track (val id: Int, val title: String, val artist: String, val album: String, - val TrackCover: ByteArray) { + val length: Int, val TrackCover: ByteArray, val songPath: String) { } \ No newline at end of file diff --git a/app/src/main/res/layout/content_main.xml b/app/src/main/res/layout/content_main.xml index bbbb5b7..9bf88d8 100644 --- a/app/src/main/res/layout/content_main.xml +++ b/app/src/main/res/layout/content_main.xml @@ -16,7 +16,7 @@ tools:layout_editor_absoluteX="0dp">