Continuing work on download functionality

This commit is contained in:
kdeng00
2019-12-03 21:16:35 -05:00
parent 1e70f84622
commit daf62f222c
16 changed files with 460 additions and 326 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+280 -259
View File
@@ -7,9 +7,6 @@
</component>
<component name="ChangeListManager">
<list default="true" id="ebd2cf14-6a1f-4718-a07e-0a5968921822" name="Default Changelist" comment="ddWorking on implementing the Toggle controls like Repeat and Shuffle. Having a little issues with Repeat, haven't started with Shuffle">
<change afterPath="$PROJECT_DIR$/app/src/main/cpp/manager/DirectoryManager.h" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/cpp/types/ConnType.h" afterDir="false" />
<change afterPath="$PROJECT_DIR$/app/src/main/cpp/utility/GeneralUtility.h" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/4.10.1/fileChanges/last-build.bin" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/4.10.1/fileHashes/fileHashes.bin" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/4.10.1/fileHashes/fileHashes.lock" beforeDir="false" />
@@ -22,7 +19,6 @@
<change beforePath="$PROJECT_DIR$/.gradle/5.4.1/javaCompile/classAnalysis.bin" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/5.4.1/javaCompile/classAnalysis.bin" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/5.4.1/javaCompile/jarAnalysis.bin" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/5.4.1/javaCompile/jarAnalysis.bin" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/5.4.1/javaCompile/javaCompile.lock" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/5.4.1/javaCompile/javaCompile.lock" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/5.4.1/javaCompile/taskHistory.bin" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/5.4.1/javaCompile/taskHistory.bin" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/buildOutputCleanup/buildOutputCleanup.lock" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/buildOutputCleanup/buildOutputCleanup.lock" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/buildOutputCleanup/outputFiles.bin" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/buildOutputCleanup/outputFiles.bin" 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" />
@@ -85,32 +81,13 @@
<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/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/app.iml" beforeDir="false" afterPath="$PROJECT_DIR$/app/app.iml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/cpp/APIRepository.cpp" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/cpp/APIRepository.h" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/cpp/repository/APIRepository.h" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/cpp/BaseRepository.cpp" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/cpp/BaseRepository.h" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/cpp/repository/BaseRepository.h" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/cpp/CMakeLists.txt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/cpp/CMakeLists.txt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/cpp/CoverArtRepository.cpp" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/cpp/CoverArtRepository.h" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/cpp/repository/CoverArtRepository.h" 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/RepeatRepository.cpp" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/cpp/RepeatRepository.h" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/cpp/repository/RepeatRepository.h" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/cpp/RepeatTypes.h" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/cpp/types/RepeatTypes.h" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/cpp/ShuffleRepository.cpp" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/cpp/ShuffleRepository.h" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/cpp/repository/ShuffleRepository.h" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/cpp/ShuffleTypes.h" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/cpp/types/ShuffleTypes.h" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/cpp/SongRepository.cpp" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/cpp/SongRepository.h" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/cpp/repository/SongRepository.h" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/cpp/Tok.cpp" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/cpp/Tok.h" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/cpp/manager/Tok.h" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/cpp/TokenRepository.cpp" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/cpp/TokenRepository.h" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/cpp/repository/TokenRepository.h" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/cpp/UserRepository.cpp" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/cpp/UserRepository.h" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/cpp/repository/UserRepository.h" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/cpp/Demo.h" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/cpp/Demo.h" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/cpp/manager/DirectoryManager.h" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/cpp/manager/DirectoryManager.h" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/cpp/model/Song.h" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/cpp/model/Song.h" afterDir="false" />
<change beforePath="$PROJECT_DIR$/build.gradle" beforeDir="false" afterPath="$PROJECT_DIR$/build.gradle" afterDir="false" />
<change beforePath="$PROJECT_DIR$/mear.iml" beforeDir="false" afterPath="$PROJECT_DIR$/mear.iml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/cpp/repository/SongRepository.h" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/cpp/repository/SongRepository.h" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/mear/models/Song.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/mear/models/Song.kt" afterDir="false" />
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/mear/repositories/TrackRepository.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/mear/repositories/TrackRepository.kt" afterDir="false" />
</list>
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="SHOW_DIALOG" value="false" />
@@ -135,16 +112,17 @@
</system>
</component>
<component name="FileEditorManager">
<splitter split-orientation="horizontal" split-proportion="0.49960223">
<splitter split-orientation="horizontal" split-proportion="0.5053305">
<split-first>
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/Demo.cpp">
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/Demo.h">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="292">
<caret line="230" column="31" selection-start-line="230" selection-start-column="31" selection-end-line="230" selection-end-column="31" />
<state relative-caret-position="534">
<caret line="47" column="13" selection-start-line="47" selection-start-column="13" selection-end-line="47" selection-end-column="13" />
<folding>
<element signature="e#40#57#0" expanded="true" />
<element signature="e#83#102#0" expanded="true" />
<element signature="e#497#554#0" expanded="true" />
</folding>
</state>
</provider>
@@ -153,7 +131,7 @@
<file pinned="false" current-in-tab="false">
<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="886">
<state relative-caret-position="5552">
<caret line="380" selection-start-line="380" selection-end-line="380" />
<folding>
<element signature="e#37#1331#0" expanded="true" />
@@ -177,17 +155,30 @@
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/CMakeLists.txt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="464">
<caret line="29" column="8" selection-start-line="29" selection-start-column="8" selection-end-line="29" selection-end-column="8" />
<state relative-caret-position="432">
<caret line="27" column="12" selection-start-line="27" selection-start-column="12" selection-end-line="27" selection-end-column="12" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="true">
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/utility/GeneralUtility.h">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="368">
<caret line="23" column="8" selection-start-line="23" selection-start-column="8" selection-end-line="23" selection-end-column="8" />
<folding>
<element signature="e#103#120#0" expanded="true" />
<element signature="e#501#555#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/model/Song.h">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="448">
<caret line="28" selection-start-line="28" selection-end-line="28" />
<state relative-caret-position="144">
<caret line="9" selection-start-line="9" selection-end-line="9" />
<folding>
<element signature="e#82#99#0" expanded="true" />
</folding>
@@ -195,15 +186,37 @@
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/repository/SongRepository.h">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2288">
<caret line="143" column="35" selection-start-line="143" selection-start-column="35" selection-end-line="143" selection-end-column="35" />
<folding>
<element signature="e#102#119#0" expanded="true" />
<element signature="e#465#496#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
</leaf>
</split-first>
<split-second>
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file pinned="false" current-in-tab="true">
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/example/mear/repositories/TrackRepository.kt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="432">
<caret line="34" selection-start-line="34" selection-end-line="34" />
<state relative-caret-position="112">
<caret line="14" column="14" selection-start-line="14" selection-start-column="14" selection-end-line="14" selection-end-column="14" />
</state>
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/example/mear/models/Song.kt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="96">
<caret line="6" column="35" selection-start-line="6" selection-start-column="35" selection-end-line="6" selection-end-column="35" />
</state>
</provider>
</entry>
@@ -211,15 +224,19 @@
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/manager/DirectoryManager.h">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="736">
<caret line="46" column="31" selection-start-line="46" selection-start-column="31" selection-end-line="46" selection-end-column="31" />
<state relative-caret-position="1040">
<caret line="65" column="11" selection-start-line="65" selection-start-column="11" selection-end-line="65" selection-end-column="11" />
<folding>
<element signature="e#220#274#0" expanded="true" />
<element signature="e#419#473#0" expanded="true" />
<element signature="e#602#656#0" expanded="true" />
<element signature="e#783#837#0" expanded="true" />
<element signature="e#956#1010#0" expanded="true" />
<element signature="e#1126#1180#0" expanded="true" />
<element signature="e#231#257#0" expanded="true" />
<element signature="e#315#343#0" expanded="true" />
<element signature="e#481#509#0" expanded="true" />
<element signature="e#646#674#0" expanded="true" />
<element signature="e#1387#1434#0" expanded="true" />
<element signature="e#1852#1899#0" expanded="true" />
<element signature="e#936#964#0" expanded="true" />
<element signature="e#1063#1091#0" expanded="true" />
<element signature="e#1262#1309#0" expanded="true" />
<element signature="e#1820#1867#0" expanded="true" />
</folding>
</state>
</provider>
@@ -228,7 +245,7 @@
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/repository/TokenRepository.h">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="646">
<state relative-caret-position="1056">
<caret line="66" column="56" selection-start-line="66" selection-start-column="56" selection-end-line="66" selection-end-column="56" />
<folding>
<element signature="e#104#121#0" expanded="true" />
@@ -241,8 +258,8 @@
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/repository/UserRepository.h">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1280">
<caret line="80" column="70" selection-start-line="80" selection-start-column="70" selection-end-line="80" selection-end-column="70" />
<state relative-caret-position="176">
<caret line="11" selection-start-line="11" selection-end-line="11" />
<folding>
<element signature="e#102#119#0" expanded="true" />
<element signature="e#231#257#0" expanded="true" />
@@ -251,6 +268,18 @@
</provider>
</entry>
</file>
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/Demo.cpp">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="16">
<caret line="47" selection-start-line="47" selection-end-line="47" />
<folding>
<element signature="e#40#57#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
</file>
</leaf>
</split-second>
</splitter>
@@ -278,9 +307,7 @@
<option value="$PROJECT_DIR$/app/src/main/java/com/example/mear/repositories/BaseRepository.kt" />
<option value="$PROJECT_DIR$/app/src/main/java/com/example/mear/repositories/RepeatRepository.kt" />
<option value="$PROJECT_DIR$/app/src/main/cpp/model/CoverArt.h" />
<option value="$PROJECT_DIR$/app/src/main/cpp/Demo.h" />
<option value="$PROJECT_DIR$/app/src/main/cpp/CoverArtRepository.cpp" />
<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/activities/IcarusSongActivity.kt" />
<option value="$PROJECT_DIR$/app/src/main/java/com/example/mear/adapters/SongAdapter.kt" />
<option value="$PROJECT_DIR$/app/src/main/cpp/model/Token.h" />
@@ -296,7 +323,6 @@
<option value="$PROJECT_DIR$/app/src/main/cpp/CoverArtRepository.h" />
<option value="$PROJECT_DIR$/app/src/main/res/menu/popup_menu.xml" />
<option value="$PROJECT_DIR$/app/src/main/res/values/strings.xml" />
<option value="$PROJECT_DIR$/app/src/main/java/com/example/mear/repositories/TrackRepository.kt" />
<option value="$PROJECT_DIR$/app/src/main/java/com/example/mear/playback/service/MusicService.kt" />
<option value="$PROJECT_DIR$/app/src/main/java/com/example/mear/activities/MainActivity.kt" />
<option value="$PROJECT_DIR$/app/src/main/cpp/APIRepository.cpp" />
@@ -309,7 +335,6 @@
<option value="$PROJECT_DIR$/app/src/main/cpp/repository/CoverArtRepository.cpp" />
<option value="$PROJECT_DIR$/app/src/main/cpp/repository/RepeatRepository.h" />
<option value="$PROJECT_DIR$/app/src/main/cpp/repository/RepeatRepository.cpp" />
<option value="$PROJECT_DIR$/app/src/main/cpp/repository/SongRepository.h" />
<option value="$PROJECT_DIR$/app/src/main/cpp/repository/CoverArtRepository.h" />
<option value="$PROJECT_DIR$/app/src/main/cpp/repository/ShuffleRepository.h" />
<option value="$PROJECT_DIR$/app/src/main/cpp/repository/ShuffleRepository.cpp" />
@@ -319,19 +344,24 @@
<option value="$PROJECT_DIR$/app/src/main/cpp/repository/TokenRepository.h" />
<option value="$PROJECT_DIR$/app/src/main/cpp/repository/TokenRepository.cpp" />
<option value="$PROJECT_DIR$/app/src/main/cpp/repository/UserRepository.cpp" />
<option value="$PROJECT_DIR$/app/src/main/cpp/repository/UserRepository.h" />
<option value="$PROJECT_DIR$/app/src/main/cpp/utility/GeneralUtility.h" />
<option value="$PROJECT_DIR$/app/src/main/cpp/CMakeLists.txt" />
<option value="$PROJECT_DIR$/app/src/main/cpp/Demo.cpp" />
<option value="$PROJECT_DIR$/app/src/main/cpp/repository/UserRepository.h" />
<option value="$PROJECT_DIR$/app/src/main/cpp/model/Song.h" />
<option value="$PROJECT_DIR$/app/src/main/cpp/manager/DirectoryManager.h" />
<option value="$PROJECT_DIR$/app/src/main/cpp/repository/SongRepository.h" />
<option value="$PROJECT_DIR$/app/src/main/java/com/example/mear/repositories/TrackRepository.kt" />
<option value="$PROJECT_DIR$/app/src/main/java/com/example/mear/models/Song.kt" />
<option value="$PROJECT_DIR$/app/src/main/cpp/Demo.cpp" />
<option value="$PROJECT_DIR$/app/src/main/cpp/Demo.h" />
</list>
</option>
</component>
<component name="OCFindUsagesOptions" text="true" ivars="false" properties="true" derivedClasses="false" />
<component name="ProjectFrameBounds" extendedState="6">
<option name="x" value="960" />
<option name="y" value="-16" />
<option name="width" value="640" />
<option name="width" value="960" />
<option name="height" value="1079" />
</component>
<component name="ProjectLevelVcsManager" settingsEditedManually="true" />
@@ -341,6 +371,7 @@
</navigator>
<panes>
<pane id="Scope" />
<pane id="PackagesPane" />
<pane id="AndroidView" />
<pane id="ProjectPane">
<subPane>
@@ -391,7 +422,7 @@
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="cpp" type="462c0819:PsiDirectoryNode" />
<item name="model" type="462c0819:PsiDirectoryNode" />
<item name="repository" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="mear" type="b2602c69:ProjectViewProjectNode" />
@@ -400,7 +431,7 @@
<item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" />
<item name="cpp" type="462c0819:PsiDirectoryNode" />
<item name="types" type="462c0819:PsiDirectoryNode" />
<item name="utility" type="462c0819:PsiDirectoryNode" />
</path>
<path>
<item name="mear" type="b2602c69:ProjectViewProjectNode" />
@@ -427,49 +458,12 @@
<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="repositories" 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="menu" 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="values" type="462c0819:PsiDirectoryNode" />
<item name="models" type="462c0819:PsiDirectoryNode" />
</path>
</expand>
<select />
</subPane>
</pane>
<pane id="PackagesPane" />
</panes>
</component>
<component name="PropertiesComponent">
@@ -623,11 +617,19 @@
<option name="project" value="LOCAL" />
<updated>1574733783595</updated>
</task>
<option name="localTasksCounter" value="8" />
<task id="LOCAL-00008" summary="Doing some refactoring and some skeleton work for downloading songs">
<created>1575075251084</created>
<option name="number" value="00008" />
<option name="presentableId" value="LOCAL-00008" />
<option name="project" value="LOCAL" />
<updated>1575075251084</updated>
</task>
<option name="localTasksCounter" value="9" />
<servers />
</component>
<component name="ToolWindowManager">
<frame x="0" y="-16" width="1920" height="1079" extended-state="6" />
<editor active="true" />
<layout>
<window_info id="Captures" order="0" side_tool="true" weight="0.25" />
<window_info id="Structure" order="1" side_tool="true" />
@@ -638,17 +640,17 @@
<window_info content_ui="combo" id="Project" order="6" weight="0.36567163" />
<window_info id="Resources Explorer" order="7" weight="0.32995737" />
<window_info id="Capture Tool" order="8" />
<window_info active="true" anchor="bottom" id="Messages" visible="true" weight="0.32954547" />
<window_info anchor="bottom" id="Run" order="0" />
<window_info anchor="bottom" id="Logcat" order="1" />
<window_info anchor="bottom" id="TODO" order="2" />
<window_info anchor="bottom" id="Debug" order="3" weight="0.33264464" />
<window_info anchor="bottom" id="Terminal" order="4" />
<window_info anchor="bottom" id="Event Log" order="5" side_tool="true" />
<window_info anchor="bottom" id="Version Control" order="6" />
<window_info anchor="bottom" id="Version Control" order="6" weight="0.32920536" />
<window_info anchor="bottom" id="Find" order="7" weight="0.3285124" />
<window_info anchor="bottom" id="Build" order="8" weight="0.3285124" />
<window_info anchor="bottom" id="Android Profiler" order="9" />
<window_info anchor="bottom" id="Android Profiler" order="8" show_stripe_button="false" />
<window_info anchor="bottom" id="Messages" order="9" weight="0.32954547" />
<window_info anchor="bottom" id="Build" order="10" visible="true" weight="0.338843" />
<window_info anchor="right" id="Capture Analysis" order="0" />
<window_info anchor="right" id="Gradle" order="1" />
<window_info anchor="right" id="Theme Preview" order="2" />
@@ -667,7 +669,9 @@
<MESSAGE value="jni memory leak fix" />
<MESSAGE value="Adding downloading functionality, left TODO's on where to pick up from" />
<MESSAGE value="ddWorking on implementing the Toggle controls like Repeat and Shuffle. Having a little issues with Repeat, haven't started with Shuffle" />
<option name="LAST_COMMIT_MESSAGE" value="ddWorking on implementing the Toggle controls like Repeat and Shuffle. Having a little issues with Repeat, haven't started with Shuffle" />
<MESSAGE value="Doing some refactoring and some skeleton work for downloading songs" />
<MESSAGE value="Continuing work on download functionality" />
<option name="LAST_COMMIT_MESSAGE" value="Continuing work on download functionality" />
</component>
<component name="XDebuggerManager">
<breakpoint-manager>
@@ -752,7 +756,7 @@
</line-breakpoint>
<line-breakpoint enabled="true" type="kotlin-line">
<url>file://$PROJECT_DIR$/app/src/main/java/com/example/mear/repositories/TrackRepository.kt</url>
<line>36</line>
<line>37</line>
<properties />
<option name="timeStamp" value="187" />
</line-breakpoint>
@@ -838,15 +842,58 @@
</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>302</line>
<line>314</line>
<option name="timeStamp" value="182" />
</line-breakpoint>
<line-breakpoint enabled="true" type="com.jetbrains.cidr.execution.debugger.OCBreakpointType">
<url>file://$PROJECT_DIR$/app/src/main/cpp/manager/DirectoryManager.h</url>
<line>111</line>
<option name="timeStamp" value="188" />
</line-breakpoint>
<line-breakpoint enabled="true" type="com.jetbrains.cidr.execution.debugger.OCBreakpointType">
<url>file://$PROJECT_DIR$/app/src/main/cpp/manager/DirectoryManager.h</url>
<line>93</line>
<option name="timeStamp" value="189" />
</line-breakpoint>
<line-breakpoint enabled="true" type="com.jetbrains.cidr.execution.debugger.OCBreakpointType">
<url>file://$PROJECT_DIR$/app/src/main/cpp/manager/DirectoryManager.h</url>
<line>46</line>
<option name="timeStamp" value="190" />
</line-breakpoint>
<line-breakpoint enabled="true" type="com.jetbrains.cidr.execution.debugger.OCBreakpointType">
<url>file://$PROJECT_DIR$/app/src/main/cpp/manager/DirectoryManager.h</url>
<line>36</line>
<option name="timeStamp" value="191" />
</line-breakpoint>
<line-breakpoint enabled="true" type="com.jetbrains.cidr.execution.debugger.OCBreakpointType">
<url>file://$PROJECT_DIR$/app/src/main/cpp/manager/DirectoryManager.h</url>
<line>55</line>
<option name="timeStamp" value="193" />
</line-breakpoint>
<line-breakpoint enabled="true" type="com.jetbrains.cidr.execution.debugger.OCBreakpointType">
<url>file://$PROJECT_DIR$/app/src/main/cpp/manager/DirectoryManager.h</url>
<line>78</line>
<option name="timeStamp" value="194" />
</line-breakpoint>
<line-breakpoint enabled="true" type="com.jetbrains.cidr.execution.debugger.OCBreakpointType">
<url>file://$PROJECT_DIR$/app/src/main/cpp/manager/DirectoryManager.h</url>
<line>65</line>
<option name="timeStamp" value="195" />
</line-breakpoint>
<line-breakpoint enabled="true" type="com.jetbrains.cidr.execution.debugger.OCBreakpointType">
<url>file://$PROJECT_DIR$/app/src/main/cpp/manager/DirectoryManager.h</url>
<line>24</line>
<option name="timeStamp" value="196" />
</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>675</line>
<option name="timeStamp" value="200" />
</line-breakpoint>
</breakpoints>
</breakpoint-manager>
</component>
<component name="editorHistoryManager">
<entry file="file://$USER_HOME$/AndroidStudio/DeviceExplorer/motorola-moto_e__4__plus-ZY2248HP8X/data/data/com.example.mear/mear.db3" />
<entry file="file://$USER_HOME$/AndroidStudio/DeviceExplorer/motorola-moto_e__4__plus-ZY2248HP8X/data/data/com.example.mear/databases/Mear" />
<entry file="file://$USER_HOME$/Android/Sdk/ndk/20.0.5594570/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/string">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="112">
@@ -943,20 +990,20 @@
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/res/layout/popup_layout.xml">
<provider editor-type-id="text-editor" />
<provider selected="true" editor-type-id="android-designer2" />
<provider editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/res/menu/main.xml">
<provider editor-type-id="text-editor" />
<provider selected="true" editor-type-id="android-designer2" />
<provider editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/res/menu/activity_main_drawer.xml">
<provider editor-type-id="text-editor" />
<provider selected="true" editor-type-id="android-designer2" />
<provider editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/res/menu/menu_song_view.xml">
<provider editor-type-id="text-editor" />
<provider selected="true" editor-type-id="android-designer2" />
<provider editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/example/mear/activities/IcarusSongActivity.kt">
<provider selected="true" editor-type-id="text-editor">
@@ -973,40 +1020,16 @@
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/res/menu/popup_menu.xml">
<provider editor-type-id="android-designer2" />
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="160">
<caret line="10" column="40" selection-start-line="10" selection-start-column="40" selection-end-line="10" selection-end-column="40" />
</state>
</provider>
<provider editor-type-id="android-designer2" />
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/example/mear/playback/service/MusicService.kt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2336">
<caret line="162" column="40" selection-start-line="162" selection-start-column="40" selection-end-line="162" selection-end-column="40" />
<folding>
<element signature="e#43#596#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/repository/BaseRepository.cpp">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="32">
<caret line="2" column="2" selection-start-line="2" selection-start-column="2" selection-end-line="2" selection-end-column="2" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/repository/APIRepository.cpp">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="32">
<caret line="2" column="2" selection-start-line="2" selection-start-column="2" selection-end-line="2" selection-end-column="2" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/repository/CoverArtRepository.cpp">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/repository/BaseRepository.cpp" />
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/repository/APIRepository.cpp" />
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/repository/CoverArtRepository.cpp" />
<entry file="file://$PROJECT_DIR$/app/src/main/res/values/strings.xml">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="624">
@@ -1014,16 +1037,6 @@
</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="886">
<caret line="380" selection-start-line="380" selection-end-line="380" />
<folding>
<element signature="e#37#1331#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/repository/APIRepository.h">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="774">
@@ -1045,16 +1058,6 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/repository/SongRepository.h">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="128">
<caret line="8" column="16" selection-start-line="8" selection-start-column="16" selection-end-line="8" selection-end-column="16" />
<folding>
<element signature="e#701#732#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/repository/RepeatRepository.h">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="736">
@@ -1062,13 +1065,7 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/repository/RepeatRepository.cpp">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="32">
<caret line="2" column="2" selection-start-line="2" selection-start-column="2" selection-end-line="2" selection-end-column="2" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/repository/RepeatRepository.cpp" />
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/repository/ShuffleRepository.h">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="606">
@@ -1093,34 +1090,10 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/manager/Tok.cpp">
<provider selected="true" editor-type-id="text-editor">
<state>
<caret column="1" selection-start-column="1" selection-end-column="1" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/repository/ShuffleRepository.cpp">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="48">
<caret line="3" selection-start-line="3" selection-end-line="3" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/repository/SongRepository.cpp">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="64">
<caret line="4" lean-forward="true" selection-start-line="4" selection-end-line="4" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/repository/TokenRepository.cpp">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="32">
<caret line="2" column="2" selection-start-line="2" selection-start-column="2" selection-end-line="2" selection-end-column="2" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/manager/Tok.cpp" />
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/repository/ShuffleRepository.cpp" />
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/repository/SongRepository.cpp" />
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/repository/TokenRepository.cpp" />
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/manager/Tok.h">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="22">
@@ -1133,9 +1106,113 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/repository/UserRepository.cpp" />
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/Demo.h">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="534">
<caret line="47" column="13" selection-start-line="47" selection-start-column="13" selection-end-line="47" selection-end-column="13" />
<folding>
<element signature="e#83#102#0" expanded="true" />
<element signature="e#497#554#0" expanded="true" />
</folding>
</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="5552">
<caret line="380" selection-start-line="380" selection-end-line="380" />
<folding>
<element signature="e#37#1331#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/example/mear/playback/service/MusicService.kt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2336">
<caret line="162" column="40" selection-start-line="162" selection-start-column="40" selection-end-line="162" selection-end-column="40" />
<folding>
<element signature="e#43#596#0" expanded="true" />
</folding>
</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="432">
<caret line="27" column="12" selection-start-line="27" selection-start-column="12" selection-end-line="27" selection-end-column="12" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/utility/GeneralUtility.h">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="368">
<caret line="23" column="8" selection-start-line="23" selection-start-column="8" selection-end-line="23" selection-end-column="8" />
<folding>
<element signature="e#103#120#0" expanded="true" />
<element signature="e#501#555#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/model/Song.h">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="144">
<caret line="9" selection-start-line="9" selection-end-line="9" />
<folding>
<element signature="e#82#99#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/repository/SongRepository.h">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="2288">
<caret line="143" column="35" selection-start-line="143" selection-start-column="35" selection-end-line="143" selection-end-column="35" />
<folding>
<element signature="e#102#119#0" expanded="true" />
<element signature="e#465#496#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/example/mear/repositories/TrackRepository.kt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="112">
<caret line="14" column="14" selection-start-line="14" selection-start-column="14" selection-end-line="14" selection-end-column="14" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/example/mear/models/Song.kt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="96">
<caret line="6" column="35" selection-start-line="6" selection-start-column="35" selection-end-line="6" selection-end-column="35" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/manager/DirectoryManager.h">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1040">
<caret line="65" column="11" selection-start-line="65" selection-start-column="11" selection-end-line="65" selection-end-column="11" />
<folding>
<element signature="e#231#257#0" expanded="true" />
<element signature="e#315#343#0" expanded="true" />
<element signature="e#481#509#0" expanded="true" />
<element signature="e#646#674#0" expanded="true" />
<element signature="e#1387#1434#0" expanded="true" />
<element signature="e#1852#1899#0" expanded="true" />
<element signature="e#936#964#0" expanded="true" />
<element signature="e#1063#1091#0" expanded="true" />
<element signature="e#1262#1309#0" expanded="true" />
<element signature="e#1820#1867#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/repository/TokenRepository.h">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="646">
<state relative-caret-position="1056">
<caret line="66" column="56" selection-start-line="66" selection-start-column="56" selection-end-line="66" selection-end-column="56" />
<folding>
<element signature="e#104#121#0" expanded="true" />
@@ -1144,17 +1221,10 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/repository/UserRepository.cpp">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="32">
<caret line="2" column="1" selection-start-line="2" selection-start-column="1" selection-end-line="2" selection-end-column="1" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/repository/UserRepository.h">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1280">
<caret line="80" column="70" selection-start-line="80" selection-start-column="70" selection-end-line="80" selection-end-column="70" />
<state relative-caret-position="176">
<caret line="11" selection-start-line="11" selection-end-line="11" />
<folding>
<element signature="e#102#119#0" expanded="true" />
<element signature="e#231#257#0" expanded="true" />
@@ -1162,65 +1232,16 @@
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/utility/GeneralUtility.h">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="112">
<caret line="7" column="16" selection-start-line="7" selection-start-column="16" selection-end-line="7" selection-end-column="16" />
<folding>
<element signature="e#103#238#0" expanded="true" />
</folding>
</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="464">
<caret line="29" column="8" selection-start-line="29" selection-start-column="8" selection-end-line="29" selection-end-column="8" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/Demo.cpp">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="292">
<caret line="230" column="31" selection-start-line="230" selection-start-column="31" selection-end-line="230" selection-end-column="31" />
<state relative-caret-position="16">
<caret line="47" selection-start-line="47" selection-end-line="47" />
<folding>
<element signature="e#40#57#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/model/Song.h">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="448">
<caret line="28" selection-start-line="28" selection-end-line="28" />
<folding>
<element signature="e#82#99#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/manager/DirectoryManager.h">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="736">
<caret line="46" column="31" selection-start-line="46" selection-start-column="31" selection-end-line="46" selection-end-column="31" />
<folding>
<element signature="e#220#274#0" expanded="true" />
<element signature="e#419#473#0" expanded="true" />
<element signature="e#602#656#0" expanded="true" />
<element signature="e#783#837#0" expanded="true" />
<element signature="e#956#1010#0" expanded="true" />
<element signature="e#1126#1180#0" expanded="true" />
</folding>
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/example/mear/repositories/TrackRepository.kt">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="432">
<caret line="34" selection-start-line="34" selection-end-line="34" />
</state>
</provider>
</entry>
</component>
<component name="masterDetails">
<states>
+27 -19
View File
@@ -58,6 +58,9 @@ jobject songToObj(JNIEnv *env, const model::Song& song)
jmethodID songDuration = env->GetMethodID( songClass, "setDuration", "(I)V" );
jmethodID songYear = env->GetMethodID( songClass, "setYear", "(I)V" );
jmethodID songCoverArtId = env->GetMethodID(songClass, "setCoverArtId", "(I)V");
jmethodID songPathId = env->GetMethodID(songClass, "setPath", "(Ljava/lang/String;)V");
jmethodID songFilenameId = env->GetMethodID(songClass, "setFilename", "(Ljava/lang/String;)V");
jmethodID songDownloadedId = env->GetMethodID(songClass, "setDownloaded", "(B)V");
jint id = song.id;
jstring title = env->NewStringUTF(song.title.c_str());
@@ -68,6 +71,10 @@ jobject songToObj(JNIEnv *env, const model::Song& song)
jint duration = song.duration;
jint year = song.year;
jint coverArtId = song.coverArtId;
jstring songPath = env->NewStringUTF(song.path.c_str());
jstring songFilename = env->NewStringUTF(song.filename.c_str());
jboolean songDownloaded = song.downloaded;
env->CallVoidMethod( songObj, songId, id );
env->CallVoidMethod(songObj, songTitle, title);
@@ -78,12 +85,17 @@ jobject songToObj(JNIEnv *env, const model::Song& song)
env->CallVoidMethod(songObj, songDuration, duration);
env->CallVoidMethod(songObj, songYear, year);
env->CallVoidMethod(songObj, songCoverArtId, coverArtId);
env->CallVoidMethod(songObj, songPathId, songPath);
env->CallVoidMethod(songObj, songFilenameId, songFilename);
env->CallVoidMethod(songObj, songDownloadedId, songDownloaded);
env->DeleteLocalRef(title);
env->DeleteLocalRef(album);
env->DeleteLocalRef(albumArtist);
env->DeleteLocalRef(artist);
env->DeleteLocalRef(genre);
env->DeleteLocalRef(songPath);
env->DeleteLocalRef(songFilename);
return songObj;
}
@@ -404,24 +416,6 @@ Java_com_example_mear_repositories_TrackRepository_retrieveSong(
return fetchedSongObj;
}
extern "C"
JNIEXPORT jobject
JNICALL
Java_com_example_mear_repositories_TrackRepositories_downloadSong(
JNIEnv *env,
jobject thisObj,
jobject tokenObj,
jobject songObj,
jstring uriStr
) {
// TODO: left off here
model::Song downloadedSong;
auto downloadedSongObj = songToObj(env, downloadedSong);
return downloadedSongObj;
}
extern "C"
JNIEXPORT jobject
JNICALL
@@ -648,7 +642,6 @@ Java_com_example_mear_repositories_APIRepository_saveAPIInfoRecord(
saveAPIInfo(apiInfo, path);
}
extern "C"
JNIEXPORT void
JNICALL
@@ -669,6 +662,21 @@ Java_com_example_mear_repositories_TokenRepository_saveTokenRecord(
saveToken(token, path);
}
extern "C"
JNIEXPORT void
JNICALL
Java_com_example_mear_repositories_TrackRepositories_downloadSong(
JNIEnv *env,
jobject thisObj,
jobject tokenObj,
jobject songObj,
jstring uriStr
) {
// TODO: left off here
auto song = ObjToSong<jobject, JNIEnv>(env, songObj);
}
extern "C"
JNIEXPORT void
JNICALL
+30
View File
@@ -24,6 +24,32 @@ std::string jstringToString(JNIEnv*, jstring&);
model::APIInfo retrieveAPIInfo(const std::string&);
template<typename SongObj, typename JE, class Song = model::Song>
Song ObjToSong(JE *env, SongObj obj) {
jclass songClass = env->GetObjectClass(obj);
//jmethodID jconstructor = env->GetMethodID( songClass, "<init>", "()V" );
//jobject songObj = env->NewObject( songClass, jconstructor );
auto songId = env->GetFieldID( songClass, "id", "I" );
auto songTitle = env->GetFieldID( songClass, "title", "Ljava/lang/String;" );
auto songAlbum = env->GetFieldID( songClass, "album", "Ljava/lang/String;" );
auto songAlbumArtist = env->GetFieldID(songClass, "albumArtist", "Ljava/lang/String;");
auto songArtist = env->GetFieldID( songClass, "artist", "Ljava/lang/String;" );
auto songGenre = env->GetFieldID( songClass, "genre", "Ljava/lang/String;" );
auto songDuration = env->GetFieldID( songClass, "duration", "I" );
auto songYear = env->GetFieldID( songClass, "year", "I" );
auto songCoverArtId = env->GetFieldID(songClass, "coverArtId", "I");
auto songPathId = env->GetFieldID(songClass, "path", "Ljava/lang/String;");
auto songFilenameId = env->GetFieldID(songClass, "filename", "Ljava/lang/String;");
auto songDownloadedId = env->GetFieldID(songClass, "downloaded", "B");
auto titleVal = (jstring)env->GetObjectField(obj, songTitle);
Song song;
return song;
}
model::Song retrieveSong(const model::Token&, const model::Song&, const std::string&);
model::Token fetchToken(const model::User&, const std::string&);
@@ -44,6 +70,10 @@ void saveCredentials(const model::User&, const std::string&);
void saveToken(const model::Token&, const std::string&);
void updateRepeatMode(const std::string&);
void updateShuffleMode(const std::string&);
template<class Song = model::Song>
void downloadSong(Song& song) {
}
+87 -13
View File
@@ -6,48 +6,122 @@
#define MEAR_DIRECTORYMANAGER_H
#include <string>
#include <cstdio>
#include <dirent.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include "../model/Song.h"
#include "../utility/GeneralUtility.h"
namespace manager {
template<class Song = model::Song>
class DirectoryManager {
public:
template<typename Str = std::string, class Song = model::Song>
template<typename Str = std::string>
Str fullSongPath(const Song& song, const Str& path) {
auto s = "";
auto s = utility::GeneralUtility::appendForwardSlashToUri(path);
s.append(song.albumArtist);
s.append("/");
s.append(song.album);
s.append("/");
s.append(song.filename);
return s;
}
template<typename Str = std::string, class Song = model::Song>
template<typename Str = std::string>
Str albumPath(const Song& song, const Str& path) {
auto ss = "";
auto s = utility::GeneralUtility::appendForwardSlashToUri(path);
s.append(song.albumArtist);
s.append("/");
s.append(song.album);
return ss;
return s;
}
template<typename Str = std::string, class Song = model::Song>
template<typename Str = std::string>
Str artistPath(const Song& song, const Str& path) {
return "art";
auto s = utility::GeneralUtility::appendForwardSlashToUri(path);
s.append(song.albumArtist);
return s;
}
template<typename Str = std::string, class Song = model::Song>
bool doesSongExist(const Song& song, const Str& path) {
return false;
template<typename Str = std::string, typename B = bool>
B doesSongExist(const Song& song, const Str& path) {
auto s = albumPath(song, path);
s.append("/");
s.append(song.filename);
stat buffer;
return (stat (s.c_str(), &buffer) == 0);
}
template<typename Str = std::string, typename B = bool>
B deleteSong(const Song& song, const Str& path) {
auto s = fullSongPath(song, path);
auto result = std::remove(s.c_str());
if (result == 0) {
return true;
} else {
return false;
}
}
template<typename Str = std::string, class Song = model::Song>
template<typename Str = std::string>
void createSongDirectory(const Song& song, const Str& path) {
if (!artistDirectoryExists(song, path)) {
auto status = mkdir(artistPath(song, path).c_str(), 0777);
}
if (!albumDirectoryExists(song, path)) {
auto status = mkdir(albumPath(song, path), 0777);
}
}
template<typename Str = std::string, class Song = model::Song>
template<typename Str = std::string>
void deleteSongDirectory(const Song& song, const Str& path) {
}
private:
template<typename Str = std::string, typename B = bool>
B albumDirectoryExists(const Song song, const Str& path) {
auto albumPath = utility::GeneralUtility::appendForwardSlashToUri(path);
albumPath.append(song.albumArtist);
albumPath.append("/");
albumPath.append(song.album);
DIR* dir = opendir(albumPath.c_str());
if (dir) {
closedir(dir);
return true;
} else if (ENOENT == errno) {
return false;
}
return true;
}
template<typename Str = std::string, typename B = bool>
B artistDirectoryExists(const Song song, const Str& path) {
auto artistPath = utility::GeneralUtility::appendForwardSlashToUri(path);
artistPath.append(song.albumArtist);
DIR* dir = opendir(artistPath.c_str());
if (dir) {
closedir(dir);
return true;
} else if (ENOENT == errno) {
return false;
}
return true;
}
};
}
+28 -29
View File
@@ -10,36 +10,35 @@
namespace model {
class Song {
public:
Song() = default;
Song(const int id) : id(id) { }
Song(const int id, const std::string& title, const std::string& artist,
const std::string& album, const std::string& genre,
const int duration, const int year) :
id(id), title(title), artist(artist), album(album),
genre(genre), duration(duration), year(year) { }
Song(const int id, const std::string& title, const std::string& artist,
const std::string& album, const std::string& albumArtist, const std::string& genre,
const int duration, const int year, const int coverArtId) :
id(id), title(title), artist(artist), album(album), albumArtist(albumArtist),
genre(genre), duration(duration), year(year), coverArtId(coverArtId) { }
class Song
{
public:
Song() = default;
Song(const int id) : id(id) { }
Song(const int id, const std::string& title, const std::string& artist,
const std::string& album, const std::string& genre,
const int duration, const int year) :
id(id), title(title), artist(artist), album(album),
genre(genre), duration(duration), year(year) { }
Song(const int id, const std::string& title, const std::string& artist,
const std::string& album, const std::string& albumArtist, const std::string& genre,
const int duration, const int year, const int coverArtId) :
id(id), title(title), artist(artist), album(album), albumArtist(albumArtist),
genre(genre), duration(duration), year(year), coverArtId(coverArtId) { }
int id;
std::string title;
std::string artist;
std::string album;
std::string albumArtist;
std::string genre;
int duration;
int year;
int coverArtId;
std::vector<char> data;
bool downloaded;
std::string path;
};
int id;
std::string title;
std::string artist;
std::string album;
std::string albumArtist;
std::string genre;
int duration;
int year;
int coverArtId;
std::vector<char> data;
bool downloaded;
std::string path;
std::string filename;
};
}
#endif //MEAR_SONG_H
@@ -140,6 +140,8 @@ namespace repository {
auto res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
downloadedSong.data = std::move(std::vector<char>(data.begin(), data.end()));
downloadedSong.filename = downloadedSong.title;
downloadedSong.filename.append(".mp3");
return downloadedSong;
}
@@ -3,4 +3,5 @@ package com.example.mear.models
class Song (var id: Int = 3, var title: String = "", var album: String = "",
var albumArtist: String = "", var artist: String = "",
var genre: String = "", var year: Int = 0, var duration: Int = 0,
var coverArtId: Int = 0)
var coverArtId: Int = 0, var downloaded: Boolean = false, var path: String = "",
var filename: String = "")
@@ -21,7 +21,8 @@ class TrackRepository(var context: Context? = null) {
private external fun retrieveSongs(token: Token, uri: String): Array<Song>
private external fun retrieveSong(token: Token, song: Song, uri: String): Song
private external fun downloadSong(token: Token, song: Song, uri: String): Song
private external fun downloadSong(token: Token, song: Song, uri: String)
fun fetchSongs(token: Token, uri: String): Array<Song> {
@@ -33,10 +34,8 @@ class TrackRepository(var context: Context? = null) {
return retrieveSong(token, song, uri)
}
fun fetchSongFile(token: Token, song: Song, uri: String): Song {
val downloadedSong = downloadSong(token, song, uri)
return downloadedSong
fun fetchSongFile(token: Token, song: Song, uri: String) {
downloadSong(token, song, uri)
}