Able to do a demo stream, not via jni but with android's media player. Need to integrate sqlite to save token, username, password, and uri

This commit is contained in:
kdeng00
2019-10-05 22:14:11 -04:00
parent 33ac4c6fcf
commit fe15ea221f
8 changed files with 576 additions and 350 deletions
Binary file not shown.
+360 -335
View File
@@ -109,82 +109,7 @@
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="a8334612-2e51-4ba4-b605-06a26be592d3" name="Default Changelist" comment=""> <list default="true" id="a8334612-2e51-4ba4-b605-06a26be592d3" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/.idea/caches/build_file_checksums.ser" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/caches/build_file_checksums.ser" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/caches/build_file_checksums.ser" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/caches/build_file_checksums.ser" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/caches/gradle_models.ser" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/codeStyles/Project.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/codeStyles/Project.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__android_arch_core_runtime_1_1_1_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__android_arch_core_runtime_1_1_1_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__android_arch_lifecycle_livedata_1_1_1_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__android_arch_lifecycle_livedata_1_1_1_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__android_arch_lifecycle_livedata_core_1_1_1_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__android_arch_lifecycle_livedata_core_1_1_1_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__android_arch_lifecycle_runtime_1_1_1_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__android_arch_lifecycle_runtime_1_1_1_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__android_arch_lifecycle_viewmodel_1_1_1_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__android_arch_lifecycle_viewmodel_1_1_1_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_animated_vector_drawable_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_animated_vector_drawable_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_appcompat_v7_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_appcompat_v7_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_asynclayoutinflater_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_asynclayoutinflater_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_cardview_v7_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_cardview_v7_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_1_1_3_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_constraint_constraint_layout_1_1_3_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_coordinatorlayout_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_coordinatorlayout_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_cursoradapter_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_cursoradapter_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_customview_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_customview_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_design_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_design_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_documentfile_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_documentfile_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_drawerlayout_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_drawerlayout_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_exifinterface_27_1_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_exifinterface_27_1_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_interpolator_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_interpolator_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_loader_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_loader_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_localbroadcastmanager_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_localbroadcastmanager_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_print_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_print_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_recyclerview_v7_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_recyclerview_v7_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_slidingpanelayout_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_slidingpanelayout_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_support_compat_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_support_compat_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_support_core_ui_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_support_core_ui_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_support_core_utils_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_support_core_utils_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_support_fragment_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_support_fragment_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_support_media_compat_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_support_media_compat_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_support_v4_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_support_v4_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_support_vector_drawable_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_support_vector_drawable_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_swiperefreshlayout_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_swiperefreshlayout_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_core_3_0_2_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_core_3_0_2_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_idling_resource_3_0_2_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_test_espresso_espresso_idling_resource_3_0_2_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_test_monitor_1_0_2_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_test_monitor_1_0_2_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_test_runner_1_0_2_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_test_runner_1_0_2_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_transition_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_transition_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_versionedparcelable_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_versionedparcelable_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_viewpager_28_0_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_android_support_viewpager_28_0_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_ealva_ealvalog_android_0_5_0_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_ealva_ealvalog_android_0_5_0_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_github_XuDeveloper_XPopupWindow_1_0_1_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_github_XuDeveloper_XPopupWindow_1_0_1_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_squareup_javawriter_2_1_1_jar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_squareup_javawriter_2_1_1_jar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_3_10_0_jar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_squareup_okhttp3_okhttp_3_10_0_jar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__com_squareup_picasso_picasso_2_71828_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__com_squareup_picasso_picasso_2_71828_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__javax_inject_javax_inject_1_jar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__javax_inject_javax_inject_1_jar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__junit_junit_4_12_jar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__junit_junit_4_12_jar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__net_sf_kxml_kxml2_2_3_0_jar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__net_sf_kxml_kxml2_2_3_0_jar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3_jar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__org_hamcrest_hamcrest_core_1_3_jar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__org_hamcrest_hamcrest_integration_1_3_jar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__org_hamcrest_hamcrest_integration_1_3_jar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__org_hamcrest_hamcrest_library_1_3_jar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__org_hamcrest_hamcrest_library_1_3_jar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__org_jetbrains_anko_anko_0_10_8_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__org_jetbrains_anko_anko_0_10_8_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__org_jetbrains_anko_anko_appcompat_v7_0_10_8_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__org_jetbrains_anko_anko_appcompat_v7_0_10_8_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__org_jetbrains_anko_anko_appcompat_v7_commons_0_10_8_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__org_jetbrains_anko_anko_appcompat_v7_commons_0_10_8_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__org_jetbrains_anko_anko_appcompat_v7_coroutines_0_10_8_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__org_jetbrains_anko_anko_appcompat_v7_coroutines_0_10_8_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__org_jetbrains_anko_anko_commons_0_10_8_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__org_jetbrains_anko_anko_commons_0_10_8_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__org_jetbrains_anko_anko_coroutines_0_10_8_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__org_jetbrains_anko_anko_coroutines_0_10_8_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__org_jetbrains_anko_anko_sdk27_0_10_8_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__org_jetbrains_anko_anko_sdk27_0_10_8_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__org_jetbrains_anko_anko_sdk27_coroutines_0_10_8_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__org_jetbrains_anko_anko_sdk27_coroutines_0_10_8_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__org_jetbrains_anko_anko_sqlite_0_10_8_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__org_jetbrains_anko_anko_sqlite_0_10_8_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__org_jetbrains_anko_anko_support_v4_0_10_8_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__org_jetbrains_anko_anko_support_v4_0_10_8_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__org_jetbrains_anko_anko_support_v4_commons_0_10_8_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__org_jetbrains_anko_anko_support_v4_commons_0_10_8_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__org_jetbrains_anko_appcompatV7_base_0_10_8_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__org_jetbrains_anko_appcompatV7_base_0_10_8_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__org_jetbrains_anko_commons_base_0_10_8_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__org_jetbrains_anko_commons_base_0_10_8_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__org_jetbrains_anko_platform_base_0_10_8_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__org_jetbrains_anko_platform_base_0_10_8_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__org_jetbrains_anko_sqlite_base_0_10_8_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__org_jetbrains_anko_sqlite_base_0_10_8_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__org_jetbrains_anko_supportV4_base_0_10_8_aar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__org_jetbrains_anko_supportV4_base_0_10_8_aar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__org_jetbrains_annotations_16_0_2_jar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__org_jetbrains_annotations_16_0_2_jar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__org_jetbrains_kotlinx_kotlinx_coroutines_android_1_0_0_jar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__org_jetbrains_kotlinx_kotlinx_coroutines_android_1_0_0_jar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__org_jetbrains_kotlinx_kotlinx_coroutines_core_1_0_0_jar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__org_jetbrains_kotlinx_kotlinx_coroutines_core_1_0_0_jar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/libraries/Gradle__org_jetbrains_kotlinx_kotlinx_coroutines_core_common_1_0_0_jar.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/libraries/Gradle__org_jetbrains_kotlinx_kotlinx_coroutines_core_common_1_0_0_jar.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/vcs.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/vcs.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Mear.iml" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/app/app.iml" beforeDir="false" afterPath="$PROJECT_DIR$/app/app.iml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/build.gradle" beforeDir="false" afterPath="$PROJECT_DIR$/app/build.gradle" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/cpp/3rdparty/json" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/cpp/3rdparty/json" afterDir="false" /> <change beforePath="$PROJECT_DIR$/app/src/main/cpp/3rdparty/json" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/cpp/3rdparty/json" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/cpp/3rdparty/json/ChangeLog.md" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/cpp/3rdparty/json/ChangeLog.md" afterDir="false" /> <change beforePath="$PROJECT_DIR$/app/src/main/cpp/3rdparty/json/ChangeLog.md" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/cpp/3rdparty/json/ChangeLog.md" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/cpp/3rdparty/json/README.md" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/cpp/3rdparty/json/README.md" afterDir="false" /> <change beforePath="$PROJECT_DIR$/app/src/main/cpp/3rdparty/json/README.md" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/cpp/3rdparty/json/README.md" afterDir="false" />
@@ -192,11 +117,9 @@
<change beforePath="$PROJECT_DIR$/app/src/main/cpp/Demo.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/cpp/Demo.cpp" afterDir="false" /> <change beforePath="$PROJECT_DIR$/app/src/main/cpp/Demo.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/cpp/Demo.cpp" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/cpp/SongRepository.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/cpp/SongRepository.cpp" afterDir="false" /> <change beforePath="$PROJECT_DIR$/app/src/main/cpp/SongRepository.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/cpp/SongRepository.cpp" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/cpp/SongRepository.h" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/cpp/SongRepository.h" afterDir="false" /> <change beforePath="$PROJECT_DIR$/app/src/main/cpp/SongRepository.h" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/cpp/SongRepository.h" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/cpp/Tok.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/cpp/Tok.cpp" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/cpp/Tok.h" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/cpp/Tok.h" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/mear/activities/DemoStreamActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/mear/activities/DemoStreamActivity.kt" afterDir="false" /> <change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/mear/activities/DemoStreamActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/mear/activities/DemoStreamActivity.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/mear/playback/service/MusicService.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/mear/playback/service/MusicService.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/content_demo_stream.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/content_demo_stream.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/app/src/main/res/layout/content_demo_stream.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/content_demo_stream.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/build.gradle" beforeDir="false" afterPath="$PROJECT_DIR$/build.gradle" afterDir="false" />
</list> </list>
<ignored path="$PROJECT_DIR$/.gradle/" /> <ignored path="$PROJECT_DIR$/.gradle/" />
<ignored path="$PROJECT_DIR$/build/classes/" /> <ignored path="$PROJECT_DIR$/build/classes/" />
@@ -265,98 +188,137 @@
</system> </system>
</component> </component>
<component name="FileEditorManager"> <component name="FileEditorManager">
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> <splitter split-orientation="horizontal" split-proportion="0.5">
<file pinned="false" current-in-tab="true"> <split-first>
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/Demo.cpp"> <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<provider selected="true" editor-type-id="text-editor"> <file pinned="false" current-in-tab="true">
<state relative-caret-position="1408"> <entry file="file://$PROJECT_DIR$/app/src/main/cpp/Demo.cpp">
<caret line="110" column="21" selection-start-line="110" selection-start-column="21" selection-end-line="110" selection-end-column="21" /> <provider selected="true" editor-type-id="text-editor">
<folding> <state relative-caret-position="266">
<element signature="e#41#60#0" expanded="true" /> <caret line="18" selection-start-line="18" selection-end-line="18" />
</folding> </state>
</state> </provider>
</provider> </entry>
</entry> </file>
</file> <file pinned="false" current-in-tab="false">
<file pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/app/src/main/java/com/example/mear/activities/BaseServiceActivity.kt">
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/example/mear/models/Song.kt"> <provider selected="true" editor-type-id="text-editor">
<provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="5">
<state relative-caret-position="48"> <caret line="38" column="26" selection-start-line="38" selection-start-column="26" selection-end-line="38" selection-end-column="26" />
<caret line="3" column="61" selection-start-line="3" selection-start-column="61" selection-end-line="3" selection-end-column="61" /> </state>
</state> </provider>
</provider> </entry>
</entry> </file>
</file> <file pinned="false" current-in-tab="false">
<file pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/app/src/main/java/com/example/mear/activities/DemoStreamActivity.kt">
<entry file="file://$PROJECT_DIR$/app/build.gradle"> <provider selected="true" editor-type-id="text-editor">
<provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="597">
<state relative-caret-position="368"> <caret line="77" selection-start-line="77" selection-end-line="77" />
<caret line="23" column="26" selection-start-line="23" selection-start-column="26" selection-end-line="23" selection-end-column="26" /> </state>
</state> </provider>
</provider> </entry>
</entry> </file>
</file> <file pinned="false" current-in-tab="false">
<file pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/app/src/main/java/com/example/mear/activities/MainActivity.kt">
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/Tok.cpp"> <provider selected="true" editor-type-id="text-editor">
<provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="-433">
<state relative-caret-position="509"> <caret line="105" column="61" selection-start-line="105" selection-start-column="61" selection-end-line="105" selection-end-column="61" />
<caret line="64" column="28" selection-start-line="64" selection-start-column="28" selection-end-line="64" selection-end-column="28" /> <folding>
<folding> <element signature="e#37#1543#0" expanded="true" />
<element signature="e#41#57#0" expanded="true" /> <element signature="e#2611#2644#0" />
</folding> <element signature="e#2675#2981#0" />
</state> <element signature="e#3445#3714#0" />
</provider> <element signature="e#3758#4433#0" />
</entry> <element signature="e#4539#4882#0" />
</file> <element signature="e#4918#5283#0" />
<file pinned="false" current-in-tab="false"> <element signature="e#5317#6013#0" />
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/CMakeLists.txt"> <element signature="e#6045#6682#0" />
<provider selected="true" editor-type-id="text-editor"> <element signature="e#6716#7108#0" />
<state relative-caret-position="240"> <element signature="e#7145#7462#0" />
<caret line="15" column="53" selection-start-line="15" selection-start-column="53" selection-end-line="15" selection-end-column="53" /> <element signature="e#7503#7832#0" />
</state> <element signature="e#9292#9477#0" />
</provider> <element signature="e#9517#9713#0" />
</entry> <element signature="e#9761#10165#0" />
</file> <element signature="e#10202#10701#0" />
<file pinned="false" current-in-tab="false"> <element signature="e#10741#11801#0" />
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/SongRepository.cpp"> <element signature="e#11863#12377#0" />
<provider selected="true" editor-type-id="text-editor"> <element signature="e#12428#12844#0" />
<state relative-caret-position="240"> <element signature="e#12894#13172#0" />
<caret line="47" selection-start-line="47" selection-end-line="47" /> </folding>
<folding> </state>
<element signature="e#41#68#0" expanded="true" /> </provider>
</folding> </entry>
</state> </file>
</provider> <file pinned="false" current-in-tab="false">
</entry> <entry file="file://$PROJECT_DIR$/app/src/main/cpp/Tok.cpp">
</file> <provider selected="true" editor-type-id="text-editor">
<file pinned="false" current-in-tab="false"> <state relative-caret-position="1024">
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/example/mear/activities/DemoStreamActivity.kt"> <caret line="64" column="28" selection-start-line="64" selection-start-column="28" selection-end-line="64" selection-end-column="28" />
<provider selected="true" editor-type-id="text-editor"> <folding>
<state relative-caret-position="224"> <element signature="e#41#57#0" expanded="true" />
<caret line="62" selection-start-line="62" selection-end-line="62" /> </folding>
<folding> </state>
<element signature="e#37#372#0" expanded="true" /> </provider>
</folding> </entry>
</state> </file>
</provider> <file pinned="false" current-in-tab="false">
</entry> <entry file="file://$PROJECT_DIR$/app/src/main/java/com/example/mear/playback/service/MusicService.kt">
</file> <provider selected="true" editor-type-id="text-editor">
<file pinned="false" current-in-tab="false"> <state relative-caret-position="397">
<entry file="file://$PROJECT_DIR$/app/src/main/res/layout/content_demo_stream.xml"> <caret line="324" selection-start-line="324" selection-end-line="324" />
<provider editor-type-id="text-editor" /> </state>
<provider selected="true" editor-type-id="android-designer2" /> </provider>
</entry> </entry>
</file> </file>
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/SongRepository.h"> <entry file="file://$PROJECT_DIR$/app/src/main/java/com/example/mear/management/MusicFiles.kt">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="272"> <state relative-caret-position="32">
<caret line="20" column="14" selection-start-line="20" selection-start-column="14" selection-end-line="20" selection-end-column="14" /> <caret line="2" selection-start-line="2" selection-end-line="2" />
</state> <folding>
</provider> <element signature="e#37#223#0" expanded="true" />
</entry> </folding>
</file> </state>
</leaf> </provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/SongRepository.h">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="272">
<caret line="20" column="90" selection-start-line="20" selection-start-column="90" selection-end-line="20" selection-end-column="90" />
</state>
</provider>
</entry>
</file>
</leaf>
</split-first>
<split-second>
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/SongRepository.cpp">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="114">
<caret line="10" column="22" selection-start-line="10" selection-start-column="22" selection-end-line="10" selection-end-column="22" />
<folding>
<element signature="e#41#68#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/CMakeLists.txt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="160">
<caret line="11" selection-start-line="11" selection-end-line="11" />
</state>
</provider>
</entry>
</file>
</leaf>
</split-second>
</splitter>
</component> </component>
<component name="FileTemplateManagerImpl"> <component name="FileTemplateManagerImpl">
<option name="RECENT_TEMPLATES"> <option name="RECENT_TEMPLATES">
@@ -371,6 +333,11 @@
<option name="KEY_ALIAS" value="key0" /> <option name="KEY_ALIAS" value="key0" />
</component> </component>
<component name="Git.Settings"> <component name="Git.Settings">
<option name="PREVIOUS_COMMIT_AUTHORS">
<list>
<option value="kdeng00 &lt;kundeng94@gmail.com&gt;" />
</list>
</option>
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" /> <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
</component> </component>
<component name="IdeDocumentHistory"> <component name="IdeDocumentHistory">
@@ -378,16 +345,17 @@
<list> <list>
<option value="$PROJECT_DIR$/app/src/main/res/layout/popup_layout.xml" /> <option value="$PROJECT_DIR$/app/src/main/res/layout/popup_layout.xml" />
<option value="$PROJECT_DIR$/gradle/wrapper/gradle-wrapper.properties" /> <option value="$PROJECT_DIR$/gradle/wrapper/gradle-wrapper.properties" />
<option value="$PROJECT_DIR$/app/src/main/res/layout/content_demo_stream.xml" />
<option value="$PROJECT_DIR$/app/build.gradle" /> <option value="$PROJECT_DIR$/app/build.gradle" />
<option value="$PROJECT_DIR$/app/src/main/cpp/CMakeLists.txt" />
<option value="$PROJECT_DIR$/app/src/main/cpp/Tok.h" /> <option value="$PROJECT_DIR$/app/src/main/cpp/Tok.h" />
<option value="$PROJECT_DIR$/app/src/main/java/com/example/mear/Song.kt" /> <option value="$PROJECT_DIR$/app/src/main/java/com/example/mear/Song.kt" />
<option value="$PROJECT_DIR$/app/src/main/java/com/example/mear/models/Song.kt" /> <option value="$PROJECT_DIR$/app/src/main/java/com/example/mear/models/Song.kt" />
<option value="$PROJECT_DIR$/app/src/main/cpp/Tok.cpp" /> <option value="$PROJECT_DIR$/app/src/main/cpp/Tok.cpp" />
<option value="$PROJECT_DIR$/app/src/main/res/layout/content_demo_stream.xml" />
<option value="$PROJECT_DIR$/app/src/main/cpp/CMakeLists.txt" />
<option value="$PROJECT_DIR$/app/src/main/cpp/SongRepository.h" /> <option value="$PROJECT_DIR$/app/src/main/cpp/SongRepository.h" />
<option value="$PROJECT_DIR$/app/src/main/cpp/SongRepository.cpp" />
<option value="$PROJECT_DIR$/app/src/main/java/com/example/mear/activities/DemoStreamActivity.kt" /> <option value="$PROJECT_DIR$/app/src/main/java/com/example/mear/activities/DemoStreamActivity.kt" />
<option value="$PROJECT_DIR$/app/src/main/java/com/example/mear/playback/service/MusicService.kt" />
<option value="$PROJECT_DIR$/app/src/main/cpp/SongRepository.cpp" />
<option value="$PROJECT_DIR$/app/src/main/cpp/Demo.cpp" /> <option value="$PROJECT_DIR$/app/src/main/cpp/Demo.cpp" />
</list> </list>
</option> </option>
@@ -399,104 +367,29 @@
</component> </component>
<component name="ProjectLevelVcsManager" settingsEditedManually="true" /> <component name="ProjectLevelVcsManager" settingsEditedManually="true" />
<component name="ProjectView"> <component name="ProjectView">
<navigator currentView="ProjectPane" proportions="" version="1"> <navigator proportions="" version="1">
<foldersAlwaysOnTop value="true" /> <foldersAlwaysOnTop value="true" />
</navigator> </navigator>
<panes> <panes>
<pane id="ProjectPane"> <pane id="Scope" />
<pane id="ProjectPane" />
<pane id="PackagesPane" />
<pane id="AndroidView">
<subPane> <subPane>
<expand> <expand>
<path> <path>
<item name="mear" type="b2602c69:ProjectViewProjectNode" /> <item name="mear" type="1abcf292:AndroidViewProjectNode" />
<item name="mear" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" /> <item name="app" type="feadf853:AndroidModuleNode" />
</path> </path>
<path> <path>
<item name="mear" type="b2602c69:ProjectViewProjectNode" /> <item name="mear" type="1abcf292:AndroidViewProjectNode" />
<item name="mear" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" /> <item name="app" type="feadf853:AndroidModuleNode" />
<item name="app" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" /> <item name="cpp" type="9a30073f:AndroidJniFolderNode" />
</path>
<path>
<item name="mear" type="b2602c69:ProjectViewProjectNode" />
<item name="mear" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="app" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="mear" type="b2602c69:ProjectViewProjectNode" />
<item name="mear" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="app" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="mear" type="b2602c69:ProjectViewProjectNode" />
<item name="mear" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="app" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="cpp" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="mear" type="b2602c69:ProjectViewProjectNode" />
<item name="mear" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="app" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="mear" type="b2602c69:ProjectViewProjectNode" />
<item name="mear" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="app" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="mear" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="mear" type="b2602c69:ProjectViewProjectNode" />
<item name="mear" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="app" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="mear" type="462c0819:PsiDirectoryNode" />
<item name="activities" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="mear" type="b2602c69:ProjectViewProjectNode" />
<item name="mear" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="app" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" />
<item name="mear" type="462c0819:PsiDirectoryNode" />
<item name="models" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="mear" type="b2602c69:ProjectViewProjectNode" />
<item name="mear" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="app" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="res" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="mear" type="b2602c69:ProjectViewProjectNode" />
<item name="mear" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="app" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="res" type="462c0819:PsiDirectoryNode" />
<item name="layout" type="462c0819:PsiDirectoryNode" />
</path> </path>
</expand> </expand>
<select /> <select />
</subPane> </subPane>
</pane> </pane>
<pane id="AndroidView" />
<pane id="PackagesPane" />
<pane id="Scope" />
</panes> </panes>
</component> </component>
<component name="PropertiesComponent"> <component name="PropertiesComponent">
@@ -600,6 +493,14 @@
<option name="presentableId" value="Default" /> <option name="presentableId" value="Default" />
<updated>1564017463922</updated> <updated>1564017463922</updated>
</task> </task>
<task id="LOCAL-00001" summary="JNI is wanky. Finally about to return an object from C++ to Java/Kotlin">
<created>1570311037655</created>
<option name="number" value="00001" />
<option name="presentableId" value="LOCAL-00001" />
<option name="project" value="LOCAL" />
<updated>1570311037656</updated>
</task>
<option name="localTasksCounter" value="2" />
<servers /> <servers />
</component> </component>
<component name="ToolWindowManager"> <component name="ToolWindowManager">
@@ -607,12 +508,12 @@
<editor active="true" /> <editor active="true" />
<layout> <layout>
<window_info id="Captures" order="0" side_tool="true" weight="0.25" /> <window_info id="Captures" order="0" side_tool="true" weight="0.25" />
<window_info content_ui="combo" id="Project" order="1" weight="0.22198506" /> <window_info content_ui="combo" id="Project" order="1" visible="true" weight="0.22198506" />
<window_info id="Structure" order="2" side_tool="true" /> <window_info id="Structure" order="2" side_tool="true" />
<window_info id="Build Variants" order="3" side_tool="true" /> <window_info id="Build Variants" order="3" side_tool="true" />
<window_info id="Image Layers" order="4" /> <window_info id="Image Layers" order="4" />
<window_info id="Designer" order="5" /> <window_info id="Designer" order="5" />
<window_info id="Resources Explorer" order="6" /> <window_info id="Resources Explorer" order="6" weight="0.32977587" />
<window_info id="Capture Tool" order="7" /> <window_info id="Capture Tool" order="7" />
<window_info id="Favorites" order="8" side_tool="true" /> <window_info id="Favorites" order="8" side_tool="true" />
<window_info anchor="bottom" id="Version Control" order="0" /> <window_info anchor="bottom" id="Version Control" order="0" />
@@ -621,7 +522,7 @@
<window_info anchor="bottom" id="Android Profiler" order="3" /> <window_info anchor="bottom" id="Android Profiler" order="3" />
<window_info anchor="bottom" id="Terminal" order="4" weight="0.32917964" /> <window_info anchor="bottom" id="Terminal" order="4" weight="0.32917964" />
<window_info anchor="bottom" id="Event Log" order="5" sideWeight="0.5010672" side_tool="true" weight="0.32917964" /> <window_info anchor="bottom" id="Event Log" order="5" sideWeight="0.5010672" side_tool="true" weight="0.32917964" />
<window_info anchor="bottom" id="Build" order="6" sideWeight="0.49893278" weight="0.3281412" /> <window_info anchor="bottom" id="Build" order="6" sideWeight="0.49893278" weight="0.3271028" />
<window_info anchor="bottom" id="Run" order="7" /> <window_info anchor="bottom" id="Run" order="7" />
<window_info active="true" anchor="bottom" id="Debug" order="8" sideWeight="0.49893278" visible="true" weight="0.32917964" /> <window_info active="true" anchor="bottom" id="Debug" order="8" sideWeight="0.49893278" visible="true" weight="0.32917964" />
<window_info anchor="right" id="Device File Explorer" order="0" side_tool="true" /> <window_info anchor="right" id="Device File Explorer" order="0" side_tool="true" />
@@ -632,45 +533,36 @@
<window_info active="true" anchor="right" id="Preview" order="5" visible="true" weight="0.32977587" /> <window_info active="true" anchor="right" id="Preview" order="5" visible="true" weight="0.32977587" />
</layout> </layout>
</component> </component>
<component name="VcsManagerConfiguration">
<MESSAGE value="JNI is wanky. Finally about to return an object from C++ to Java/Kotlin" />
<option name="LAST_COMMIT_MESSAGE" value="JNI is wanky. Finally about to return an object from C++ to Java/Kotlin" />
</component>
<component name="XDebuggerManager"> <component name="XDebuggerManager">
<breakpoint-manager> <breakpoint-manager>
<breakpoints> <breakpoints>
<line-breakpoint enabled="true" type="kotlin-line"> <line-breakpoint enabled="true" type="kotlin-line">
<url>file://$PROJECT_DIR$/app/src/main/java/com/example/mear/activities/DemoStreamActivity.kt</url> <url>file://$PROJECT_DIR$/app/src/main/java/com/example/mear/playback/service/MusicService.kt</url>
<line>62</line> <line>130</line>
<properties /> <properties />
<option name="timeStamp" value="13" /> <option name="timeStamp" value="66" />
</line-breakpoint> </line-breakpoint>
<line-breakpoint enabled="true" type="kotlin-line"> <line-breakpoint enabled="true" type="kotlin-line">
<url>file://$PROJECT_DIR$/app/src/main/java/com/example/mear/activities/DemoStreamActivity.kt</url> <url>file://$PROJECT_DIR$/app/src/main/java/com/example/mear/activities/DemoStreamActivity.kt</url>
<line>60</line> <line>76</line>
<properties /> <properties />
<option name="timeStamp" value="15" /> <option name="timeStamp" value="67" />
</line-breakpoint> </line-breakpoint>
<line-breakpoint enabled="true" type="com.jetbrains.cidr.execution.debugger.OCBreakpointType"> <line-breakpoint enabled="true" type="kotlin-line">
<url>file://$PROJECT_DIR$/app/src/main/cpp/Demo.cpp</url> <url>file://$PROJECT_DIR$/app/src/main/java/com/example/mear/activities/DemoStreamActivity.kt</url>
<line>139</line> <line>68</line>
<option name="timeStamp" value="14" /> <properties />
<option name="timeStamp" value="82" />
</line-breakpoint> </line-breakpoint>
<line-breakpoint enabled="true" type="com.jetbrains.cidr.execution.debugger.OCBreakpointType"> <line-breakpoint enabled="true" type="kotlin-line">
<url>file://$PROJECT_DIR$/app/src/main/cpp/Demo.cpp</url> <url>file://$PROJECT_DIR$/app/src/main/java/com/example/mear/activities/DemoStreamActivity.kt</url>
<line>98</line> <line>71</line>
<option name="timeStamp" value="17" /> <properties />
</line-breakpoint> <option name="timeStamp" value="86" />
<line-breakpoint enabled="true" type="com.jetbrains.cidr.execution.debugger.OCBreakpointType">
<url>file://$PROJECT_DIR$/app/src/main/cpp/Demo.cpp</url>
<line>126</line>
<option name="timeStamp" value="22" />
</line-breakpoint>
<line-breakpoint enabled="true" type="com.jetbrains.cidr.execution.debugger.OCBreakpointType">
<url>file://$PROJECT_DIR$/app/src/main/cpp/SongRepository.cpp</url>
<line>47</line>
<option name="timeStamp" value="32" />
</line-breakpoint>
<line-breakpoint enabled="true" type="com.jetbrains.cidr.execution.debugger.OCBreakpointType">
<url>file://$PROJECT_DIR$/app/src/main/cpp/Demo.cpp</url>
<line>33</line>
<option name="timeStamp" value="33" />
</line-breakpoint> </line-breakpoint>
</breakpoints> </breakpoints>
</breakpoint-manager> </breakpoint-manager>
@@ -684,16 +576,6 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/3rdparty/json/single_include/nlohmann/json.hpp">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="160">
<caret line="4132" selection-start-line="4132" selection-end-line="4132" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/build.gradle">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/res/layout/activity_demo_stream.xml"> <entry file="file://$PROJECT_DIR$/app/src/main/res/layout/activity_demo_stream.xml">
<provider editor-type-id="text-editor" /> <provider editor-type-id="text-editor" />
<provider selected="true" editor-type-id="android-designer2" /> <provider selected="true" editor-type-id="android-designer2" />
@@ -736,18 +618,6 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/example/mear/models/Song.kt" />
<entry file="file://$PROJECT_DIR$/app/src/main/res/layout/content_demo_stream.xml">
<provider editor-type-id="text-editor" />
<provider selected="true" editor-type-id="android-designer2" />
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/CMakeLists.txt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="240">
<caret line="15" column="53" selection-start-line="15" selection-start-column="53" selection-end-line="15" selection-end-column="53" />
</state>
</provider>
</entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.anko/commons-base/0.10.8/a7b9886dd34c114aebcbcd7c492855425b2300e1/commons-base-0.10.8-sources.jar!/dialogs/Toasts.kt"> <entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.anko/commons-base/0.10.8/a7b9886dd34c114aebcbcd7c492855425b2300e1/commons-base-0.10.8-sources.jar!/dialogs/Toasts.kt">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="561"> <state relative-caret-position="561">
@@ -755,13 +625,6 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/app/build.gradle">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="368">
<caret line="23" column="26" selection-start-line="23" selection-start-column="26" selection-end-line="23" selection-end-column="26" />
</state>
</provider>
</entry>
<entry file="file://$USER_HOME$/Android/Sdk/ndk/20.0.5594570/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/jni.h"> <entry file="file://$USER_HOME$/Android/Sdk/ndk/20.0.5594570/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/jni.h">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="206"> <state relative-caret-position="206">
@@ -776,12 +639,110 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/Tok.cpp"> <entry file="file://$PROJECT_DIR$/app/src/main/java/com/example/mear/playback/PlayMusic.kt">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="509"> <state relative-caret-position="32">
<caret line="64" column="28" selection-start-line="64" selection-start-column="28" selection-end-line="64" selection-end-column="28" /> <caret line="2" column="6" selection-start-line="2" selection-start-column="6" selection-end-line="2" selection-end-column="6" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/example/mear/activities/SongViewActivity.kt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="96">
<caret line="26" column="6" selection-start-line="26" selection-start-column="6" selection-end-line="26" selection-end-column="6" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/res/layout/content_demo_stream.xml">
<provider editor-type-id="text-editor" />
<provider selected="true" editor-type-id="android-designer2" />
</entry>
<entry file="file://$USER_HOME$/Android/Sdk/sources/android-28/android/content/ContextWrapper.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="206">
<caret line="612" selection-start-line="612" selection-end-line="612" />
</state>
</provider>
</entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlinx/kotlinx-coroutines-core-common/1.0.0/fbe00e9f1a3138c7d138fe4e02724366e9e42f24/kotlinx-coroutines-core-common-1.0.0-sources.jar!/AbstractCoroutine.kt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="222">
<caret line="117" selection-start-line="117" selection-end-line="117" />
</state>
</provider>
</entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlinx/kotlinx-coroutines-core-common/1.0.0/fbe00e9f1a3138c7d138fe4e02724366e9e42f24/kotlinx-coroutines-core-common-1.0.0-sources.jar!/Dispatched.kt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="197">
<caret line="80" selection-start-line="80" selection-end-line="80" />
</state>
</provider>
</entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlinx/kotlinx-coroutines-core/1.0.0/25f38c379fd216bf66c638fc5f5b595650c1bd64/kotlinx-coroutines-core-1.0.0-sources.jar!/EventLoop.kt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="206">
<caret line="123" selection-start-line="123" selection-end-line="123" />
</state>
</provider>
</entry>
<entry file="jar://$USER_HOME$/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlinx/kotlinx-coroutines-core/1.0.0/25f38c379fd216bf66c638fc5f5b595650c1bd64/kotlinx-coroutines-core-1.0.0-sources.jar!/Builders.kt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="197">
<caret line="44" selection-start-line="44" selection-end-line="44" />
</state>
</provider>
</entry>
<entry file="file://$USER_HOME$/Android/Sdk/sources/android-28/android/app/LoadedApk.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="197">
<caret line="1478" selection-start-line="1478" selection-end-line="1478" />
</state>
</provider>
</entry>
<entry file="file://$USER_HOME$/Android/Sdk/sources/android-28/android/os/Looper.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="501">
<caret line="154" selection-start-line="154" selection-end-line="154" />
</state>
</provider>
</entry>
<entry file="file://$USER_HOME$/Android/Sdk/sources/android-28/android/os/Handler.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="197">
<caret line="92" selection-start-line="92" selection-end-line="92" />
</state>
</provider>
</entry>
<entry file="file://$USER_HOME$/Android/Sdk/sources/android-28/android/view/View.java">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="197">
<caret line="22431" selection-start-line="22431" selection-end-line="22431" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/3rdparty/json/single_include/nlohmann/json.hpp">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="352">
<caret line="4459" selection-start-line="4459" selection-end-line="4459" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/example/mear/management/TrackManager.kt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-2113">
<caret line="18" column="6" selection-start-line="18" selection-start-column="6" selection-end-line="18" selection-end-column="6" />
<folding> <folding>
<element signature="e#41#57#0" expanded="true" /> <element signature="e#37#545#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/example/mear/management/MusicFiles.kt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="32">
<caret line="2" selection-start-line="2" selection-end-line="2" />
<folding>
<element signature="e#37#223#0" expanded="true" />
</folding> </folding>
</state> </state>
</provider> </provider>
@@ -789,37 +750,101 @@
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/SongRepository.h"> <entry file="file://$PROJECT_DIR$/app/src/main/cpp/SongRepository.h">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="272"> <state relative-caret-position="272">
<caret line="20" column="14" selection-start-line="20" selection-start-column="14" selection-end-line="20" selection-end-column="14" /> <caret line="20" column="90" selection-start-line="20" selection-start-column="90" selection-end-line="20" selection-end-column="90" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/SongRepository.cpp"> <entry file="file://$PROJECT_DIR$/app/src/main/java/com/example/mear/playback/service/MusicService.kt">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="240"> <state relative-caret-position="397">
<caret line="47" selection-start-line="47" selection-end-line="47" /> <caret line="324" selection-start-line="324" selection-end-line="324" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/example/mear/activities/BaseServiceActivity.kt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="5">
<caret line="38" column="26" selection-start-line="38" selection-start-column="26" selection-end-line="38" selection-end-column="26" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/example/mear/activities/MainActivity.kt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-433">
<caret line="105" column="61" selection-start-line="105" selection-start-column="61" selection-end-line="105" selection-end-column="61" />
<folding> <folding>
<element signature="e#41#68#0" expanded="true" /> <element signature="e#37#1543#0" expanded="true" />
<element signature="e#2611#2644#0" />
<element signature="e#2675#2981#0" />
<element signature="e#3445#3714#0" />
<element signature="e#3758#4433#0" />
<element signature="e#4539#4882#0" />
<element signature="e#4918#5283#0" />
<element signature="e#5317#6013#0" />
<element signature="e#6045#6682#0" />
<element signature="e#6716#7108#0" />
<element signature="e#7145#7462#0" />
<element signature="e#7503#7832#0" />
<element signature="e#9292#9477#0" />
<element signature="e#9517#9713#0" />
<element signature="e#9761#10165#0" />
<element signature="e#10202#10701#0" />
<element signature="e#10741#11801#0" />
<element signature="e#11863#12377#0" />
<element signature="e#12428#12844#0" />
<element signature="e#12894#13172#0" />
</folding> </folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/example/mear/activities/DemoStreamActivity.kt"> <entry file="file://$PROJECT_DIR$/app/src/main/java/com/example/mear/activities/DemoStreamActivity.kt">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="224"> <state relative-caret-position="597">
<caret line="62" selection-start-line="62" selection-end-line="62" /> <caret line="77" selection-start-line="77" selection-end-line="77" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/SongRepository.cpp">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="114">
<caret line="10" column="22" selection-start-line="10" selection-start-column="22" selection-end-line="10" selection-end-column="22" />
<folding> <folding>
<element signature="e#37#372#0" expanded="true" /> <element signature="e#41#68#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/build.gradle">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/app/build.gradle">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="368">
<caret line="23" column="26" selection-start-line="23" selection-start-column="26" selection-end-line="23" selection-end-column="26" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/CMakeLists.txt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="160">
<caret line="11" selection-start-line="11" selection-end-line="11" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/Tok.cpp">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1024">
<caret line="64" column="28" selection-start-line="64" selection-start-column="28" selection-end-line="64" selection-end-column="28" />
<folding>
<element signature="e#41#57#0" expanded="true" />
</folding> </folding>
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/Demo.cpp"> <entry file="file://$PROJECT_DIR$/app/src/main/cpp/Demo.cpp">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1408"> <state relative-caret-position="266">
<caret line="110" column="21" selection-start-line="110" selection-start-column="21" selection-end-line="110" selection-end-column="21" /> <caret line="18" selection-start-line="18" selection-end-line="18" />
<folding>
<element signature="e#41#60#0" expanded="true" />
</folding>
</state> </state>
</provider> </provider>
</entry> </entry>
+14 -1
View File
@@ -59,17 +59,29 @@ set (CURL_LIBRARY
${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/android/${ANDROID_ABI} ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/android/${ANDROID_ABI}
) )
set (BASS_LIBRARY
${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/bass/${ANDROID_ABI}
)
set (CURL_INCLUDE_DIR set (CURL_INCLUDE_DIR
${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/android/include/curl ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/android/include/curl
${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/android/include ${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/android/include
) )
set (BASS_INCLUDE_DIR
${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/bass/include
)
add_library(boo STATIC IMPORTED) add_library(boo STATIC IMPORTED)
#add_library(bass SHARED IMPORTED)
set_target_properties(boo PROPERTIES IMPORTED_LOCATION set_target_properties(boo PROPERTIES IMPORTED_LOCATION
"${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/android/${ANDROID_ABI}/libcurl.a" "${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/android/${ANDROID_ABI}/libcurl.a"
) )
#set_target_properties(bass PROPERTIES IMPORTED_LOCATION
# "${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/bass/${ANDROID_ABI}/libbass.so"
# )
include_directories(${CURL_INCLUDE_DIR}) include_directories(${CURL_INCLUDE_DIR}) #${BASS_INCLUDE_DIR})
# Specifies libraries CMake should link to your target library. You # Specifies libraries CMake should link to your target library. You
# can link multiple libraries, such as libraries you define in this # can link multiple libraries, such as libraries you define in this
@@ -79,6 +91,7 @@ target_link_libraries(native-lib PRIVATE
nlohmann_json::nlohmann_json nlohmann_json::nlohmann_json
boo boo
#bass
${log-lib} ${log-lib}
z z
) )
+41 -9
View File
@@ -3,6 +3,7 @@
// //
#include <iostream> #include <iostream>
#include <filesystem>
#include <cstring> #include <cstring>
#include <jni.h> #include <jni.h>
#include <string> #include <string>
@@ -15,7 +16,7 @@
#include <android/sharedmem.h> #include <android/sharedmem.h>
#include <sys/mman.h> #include <sys/mman.h>
#include "nlohmann/json.hpp" #include <nlohmann/json.hpp>
#include <curl/curl.h> #include <curl/curl.h>
#include "model/Song.h" #include "model/Song.h"
@@ -24,16 +25,16 @@
#include "Tok.h" #include "Tok.h"
model::Song retrieveSong(const std::string&); model::Song retrieveSong(const std::string&, const std::string&);
std::string fetchToken(const std::string&, const std::string&, const std::string&); std::string fetchToken(const std::string&, const std::string&, const std::string&);
model::Song retrieveSong(const std::string& token) model::Song retrieveSong(const std::string& token, const std::string& baseUri)
{ {
repository::SongRepository songRepo; repository::SongRepository songRepo;
model::Song song; model::Song song;
song.id = 2; song.id = 1;
song.title = "Smooth"; song.title = "Smooth";
song.album = "Amaze"; song.album = "Amaze";
song.artist = "The Herb"; song.artist = "The Herb";
@@ -41,7 +42,7 @@ model::Song retrieveSong(const std::string& token)
song.duration = 420; song.duration = 420;
song.year = 420; song.year = 420;
song = songRepo.retrieveSong(token, song.id); song = songRepo.retrieveSong(token, baseUri, song);
return song; return song;
} }
@@ -60,6 +61,22 @@ std::string fetchToken(const std::string& username, const std::string& password,
} }
void iterateDirectory(const std::string& path)
{
/**
auto somePath = std::filesystem::path(path);
for (auto dir: std::filesystem::directory_iterator(somePath)) {
auto foundPath = dir;
if (foundPath.is_directory()) {
auto dirPath = foundPath.path();
} else {
auto filePath = foundPath.path();
}
}
*/
}
extern "C" extern "C"
JNIEXPORT jstring JNIEXPORT jstring
JNICALL JNICALL
@@ -86,13 +103,13 @@ JNICALL
Java_com_example_mear_activities_DemoStreamActivity_retrieveSong( Java_com_example_mear_activities_DemoStreamActivity_retrieveSong(
JNIEnv *env, JNIEnv *env,
jobject thisObj, jobject thisObj,
jstring token jstring token,
jstring apiUri
) )
{ {
const std::string tok = env->GetStringUTFChars(token, NULL); const std::string tok = env->GetStringUTFChars(token, NULL);
const std::string baseUri = env->GetStringUTFChars(apiUri, NULL);
auto song = retrieveSong(tok); auto song = retrieveSong(tok, baseUri);
std::string bank = "SBI Bank";
jclass songClass = env->FindClass( "com/example/mear/models/Song"); jclass songClass = env->FindClass( "com/example/mear/models/Song");
jmethodID jconstructor = env->GetMethodID( songClass, "<init>", "()V" ); jmethodID jconstructor = env->GetMethodID( songClass, "<init>", "()V" );
@@ -124,3 +141,18 @@ Java_com_example_mear_activities_DemoStreamActivity_retrieveSong(
return songObj; return songObj;
} }
extern "C"
JNIEXPORT void
JNICALL
Java_com_example_mear_activities_DemoStreamActivity_pathIteratorDemo(
JNIEnv *env,
jobject thisObj,
jstring path
) {
const std::string pathStr = env->GetStringUTFChars(path, NULL);
iterateDirectory(pathStr);
}
+95 -1
View File
@@ -19,7 +19,7 @@ namespace repository {
model::Song SongRepository::retrieveSong(const std::string& token, const int id) { model::Song SongRepository::retrieveSong(const std::string& token, const int id) {
std::string uri; std::string uri("");
uri.append(std::to_string(id)); uri.append(std::to_string(id));
model::Song song; model::Song song;
@@ -63,6 +63,100 @@ namespace repository {
return song; return song;
} }
model::Song SongRepository::retrieveSong(const std::string& token, const std::string& baseUri,
const int id) {
std::string uri(baseUri);
uri.append("/api/v1/song/");
uri.append(std::to_string(id));
model::Song song;
CURL *curl;
CURLcode res;
struct curl_slist *chunk = NULL;
curl = curl_easy_init();
if (!curl) {
return song;
}
auto resp = std::make_unique<char[]>(10000);
std::string authInfo("Authorization: Bearer ");
authInfo.append(token);
chunk = curl_slist_append(chunk, authInfo.c_str());
curl_easy_setopt(curl, CURLOPT_URL, uri.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, chunk);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, respBodyRetriever);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, resp.get());
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
if (res == CURLE_OK) {
auto s = nlohmann::json::parse(resp.get());
song.id = s["id"].get<int>();
song.title = s["title"].get<std::string>();
song.album = s["album"].get<std::string>();
song.artist = s["artist"].get<std::string>();
song.genre = s["genre"].get<std::string>();
song.duration = s["duration"].get<int>();
song.year = s["year"].get<int>();
return song;
}
return song;
}
model::Song SongRepository::retrieveSong(const std::string& token, const std::string& baseUri,
const model::Song& sng) {
std::string uri(baseUri);
uri.append("/api/v1/song/");
uri.append(std::to_string(sng.id));
model::Song song;
CURL *curl;
CURLcode res;
struct curl_slist *chunk = NULL;
curl = curl_easy_init();
if (!curl) {
return sng;
}
auto resp = std::make_unique<char[]>(10000);
std::string authInfo("Authorization: Bearer ");
authInfo.append(token);
chunk = curl_slist_append(chunk, authInfo.c_str());
curl_easy_setopt(curl, CURLOPT_URL, uri.c_str());
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, chunk);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, respBodyRetriever);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, resp.get());
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
if (res == CURLE_OK) {
auto s = nlohmann::json::parse(resp.get());
song.id = s["id"].get<int>();
song.title = s["title"].get<std::string>();
song.album = s["album"].get<std::string>();
song.artist = s["artist"].get<std::string>();
song.genre = s["genre"].get<std::string>();
song.duration = s["duration"].get<int>();
song.year = s["year"].get<int>();
return song;
}
return sng;
}
size_t SongRepository::respBodyRetriever(void* ptr, size_t size, size_t nmemb, char *e) size_t SongRepository::respBodyRetriever(void* ptr, size_t size, size_t nmemb, char *e)
{ {
+2
View File
@@ -17,6 +17,8 @@ namespace repository {
std::vector<model::Song> fetchSongs(const std::string&, const std::string&); std::vector<model::Song> fetchSongs(const std::string&, const std::string&);
model::Song retrieveSong(const std::string&, const int); model::Song retrieveSong(const std::string&, const int);
model::Song retrieveSong(const std::string&, const std::string&, const int);
model::Song retrieveSong(const std::string&, const std::string&, const model::Song&);
private: private:
static size_t respBodyRetriever(void*, size_t, size_t, char*); static size_t respBodyRetriever(void*, size_t, size_t, char*);
}; };
@@ -1,6 +1,7 @@
package com.example.mear.activities package com.example.mear.activities
import android.os.Bundle import android.os.Bundle
import android.os.Environment
import android.support.design.widget.Snackbar import android.support.design.widget.Snackbar
import android.support.v7.app.AppCompatActivity import android.support.v7.app.AppCompatActivity
import com.example.mear.R import com.example.mear.R
@@ -11,7 +12,7 @@ import org.jetbrains.anko.toast
import com.example.mear.models.Song import com.example.mear.models.Song
class DemoStreamActivity : AppCompatActivity() { class DemoStreamActivity : BaseServiceActivity() {
companion object { companion object {
init { init {
@@ -24,7 +25,9 @@ class DemoStreamActivity : AppCompatActivity() {
private external fun logUser(usr: String, pass: String, api: String): String private external fun logUser(usr: String, pass: String, api: String): String
private external fun retrieveSong(tok: String): Song private external fun retrieveSong(tok: String, api: String): Song
//private external fun testSongStream(tok: String, id: Int)
private external fun pathIteratorDemo(path: String)
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
@@ -32,6 +35,8 @@ class DemoStreamActivity : AppCompatActivity() {
setContentView(R.layout.activity_demo_stream) setContentView(R.layout.activity_demo_stream)
setSupportActionBar(toolbar) setSupportActionBar(toolbar)
doBindService()
demoStream.setOnClickListener { demoStream.setOnClickListener {
toast("vacant").show() toast("vacant").show()
} }
@@ -57,8 +62,20 @@ class DemoStreamActivity : AppCompatActivity() {
var apiUriStr = apiUri.text.toString() var apiUriStr = apiUri.text.toString()
token = logUser(usernameStr, passwordStr, apiUriStr) token = logUser(usernameStr, passwordStr, apiUriStr)
toast(token!!).show()
var s = retrieveSong(token!!); try {
var s = retrieveSong(token!!, apiUriStr)
musicService!!.icarusPlaySong(this.applicationContext, token!!, apiUriStr, s)
val dir = Environment.getExternalStorageDirectory().absolutePath + "/music"
pathIteratorDemo(dir)
var currentTrack = musicService!!.getCurrentTrack()
val title = currentTrack.title
val artist = currentTrack.artist
}
catch (ex: Exception) {
val msg = ex.message
}
} }
private fun validFields(): Boolean { private fun validFields(): Boolean {
@@ -1,8 +1,10 @@
package com.example.mear.playback.service package com.example.mear.playback.service
import android.app.Service import android.app.Service
import android.content.Context
import android.content.Intent import android.content.Intent
import android.media.MediaPlayer import android.media.MediaPlayer
import android.net.Uri
import android.os.Binder import android.os.Binder
import android.os.Environment import android.os.Environment
import android.os.IBinder import android.os.IBinder
@@ -16,6 +18,7 @@ import com.example.mear.constants.Interval
import com.example.mear.management.MusicFiles import com.example.mear.management.MusicFiles
import com.example.mear.management.TrackManager import com.example.mear.management.TrackManager
import com.example.mear.models.PlayControls import com.example.mear.models.PlayControls
import com.example.mear.models.Song
import com.example.mear.models.Track import com.example.mear.models.Track
import com.example.mear.repositories.RepeatRepository import com.example.mear.repositories.RepeatRepository
import com.example.mear.repositories.ShuffleRepository import com.example.mear.repositories.ShuffleRepository
@@ -90,6 +93,46 @@ class MusicService: Service() {
} }
} }
fun icarusPlaySong(token: String, song: Song) {
var uriBase = "https://www.soaricarus.com/api/v1/song/stream/"
val id = song.id
uriBase += "$id"
var uri: Uri = Uri.parse(uriBase)
var hddr: MutableMap<String, String> = mutableMapOf()
hddr["Authorization"] = "Bearer $token"
try {
trackPlayer!!.reset()
trackPlayer!!.setDataSource(this, uri, hddr)
trackPlayer!!.prepare()
trackPlayer!!.start()
}
catch (ex: Exception) {
val msg = ex.message
}
}
fun icarusPlaySong(ctx: Context, token: String, uriBase: String, song: Song) {
var uriStr = uriBase
val id = song.id
uriStr += "/api/v1/song/stream/"
uriStr += "$id"
var uri: Uri = Uri.parse(uriStr)
var hddr: MutableMap<String, String> = mutableMapOf()
hddr["Authorization"] = "Bearer $token"
try {
trackPlayer!!.reset()
trackPlayer!!.setDataSource(ctx, uri, hddr)
trackPlayer!!.prepare()
trackPlayer!!.start()
}
catch (ex: Exception) {
val msg = ex.message
}
}
fun goToPosition(progress: Int) { fun goToPosition(progress: Int) {
trackPlayer!!.seekTo(progress) trackPlayer!!.seekTo(progress)
} }