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>
<component name="ChangeListManager"> <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"> <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/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.bin" beforeDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/4.10.1/fileHashes/fileHashes.lock" 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/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/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/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/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$/.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" /> <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_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_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$/.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/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/Demo.h" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/cpp/Demo.h" afterDir="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/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/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/model/Song.h" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/cpp/model/Song.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$/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$/mear.iml" beforeDir="false" afterPath="$PROJECT_DIR$/mear.iml" 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> </list>
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
@@ -135,16 +112,17 @@
</system> </system>
</component> </component>
<component name="FileEditorManager"> <component name="FileEditorManager">
<splitter split-orientation="horizontal" split-proportion="0.49960223"> <splitter split-orientation="horizontal" split-proportion="0.5053305">
<split-first> <split-first>
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/Demo.cpp"> <entry file="file://$PROJECT_DIR$/app/src/main/cpp/Demo.h">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="292"> <state relative-caret-position="534">
<caret line="230" column="31" selection-start-line="230" selection-start-column="31" selection-end-line="230" selection-end-column="31" /> <caret line="47" column="13" selection-start-line="47" selection-start-column="13" selection-end-line="47" selection-end-column="13" />
<folding> <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> </folding>
</state> </state>
</provider> </provider>
@@ -153,7 +131,7 @@
<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/java/com/example/mear/activities/MainActivity.kt">
<provider selected="true" editor-type-id="text-editor"> <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" /> <caret line="380" selection-start-line="380" selection-end-line="380" />
<folding> <folding>
<element signature="e#37#1331#0" expanded="true" /> <element signature="e#37#1331#0" expanded="true" />
@@ -177,17 +155,30 @@
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/CMakeLists.txt"> <entry file="file://$PROJECT_DIR$/app/src/main/cpp/CMakeLists.txt">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="464"> <state relative-caret-position="432">
<caret line="29" column="8" selection-start-line="29" selection-start-column="8" selection-end-line="29" selection-end-column="8" /> <caret line="27" column="12" selection-start-line="27" selection-start-column="12" selection-end-line="27" selection-end-column="12" />
</state> </state>
</provider> </provider>
</entry> </entry>
</file> </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"> <entry file="file://$PROJECT_DIR$/app/src/main/cpp/model/Song.h">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="448"> <state relative-caret-position="144">
<caret line="28" selection-start-line="28" selection-end-line="28" /> <caret line="9" selection-start-line="9" selection-end-line="9" />
<folding> <folding>
<element signature="e#82#99#0" expanded="true" /> <element signature="e#82#99#0" expanded="true" />
</folding> </folding>
@@ -195,15 +186,37 @@
</provider> </provider>
</entry> </entry>
</file> </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> </leaf>
</split-first> </split-first>
<split-second> <split-second>
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> <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"> <entry file="file://$PROJECT_DIR$/app/src/main/java/com/example/mear/repositories/TrackRepository.kt">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="432"> <state relative-caret-position="112">
<caret line="34" selection-start-line="34" selection-end-line="34" /> <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> </state>
</provider> </provider>
</entry> </entry>
@@ -211,15 +224,19 @@
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/manager/DirectoryManager.h"> <entry file="file://$PROJECT_DIR$/app/src/main/cpp/manager/DirectoryManager.h">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="736"> <state relative-caret-position="1040">
<caret line="46" column="31" selection-start-line="46" selection-start-column="31" selection-end-line="46" selection-end-column="31" /> <caret line="65" column="11" selection-start-line="65" selection-start-column="11" selection-end-line="65" selection-end-column="11" />
<folding> <folding>
<element signature="e#220#274#0" expanded="true" /> <element signature="e#231#257#0" expanded="true" />
<element signature="e#419#473#0" expanded="true" /> <element signature="e#315#343#0" expanded="true" />
<element signature="e#602#656#0" expanded="true" /> <element signature="e#481#509#0" expanded="true" />
<element signature="e#783#837#0" expanded="true" /> <element signature="e#646#674#0" expanded="true" />
<element signature="e#956#1010#0" expanded="true" /> <element signature="e#1387#1434#0" expanded="true" />
<element signature="e#1126#1180#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> </folding>
</state> </state>
</provider> </provider>
@@ -228,7 +245,7 @@
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/repository/TokenRepository.h"> <entry file="file://$PROJECT_DIR$/app/src/main/cpp/repository/TokenRepository.h">
<provider selected="true" editor-type-id="text-editor"> <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" /> <caret line="66" column="56" selection-start-line="66" selection-start-column="56" selection-end-line="66" selection-end-column="56" />
<folding> <folding>
<element signature="e#104#121#0" expanded="true" /> <element signature="e#104#121#0" expanded="true" />
@@ -241,8 +258,8 @@
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/repository/UserRepository.h"> <entry file="file://$PROJECT_DIR$/app/src/main/cpp/repository/UserRepository.h">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1280"> <state relative-caret-position="176">
<caret line="80" column="70" selection-start-line="80" selection-start-column="70" selection-end-line="80" selection-end-column="70" /> <caret line="11" selection-start-line="11" selection-end-line="11" />
<folding> <folding>
<element signature="e#102#119#0" expanded="true" /> <element signature="e#102#119#0" expanded="true" />
<element signature="e#231#257#0" expanded="true" /> <element signature="e#231#257#0" expanded="true" />
@@ -251,6 +268,18 @@
</provider> </provider>
</entry> </entry>
</file> </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> </leaf>
</split-second> </split-second>
</splitter> </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/BaseRepository.kt" />
<option value="$PROJECT_DIR$/app/src/main/java/com/example/mear/repositories/RepeatRepository.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/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/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/activities/IcarusSongActivity.kt" />
<option value="$PROJECT_DIR$/app/src/main/java/com/example/mear/adapters/SongAdapter.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" /> <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/cpp/CoverArtRepository.h" />
<option value="$PROJECT_DIR$/app/src/main/res/menu/popup_menu.xml" /> <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/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/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/java/com/example/mear/activities/MainActivity.kt" />
<option value="$PROJECT_DIR$/app/src/main/cpp/APIRepository.cpp" /> <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/CoverArtRepository.cpp" />
<option value="$PROJECT_DIR$/app/src/main/cpp/repository/RepeatRepository.h" /> <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/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/CoverArtRepository.h" />
<option value="$PROJECT_DIR$/app/src/main/cpp/repository/ShuffleRepository.h" /> <option value="$PROJECT_DIR$/app/src/main/cpp/repository/ShuffleRepository.h" />
<option value="$PROJECT_DIR$/app/src/main/cpp/repository/ShuffleRepository.cpp" /> <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.h" />
<option value="$PROJECT_DIR$/app/src/main/cpp/repository/TokenRepository.cpp" /> <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.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/utility/GeneralUtility.h" />
<option value="$PROJECT_DIR$/app/src/main/cpp/CMakeLists.txt" /> <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/model/Song.h" />
<option value="$PROJECT_DIR$/app/src/main/cpp/manager/DirectoryManager.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> </list>
</option> </option>
</component> </component>
<component name="OCFindUsagesOptions" text="true" ivars="false" properties="true" derivedClasses="false" /> <component name="OCFindUsagesOptions" text="true" ivars="false" properties="true" derivedClasses="false" />
<component name="ProjectFrameBounds" extendedState="6"> <component name="ProjectFrameBounds" extendedState="6">
<option name="x" value="960" />
<option name="y" value="-16" /> <option name="y" value="-16" />
<option name="width" value="640" /> <option name="width" value="960" />
<option name="height" value="1079" /> <option name="height" value="1079" />
</component> </component>
<component name="ProjectLevelVcsManager" settingsEditedManually="true" /> <component name="ProjectLevelVcsManager" settingsEditedManually="true" />
@@ -341,6 +371,7 @@
</navigator> </navigator>
<panes> <panes>
<pane id="Scope" /> <pane id="Scope" />
<pane id="PackagesPane" />
<pane id="AndroidView" /> <pane id="AndroidView" />
<pane id="ProjectPane"> <pane id="ProjectPane">
<subPane> <subPane>
@@ -391,7 +422,7 @@
<item name="src" type="462c0819:PsiDirectoryNode" /> <item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" /> <item name="main" type="462c0819:PsiDirectoryNode" />
<item name="cpp" type="462c0819:PsiDirectoryNode" /> <item name="cpp" type="462c0819:PsiDirectoryNode" />
<item name="model" type="462c0819:PsiDirectoryNode" /> <item name="repository" type="462c0819:PsiDirectoryNode" />
</path> </path>
<path> <path>
<item name="mear" type="b2602c69:ProjectViewProjectNode" /> <item name="mear" type="b2602c69:ProjectViewProjectNode" />
@@ -400,7 +431,7 @@
<item name="src" type="462c0819:PsiDirectoryNode" /> <item name="src" type="462c0819:PsiDirectoryNode" />
<item name="main" type="462c0819:PsiDirectoryNode" /> <item name="main" type="462c0819:PsiDirectoryNode" />
<item name="cpp" type="462c0819:PsiDirectoryNode" /> <item name="cpp" type="462c0819:PsiDirectoryNode" />
<item name="types" type="462c0819:PsiDirectoryNode" /> <item name="utility" type="462c0819:PsiDirectoryNode" />
</path> </path>
<path> <path>
<item name="mear" type="b2602c69:ProjectViewProjectNode" /> <item name="mear" type="b2602c69:ProjectViewProjectNode" />
@@ -427,49 +458,12 @@
<item name="main" type="462c0819:PsiDirectoryNode" /> <item name="main" type="462c0819:PsiDirectoryNode" />
<item name="java" type="462c0819:PsiDirectoryNode" /> <item name="java" type="462c0819:PsiDirectoryNode" />
<item name="mear" type="462c0819:PsiDirectoryNode" /> <item name="mear" type="462c0819:PsiDirectoryNode" />
<item name="activities" 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="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" />
</path> </path>
</expand> </expand>
<select /> <select />
</subPane> </subPane>
</pane> </pane>
<pane id="PackagesPane" />
</panes> </panes>
</component> </component>
<component name="PropertiesComponent"> <component name="PropertiesComponent">
@@ -623,11 +617,19 @@
<option name="project" value="LOCAL" /> <option name="project" value="LOCAL" />
<updated>1574733783595</updated> <updated>1574733783595</updated>
</task> </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 /> <servers />
</component> </component>
<component name="ToolWindowManager"> <component name="ToolWindowManager">
<frame x="0" y="-16" width="1920" height="1079" extended-state="6" /> <frame x="0" y="-16" width="1920" height="1079" extended-state="6" />
<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 id="Structure" order="1" side_tool="true" /> <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 content_ui="combo" id="Project" order="6" weight="0.36567163" />
<window_info id="Resources Explorer" order="7" weight="0.32995737" /> <window_info id="Resources Explorer" order="7" weight="0.32995737" />
<window_info id="Capture Tool" order="8" /> <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="Run" order="0" />
<window_info anchor="bottom" id="Logcat" order="1" /> <window_info anchor="bottom" id="Logcat" order="1" />
<window_info anchor="bottom" id="TODO" order="2" /> <window_info anchor="bottom" id="TODO" order="2" />
<window_info anchor="bottom" id="Debug" order="3" weight="0.33264464" /> <window_info anchor="bottom" id="Debug" order="3" weight="0.33264464" />
<window_info anchor="bottom" id="Terminal" order="4" /> <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="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="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="8" show_stripe_button="false" />
<window_info anchor="bottom" id="Android Profiler" order="9" /> <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="Capture Analysis" order="0" />
<window_info anchor="right" id="Gradle" order="1" /> <window_info anchor="right" id="Gradle" order="1" />
<window_info anchor="right" id="Theme Preview" order="2" /> <window_info anchor="right" id="Theme Preview" order="2" />
@@ -667,7 +669,9 @@
<MESSAGE value="jni memory leak fix" /> <MESSAGE value="jni memory leak fix" />
<MESSAGE value="Adding downloading functionality, left TODO's on where to pick up from" /> <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" /> <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>
<component name="XDebuggerManager"> <component name="XDebuggerManager">
<breakpoint-manager> <breakpoint-manager>
@@ -752,7 +756,7 @@
</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/repositories/TrackRepository.kt</url> <url>file://$PROJECT_DIR$/app/src/main/java/com/example/mear/repositories/TrackRepository.kt</url>
<line>36</line> <line>37</line>
<properties /> <properties />
<option name="timeStamp" value="187" /> <option name="timeStamp" value="187" />
</line-breakpoint> </line-breakpoint>
@@ -838,15 +842,58 @@
</line-breakpoint> </line-breakpoint>
<line-breakpoint enabled="true" type="com.jetbrains.cidr.execution.debugger.OCBreakpointType"> <line-breakpoint enabled="true" type="com.jetbrains.cidr.execution.debugger.OCBreakpointType">
<url>file://$PROJECT_DIR$/app/src/main/cpp/Demo.cpp</url> <url>file://$PROJECT_DIR$/app/src/main/cpp/Demo.cpp</url>
<line>302</line> <line>314</line>
<option name="timeStamp" value="182" /> <option name="timeStamp" value="182" />
</line-breakpoint> </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> </breakpoints>
</breakpoint-manager> </breakpoint-manager>
</component> </component>
<component name="editorHistoryManager"> <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"> <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"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="112"> <state relative-caret-position="112">
@@ -943,20 +990,20 @@
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/app/src/main/res/layout/popup_layout.xml"> <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 selected="true" editor-type-id="android-designer2" />
<provider editor-type-id="text-editor" />
</entry> </entry>
<entry file="file://$PROJECT_DIR$/app/src/main/res/menu/main.xml"> <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 selected="true" editor-type-id="android-designer2" />
<provider editor-type-id="text-editor" />
</entry> </entry>
<entry file="file://$PROJECT_DIR$/app/src/main/res/menu/activity_main_drawer.xml"> <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 selected="true" editor-type-id="android-designer2" />
<provider editor-type-id="text-editor" />
</entry> </entry>
<entry file="file://$PROJECT_DIR$/app/src/main/res/menu/menu_song_view.xml"> <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 selected="true" editor-type-id="android-designer2" />
<provider editor-type-id="text-editor" />
</entry> </entry>
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/example/mear/activities/IcarusSongActivity.kt"> <entry file="file://$PROJECT_DIR$/app/src/main/java/com/example/mear/activities/IcarusSongActivity.kt">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
@@ -973,40 +1020,16 @@
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/app/src/main/res/menu/popup_menu.xml"> <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"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="160"> <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" /> <caret line="10" column="40" selection-start-line="10" selection-start-column="40" selection-end-line="10" selection-end-column="40" />
</state> </state>
</provider> </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>
<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"> <entry file="file://$PROJECT_DIR$/app/src/main/res/values/strings.xml">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="624"> <state relative-caret-position="624">
@@ -1014,16 +1037,6 @@
</state> </state>
</provider> </provider>
</entry> </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"> <entry file="file://$PROJECT_DIR$/app/src/main/cpp/repository/APIRepository.h">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="774"> <state relative-caret-position="774">
@@ -1045,16 +1058,6 @@
</state> </state>
</provider> </provider>
</entry> </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"> <entry file="file://$PROJECT_DIR$/app/src/main/cpp/repository/RepeatRepository.h">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="736"> <state relative-caret-position="736">
@@ -1062,13 +1065,7 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/repository/RepeatRepository.cpp"> <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/ShuffleRepository.h"> <entry file="file://$PROJECT_DIR$/app/src/main/cpp/repository/ShuffleRepository.h">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="606"> <state relative-caret-position="606">
@@ -1093,34 +1090,10 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/manager/Tok.cpp"> <entry file="file://$PROJECT_DIR$/app/src/main/cpp/manager/Tok.cpp" />
<provider selected="true" editor-type-id="text-editor"> <entry file="file://$PROJECT_DIR$/app/src/main/cpp/repository/ShuffleRepository.cpp" />
<state> <entry file="file://$PROJECT_DIR$/app/src/main/cpp/repository/SongRepository.cpp" />
<caret column="1" selection-start-column="1" selection-end-column="1" /> <entry file="file://$PROJECT_DIR$/app/src/main/cpp/repository/TokenRepository.cpp" />
</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.h"> <entry file="file://$PROJECT_DIR$/app/src/main/cpp/manager/Tok.h">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="22"> <state relative-caret-position="22">
@@ -1133,9 +1106,113 @@
</state> </state>
</provider> </provider>
</entry> </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"> <entry file="file://$PROJECT_DIR$/app/src/main/cpp/repository/TokenRepository.h">
<provider selected="true" editor-type-id="text-editor"> <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" /> <caret line="66" column="56" selection-start-line="66" selection-start-column="56" selection-end-line="66" selection-end-column="56" />
<folding> <folding>
<element signature="e#104#121#0" expanded="true" /> <element signature="e#104#121#0" expanded="true" />
@@ -1144,17 +1221,10 @@
</state> </state>
</provider> </provider>
</entry> </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"> <entry file="file://$PROJECT_DIR$/app/src/main/cpp/repository/UserRepository.h">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1280"> <state relative-caret-position="176">
<caret line="80" column="70" selection-start-line="80" selection-start-column="70" selection-end-line="80" selection-end-column="70" /> <caret line="11" selection-start-line="11" selection-end-line="11" />
<folding> <folding>
<element signature="e#102#119#0" expanded="true" /> <element signature="e#102#119#0" expanded="true" />
<element signature="e#231#257#0" expanded="true" /> <element signature="e#231#257#0" expanded="true" />
@@ -1162,65 +1232,16 @@
</state> </state>
</provider> </provider>
</entry> </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"> <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="292"> <state relative-caret-position="16">
<caret line="230" column="31" selection-start-line="230" selection-start-column="31" selection-end-line="230" selection-end-column="31" /> <caret line="47" selection-start-line="47" selection-end-line="47" />
<folding> <folding>
<element signature="e#40#57#0" expanded="true" /> <element signature="e#40#57#0" expanded="true" />
</folding> </folding>
</state> </state>
</provider> </provider>
</entry> </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>
<component name="masterDetails"> <component name="masterDetails">
<states> <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 songDuration = env->GetMethodID( songClass, "setDuration", "(I)V" );
jmethodID songYear = env->GetMethodID( songClass, "setYear", "(I)V" ); jmethodID songYear = env->GetMethodID( songClass, "setYear", "(I)V" );
jmethodID songCoverArtId = env->GetMethodID(songClass, "setCoverArtId", "(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; jint id = song.id;
jstring title = env->NewStringUTF(song.title.c_str()); 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 duration = song.duration;
jint year = song.year; jint year = song.year;
jint coverArtId = song.coverArtId; 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, songId, id );
env->CallVoidMethod(songObj, songTitle, title); 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, songDuration, duration);
env->CallVoidMethod(songObj, songYear, year); env->CallVoidMethod(songObj, songYear, year);
env->CallVoidMethod(songObj, songCoverArtId, coverArtId); 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(title);
env->DeleteLocalRef(album); env->DeleteLocalRef(album);
env->DeleteLocalRef(albumArtist); env->DeleteLocalRef(albumArtist);
env->DeleteLocalRef(artist); env->DeleteLocalRef(artist);
env->DeleteLocalRef(genre); env->DeleteLocalRef(genre);
env->DeleteLocalRef(songPath);
env->DeleteLocalRef(songFilename);
return songObj; return songObj;
} }
@@ -404,24 +416,6 @@ Java_com_example_mear_repositories_TrackRepository_retrieveSong(
return fetchedSongObj; 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" extern "C"
JNIEXPORT jobject JNIEXPORT jobject
JNICALL JNICALL
@@ -648,7 +642,6 @@ Java_com_example_mear_repositories_APIRepository_saveAPIInfoRecord(
saveAPIInfo(apiInfo, path); saveAPIInfo(apiInfo, path);
} }
extern "C" extern "C"
JNIEXPORT void JNIEXPORT void
JNICALL JNICALL
@@ -669,6 +662,21 @@ Java_com_example_mear_repositories_TokenRepository_saveTokenRecord(
saveToken(token, path); 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" extern "C"
JNIEXPORT void JNIEXPORT void
JNICALL JNICALL
+30
View File
@@ -24,6 +24,32 @@ std::string jstringToString(JNIEnv*, jstring&);
model::APIInfo retrieveAPIInfo(const std::string&); 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::Song retrieveSong(const model::Token&, const model::Song&, const std::string&);
model::Token fetchToken(const model::User&, 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 saveToken(const model::Token&, const std::string&);
void updateRepeatMode(const std::string&); void updateRepeatMode(const std::string&);
void updateShuffleMode(const std::string&); void updateShuffleMode(const std::string&);
template<class Song = model::Song>
void downloadSong(Song& song) {
}
+89 -15
View File
@@ -6,48 +6,122 @@
#define MEAR_DIRECTORYMANAGER_H #define MEAR_DIRECTORYMANAGER_H
#include <string> #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 "../model/Song.h"
#include "../utility/GeneralUtility.h"
namespace manager { namespace manager {
template<class Song = model::Song>
class DirectoryManager { class DirectoryManager {
public: public:
template<typename Str = std::string, class Song = model::Song> template<typename Str = std::string>
Str fullSongPath(const Song& song, const Str& path) { 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; return s;
} }
template<typename Str = std::string, class Song = model::Song> template<typename Str = std::string>
Str albumPath(const Song& song, const Str& path) { 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) { 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> template<typename Str = std::string, typename B = bool>
bool doesSongExist(const Song& song, const Str& path) { 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; return false;
} }
template<typename Str = std::string, class Song = model::Song>
void createSongDirectory(const Song& song, const Str& path) {
} }
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>
void deleteSongDirectory(const Song& song, const Str& path) { void deleteSongDirectory(const Song& song, const Str& path) {
} }
private: 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;
}
}; };
} }
+4 -5
View File
@@ -10,10 +10,8 @@
namespace model { namespace model {
class Song {
class Song public:
{
public:
Song() = default; Song() = default;
Song(const int id) : id(id) { } Song(const int id) : id(id) { }
Song(const int id, const std::string& title, const std::string& artist, Song(const int id, const std::string& title, const std::string& artist,
@@ -39,7 +37,8 @@ public:
std::vector<char> data; std::vector<char> data;
bool downloaded; bool downloaded;
std::string path; std::string path;
}; std::string filename;
};
} }
#endif //MEAR_SONG_H #endif //MEAR_SONG_H
@@ -140,6 +140,8 @@ namespace repository {
auto res = curl_easy_perform(curl); auto res = curl_easy_perform(curl);
curl_easy_cleanup(curl); curl_easy_cleanup(curl);
downloadedSong.data = std::move(std::vector<char>(data.begin(), data.end())); downloadedSong.data = std::move(std::vector<char>(data.begin(), data.end()));
downloadedSong.filename = downloadedSong.title;
downloadedSong.filename.append(".mp3");
return downloadedSong; return downloadedSong;
} }
@@ -3,4 +3,5 @@ package com.example.mear.models
class Song (var id: Int = 3, var title: String = "", var album: String = "", class Song (var id: Int = 3, var title: String = "", var album: String = "",
var albumArtist: String = "", var artist: String = "", var albumArtist: String = "", var artist: String = "",
var genre: String = "", var year: Int = 0, var duration: Int = 0, 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 retrieveSongs(token: Token, uri: String): Array<Song>
private external fun retrieveSong(token: Token, song: Song, uri: String): 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> { fun fetchSongs(token: Token, uri: String): Array<Song> {
@@ -33,10 +34,8 @@ class TrackRepository(var context: Context? = null) {
return retrieveSong(token, song, uri) return retrieveSong(token, song, uri)
} }
fun fetchSongFile(token: Token, song: Song, uri: String): Song { fun fetchSongFile(token: Token, song: Song, uri: String) {
val downloadedSong = downloadSong(token, song, uri) downloadSong(token, song, uri)
return downloadedSong
} }