From 0bdf2788e756f80b7d0e031068883f6feccfa6a1 Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 21 May 2019 19:37:50 -0700 Subject: [PATCH] Dev tool switch #12 --- .idea/caches/build_file_checksums.ser | Bin 536 -> 0 bytes .idea/codeStyles/Project.xml | 147 ------ .idea/codeStyles/codeStyleConfig.xml | 5 - .idea/dictionaries/phoenix.xml | 3 - .idea/gradle.xml | 18 - ...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 - ...le__org_jetbrains_anko_anko_0_10_8_aar.xml | 12 - ...ains_anko_anko_appcompat_v7_0_10_8_aar.xml | 12 - ...o_anko_appcompat_v7_commons_0_10_8_aar.xml | 12 - ...nko_appcompat_v7_coroutines_0_10_8_aar.xml | 12 - ...jetbrains_anko_anko_commons_0_10_8_aar.xml | 12 - ...brains_anko_anko_coroutines_0_10_8_aar.xml | 12 - ...g_jetbrains_anko_anko_sdk27_0_10_8_aar.xml | 12 - ..._anko_anko_sdk27_coroutines_0_10_8_aar.xml | 12 - ..._jetbrains_anko_anko_sqlite_0_10_8_aar.xml | 12 - ...brains_anko_anko_support_v4_0_10_8_aar.xml | 12 - ...nko_anko_support_v4_commons_0_10_8_aar.xml | 12 - ...rains_anko_appcompatV7_base_0_10_8_aar.xml | 12 - ...jetbrains_anko_commons_base_0_10_8_aar.xml | 12 - ...etbrains_anko_platform_base_0_10_8_aar.xml | 12 - ..._jetbrains_anko_sqlite_base_0_10_8_aar.xml | 12 - ...tbrains_anko_supportV4_base_0_10_8_aar.xml | 12 - ...__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 - ...x_kotlinx_coroutines_android_1_0_0_jar.xml | 11 - ...linx_kotlinx_coroutines_core_1_0_0_jar.xml | 11 - ...tlinx_coroutines_core_common_1_0_0_jar.xml | 11 - .idea/misc.xml | 9 - .idea/modules.xml | 9 - .idea/render.experimental.xml | 7 - .idea/runConfigurations.xml | 12 - .idea/vcs.xml | 6 - app/app.iml | 244 --------- app/build.gradle | 45 -- .../debug/com/example/mear/BuildConfig.java | 13 - app/proguard-rules.pro | 21 - .../example/mear/ExampleInstrumentedTest.kt | 24 - app/src/main/AndroidManifest.xml | 48 -- .../mear/AppCompatPreferenceActivity.kt | 90 ---- .../mear/activities/BaseServiceActivity.kt | 86 ---- .../example/mear/activities/MainActivity.kt | 410 --------------- .../mear/activities/SettingsActivity.kt | 91 ---- .../mear/activities/SongViewActivity.kt | 136 ----- .../example/mear/adapters/RecyclerAdapter.kt | 125 ----- .../example/mear/adapters/SettingsAdapter.kt | 21 - .../example/mear/constants/ControlTypes.kt | 8 - .../example/mear/constants/DirectoryIgnore.kt | 7 - .../com/example/mear/constants/FileTypes.kt | 5 - .../com/example/mear/constants/Filenames.kt | 5 - .../com/example/mear/constants/Interval.kt | 5 - .../com/example/mear/constants/SongSearch.kt | 5 - .../mear/holders/SettingItemsHolder.kt | 21 - .../mear/listeners/TrackElaspingChange.kt | 63 --- .../mear/management/DatabaseManager.kt | 93 ---- .../com/example/mear/management/MusicFiles.kt | 120 ----- .../example/mear/management/TrackManager.kt | 314 ------------ .../com/example/mear/models/PlayControls.kt | 4 - .../java/com/example/mear/models/PlayCount.kt | 4 - .../com/example/mear/models/SettingItems.kt | 4 - .../java/com/example/mear/models/Settings.kt | 4 - .../java/com/example/mear/models/Track.kt | 6 - .../com/example/mear/models/TrackItems.kt | 6 - .../com/example/mear/playback/PlayMusic.kt | 4 - .../mear/playback/service/MusicService.kt | 466 ------------------ .../mear/repositories/PlayCountRepository.kt | 73 --- .../mear/repositories/RepeatRepository.kt | 38 -- .../mear/repositories/SettingRepository.kt | 41 -- .../mear/repositories/ShuffleRepository.kt | 47 -- .../mear/repositories/TrackRepository.kt | 123 ----- .../com/example/mear/ui/popups/AboutPopup.kt | 38 -- .../com/example/mear/util/ConvertByteArray.kt | 19 - .../example/mear/util/ConvertTrackPosition.kt | 11 - .../com/example/mear/util/ExtractCover.kt | 114 ----- app/src/main/java/extensions.kt | 16 - .../res/drawable-hdpi/ic_action_more_vert.png | Bin 309 -> 0 bytes .../main/res/drawable-hdpi/ic_action_name.png | Bin 85 -> 0 bytes .../res/drawable-mdpi/ic_action_more_vert.png | Bin 181 -> 0 bytes .../main/res/drawable-mdpi/ic_action_name.png | Bin 81 -> 0 bytes .../drawable-v24/ic_launcher_foreground.xml | 34 -- .../drawable-xhdpi/ic_action_more_vert.png | Bin 365 -> 0 bytes .../res/drawable-xhdpi/ic_action_name.png | Bin 88 -> 0 bytes .../drawable-xxhdpi/ic_action_more_vert.png | Bin 661 -> 0 bytes .../res/drawable-xxhdpi/ic_action_name.png | Bin 100 -> 0 bytes .../drawable-xxxhdpi/ic_action_more_vert.png | Bin 805 -> 0 bytes .../res/drawable-xxxhdpi/ic_action_name.png | Bin 116 -> 0 bytes .../main/res/drawable/ic_info_black_24dp.xml | 9 - .../res/drawable/ic_launcher_background.xml | 74 --- app/src/main/res/drawable/ic_menu_camera.xml | 12 - app/src/main/res/drawable/ic_menu_gallery.xml | 9 - app/src/main/res/drawable/ic_menu_manage.xml | 9 - app/src/main/res/drawable/ic_menu_send.xml | 9 - app/src/main/res/drawable/ic_menu_share.xml | 9 - .../main/res/drawable/ic_menu_slideshow.xml | 9 - .../drawable/ic_notifications_black_24dp.xml | 9 - .../main/res/drawable/ic_sync_black_24dp.xml | 9 - app/src/main/res/drawable/side_nav_bar.xml | 9 - app/src/main/res/layout/activity_main.xml | 48 -- app/src/main/res/layout/activity_settings.xml | 31 -- .../main/res/layout/activity_song_view.xml | 38 -- app/src/main/res/layout/content_main.xml | 25 - app/src/main/res/layout/content_settings.xml | 108 ---- app/src/main/res/layout/content_song_view.xml | 45 -- .../res/layout/fragment_play_controls.xml | 46 -- .../res/layout/fragment_settings_view.xml | 76 --- .../main/res/layout/fragment_song_view.xml | 80 --- .../main/res/layout/fragment_track_cover.xml | 22 - .../res/layout/fragment_track_details.xml | 51 -- .../res/layout/fragment_track_elapsing.xml | 46 -- .../main/res/layout/fragment_track_flow.xml | 36 -- app/src/main/res/layout/popup_layout.xml | 62 --- .../main/res/menu/activity_main_drawer.xml | 38 -- app/src/main/res/menu/main.xml | 8 - app/src/main/res/menu/menu_song_view.xml | 10 - app/src/main/res/menu/popup_menu.xml | 13 - .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 - .../mipmap-anydpi-v26/ic_launcher_round.xml | 5 - app/src/main/res/mipmap-hdpi/ic_launcher.png | Bin 2396 -> 0 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 3341 -> 0 bytes app/src/main/res/mipmap-mdpi/ic_launcher.png | Bin 1591 -> 0 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 2195 -> 0 bytes app/src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 3117 -> 0 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 4480 -> 0 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 4722 -> 0 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 6807 -> 0 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 6369 -> 0 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 9134 -> 0 bytes app/src/main/res/values-v21/styles.xml | 7 - app/src/main/res/values/colors.xml | 27 - app/src/main/res/values/dimens.xml | 10 - app/src/main/res/values/strings.xml | 206 -------- app/src/main/res/values/styles.xml | 49 -- app/src/main/res/xml/pref_data_sync.xml | 21 - app/src/main/res/xml/pref_general.xml | 33 -- app/src/main/res/xml/pref_headers.xml | 20 - app/src/main/res/xml/pref_notification.xml | 27 - .../java/com/example/mear/ExampleUnitTest.kt | 17 - build.gradle | 28 -- gradle.properties | 15 - gradle/wrapper/gradle-wrapper.jar | Bin 54329 -> 0 bytes gradle/wrapper/gradle-wrapper.properties | 6 - gradlew | 172 ------- gradlew.bat | 84 ---- local.properties | 8 - mear.iml | 19 - settings.gradle | 1 - 202 files changed, 5870 deletions(-) delete mode 100644 .idea/caches/build_file_checksums.ser delete mode 100644 .idea/codeStyles/Project.xml delete mode 100644 .idea/codeStyles/codeStyleConfig.xml delete mode 100644 .idea/dictionaries/phoenix.xml delete mode 100644 .idea/gradle.xml delete mode 100644 .idea/libraries/Gradle__android_arch_core_common_1_1_1_jar.xml delete mode 100644 .idea/libraries/Gradle__android_arch_core_runtime_1_1_1_aar.xml delete mode 100644 .idea/libraries/Gradle__android_arch_lifecycle_common_1_1_1_jar.xml delete mode 100644 .idea/libraries/Gradle__android_arch_lifecycle_livedata_1_1_1_aar.xml delete mode 100644 .idea/libraries/Gradle__android_arch_lifecycle_livedata_core_1_1_1_aar.xml delete mode 100644 .idea/libraries/Gradle__android_arch_lifecycle_runtime_1_1_1_aar.xml delete mode 100644 .idea/libraries/Gradle__android_arch_lifecycle_viewmodel_1_1_1_aar.xml delete mode 100644 .idea/libraries/Gradle__com_android_support_animated_vector_drawable_28_0_0_aar.xml delete mode 100644 .idea/libraries/Gradle__com_android_support_appcompat_v7_28_0_0_aar.xml delete mode 100644 .idea/libraries/Gradle__com_android_support_asynclayoutinflater_28_0_0_aar.xml delete mode 100644 .idea/libraries/Gradle__com_android_support_cardview_v7_28_0_0_aar.xml delete mode 100644 .idea/libraries/Gradle__com_android_support_collections_28_0_0_jar.xml delete mode 100644 .idea/libraries/Gradle__com_android_support_constraint_constraint_layout_1_1_3_aar.xml delete mode 100644 .idea/libraries/Gradle__com_android_support_constraint_constraint_layout_solver_1_1_3_jar.xml delete mode 100644 .idea/libraries/Gradle__com_android_support_coordinatorlayout_28_0_0_aar.xml delete mode 100644 .idea/libraries/Gradle__com_android_support_cursoradapter_28_0_0_aar.xml delete mode 100644 .idea/libraries/Gradle__com_android_support_customview_28_0_0_aar.xml delete mode 100644 .idea/libraries/Gradle__com_android_support_design_28_0_0_aar.xml delete mode 100644 .idea/libraries/Gradle__com_android_support_documentfile_28_0_0_aar.xml delete mode 100644 .idea/libraries/Gradle__com_android_support_drawerlayout_28_0_0_aar.xml delete mode 100644 .idea/libraries/Gradle__com_android_support_interpolator_28_0_0_aar.xml delete mode 100644 .idea/libraries/Gradle__com_android_support_loader_28_0_0_aar.xml delete mode 100644 .idea/libraries/Gradle__com_android_support_localbroadcastmanager_28_0_0_aar.xml delete mode 100644 .idea/libraries/Gradle__com_android_support_print_28_0_0_aar.xml delete mode 100644 .idea/libraries/Gradle__com_android_support_recyclerview_v7_28_0_0_aar.xml delete mode 100644 .idea/libraries/Gradle__com_android_support_slidingpanelayout_28_0_0_aar.xml delete mode 100644 .idea/libraries/Gradle__com_android_support_support_annotations_28_0_0_jar.xml delete mode 100644 .idea/libraries/Gradle__com_android_support_support_compat_28_0_0_aar.xml delete mode 100644 .idea/libraries/Gradle__com_android_support_support_core_ui_28_0_0_aar.xml delete mode 100644 .idea/libraries/Gradle__com_android_support_support_core_utils_28_0_0_aar.xml delete mode 100644 .idea/libraries/Gradle__com_android_support_support_fragment_28_0_0_aar.xml delete mode 100644 .idea/libraries/Gradle__com_android_support_support_media_compat_28_0_0_aar.xml delete mode 100644 .idea/libraries/Gradle__com_android_support_support_v4_28_0_0_aar.xml delete mode 100644 .idea/libraries/Gradle__com_android_support_support_vector_drawable_28_0_0_aar.xml delete mode 100644 .idea/libraries/Gradle__com_android_support_swiperefreshlayout_28_0_0_aar.xml delete mode 100644 .idea/libraries/Gradle__com_android_support_test_espresso_espresso_core_3_0_2_aar.xml delete mode 100644 .idea/libraries/Gradle__com_android_support_test_espresso_espresso_idling_resource_3_0_2_aar.xml delete mode 100644 .idea/libraries/Gradle__com_android_support_test_monitor_1_0_2_aar.xml delete mode 100644 .idea/libraries/Gradle__com_android_support_test_runner_1_0_2_aar.xml delete mode 100644 .idea/libraries/Gradle__com_android_support_transition_28_0_0_aar.xml delete mode 100644 .idea/libraries/Gradle__com_android_support_versionedparcelable_28_0_0_aar.xml delete mode 100644 .idea/libraries/Gradle__com_android_support_viewpager_28_0_0_aar.xml delete mode 100644 .idea/libraries/Gradle__com_ealva_ealvalog_0_3_0_jar.xml delete mode 100644 .idea/libraries/Gradle__com_ealva_ealvalog_android_0_3_0_aar.xml delete mode 100644 .idea/libraries/Gradle__com_ealva_ealvalog_core_0_3_0_jar.xml delete mode 100644 .idea/libraries/Gradle__com_ealva_ealvatag_0_4_2_jar.xml delete mode 100644 .idea/libraries/Gradle__com_google_code_findbugs_jsr305_2_0_1_jar.xml delete mode 100644 .idea/libraries/Gradle__com_google_guava_guava_20_0_jar.xml delete mode 100644 .idea/libraries/Gradle__com_squareup_javawriter_2_1_1_jar.xml delete mode 100644 .idea/libraries/Gradle__com_squareup_okio_okio_1_11_0_jar.xml delete mode 100644 .idea/libraries/Gradle__javax_inject_javax_inject_1_jar.xml delete mode 100644 .idea/libraries/Gradle__junit_junit_4_12_jar.xml delete mode 100644 .idea/libraries/Gradle__net_sf_kxml_kxml2_2_3_0_jar.xml delete mode 100644 .idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3_jar.xml delete mode 100644 .idea/libraries/Gradle__org_hamcrest_hamcrest_integration_1_3_jar.xml delete mode 100644 .idea/libraries/Gradle__org_hamcrest_hamcrest_library_1_3_jar.xml delete mode 100644 .idea/libraries/Gradle__org_jetbrains_anko_anko_0_10_8_aar.xml delete mode 100644 .idea/libraries/Gradle__org_jetbrains_anko_anko_appcompat_v7_0_10_8_aar.xml delete mode 100644 .idea/libraries/Gradle__org_jetbrains_anko_anko_appcompat_v7_commons_0_10_8_aar.xml delete mode 100644 .idea/libraries/Gradle__org_jetbrains_anko_anko_appcompat_v7_coroutines_0_10_8_aar.xml delete mode 100644 .idea/libraries/Gradle__org_jetbrains_anko_anko_commons_0_10_8_aar.xml delete mode 100644 .idea/libraries/Gradle__org_jetbrains_anko_anko_coroutines_0_10_8_aar.xml delete mode 100644 .idea/libraries/Gradle__org_jetbrains_anko_anko_sdk27_0_10_8_aar.xml delete mode 100644 .idea/libraries/Gradle__org_jetbrains_anko_anko_sdk27_coroutines_0_10_8_aar.xml delete mode 100644 .idea/libraries/Gradle__org_jetbrains_anko_anko_sqlite_0_10_8_aar.xml delete mode 100644 .idea/libraries/Gradle__org_jetbrains_anko_anko_support_v4_0_10_8_aar.xml delete mode 100644 .idea/libraries/Gradle__org_jetbrains_anko_anko_support_v4_commons_0_10_8_aar.xml delete mode 100644 .idea/libraries/Gradle__org_jetbrains_anko_appcompatV7_base_0_10_8_aar.xml delete mode 100644 .idea/libraries/Gradle__org_jetbrains_anko_commons_base_0_10_8_aar.xml delete mode 100644 .idea/libraries/Gradle__org_jetbrains_anko_platform_base_0_10_8_aar.xml delete mode 100644 .idea/libraries/Gradle__org_jetbrains_anko_sqlite_base_0_10_8_aar.xml delete mode 100644 .idea/libraries/Gradle__org_jetbrains_anko_supportV4_base_0_10_8_aar.xml delete mode 100644 .idea/libraries/Gradle__org_jetbrains_annotations_16_0_2_jar.xml delete mode 100644 .idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_1_3_20_jar.xml delete mode 100644 .idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_common_1_3_20_jar.xml delete mode 100644 .idea/libraries/Gradle__org_jetbrains_kotlin_kotlin_stdlib_jdk7_1_3_20_jar.xml delete mode 100644 .idea/libraries/Gradle__org_jetbrains_kotlinx_kotlinx_coroutines_android_1_0_0_jar.xml delete mode 100644 .idea/libraries/Gradle__org_jetbrains_kotlinx_kotlinx_coroutines_core_1_0_0_jar.xml delete mode 100644 .idea/libraries/Gradle__org_jetbrains_kotlinx_kotlinx_coroutines_core_common_1_0_0_jar.xml delete mode 100644 .idea/misc.xml delete mode 100644 .idea/modules.xml delete mode 100644 .idea/render.experimental.xml delete mode 100644 .idea/runConfigurations.xml delete mode 100644 .idea/vcs.xml delete mode 100644 app/app.iml delete mode 100644 app/build.gradle delete mode 100644 app/build/generated/source/buildConfig/debug/com/example/mear/BuildConfig.java delete mode 100644 app/proguard-rules.pro delete mode 100644 app/src/androidTest/java/com/example/mear/ExampleInstrumentedTest.kt delete mode 100644 app/src/main/AndroidManifest.xml delete mode 100644 app/src/main/java/com/example/mear/AppCompatPreferenceActivity.kt delete mode 100644 app/src/main/java/com/example/mear/activities/BaseServiceActivity.kt delete mode 100644 app/src/main/java/com/example/mear/activities/MainActivity.kt delete mode 100644 app/src/main/java/com/example/mear/activities/SettingsActivity.kt delete mode 100644 app/src/main/java/com/example/mear/activities/SongViewActivity.kt delete mode 100644 app/src/main/java/com/example/mear/adapters/RecyclerAdapter.kt delete mode 100644 app/src/main/java/com/example/mear/adapters/SettingsAdapter.kt delete mode 100644 app/src/main/java/com/example/mear/constants/ControlTypes.kt delete mode 100644 app/src/main/java/com/example/mear/constants/DirectoryIgnore.kt delete mode 100644 app/src/main/java/com/example/mear/constants/FileTypes.kt delete mode 100644 app/src/main/java/com/example/mear/constants/Filenames.kt delete mode 100644 app/src/main/java/com/example/mear/constants/Interval.kt delete mode 100644 app/src/main/java/com/example/mear/constants/SongSearch.kt delete mode 100644 app/src/main/java/com/example/mear/holders/SettingItemsHolder.kt delete mode 100644 app/src/main/java/com/example/mear/listeners/TrackElaspingChange.kt delete mode 100644 app/src/main/java/com/example/mear/management/DatabaseManager.kt delete mode 100644 app/src/main/java/com/example/mear/management/MusicFiles.kt delete mode 100644 app/src/main/java/com/example/mear/management/TrackManager.kt delete mode 100644 app/src/main/java/com/example/mear/models/PlayControls.kt delete mode 100644 app/src/main/java/com/example/mear/models/PlayCount.kt delete mode 100644 app/src/main/java/com/example/mear/models/SettingItems.kt delete mode 100644 app/src/main/java/com/example/mear/models/Settings.kt delete mode 100644 app/src/main/java/com/example/mear/models/Track.kt delete mode 100644 app/src/main/java/com/example/mear/models/TrackItems.kt delete mode 100644 app/src/main/java/com/example/mear/playback/PlayMusic.kt delete mode 100644 app/src/main/java/com/example/mear/playback/service/MusicService.kt delete mode 100644 app/src/main/java/com/example/mear/repositories/PlayCountRepository.kt delete mode 100644 app/src/main/java/com/example/mear/repositories/RepeatRepository.kt delete mode 100644 app/src/main/java/com/example/mear/repositories/SettingRepository.kt delete mode 100644 app/src/main/java/com/example/mear/repositories/ShuffleRepository.kt delete mode 100644 app/src/main/java/com/example/mear/repositories/TrackRepository.kt delete mode 100644 app/src/main/java/com/example/mear/ui/popups/AboutPopup.kt delete mode 100644 app/src/main/java/com/example/mear/util/ConvertByteArray.kt delete mode 100644 app/src/main/java/com/example/mear/util/ConvertTrackPosition.kt delete mode 100644 app/src/main/java/com/example/mear/util/ExtractCover.kt delete mode 100644 app/src/main/java/extensions.kt delete mode 100644 app/src/main/res/drawable-hdpi/ic_action_more_vert.png delete mode 100644 app/src/main/res/drawable-hdpi/ic_action_name.png delete mode 100644 app/src/main/res/drawable-mdpi/ic_action_more_vert.png delete mode 100644 app/src/main/res/drawable-mdpi/ic_action_name.png delete mode 100644 app/src/main/res/drawable-v24/ic_launcher_foreground.xml delete mode 100644 app/src/main/res/drawable-xhdpi/ic_action_more_vert.png delete mode 100644 app/src/main/res/drawable-xhdpi/ic_action_name.png delete mode 100644 app/src/main/res/drawable-xxhdpi/ic_action_more_vert.png delete mode 100644 app/src/main/res/drawable-xxhdpi/ic_action_name.png delete mode 100644 app/src/main/res/drawable-xxxhdpi/ic_action_more_vert.png delete mode 100644 app/src/main/res/drawable-xxxhdpi/ic_action_name.png delete mode 100644 app/src/main/res/drawable/ic_info_black_24dp.xml delete mode 100644 app/src/main/res/drawable/ic_launcher_background.xml delete mode 100644 app/src/main/res/drawable/ic_menu_camera.xml delete mode 100644 app/src/main/res/drawable/ic_menu_gallery.xml delete mode 100644 app/src/main/res/drawable/ic_menu_manage.xml delete mode 100644 app/src/main/res/drawable/ic_menu_send.xml delete mode 100644 app/src/main/res/drawable/ic_menu_share.xml delete mode 100644 app/src/main/res/drawable/ic_menu_slideshow.xml delete mode 100644 app/src/main/res/drawable/ic_notifications_black_24dp.xml delete mode 100644 app/src/main/res/drawable/ic_sync_black_24dp.xml delete mode 100644 app/src/main/res/drawable/side_nav_bar.xml delete mode 100644 app/src/main/res/layout/activity_main.xml delete mode 100644 app/src/main/res/layout/activity_settings.xml delete mode 100644 app/src/main/res/layout/activity_song_view.xml delete mode 100644 app/src/main/res/layout/content_main.xml delete mode 100644 app/src/main/res/layout/content_settings.xml delete mode 100644 app/src/main/res/layout/content_song_view.xml delete mode 100644 app/src/main/res/layout/fragment_play_controls.xml delete mode 100644 app/src/main/res/layout/fragment_settings_view.xml delete mode 100644 app/src/main/res/layout/fragment_song_view.xml delete mode 100644 app/src/main/res/layout/fragment_track_cover.xml delete mode 100644 app/src/main/res/layout/fragment_track_details.xml delete mode 100644 app/src/main/res/layout/fragment_track_elapsing.xml delete mode 100644 app/src/main/res/layout/fragment_track_flow.xml delete mode 100644 app/src/main/res/layout/popup_layout.xml delete mode 100644 app/src/main/res/menu/activity_main_drawer.xml delete mode 100644 app/src/main/res/menu/main.xml delete mode 100644 app/src/main/res/menu/menu_song_view.xml delete mode 100644 app/src/main/res/menu/popup_menu.xml delete mode 100644 app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml delete mode 100644 app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml delete mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher.png delete mode 100644 app/src/main/res/mipmap-hdpi/ic_launcher_round.png delete mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher.png delete mode 100644 app/src/main/res/mipmap-mdpi/ic_launcher_round.png delete mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher.png delete mode 100644 app/src/main/res/mipmap-xhdpi/ic_launcher_round.png delete mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher.png delete mode 100644 app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png delete mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher.png delete mode 100644 app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png delete mode 100644 app/src/main/res/values-v21/styles.xml delete mode 100644 app/src/main/res/values/colors.xml delete mode 100644 app/src/main/res/values/dimens.xml delete mode 100644 app/src/main/res/values/strings.xml delete mode 100644 app/src/main/res/values/styles.xml delete mode 100644 app/src/main/res/xml/pref_data_sync.xml delete mode 100644 app/src/main/res/xml/pref_general.xml delete mode 100644 app/src/main/res/xml/pref_headers.xml delete mode 100644 app/src/main/res/xml/pref_notification.xml delete mode 100644 app/src/test/java/com/example/mear/ExampleUnitTest.kt delete mode 100644 build.gradle delete mode 100644 gradle.properties delete mode 100644 gradle/wrapper/gradle-wrapper.jar delete mode 100644 gradle/wrapper/gradle-wrapper.properties delete mode 100755 gradlew delete mode 100644 gradlew.bat delete mode 100644 local.properties delete mode 100644 mear.iml delete mode 100644 settings.gradle diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser deleted file mode 100644 index 016aa3943078069e1a800b7b7211825e771aca4c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 536 zcmZ4UmVvdnh`~NNKUXg?FQq6yGexf?KR>5fFEb@IQ7^qHF(oHeub?PDD>b=9F91S2 zm1gFoxMk*~I%lLNXBU^|7Q2L-Ts|(GuF1r}nf0c10S!18}mhbLxkeX0=^7o4WADqX_B zlLYcFOjjX89RnLkVbQKSzN@XAyJrcBtjv(U_@IPAASXXLF$WY{1*t_PnW@F4aK%wi zqrI1?rzoxOINYu3+E7`-pst^hpPQ;*kddF7msz0?HC`VP;uvOJk?pzJ&#;N*WdrAo zH$R-}fEFee6zF4joz$#b8u6zV&ShNo$@S;4rH4uw1o0T%qb#!SxE= GRsaA&6uUV9 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 @@ - - - - - - - - - - - - - - - - - - - - - - - - \ 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 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ 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? = null - private var ctx: Context? = null - private var songCount: Int? = null - private var songIndex: Int? = null - private var moreSongs = true - var allTracksAdded = false - - fun initializeContext(context: Context) { - ctx = context - } - - fun configureTracks(ctx: Context): Int { - var id = 0 - try { - 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? - val trackLenghStr = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION) - trackLength = (trackLenghStr.toInt()/1000) - - if (trackTitle == null || trackArtist == null || trackAlbum == null || - trackLenghStr == null) { - } - - val track = Track(id, trackTitle, trackArtist, trackAlbum, trackLength, - ByteArray(0), musicPath) - dumpToDatabase(ctx, track) - if (mmr.embeddedPicture!=null) { - saveTrackCoverToDisk(ctx, id, mmr.embeddedPicture) - } - id++ - } - } - catch (ex: Exception) { - val exMsg = ex.message - } - TrackRepository(ctx).createSongCount(id) - return id.dec() - } - fun initializeLibrary() { - var initTrack = initialTracks() - addToDatabase(initTrack) - } - fun addSongs() { - var initTracks = initialTracks() - addToDatabase(initTracks) - - if (moreSongs) { - GlobalScope.launch { - val allSongCount = allSongPath!!.size -1 - for (i in songIndex!! .. (allSongCount)) { - val songPath = allSongPath!![i] - val track = configureTrack(songPath, i) - songCount = songCount!!.inc() - addToDatabase(track) - } - } - } - } - fun addnewSongs(trackPaths: List, resumeIndex: Int) { - var resumeIndex = resumeIndex - - try { - //launchB - for (tPath in trackPaths) { - val track = configureTrack(tPath, resumeIndex) - addToDatabase(track) - resumeIndex = resumeIndex.inc() - } - //} - } - catch (ex: Exception) { - val exMsg = ex.message - } - } - fun addTracks() { - var initTracks = initialTracks() - addToDatabase(initTracks) - - if (moreSongs) { - GlobalScope.launch { - val remainingTracks = remainingTracks() - addToDatabase(remainingTracks) - allTracksAdded = true - } - } - } - fun addTracksKx() { - var initTracks = initialTracks() - addToDatabase(initTracks) - - if (moreSongs) { - GlobalScope.launch { - addRemainingTracks() - } - } - } - fun addRemainingTracks() = runBlocking { - val remainder = allSongPath!!.size - songCount!! - - if (remainder > 10) { - val rangeAmount = remainder / 10 - val rg = addRanges(rangeAmount) - - val remainingT = remainingTracks(rg) - addToDatabase(remainingT) - } - } - - private fun addRanges(rangeAmount: Int): MutableList { - var ranges = mutableListOf() - try { - var rangeCounter = 0 - val songAmount = allSongPath!!.size - while (songIndex!! < songAmount) { - val startIndex = songIndex - var endIndex = songIndex!! + rangeAmount - if ((songIndex!! + rangeAmount) > songAmount ) { - endIndex = (songAmount - songIndex!!) + songIndex!! - } - - val range = AddMusicRange(startIndex!!, endIndex) - ranges.add(range) - - songIndex = endIndex + 1 - } - } - catch (ex: Exception) { - val exMsg = ex.message - } - - return ranges - } - private fun initialTracks(): MutableList { - var tracks = mutableListOf() - - try { - var initSongSearch = SongSearch.INITIAL_SEARCH_AMOUNT -1 - - if (allSongPath!!!!.size < SongSearch.INITIAL_SEARCH_AMOUNT) { - initSongSearch = allSongPath!!.size - moreSongs = false - } - - for (i in 0.. initSongSearch) { - var songPath = allSongPath!![i] - val track = configureTrack(songPath, i) - tracks.add(track) - } - - songCount = tracks.size - songIndex = songCount!! - } - catch (ex: Exception) { - val exMsg = ex.message - } - - return tracks - } - private fun remainingTracks(): MutableList { - val tracks = mutableListOf() - try { - for (i in songIndex!! .. (allSongPath!!.size - 1)) { - val songPath = allSongPath!![i] - val track = configureTrack(songPath, i) - if (track.id != Int.MAX_VALUE) { - tracks.add(track) - } - } - - songCount = songCount!!.plus(tracks.size) - } - catch (ex: Exception) { - val exMsg = ex.message - } - - return tracks - } - private fun remainingTracks(rangeobjects: AddMusicRange): MutableList { - val tracks = mutableListOf() - try { - val startIndex = rangeobjects.startIndex - var endIndex = rangeobjects.endIndex - if (endIndex == allSongPath!!.size) { - endIndex-- - } - - for (songPathIndex in startIndex.. endIndex) { - val songPath = allSongPath!![songPathIndex] - val track = configureTrack(songPath, songPathIndex) - if (track.id != Int.MAX_VALUE) { - tracks.add(track) - } - } - - songCount = songCount!!.plus(tracks.size) - } - catch (ex: Exception) { - val exMsg = ex.message - } - - return tracks - } - suspend private fun remainingTracks(obj: MutableList): MutableList { - val tracks = mutableListOf() - var rangeRecords = mutableListOf() - try { - for (rgObj in obj) { - coroutineScope { - launch { - val remainingTracks = remainingTracks(rgObj) - tracks.addAll(remainingTracks) - rangeRecords.add(true) - } - } - } - runBlocking { - while (rangeRecords.size != obj.size) { - delay(10) - } - } - - } - catch (ex: java.lang.Exception) { - val exMsg = ex.message - } - - return tracks - } - - private fun configureTrack(songPath: String, id: Int): Track { - try { - val metaData = MediaMetadataRetriever() - val fp = FileInputStream(songPath) - metaData.setDataSource(fp.fd) - - val title = metaData.extractMetadata(MediaMetadataRetriever.METADATA_KEY_TITLE) - val artist = metaData.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ARTIST) - val album = metaData.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUM) - val duration = (metaData.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION).toInt()) / 1000 - - fp.close() - metaData.release() - - return Track(id, title, artist, album, duration, ByteArray(0), songPath) - } - catch (ex: Exception) { - val exMsg = ex.message - } - - return Track() - } - - private fun addToDatabase(tracks: List) { - TrackRepository(ctx!!).insertTracks(tracks) - PlayCountRepository(ctx!!).insertPlayCounts(tracks) - TrackRepository(ctx!!).createSongCount(songCount!!) - } - private fun addToDatabase(track: Track) { - try { - TrackRepository(ctx!!).insertTrack(track) - PlayCountRepository(ctx!!).insertPlayCount(track) - //TrackRepository(ctx!!).createSongCount(songCount!!) - } - catch (ex: Exception) { - val exMsg = ex.message - } - } - private fun addToDatabase(ctx: Context, tracks: List) { - TrackRepository(ctx).insertTracks(tracks) - PlayCountRepository(ctx).insertPlayCounts(tracks) - } - private fun dumpToDatabase(ctx: Context, track: Track) { - TrackRepository(ctx).insertTrack(track) - PlayCountRepository(ctx).insertPlayCount(track) - } - private fun saveTrackCoverToDisk(context: Context, id: Int, trackCover: ByteArray) { - val filename = "${Filenames.TRACK_COVERS}$id.bmp" - val fileContents = trackCover - var img = ConvertByteArray(trackCover).convertToBmp() - - context.openFileOutput(filename, Context.MODE_PRIVATE).use { - it.write(fileContents) - } - } - - data class AddMusicRange(val startIndex: Int, val endIndex: Int) { - } -} \ No newline at end of file diff --git a/app/src/main/java/com/example/mear/models/PlayControls.kt b/app/src/main/java/com/example/mear/models/PlayControls.kt deleted file mode 100644 index ccca1d9..0000000 --- a/app/src/main/java/com/example/mear/models/PlayControls.kt +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.mear.models - -data class PlayControls(val shuffleOn: Boolean?, val repeatOn: Boolean?) { -} \ No newline at end of file diff --git a/app/src/main/java/com/example/mear/models/PlayCount.kt b/app/src/main/java/com/example/mear/models/PlayCount.kt deleted file mode 100644 index e6a600d..0000000 --- a/app/src/main/java/com/example/mear/models/PlayCount.kt +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.mear.models - -data class PlayCount(val id: Int, val playCount: Int, val trackId: Int) { -} \ No newline at end of file diff --git a/app/src/main/java/com/example/mear/models/SettingItems.kt b/app/src/main/java/com/example/mear/models/SettingItems.kt deleted file mode 100644 index abefb06..0000000 --- a/app/src/main/java/com/example/mear/models/SettingItems.kt +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.mear.models - -data class SettingItems(val id: Int, val settingTitle: String, val settingDescription: String) { -} \ No newline at end of file diff --git a/app/src/main/java/com/example/mear/models/Settings.kt b/app/src/main/java/com/example/mear/models/Settings.kt deleted file mode 100644 index eafc77d..0000000 --- a/app/src/main/java/com/example/mear/models/Settings.kt +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.mear.models - -data class Settings(val id: Int, val darkTheme: Boolean) { -} \ 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 deleted file mode 100644 index 089b433..0000000 --- a/app/src/main/java/com/example/mear/models/Track.kt +++ /dev/null @@ -1,6 +0,0 @@ -package com.example.mear.models - -data class Track (val id: Int = Int.MAX_VALUE, val title: String = "UNTITLED", val artist: String = "UNTITLED", - val album: String = "UNTITLED", val length: Int = Int.MAX_VALUE, - val TrackCover: ByteArray = ByteArray(0), val songPath: String = "UNTITLED") { -} \ No newline at end of file diff --git a/app/src/main/java/com/example/mear/models/TrackItems.kt b/app/src/main/java/com/example/mear/models/TrackItems.kt deleted file mode 100644 index 474126b..0000000 --- a/app/src/main/java/com/example/mear/models/TrackItems.kt +++ /dev/null @@ -1,6 +0,0 @@ -package com.example.mear.models - -data class TrackItems(val id: Int, val trackTitle: String, val artistTitle: String, val trackPath: String, - val trackCover: ByteArray) { - -} \ No newline at end of file diff --git a/app/src/main/java/com/example/mear/playback/PlayMusic.kt b/app/src/main/java/com/example/mear/playback/PlayMusic.kt deleted file mode 100644 index aa2b071..0000000 --- a/app/src/main/java/com/example/mear/playback/PlayMusic.kt +++ /dev/null @@ -1,4 +0,0 @@ -package com.example.mear.playback - -class PlayMusic { -} \ No newline at end of file diff --git a/app/src/main/java/com/example/mear/playback/service/MusicService.kt b/app/src/main/java/com/example/mear/playback/service/MusicService.kt deleted file mode 100644 index b993feb..0000000 --- a/app/src/main/java/com/example/mear/playback/service/MusicService.kt +++ /dev/null @@ -1,466 +0,0 @@ -package com.example.mear.playback.service - -import android.app.Service -import android.content.Intent -import android.media.MediaPlayer -import android.os.Binder -import android.os.Environment -import android.os.IBinder -import android.widget.Toast - -import java.lang.Exception -import kotlin.random.Random - -import com.example.mear.constants.ControlTypes -import com.example.mear.constants.Interval -import com.example.mear.management.MusicFiles -import com.example.mear.management.TrackManager -import com.example.mear.models.PlayControls -import com.example.mear.models.Track -import com.example.mear.repositories.RepeatRepository -import com.example.mear.repositories.ShuffleRepository -import com.example.mear.repositories.TrackRepository -import kotlinx.coroutines.GlobalScope -import kotlinx.coroutines.launch - - -class MusicService: Service() { - - companion object { - //fun curSongIndex(): Int = currentSongIndex - } - - private var trackPlayer: MediaPlayer? = null - private var trackMgr: TrackManager? = null - private var currentTrack = Track() - private var currentSongIndex: Int? = null - private var addingMusic: Boolean? = false - private var shuffleOn: Boolean? = null - private var repeatOn: Boolean? = null - private val mBinder = LocalBinder() - private val seconds = Interval.SONG_REWIND - - - inner class LocalBinder : Binder() { - internal val service: MusicService - get() = this@MusicService - } - - - private enum class PlayTypes { - PlayNextSong, PlaySong, PlayPreviousSong - } - - - override fun onCreate() { - initializeMediaPlayer() - } - - override fun onStartCommand(intent: Intent, flags: Int, startId: Int): Int { - return Service.START_STICKY - } - - override fun onDestroy() { - - val intent = Intent(this, mBinder.javaClass) - onUnbind(intent) - - Toast.makeText(this, "Music Service Stopped", Toast.LENGTH_SHORT).show() - } - - override fun onBind(intent: Intent): IBinder? { - return mBinder - } - - override fun onUnbind(intent: Intent?): Boolean { - return super.onUnbind(intent) - } - - fun playTrack(id: Int) { - try { - currentSongIndex = id - trackPlayer!!.reset() - currentTrack = TrackRepository(this).getTrack(id) - trackPlayer!!.setDataSource(currentTrack.songPath) - trackPlayer!!.prepare() - trackPlayer!!.start() - } - catch (ex: Exception) { - val exMsg = ex.message - } - } - - fun goToPosition(progress: Int) { - trackPlayer!!.seekTo(progress) - } - fun playSongTrack() { - try { - trackPlayer!!.start() - } - catch (ex: Exception ) { - val exMsg = ex.message - } - } - fun pauseSongTrack() { - try { - trackPlayer!!.pause() - } - catch (ex: Exception) { - val exMsg = ex.message - } - } - fun playPreviousTrack() { - try { - val duration = trackPlayer!!.currentPosition / 1000 - shuffleOn = retrieveShuffleMode() - trackPlayer!!.reset() - if (duration > seconds) { - currentTrack = TrackRepository(this).getTrack(currentSongIndex!!) - trackPlayer!!.setDataSource(currentTrack.songPath) - trackPlayer!!.prepare() - trackPlayer!!.start() - } - else { - val previousTrackNumber = fetchSongIndex(PlayTypes.PlayPreviousSong) - currentTrack = TrackRepository(this).getTrack(previousTrackNumber) - trackPlayer!!.setDataSource(currentTrack.songPath) - trackPlayer!!.prepare() - trackPlayer!!.start() - } - } - catch (ex: Exception) { - val exMsg = ex.message - } - } - fun playNextTrack() { - try { - trackPlayer!!.reset() - shuffleOn = retrieveShuffleMode() - var nextTrack = fetchSongIndex(PlayTypes.PlayNextSong) - currentTrack = TrackRepository(this).getTrack(nextTrack) - trackPlayer!!.setDataSource(currentTrack.songPath) - trackPlayer!!.prepare() - trackPlayer!!.start() - } - catch (ex: Exception) { - val exMsg = ex.message - } - } - fun playPreviousTrack(controls: PlayControls) { - try { - configureControl(controls) - val duration = trackPlayer!!.currentPosition / 1000 - if (duration > seconds) { - - - trackPlayer!!.reset() - trackPlayer!!.setDataSource(TrackRepository(this).getTrack(currentSongIndex!!).songPath) - trackPlayer!!.prepare() - trackPlayer!!.start() - } - else { - - - var previousTrack = fetchSongIndex(PlayTypes.PlayPreviousSong) - val track = TrackRepository(this).getTrack(previousTrack) - trackPlayer!!.reset() - trackPlayer!!.setDataSource(track.songPath) - trackPlayer!!.prepare() - trackPlayer!!.start() - } - } - catch (ex: Exception) { - val exMsg = ex.message - } - } - fun configureControl(controls: PlayControls) { - shuffleOn = controls.shuffleOn - repeatOn = controls.repeatOn - } - fun playNextTrack(controls: PlayControls) { - try { - configureControl(controls) - val nextTrack = fetchSongIndex(PlayTypes.PlayNextSong) - - val track = TrackRepository(this).getTrack(nextTrack) - trackPlayer!!.reset() - trackPlayer!!.setDataSource(track.songPath) - trackPlayer!!.prepare() - trackPlayer!!.start() - } - catch (ex: Exception) { - val exMsg = ex.message - } - } - - fun getCurrentTrack(): Track { - - return currentTrack - } - - - private fun fetchSongIndex(playType: PlayTypes): Int { - var songIndex: Int? = currentSongIndex - repeatOn = retrieveRepeatMode() - if (repeatOn!!) { - return songIndex!! - } - val songCount = retrieveSongCount() - - try { - when (playType) { - PlayTypes.PlayPreviousSong -> { - if (currentSongIndex!! != 0) { - if (!shuffleOn!!) { - currentSongIndex = currentSongIndex!!.dec() - songIndex = currentSongIndex!! - } - else { - currentSongIndex = Random.nextInt(0, songCount!!) - songIndex = currentSongIndex - } - } - } - PlayTypes.PlaySong -> { - if (shuffleOn!!) { - songIndex = Random.nextInt(0, songCount!!) - } - else { - songIndex = 0 - } - } - PlayTypes.PlayNextSong -> { - if (currentSongIndex!! != songCount!!) { - if (!shuffleOn!!) { - currentSongIndex = currentSongIndex!!.inc() - songIndex = currentSongIndex!! - } - else { - currentSongIndex = Random.nextInt(0, songCount!!) - songIndex = currentSongIndex!! - } - } - } - } - } - catch (ex: Exception) { - val exMsg = ex.message - println(exMsg) - } - - return songIndex!! - } - fun currentPositionOfTrack(): Int { - return trackPlayer!!.currentPosition - } - fun durationOfTrack(): Int { - return trackPlayer!!.duration - } - - fun isPlaying(): Boolean { - return trackPlayer!!.isPlaying - } - - - fun updateLibrary() { - checkForMusicChange() - } - - private fun initializeMediaPlayer() { - try { - if (trackPlayer == null) { - trackPlayer = MediaPlayer() - } - if (trackRepositoryEmpty()!!) { - populateTrackRepository() - } - - currentSongIndex = Random.nextInt(0, TrackRepository(this).getAll().count()) - currentTrack = TrackRepository(this).getTrack(currentSongIndex!!) - trackPlayer!!.setDataSource(currentTrack.songPath) - trackPlayer!!.prepareAsync() - trackPlayer!!.setOnCompletionListener { - playNextTrack() - } - } - catch (ex: Exception) { - val exMsg = ex.message - } - } - private fun populateTrackRepository() { - var mp3Paths = MusicFiles(Environment.getExternalStorageDirectory()) - mp3Paths.initialMp3Search() - val paths = mp3Paths.allSongs - - trackMgr = TrackManager(paths!!) - trackMgr!!.initializeContext(this) - trackMgr!!.initializeLibrary() - - initializeShuffleMode() - initializeRepeatMode() - } - private fun checkForMusicChange() { - - if (addingMusic!!) { - return - } - addingMusic = true - val ctx = this - val mp3Paths = MusicFiles(Environment.getExternalStorageDirectory()) - GlobalScope.launch { - mp3Paths.searchForMp3Songs() - val paths = mp3Paths.allSongs - val allTracks = TrackRepository(ctx).getAll() - val trackCount = allTracks.count() - val tracksToDelete = musicToDelete(allTracks!!, paths!!) - val trackPathsToAdd = musicToAdd(allTracks!!, paths!!) - - if (tracksToDelete!!.any()) { - TrackRepository(ctx).deleteTracks(tracksToDelete!!) - } - if (trackPathsToAdd!!.any()) { - val trkMgr = TrackManager(null) - trkMgr.initializeContext(ctx) - trkMgr.addnewSongs(trackPathsToAdd!!, trackCount) - addingMusic = false - } - } - - } - private fun initializeShuffleMode() { - try { - val shuffleMode = ShuffleRepository(this).getShuffleMode() - when (shuffleMode) { - ControlTypes.SHUFFLE_ON -> { - shuffleOn = true - } - ControlTypes.SHUFFLE_OFF -> { - shuffleOn = false - } - } - } - catch (ex: Exception) { - val exMsg = ex.message - } - } - private fun initializeRepeatMode() { - try { - val repeatMode = RepeatRepository(this).getRepeatMode() - when (repeatMode) { - ControlTypes.REPEAT_ON -> { - repeatOn = true - } - ControlTypes.REPEAT_OFF -> { - repeatOn = false - } - } - } - catch (ex: Exception) { - val exMsg = ex.message - } - } - - private fun musicToDelete(allTracks: List?, paths: MutableList): List? { - try { - var missingTracks = mutableListOf() - allTracks!!.iterator().forEach { - val songExists = paths.contains(it.songPath) - if (!songExists) { - missingTracks.add(it) - } - } - - return missingTracks - } - catch (ex: Exception) { - val exMsg = ex.message - } - - return null - } - private fun musicToAdd(allTracks: List?, paths: MutableList): List? { - try { - var newTracks = mutableListOf() - - val trackPaths = retrieveTrackPaths(allTracks) - paths.iterator().forEach { - val songExists = trackPaths!!.contains(it) - if (!songExists) { - newTracks.add(it) - } - } - - return newTracks - } - catch (ex: Exception) { - val exMsg = ex.message - } - - return null - } - private fun retrieveTrackPaths(allTracks: List?): List? { - try { - val trackPaths = mutableListOf() - for (i in allTracks!!) { - trackPaths.add(i.songPath) - } - return trackPaths - } - catch (ex: Exception) { - val exMsg = ex.message - } - - return null - } - - private fun retrieveShuffleMode(): Boolean? { - val shuffleMode = ShuffleRepository(this).getShuffleMode() - when (shuffleMode) { - ControlTypes.SHUFFLE_ON -> { - return true - } - ControlTypes.SHUFFLE_OFF -> { - return false - } - else -> { - return false - } - } - } - private fun retrieveRepeatMode(): Boolean? { - val repeatMode = RepeatRepository(this).getRepeatMode() - when (repeatMode) { - ControlTypes.REPEAT_ON -> { - return true - } - ControlTypes.REPEAT_OFF -> { - return false - } - else -> { - return false - } - } - } - - private fun trackRepositoryEmpty(): Boolean? { - val trackCount = retrieveSongCount() - - if (trackCount!! < 1) { - return true - } - - return false - } - - private fun retrieveSongCount(): Int? { - - try { - return TrackRepository(this).getAll().count() - } - catch (ex: Exception) { - val exMsg = ex.message - } - - return 0 - } -} diff --git a/app/src/main/java/com/example/mear/repositories/PlayCountRepository.kt b/app/src/main/java/com/example/mear/repositories/PlayCountRepository.kt deleted file mode 100644 index e668c43..0000000 --- a/app/src/main/java/com/example/mear/repositories/PlayCountRepository.kt +++ /dev/null @@ -1,73 +0,0 @@ -package com.example.mear.repositories - -import android.content.Context - -import org.jetbrains.anko.db.* - -import com.example.mear.database -import com.example.mear.models.PlayCount -import com.example.mear.models.Track - -class PlayCountRepository(val context: Context) { - fun getAll(): List = context.database.use { - val playCounts = mutableListOf() - - select("PlayCount" ) - .parseList(object : MapRowParser{ - override fun parseRow(columns: Map): PlayCount { - val id = columns.getValue("Id").toString().toInt() - val songPlayedAmount = columns.getValue("PlayCount").toString().toInt() - val trackId = columns.getValue("TrackId").toString().toInt() - - val playCount = PlayCount(id, songPlayedAmount, trackId) - playCounts.add(playCount) - - return playCount - } - }) - playCounts - } - fun getPlayCount(id: Int): PlayCount = context.database.use { - select("PlayCount").where("Id = $id") - .parseSingle(object: MapRowParser{ - override fun parseRow(columns: Map): PlayCount { - val id = columns.getValue("Id").toString().toInt() - val songPlayedAmount = columns.getValue("PlayCount").toString().toInt() - val trackId = columns.getValue("TrackId").toString().toInt() - - val playCount = PlayCount(id, songPlayedAmount, trackId) - - return playCount - } - }) - } - - fun insertPlayCounts(tracks: List) = context.database.use { - transaction { - var i = 0 - for (track in tracks) { - insert("PlayCount", "Id" to i++, - "PlayCount" to 0, "TrackId" to track.id) - } - } - } - - fun insertPlayCount(track: Track) = context.database.use { - insert("PlayCount", - "Id" to track.id, - "PlayCount" to 0, - "TrackId" to track.id) - } - fun updatePlayCount(playCount: PlayCount) = context.database.use { - update("PlayCount", - "PlayCount" to playCount.playCount + 1) - .where("Id = {playCountId}", "playCountId" to playCount.id).exec() - } - - fun delete(table: PlayCount?) = context.database.use { - delete("PlayCount", whereClause = "id = {$table.id}") - } - fun delete() = context.database.use { - delete("PlayCount") - } -} \ No newline at end of file diff --git a/app/src/main/java/com/example/mear/repositories/RepeatRepository.kt b/app/src/main/java/com/example/mear/repositories/RepeatRepository.kt deleted file mode 100644 index 56e386a..0000000 --- a/app/src/main/java/com/example/mear/repositories/RepeatRepository.kt +++ /dev/null @@ -1,38 +0,0 @@ -package com.example.mear.repositories - -import android.content.Context - -import org.jetbrains.anko.db.* - -import com.example.mear.constants.ControlTypes -import com.example.mear.database -import com.example.mear.models.PlayControls - -class RepeatRepository { - var context: Context? = null - - - constructor(context: Context) { - this.context = context - } - - - fun getRepeatMode(): String = context!!.database.use { - select("Repeat").limit(1) - .parseSingle(object: MapRowParser{ - override fun parseRow(columns: Map): String { - - return columns.getValue("Mode").toString() - } - }) - } - - fun updateRepeatMode(playControls: PlayControls?) = context!!.database.use { - var repeatMode = ControlTypes.REPEAT_OFF - if (playControls!!.repeatOn!!) { - repeatMode = ControlTypes.REPEAT_ON - } - update("Repeat", - "Mode" to repeatMode).exec() - } -} \ No newline at end of file diff --git a/app/src/main/java/com/example/mear/repositories/SettingRepository.kt b/app/src/main/java/com/example/mear/repositories/SettingRepository.kt deleted file mode 100644 index 81a952a..0000000 --- a/app/src/main/java/com/example/mear/repositories/SettingRepository.kt +++ /dev/null @@ -1,41 +0,0 @@ -package com.example.mear.repositories - -import android.content.Context - -import org.jetbrains.anko.db.* - -import com.example.mear.database -import com.example.mear.models.Settings - -class SettingRepository(val context: Context) { - fun getSettings(id: Int): Settings = context.database.use { - select("SettingsActivity").where("Id = $id") - .parseSingle(object: MapRowParser{ - override fun parseRow(columns: Map): Settings { - val id = columns.getValue("Id").toString().toInt() - val darkTheme = columns.getValue("DarkTheme").toString().toBoolean() - - val settings = Settings (id, darkTheme) - - return settings - } - }) - } - fun insertSettings(settings: Settings) = context.database.use { - insert("SettingsActivity", - "Id" to settings.id, - "DarkTheme" to false) - } - fun updateSettings(settings: Settings) = context.database.use { - update("SettingsActivity", - "DarkTheme" to settings.darkTheme) - .where("Id = {settingId}", "settingId" to settings.id).exec() - } - - fun delete(table: Settings?) = context.database.use { - delete("SettingsActivity", whereClause = "id = {$table.id}") - } - fun delete() = context.database.use { - delete("SettingsActivity") - } -} \ No newline at end of file diff --git a/app/src/main/java/com/example/mear/repositories/ShuffleRepository.kt b/app/src/main/java/com/example/mear/repositories/ShuffleRepository.kt deleted file mode 100644 index 3feb6dd..0000000 --- a/app/src/main/java/com/example/mear/repositories/ShuffleRepository.kt +++ /dev/null @@ -1,47 +0,0 @@ -package com.example.mear.repositories - -import android.content.Context - -import org.jetbrains.anko.db.* - -import com.example.mear.constants.ControlTypes -import com.example.mear.database -import com.example.mear.models.PlayControls - -class ShuffleRepository { - private var context: Context? = null - - - constructor(context: Context) { - this.context = context - } - - - fun getShuffleMode(): String = context!!.database.use { - select("Shuffle").limit(1) - .parseSingle(object : MapRowParser { - override fun parseRow(columns: Map): String { - - return columns.getValue("Mode").toString() - } - }) - } - - fun insertShuffleMode(shuffleControls: PlayControls) = context!!.database.use { - var shuffleMode: String? = ControlTypes.SHUFFLE_OFF - if (shuffleControls.shuffleOn!!) { - shuffleMode = ControlTypes.SHUFFLE_ON - } - insert("Shuffle", - "Mode" to shuffleMode) - } - - fun updateShuffleMode(shuffleControls: PlayControls) = context!!.database.use { - var shuffleMode: String? = ControlTypes.SHUFFLE_OFF - if (shuffleControls.shuffleOn!!) { - shuffleMode = ControlTypes.SHUFFLE_ON - } - update("Shuffle", - "Mode" to shuffleMode).exec() - } -} \ No newline at end of file diff --git a/app/src/main/java/com/example/mear/repositories/TrackRepository.kt b/app/src/main/java/com/example/mear/repositories/TrackRepository.kt deleted file mode 100644 index 24d2d06..0000000 --- a/app/src/main/java/com/example/mear/repositories/TrackRepository.kt +++ /dev/null @@ -1,123 +0,0 @@ -package com.example.mear.repositories - -import android.content.Context - -import org.jetbrains.anko.db.* - -import com.example.mear.database -import com.example.mear.models.Track - -class TrackRepository { - private var context: Context? = null - - constructor(context: Context) - { - this.context = context - } - - fun getAll(): List = context!!.database.use { - val tracks = mutableListOf() - - select("Track" ) - .parseList(object : MapRowParser{ - override fun parseRow(columns: Map): Track { - val id = columns.getValue("Id") - val title = columns.getValue("Title") - val artist = columns.getValue("Artist").toString() - val album = columns.getValue("Album").toString() - val duration = columns.getValue("Duration").toString().toInt() - val songPath = columns.getValue("FilePath").toString() - - val track = Track(id.toString().toInt(), title.toString(),artist,album, - duration, ByteArray(0),songPath) - tracks.add(track) - - return track - } - }) - tracks - } - fun getTrack(id: Int): Track = context!!.database.use { - select("Track").where("Id = $id") - .parseSingle(object: MapRowParser{ - override fun parseRow(columns: Map): Track { - val id = columns.getValue("Id").toString().toInt() - val title = columns.getValue("Title").toString() - val artist = columns.getValue("Artist").toString() - var album = columns.getValue("Album").toString() - val duration = columns.getValue("Duration").toString().toInt() - var filePath = columns.getValue("FilePath").toString() - - val track = Track(id, title, artist, album, duration, - ByteArray(0), filePath) - - return track - } - }) - } - fun getSongCount(): Int = context!!.database.use { - select("TrackCount").limit(1) - .parseSingle(object : MapRowParser{ - override fun parseRow(columns: Map): Int { - - return columns.getValue("TotalSongs").toString().toInt() - } - }) - } - - fun insertTracks(tracks: List) = context!!.database.use { - transaction { - for (track in tracks) { - insert("Track", - "Id" to track.id, "Title" to track.title, "Album" to track.album, - "Artist" to track.artist, "Duration" to track.length, - "FilePath" to track.songPath) - } - } - } - - fun insertTrack(track: Track) = context!!.database.use { - insert("Track", - "Id" to track.id, - "Title" to track.title, - "Album" to track.album, - "Artist" to track.artist, - "Duration" to track.length, - "FilePath" to track.songPath) - } - fun createSongCount(songCount: Int) = context!!.database.use { - delete("TrackCount") - insert("TrackCount", - "Id" to 0, - "TotalSongs" to songCount) - } - fun delete() = context!!.database.use { - delete("Track") - } - fun deleteTracks(tracks: List) = context!!.database.use { - tracks.iterator().forEach { - transaction { - delete("Track", "id = {track_id}", "track_id" to it.id) - } - } - } - fun deleteTracksByPaths(trackPaths: List) = context!!.database.use { - trackPaths.iterator().forEach { - transaction { - delete("Track", "FilePath = {file_path}", "file_path" to it) - } - } - } - - fun getLibraryCount(): Int? { - context!!.database.use { - select("TrackCount").limit(1) - .parseList (object : MapRowParser { - override fun parseRow(columns: Map): Int { - return columns.getValue("TotalSongs").toString().toInt() - } - }) - } - return 0 - } -} \ No newline at end of file diff --git a/app/src/main/java/com/example/mear/ui/popups/AboutPopup.kt b/app/src/main/java/com/example/mear/ui/popups/AboutPopup.kt deleted file mode 100644 index fe27331..0000000 --- a/app/src/main/java/com/example/mear/ui/popups/AboutPopup.kt +++ /dev/null @@ -1,38 +0,0 @@ -package com.example.mear.ui.popups - -import android.animation.Animator -import android.content.Context -import android.view.View -import com.example.mear.R - -import com.xu.xpopupwindow.XPopupWindow - -class AboutPopup(ctx: Context): XPopupWindow(ctx) { - override fun exitAnim(view: View): Animator? { - return null - } - - override fun getLayoutId(): Int { - return R.layout.popup_layout - } - - override fun getLayoutParentNodeId(): Int { - return R.id.parent - } - - override fun initData() { - } - - override fun initViews() { - } - - override fun startAnim(view: View): Animator? { - return null - } - - override fun animStyle(): Int { - return -1 - } - -} - diff --git a/app/src/main/java/com/example/mear/util/ConvertByteArray.kt b/app/src/main/java/com/example/mear/util/ConvertByteArray.kt deleted file mode 100644 index e2c9831..0000000 --- a/app/src/main/java/com/example/mear/util/ConvertByteArray.kt +++ /dev/null @@ -1,19 +0,0 @@ -package com.example.mear.util - -import android.graphics.Bitmap -import android.graphics.BitmapFactory - -class ConvertByteArray(private val byteArray: ByteArray?) { - - fun convertToBmp(): Bitmap { - val songImage = BitmapFactory - .decodeByteArray(byteArray, 0, byteArray!!.size) - - return songImage - } - fun convertToBmptScales(width: Int, height: Int): Bitmap { - val b = BitmapFactory.decodeByteArray(byteArray, 0, byteArray!!.size) - - return Bitmap.createScaledBitmap(b, width, height, false) - } -} \ No newline at end of file diff --git a/app/src/main/java/com/example/mear/util/ConvertTrackPosition.kt b/app/src/main/java/com/example/mear/util/ConvertTrackPosition.kt deleted file mode 100644 index a1a7b83..0000000 --- a/app/src/main/java/com/example/mear/util/ConvertTrackPosition.kt +++ /dev/null @@ -1,11 +0,0 @@ -package com.example.mear.util - - -class ConvertTrackPosition(val percentage: Int) { - - fun newPosition(trackDuration: Int): Int { - val newPosition = (trackDuration * (percentage.toDouble() / 100)).toInt() - - return newPosition - } -} \ No newline at end of file diff --git a/app/src/main/java/com/example/mear/util/ExtractCover.kt b/app/src/main/java/com/example/mear/util/ExtractCover.kt deleted file mode 100644 index 88c0c1d..0000000 --- a/app/src/main/java/com/example/mear/util/ExtractCover.kt +++ /dev/null @@ -1,114 +0,0 @@ -package com.example.mear.util - -import android.media.MediaMetadataRetriever - -import java.io.FileInputStream - -import com.example.mear.models.Track -import java.lang.Exception - -class ExtractCover(private val trackPath: String?) { - - fun retrieveCover(): ByteArray { - var trackData = MediaMetadataRetriever() - trackData.setDataSource(trackPath) - - return trackData.embeddedPicture - } - fun retrieveCover(track: Track): ByteArray? { - - var coverArt: ByteArray? = null - - try { - if (!hasCover(track)) { - return null - } - - val songPath = track.songPath - - val metaData = MediaMetadataRetriever() - val fp = FileInputStream(songPath) - metaData.setDataSource(fp.fd) - - coverArt = metaData.embeddedPicture - - fp.close() - metaData.release() - } - catch (ex: Exception) { - val exMsg = ex.message - } - - return coverArt - } - fun retrieveCover(songPath: String): ByteArray? { - - var coverArt: ByteArray? = null - - try { - if (!hasCover(songPath)) { - return null - } - - - val metaData = MediaMetadataRetriever() - val fp = FileInputStream(songPath) - metaData.setDataSource(fp.fd) - - coverArt = metaData.embeddedPicture - - fp.close() - metaData.release() - } - catch (ex: Exception) { - val exMsg = ex.message - } - - return coverArt - } - - fun hasCover(): Boolean { - var trackData = MediaMetadataRetriever() - trackData.setDataSource(trackPath) - - if (trackData.embeddedPicture == null) { - return false - } - - return true - } - fun hasCover(track: Track): Boolean { - try { - val trackData = MediaMetadataRetriever() - val songPath = track.songPath - val songStream = FileInputStream(songPath) - trackData.setDataSource(songStream.fd) - - if (trackData.embeddedPicture == null) { - return false - } - } - catch (ex: Exception) { - val exMsg = ex.message - } - - return true - } - fun hasCover(songPath: String): Boolean { - try { - val trackData = MediaMetadataRetriever() - val songPath = songPath - val songStream = FileInputStream(songPath) - trackData.setDataSource(songStream.fd) - - if (trackData.embeddedPicture == null) { - return false - } - } - catch (ex: Exception) { - val exMsg = ex.message - } - - return true - } -} \ No newline at end of file diff --git a/app/src/main/java/extensions.kt b/app/src/main/java/extensions.kt deleted file mode 100644 index 7c66950..0000000 --- a/app/src/main/java/extensions.kt +++ /dev/null @@ -1,16 +0,0 @@ -package com.example.mear - -import android.content.Context -import android.support.annotation.LayoutRes -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup - -import com.example.mear.management.DatabaseManager - -val Context.database: DatabaseManager - get() = DatabaseManager.getInstance(applicationContext) - -fun ViewGroup.inflate(@LayoutRes layoutRes: Int, attachToRoot: Boolean = false): View { - return LayoutInflater.from(context).inflate(layoutRes, this, attachToRoot) -} \ No newline at end of file diff --git a/app/src/main/res/drawable-hdpi/ic_action_more_vert.png b/app/src/main/res/drawable-hdpi/ic_action_more_vert.png deleted file mode 100644 index 13bb36e7e0442125e81c6a95cf0681e5e6faf90c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 309 zcmV-50m}Y~P)7V!8OB+gsv5$=L6b>Y1A-sN!h=SyRG_G<8ATtQ85F5ko z#S>81fXqpAWqX6!i%2x1^s1e`jQ=Dpew}ZJ)k@KWp|k1|%Oc%$NbBWISCQLn>~)J!r@X%z8uY*7kkPjnXK z3J40z+_)kj%Wkqg!9-M$CutVDpriPM0E1aw9Bnce9bNhl;( diff --git a/app/src/main/res/drawable-mdpi/ic_action_name.png b/app/src/main/res/drawable-mdpi/ic_action_name.png deleted file mode 100644 index 44f72e2e480e44005a98321b3bd8f4fb8c069ab5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 81 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`G?JY5_^DsH_!$jA%i9a`|+|Lq$_ b5e5cxP6-A^iOX5BKv4!yS3j3^P6 - - - - - - - - - - diff --git a/app/src/main/res/drawable-xhdpi/ic_action_more_vert.png b/app/src/main/res/drawable-xhdpi/ic_action_more_vert.png deleted file mode 100644 index 5efd581470843090715eeb655203060f9232ca07..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 365 zcmV-z0h0cSP)zu;N$Vw^wud-G6GE{6k}W@d?AE)CC*~=CIkR{1CJ-% zyX^Uj=MhBiY$9|58T<`E*CVhGyl>egS`at`=)Mr?3kV#TS)dZgntuY|vH z(&s-j9BC3RX$F8@OIv29&2ewTlWW-QqE&^5IBQ#b92tlms!hHrl!=IutngO@W00000 LNkvXXu0mjfDl?I7 diff --git a/app/src/main/res/drawable-xhdpi/ic_action_name.png b/app/src/main/res/drawable-xhdpi/ic_action_name.png deleted file mode 100644 index 300cc2265405a187f24acff6b315ee441711283f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 88 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTCc~2L|kcwMx4>B?Wc})uc*XMaS cfS6#Q&!%F)z*v&MM-{~NboFyt=akR{0NSh(?*IS* diff --git a/app/src/main/res/drawable-xxhdpi/ic_action_more_vert.png b/app/src/main/res/drawable-xxhdpi/ic_action_more_vert.png deleted file mode 100644 index 41f1aa8d4cc2de673cff786f9a3178973dd4a958..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 661 zcmV;G0&4w|WG7~pXOb_Qv-_RRe9yi!v*$fi4AHCv3i#Lw0LY;b00F4o zB!Yra5DIEX00p(<#~g%${*Z#ovK&=8h1z?&vf_O^`4AJ7NtLst*i|ejh7}Kr1I2}4 zy~Haw{7y*$3C@hVysua`%Bgj~)aOgZo*>hFy{ZzkYWcJe zB~7GQ-BJM>Q^9YRxu*{8Qzyp%4Iop!R1`AA?gVGvM{2Qik|?MGw5j8X=On!&Ku58Q z_qkt6KvU}AslvPinU}++W|sMD#hL&;`4kj8CmEnhMZ74wo~Y)cY2~aawiUD0kbBhe zP;s70IlX=-RZtzCV42m;{95J5s!Lh9T+d2Dxj^af2Y?(;1wdT_grnH-v~UzH62?)q z!!ceoj^ZFjQV))zZGi~1J8%>ot1XVA0}zg)0}zg)ZNbwu9K`{Ea1;fGzn&e-J&vNU z&x51rODdy0{GcxRK^Y0>rz00&YDWMCwd2PeJxha diff --git a/app/src/main/res/drawable-xxxhdpi/ic_action_more_vert.png b/app/src/main/res/drawable-xxxhdpi/ic_action_more_vert.png deleted file mode 100644 index 553814cf432595e0f6bbae344b5d34a7eaf0ce5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 805 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGoEX7WqAsj$Z!;#X#z`%6J)5S5Q zBJSSw5*Dk>vPt{`3i~((8W;>23#+sk7?YSDeFK_~bF;G!}^;rH_k6AFe-}_*GWrMq#GXJ{FtF!DfmIhw8Vi zwvPC~HUG_?!(u91lpfq_n5WNCUv;aObB9My+}r zjD?5y$;8jsY77{UpSv-&Wvjx2z2>()TaAnuZ?AM*ZL>d%v2fo1iJU2$pFL+`Nx5~F zcYTz@4vW=HyB5Tpw*08};NGLX%r7tOnm>8YpVNK03z-gGV!nJK^*(3)*8I=|%`+k# zBG{8O7cp__9Me=i5*a8VeD2MS*R~5c&dZLkn(;LJufm`6Hx6)1mbz}4xBn$q zhHTxBKO6$lF7N>R!MQ>I#QAfwC-*6s@7m+=jrHlr(_Lxt0b=|9BurcUS#no&Li_~j z*qIK(23w}x5D#HXuhQN##Xmhvr>WNQXuvNir-uIMiyFHYEV8&Pog5!vwRw@Ck8}5< zFQ&(uXY@yJ)R?B!weXAik)%2EV=tbtP}`utLL)RidC!ExCgnHN8Q!-XEoX*Als~J2 zgO9_UeJ{BZq_lQa-w;=6kPF%*qR4c=`TX=RA$$>iVH4+<*wzF_pRnhUh^qU>x>Dss zP@HSsrN1rf7k;XC)MDodnE3wbQf?t{pqt|uE(dIEHjwyS?dZk%hCAp||IWys)ecTE zGai3$(ke8p4S39NaYbp#(eoF-XrB~oJYSc_(xIzFI6*<(`H%gvtxkd0bP0l+XkKuXI`< diff --git a/app/src/main/res/drawable-xxxhdpi/ic_action_name.png b/app/src/main/res/drawable-xxxhdpi/ic_action_name.png deleted file mode 100644 index ba218dc4c7fc87e26b8f6388ed6277eac98fcb2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 116 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGo)}AhoAr-gY9yDYG@(wNd>YvLI fzW~T21RAb0Oh{m0tZCVu4pQpr>gTe~DWM4f@$D7b diff --git a/app/src/main/res/drawable/ic_info_black_24dp.xml b/app/src/main/res/drawable/ic_info_black_24dp.xml deleted file mode 100644 index 8024b5b..0000000 --- a/app/src/main/res/drawable/ic_info_black_24dp.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml deleted file mode 100644 index a0ad202..0000000 --- a/app/src/main/res/drawable/ic_launcher_background.xml +++ /dev/null @@ -1,74 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/drawable/ic_menu_camera.xml b/app/src/main/res/drawable/ic_menu_camera.xml deleted file mode 100644 index 41688d5..0000000 --- a/app/src/main/res/drawable/ic_menu_camera.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - diff --git a/app/src/main/res/drawable/ic_menu_gallery.xml b/app/src/main/res/drawable/ic_menu_gallery.xml deleted file mode 100644 index ff8ce52..0000000 --- a/app/src/main/res/drawable/ic_menu_gallery.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_menu_manage.xml b/app/src/main/res/drawable/ic_menu_manage.xml deleted file mode 100644 index a0e423c..0000000 --- a/app/src/main/res/drawable/ic_menu_manage.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_menu_send.xml b/app/src/main/res/drawable/ic_menu_send.xml deleted file mode 100644 index 9745066..0000000 --- a/app/src/main/res/drawable/ic_menu_send.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_menu_share.xml b/app/src/main/res/drawable/ic_menu_share.xml deleted file mode 100644 index b3e39e2..0000000 --- a/app/src/main/res/drawable/ic_menu_share.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_menu_slideshow.xml b/app/src/main/res/drawable/ic_menu_slideshow.xml deleted file mode 100644 index ae51e49..0000000 --- a/app/src/main/res/drawable/ic_menu_slideshow.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_notifications_black_24dp.xml b/app/src/main/res/drawable/ic_notifications_black_24dp.xml deleted file mode 100644 index 14f20f9..0000000 --- a/app/src/main/res/drawable/ic_notifications_black_24dp.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/app/src/main/res/drawable/ic_sync_black_24dp.xml b/app/src/main/res/drawable/ic_sync_black_24dp.xml deleted file mode 100644 index 478aa98..0000000 --- a/app/src/main/res/drawable/ic_sync_black_24dp.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - \ No newline at end of file diff --git a/app/src/main/res/drawable/side_nav_bar.xml b/app/src/main/res/drawable/side_nav_bar.xml deleted file mode 100644 index a33798b..0000000 --- a/app/src/main/res/drawable/side_nav_bar.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml deleted file mode 100644 index a81d1b7..0000000 --- a/app/src/main/res/layout/activity_main.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml deleted file mode 100644 index 0446312..0000000 --- a/app/src/main/res/layout/activity_settings.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/activity_song_view.xml b/app/src/main/res/layout/activity_song_view.xml deleted file mode 100644 index 24e7fb0..0000000 --- a/app/src/main/res/layout/activity_song_view.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - \ 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 deleted file mode 100644 index 9d6ee24..0000000 --- a/app/src/main/res/layout/content_main.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/content_settings.xml b/app/src/main/res/layout/content_settings.xml deleted file mode 100644 index 1c5e3c7..0000000 --- a/app/src/main/res/layout/content_settings.xml +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/content_song_view.xml b/app/src/main/res/layout/content_song_view.xml deleted file mode 100644 index cf6d195..0000000 --- a/app/src/main/res/layout/content_song_view.xml +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - diff --git a/app/src/main/res/layout/fragment_play_controls.xml b/app/src/main/res/layout/fragment_play_controls.xml deleted file mode 100644 index ec416f3..0000000 --- a/app/src/main/res/layout/fragment_play_controls.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_settings_view.xml b/app/src/main/res/layout/fragment_settings_view.xml deleted file mode 100644 index 1dab4d4..0000000 --- a/app/src/main/res/layout/fragment_settings_view.xml +++ /dev/null @@ -1,76 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_song_view.xml b/app/src/main/res/layout/fragment_song_view.xml deleted file mode 100644 index 98f363b..0000000 --- a/app/src/main/res/layout/fragment_song_view.xml +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/app/src/main/res/layout/fragment_track_cover.xml b/app/src/main/res/layout/fragment_track_cover.xml deleted file mode 100644 index 5a85707..0000000 --- a/app/src/main/res/layout/fragment_track_cover.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_track_details.xml b/app/src/main/res/layout/fragment_track_details.xml deleted file mode 100644 index f79eccd..0000000 --- a/app/src/main/res/layout/fragment_track_details.xml +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_track_elapsing.xml b/app/src/main/res/layout/fragment_track_elapsing.xml deleted file mode 100644 index eba77e6..0000000 --- a/app/src/main/res/layout/fragment_track_elapsing.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_track_flow.xml b/app/src/main/res/layout/fragment_track_flow.xml deleted file mode 100644 index fe60951..0000000 --- a/app/src/main/res/layout/fragment_track_flow.xml +++ /dev/null @@ -1,36 +0,0 @@ - - - -