Implemented SQLite starting with saving the user's credentials. Next is to save the access token and then the host uri
This commit is contained in:
@@ -1,3 +1,6 @@
|
|||||||
[submodule "app/src/main/cpp/3rdparty/json"]
|
[submodule "app/src/main/cpp/3rdparty/json"]
|
||||||
path = app/src/main/cpp/3rdparty/json
|
path = app/src/main/cpp/3rdparty/json
|
||||||
url = https://github.com/nlohmann/json
|
url = https://github.com/nlohmann/json
|
||||||
|
[submodule "app/src/main/cpp/3rdparty/SQLiteCpp"]
|
||||||
|
path = app/src/main/cpp/3rdparty/SQLiteCpp
|
||||||
|
url = https://github.com/SRombauts/SQLiteCpp
|
||||||
|
|||||||
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.
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.
@@ -0,0 +1,2 @@
|
|||||||
|
#Sun Sep 29 21:26:55 EDT 2019
|
||||||
|
gradle.version=5.4.1
|
||||||
Binary file not shown.
Generated
BIN
Binary file not shown.
Generated
+2
@@ -2,6 +2,8 @@
|
|||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="VcsDirectoryMappings">
|
<component name="VcsDirectoryMappings">
|
||||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||||
|
<mapping directory="$PROJECT_DIR$/app/src/main/cpp/3rdparty/SQLiteCpp" vcs="Git" />
|
||||||
|
<mapping directory="$PROJECT_DIR$/app/src/main/cpp/3rdparty/SQLiteCpp/googletest" vcs="Git" />
|
||||||
<mapping directory="$PROJECT_DIR$/app/src/main/cpp/3rdparty/json" vcs="Git" />
|
<mapping directory="$PROJECT_DIR$/app/src/main/cpp/3rdparty/json" vcs="Git" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
||||||
Generated
+571
-139
@@ -107,19 +107,28 @@
|
|||||||
<last-search-timestamp>1564017826053</last-search-timestamp>
|
<last-search-timestamp>1564017826053</last-search-timestamp>
|
||||||
</component>
|
</component>
|
||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="a8334612-2e51-4ba4-b605-06a26be592d3" name="Default Changelist" comment="">
|
<list default="true" id="a8334612-2e51-4ba4-b605-06a26be592d3" name="Default Changelist" comment="Able to do a demo stream, not via jni but with android's media player">
|
||||||
|
<change afterPath="$PROJECT_DIR$/app/src/main/cpp/3rdparty/SQLiteCpp" afterDir="false" />
|
||||||
|
<change afterPath="$PROJECT_DIR$/app/src/main/cpp/BaseRepository.cpp" afterDir="false" />
|
||||||
|
<change afterPath="$PROJECT_DIR$/app/src/main/cpp/BaseRepository.h" afterDir="false" />
|
||||||
|
<change afterPath="$PROJECT_DIR$/app/src/main/cpp/TokenRepository.cpp" afterDir="false" />
|
||||||
|
<change afterPath="$PROJECT_DIR$/app/src/main/cpp/TokenRepository.h" afterDir="false" />
|
||||||
|
<change afterPath="$PROJECT_DIR$/app/src/main/cpp/UserRepository.cpp" afterDir="false" />
|
||||||
|
<change afterPath="$PROJECT_DIR$/app/src/main/cpp/UserRepository.h" afterDir="false" />
|
||||||
|
<change afterPath="$PROJECT_DIR$/app/src/main/cpp/model/Token.h" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/.gitmodules" beforeDir="false" afterPath="$PROJECT_DIR$/.gitmodules" 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" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/.idea/vcs.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/vcs.xml" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/app/app.iml" beforeDir="false" afterPath="$PROJECT_DIR$/app/app.iml" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/app/src/main/cpp/3rdparty/json" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/cpp/3rdparty/json" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/app/src/main/cpp/3rdparty/json" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/cpp/3rdparty/json" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/app/src/main/cpp/3rdparty/json/ChangeLog.md" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/cpp/3rdparty/json/ChangeLog.md" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/app/src/main/cpp/3rdparty/json/ChangeLog.md" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/cpp/3rdparty/json/ChangeLog.md" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/app/src/main/cpp/3rdparty/json/README.md" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/cpp/3rdparty/json/README.md" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/app/src/main/cpp/3rdparty/json/README.md" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/cpp/3rdparty/json/README.md" afterDir="false" />
|
||||||
<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/CMakeLists.txt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/cpp/CMakeLists.txt" 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/SongRepository.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/cpp/SongRepository.cpp" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/app/src/main/cpp/SongRepository.h" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/cpp/SongRepository.h" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/mear/activities/DemoStreamActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/mear/activities/DemoStreamActivity.kt" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/mear/activities/DemoStreamActivity.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/mear/activities/DemoStreamActivity.kt" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/app/src/main/java/com/example/mear/playback/service/MusicService.kt" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/java/com/example/mear/playback/service/MusicService.kt" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/content_demo_stream.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/content_demo_stream.xml" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/app/src/main/res/layout/content_demo_stream.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/layout/content_demo_stream.xml" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/app/src/main/res/values/strings.xml" beforeDir="false" afterPath="$PROJECT_DIR$/app/src/main/res/values/strings.xml" afterDir="false" />
|
||||||
</list>
|
</list>
|
||||||
<ignored path="$PROJECT_DIR$/.gradle/" />
|
<ignored path="$PROJECT_DIR$/.gradle/" />
|
||||||
<ignored path="$PROJECT_DIR$/build/classes/" />
|
<ignored path="$PROJECT_DIR$/build/classes/" />
|
||||||
@@ -183,7 +192,17 @@
|
|||||||
<component name="ExternalProjectsManager">
|
<component name="ExternalProjectsManager">
|
||||||
<system id="GRADLE">
|
<system id="GRADLE">
|
||||||
<state>
|
<state>
|
||||||
<projects_view />
|
<projects_view>
|
||||||
|
<tree_state>
|
||||||
|
<expand>
|
||||||
|
<path>
|
||||||
|
<item name="" type="6a2764b6:ExternalProjectsStructure$RootNode" />
|
||||||
|
<item name="mear" type="f1a62948:ProjectNode" />
|
||||||
|
</path>
|
||||||
|
</expand>
|
||||||
|
<select />
|
||||||
|
</tree_state>
|
||||||
|
</projects_view>
|
||||||
</state>
|
</state>
|
||||||
</system>
|
</system>
|
||||||
</component>
|
</component>
|
||||||
@@ -191,29 +210,30 @@
|
|||||||
<splitter split-orientation="horizontal" split-proportion="0.5">
|
<splitter split-orientation="horizontal" split-proportion="0.5">
|
||||||
<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">
|
||||||
|
<entry file="file://$PROJECT_DIR$/app/src/main/res/layout/content_demo_stream.xml">
|
||||||
|
<provider editor-type-id="android-designer2" />
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="414">
|
||||||
|
<caret line="58" column="45" selection-start-line="58" selection-start-column="45" selection-end-line="58" selection-end-column="45" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file pinned="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/app/src/main/res/layout/activity_demo_stream.xml">
|
||||||
|
<provider selected="true" editor-type-id="android-designer2" />
|
||||||
|
<provider editor-type-id="text-editor" />
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
<file pinned="false" current-in-tab="true">
|
<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="266">
|
|
||||||
<caret line="18" selection-start-line="18" selection-end-line="18" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file pinned="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/example/mear/activities/BaseServiceActivity.kt">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="5">
|
|
||||||
<caret line="38" column="26" selection-start-line="38" selection-start-column="26" selection-end-line="38" selection-end-column="26" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file pinned="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/example/mear/activities/DemoStreamActivity.kt">
|
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/example/mear/activities/DemoStreamActivity.kt">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="597">
|
<state relative-caret-position="184">
|
||||||
<caret line="77" selection-start-line="77" selection-end-line="77" />
|
<caret line="64" column="10" selection-start-line="64" selection-start-column="10" selection-end-line="64" selection-end-column="10" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#37#402#0" expanded="true" />
|
||||||
|
</folding>
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
@@ -221,7 +241,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="-433">
|
<state relative-caret-position="304">
|
||||||
<caret line="105" column="61" selection-start-line="105" selection-start-column="61" selection-end-line="105" selection-end-column="61" />
|
<caret line="105" column="61" selection-start-line="105" selection-start-column="61" selection-end-line="105" selection-end-column="61" />
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="e#37#1543#0" expanded="true" />
|
<element signature="e#37#1543#0" expanded="true" />
|
||||||
@@ -241,7 +261,7 @@
|
|||||||
<element signature="e#9761#10165#0" />
|
<element signature="e#9761#10165#0" />
|
||||||
<element signature="e#10202#10701#0" />
|
<element signature="e#10202#10701#0" />
|
||||||
<element signature="e#10741#11801#0" />
|
<element signature="e#10741#11801#0" />
|
||||||
<element signature="e#11863#12377#0" />
|
<element signature="e#11908#12272#0" />
|
||||||
<element signature="e#12428#12844#0" />
|
<element signature="e#12428#12844#0" />
|
||||||
<element signature="e#12894#13172#0" />
|
<element signature="e#12894#13172#0" />
|
||||||
</folding>
|
</folding>
|
||||||
@@ -249,39 +269,6 @@
|
|||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
<file pinned="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/Tok.cpp">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="1024">
|
|
||||||
<caret line="64" column="28" selection-start-line="64" selection-start-column="28" selection-end-line="64" selection-end-column="28" />
|
|
||||||
<folding>
|
|
||||||
<element signature="e#41#57#0" expanded="true" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file pinned="false" current-in-tab="false">
|
|
||||||
<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="397">
|
|
||||||
<caret line="324" selection-start-line="324" selection-end-line="324" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file pinned="false" current-in-tab="false">
|
|
||||||
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/example/mear/management/MusicFiles.kt">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="32">
|
|
||||||
<caret line="2" selection-start-line="2" selection-end-line="2" />
|
|
||||||
<folding>
|
|
||||||
<element signature="e#37#223#0" expanded="true" />
|
|
||||||
</folding>
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
</file>
|
|
||||||
<file pinned="false" current-in-tab="false">
|
<file pinned="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/SongRepository.h">
|
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/SongRepository.h">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
@@ -291,15 +278,11 @@
|
|||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
</leaf>
|
|
||||||
</split-first>
|
|
||||||
<split-second>
|
|
||||||
<leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
|
|
||||||
<file pinned="false" current-in-tab="false">
|
<file pinned="false" current-in-tab="false">
|
||||||
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/SongRepository.cpp">
|
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/BaseRepository.cpp">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="114">
|
<state relative-caret-position="568">
|
||||||
<caret line="10" column="22" selection-start-line="10" selection-start-column="22" selection-end-line="10" selection-end-column="22" />
|
<caret line="39" selection-start-line="39" selection-end-line="39" />
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="e#41#68#0" expanded="true" />
|
<element signature="e#41#68#0" expanded="true" />
|
||||||
</folding>
|
</folding>
|
||||||
@@ -307,11 +290,82 @@
|
|||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
</file>
|
</file>
|
||||||
|
<file pinned="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/UserRepository.cpp">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="264">
|
||||||
|
<caret line="23" column="48" selection-start-line="23" selection-start-column="48" selection-end-line="23" selection-end-column="48" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#41#68#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="true">
|
||||||
|
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/Demo.cpp">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="312">
|
||||||
|
<caret line="114" column="6" selection-start-line="114" selection-start-column="6" selection-end-line="114" selection-end-column="6" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#41#60#0" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file pinned="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/build.gradle">
|
||||||
|
<provider selected="true" editor-type-id="text-editor" />
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file pinned="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/app/build.gradle">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="368">
|
||||||
|
<caret line="23" column="26" selection-start-line="23" selection-start-column="26" selection-end-line="23" selection-end-column="26" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</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" />
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<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="160">
|
<state relative-caret-position="48">
|
||||||
<caret line="11" selection-start-line="11" selection-end-line="11" />
|
<caret line="18" column="72" selection-start-line="18" selection-start-column="72" selection-end-line="18" selection-end-column="72" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file pinned="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/UserRepository.h">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="299">
|
||||||
|
<caret line="19" column="61" selection-start-line="19" selection-start-column="61" selection-end-line="19" selection-end-column="61" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#102#119#0" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
</file>
|
||||||
|
<file pinned="false" current-in-tab="false">
|
||||||
|
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/BaseRepository.h">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="304">
|
||||||
|
<caret line="19" column="51" selection-start-line="19" selection-start-column="51" selection-end-line="19" selection-end-column="51" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#102#119#0" expanded="true" />
|
||||||
|
</folding>
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
@@ -350,13 +404,19 @@
|
|||||||
<option value="$PROJECT_DIR$/app/src/main/java/com/example/mear/Song.kt" />
|
<option value="$PROJECT_DIR$/app/src/main/java/com/example/mear/Song.kt" />
|
||||||
<option value="$PROJECT_DIR$/app/src/main/java/com/example/mear/models/Song.kt" />
|
<option value="$PROJECT_DIR$/app/src/main/java/com/example/mear/models/Song.kt" />
|
||||||
<option value="$PROJECT_DIR$/app/src/main/cpp/Tok.cpp" />
|
<option value="$PROJECT_DIR$/app/src/main/cpp/Tok.cpp" />
|
||||||
<option value="$PROJECT_DIR$/app/src/main/res/layout/content_demo_stream.xml" />
|
|
||||||
<option value="$PROJECT_DIR$/app/src/main/cpp/CMakeLists.txt" />
|
|
||||||
<option value="$PROJECT_DIR$/app/src/main/cpp/SongRepository.h" />
|
<option value="$PROJECT_DIR$/app/src/main/cpp/SongRepository.h" />
|
||||||
<option value="$PROJECT_DIR$/app/src/main/java/com/example/mear/activities/DemoStreamActivity.kt" />
|
|
||||||
<option value="$PROJECT_DIR$/app/src/main/java/com/example/mear/playback/service/MusicService.kt" />
|
<option value="$PROJECT_DIR$/app/src/main/java/com/example/mear/playback/service/MusicService.kt" />
|
||||||
<option value="$PROJECT_DIR$/app/src/main/cpp/SongRepository.cpp" />
|
<option value="$PROJECT_DIR$/app/src/main/cpp/SongRepository.cpp" />
|
||||||
|
<option value="$PROJECT_DIR$/app/src/main/cpp/Token.h" />
|
||||||
|
<option value="$PROJECT_DIR$/app/src/main/res/values/strings.xml" />
|
||||||
|
<option value="$PROJECT_DIR$/app/src/main/cpp/CMakeLists.txt" />
|
||||||
|
<option value="$PROJECT_DIR$/app/src/main/cpp/UserRepository.h" />
|
||||||
|
<option value="$PROJECT_DIR$/app/src/main/res/layout/content_demo_stream.xml" />
|
||||||
|
<option value="$PROJECT_DIR$/app/src/main/cpp/BaseRepository.h" />
|
||||||
|
<option value="$PROJECT_DIR$/app/src/main/cpp/BaseRepository.cpp" />
|
||||||
<option value="$PROJECT_DIR$/app/src/main/cpp/Demo.cpp" />
|
<option value="$PROJECT_DIR$/app/src/main/cpp/Demo.cpp" />
|
||||||
|
<option value="$PROJECT_DIR$/app/src/main/cpp/UserRepository.cpp" />
|
||||||
|
<option value="$PROJECT_DIR$/app/src/main/java/com/example/mear/activities/DemoStreamActivity.kt" />
|
||||||
</list>
|
</list>
|
||||||
</option>
|
</option>
|
||||||
</component>
|
</component>
|
||||||
@@ -371,20 +431,194 @@
|
|||||||
<foldersAlwaysOnTop value="true" />
|
<foldersAlwaysOnTop value="true" />
|
||||||
</navigator>
|
</navigator>
|
||||||
<panes>
|
<panes>
|
||||||
<pane id="Scope" />
|
<pane id="Scope">
|
||||||
<pane id="ProjectPane" />
|
<subPane subId="Scope 'Project Non-Source Files'; set:Project Non-Source Files; class com.jetbrains.cidr.lang.search.scopes.ProjectSourcesScopeProvider$NonSourceFilesScope">
|
||||||
<pane id="PackagesPane" />
|
<expand>
|
||||||
<pane id="AndroidView">
|
<path>
|
||||||
|
<item name="mear" type="3d21c010:ScopeViewTreeModel$ProjectNode" />
|
||||||
|
<item name="~/programming/kotlin/mear" type="442cc68d:ScopeViewTreeModel$RootNode" />
|
||||||
|
</path>
|
||||||
|
<path>
|
||||||
|
<item name="mear" type="3d21c010:ScopeViewTreeModel$ProjectNode" />
|
||||||
|
<item name="~/programming/kotlin/mear" type="442cc68d:ScopeViewTreeModel$RootNode" />
|
||||||
|
<item name="app" type="9f88c78c:ScopeViewTreeModel$FileNode" />
|
||||||
|
</path>
|
||||||
|
<path>
|
||||||
|
<item name="mear" type="3d21c010:ScopeViewTreeModel$ProjectNode" />
|
||||||
|
<item name="~/programming/kotlin/mear" type="442cc68d:ScopeViewTreeModel$RootNode" />
|
||||||
|
<item name="app" type="9f88c78c:ScopeViewTreeModel$FileNode" />
|
||||||
|
<item name="src" type="9f88c78c:ScopeViewTreeModel$FileNode" />
|
||||||
|
</path>
|
||||||
|
<path>
|
||||||
|
<item name="mear" type="3d21c010:ScopeViewTreeModel$ProjectNode" />
|
||||||
|
<item name="~/programming/kotlin/mear" type="442cc68d:ScopeViewTreeModel$RootNode" />
|
||||||
|
<item name="app" type="9f88c78c:ScopeViewTreeModel$FileNode" />
|
||||||
|
<item name="src" type="9f88c78c:ScopeViewTreeModel$FileNode" />
|
||||||
|
<item name="main" type="9f88c78c:ScopeViewTreeModel$FileNode" />
|
||||||
|
</path>
|
||||||
|
</expand>
|
||||||
|
<select />
|
||||||
|
</subPane>
|
||||||
|
<subPane subId="Scope 'Project Files'; set:Project Files; class com.intellij.psi.search.scope.ProjectFilesScope">
|
||||||
|
<expand>
|
||||||
|
<path>
|
||||||
|
<item name="mear" type="3d21c010:ScopeViewTreeModel$ProjectNode" />
|
||||||
|
<item name="~/programming/kotlin/mear" type="442cc68d:ScopeViewTreeModel$RootNode" />
|
||||||
|
</path>
|
||||||
|
<path>
|
||||||
|
<item name="mear" type="3d21c010:ScopeViewTreeModel$ProjectNode" />
|
||||||
|
<item name="~/programming/kotlin/mear" type="442cc68d:ScopeViewTreeModel$RootNode" />
|
||||||
|
<item name="app" type="9f88c78c:ScopeViewTreeModel$FileNode" />
|
||||||
|
</path>
|
||||||
|
<path>
|
||||||
|
<item name="mear" type="3d21c010:ScopeViewTreeModel$ProjectNode" />
|
||||||
|
<item name="~/programming/kotlin/mear" type="442cc68d:ScopeViewTreeModel$RootNode" />
|
||||||
|
<item name="app" type="9f88c78c:ScopeViewTreeModel$FileNode" />
|
||||||
|
<item name="src" type="9f88c78c:ScopeViewTreeModel$FileNode" />
|
||||||
|
</path>
|
||||||
|
<path>
|
||||||
|
<item name="mear" type="3d21c010:ScopeViewTreeModel$ProjectNode" />
|
||||||
|
<item name="~/programming/kotlin/mear" type="442cc68d:ScopeViewTreeModel$RootNode" />
|
||||||
|
<item name="app" type="9f88c78c:ScopeViewTreeModel$FileNode" />
|
||||||
|
<item name="src" type="9f88c78c:ScopeViewTreeModel$FileNode" />
|
||||||
|
<item name="main" type="9f88c78c:ScopeViewTreeModel$FileNode" />
|
||||||
|
</path>
|
||||||
|
<path>
|
||||||
|
<item name="mear" type="3d21c010:ScopeViewTreeModel$ProjectNode" />
|
||||||
|
<item name="~/programming/kotlin/mear" type="442cc68d:ScopeViewTreeModel$RootNode" />
|
||||||
|
<item name="app" type="9f88c78c:ScopeViewTreeModel$FileNode" />
|
||||||
|
<item name="src" type="9f88c78c:ScopeViewTreeModel$FileNode" />
|
||||||
|
<item name="main" type="9f88c78c:ScopeViewTreeModel$FileNode" />
|
||||||
|
<item name="cpp" type="9f88c78c:ScopeViewTreeModel$FileNode" />
|
||||||
|
</path>
|
||||||
|
<path>
|
||||||
|
<item name="mear" type="3d21c010:ScopeViewTreeModel$ProjectNode" />
|
||||||
|
<item name="~/programming/kotlin/mear" type="442cc68d:ScopeViewTreeModel$RootNode" />
|
||||||
|
<item name="build" type="9f88c78c:ScopeViewTreeModel$FileNode" />
|
||||||
|
</path>
|
||||||
|
<path>
|
||||||
|
<item name="mear" type="3d21c010:ScopeViewTreeModel$ProjectNode" />
|
||||||
|
<item name="~/programming/kotlin/mear" type="442cc68d:ScopeViewTreeModel$RootNode" />
|
||||||
|
<item name="build" type="9f88c78c:ScopeViewTreeModel$FileNode" />
|
||||||
|
<item name="kotlin" type="9f88c78c:ScopeViewTreeModel$FileNode" />
|
||||||
|
</path>
|
||||||
|
</expand>
|
||||||
|
<select />
|
||||||
|
</subPane>
|
||||||
|
</pane>
|
||||||
|
<pane id="AndroidView" />
|
||||||
|
<pane id="PackagesPane">
|
||||||
<subPane>
|
<subPane>
|
||||||
<expand>
|
<expand>
|
||||||
<path>
|
<path>
|
||||||
<item name="mear" type="1abcf292:AndroidViewProjectNode" />
|
<item name="mear" type="58d84e3e:PackageViewProjectNode" />
|
||||||
<item name="app" type="feadf853:AndroidModuleNode" />
|
<item name="app" type="616d4139:PackageViewModuleNode" />
|
||||||
|
</path>
|
||||||
|
</expand>
|
||||||
|
<select />
|
||||||
|
</subPane>
|
||||||
|
</pane>
|
||||||
|
<pane id="ProjectPane">
|
||||||
|
<subPane>
|
||||||
|
<expand>
|
||||||
|
<path>
|
||||||
|
<item name="mear" type="b2602c69:ProjectViewProjectNode" />
|
||||||
|
<item name="mear" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
|
||||||
</path>
|
</path>
|
||||||
<path>
|
<path>
|
||||||
<item name="mear" type="1abcf292:AndroidViewProjectNode" />
|
<item name="mear" type="b2602c69:ProjectViewProjectNode" />
|
||||||
<item name="app" type="feadf853:AndroidModuleNode" />
|
<item name="mear" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
|
||||||
<item name="cpp" type="9a30073f:AndroidJniFolderNode" />
|
<item name="app" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
|
||||||
|
</path>
|
||||||
|
<path>
|
||||||
|
<item name="mear" type="b2602c69:ProjectViewProjectNode" />
|
||||||
|
<item name="mear" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
|
||||||
|
<item name="app" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
|
||||||
|
<item name="build" 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" />
|
||||||
|
</path>
|
||||||
|
<path>
|
||||||
|
<item name="mear" type="b2602c69:ProjectViewProjectNode" />
|
||||||
|
<item name="mear" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
|
||||||
|
<item name="app" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
|
||||||
|
<item name="src" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="main" type="462c0819:PsiDirectoryNode" />
|
||||||
|
</path>
|
||||||
|
<path>
|
||||||
|
<item name="mear" type="b2602c69:ProjectViewProjectNode" />
|
||||||
|
<item name="mear" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
|
||||||
|
<item name="app" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
|
||||||
|
<item name="src" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="main" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="cpp" type="462c0819:PsiDirectoryNode" />
|
||||||
|
</path>
|
||||||
|
<path>
|
||||||
|
<item name="mear" type="b2602c69:ProjectViewProjectNode" />
|
||||||
|
<item name="mear" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
|
||||||
|
<item name="app" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
|
||||||
|
<item name="src" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="main" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="cpp" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="model" type="462c0819:PsiDirectoryNode" />
|
||||||
|
</path>
|
||||||
|
<path>
|
||||||
|
<item name="mear" type="b2602c69:ProjectViewProjectNode" />
|
||||||
|
<item name="mear" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
|
||||||
|
<item name="app" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
|
||||||
|
<item name="src" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="main" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="java" type="462c0819:PsiDirectoryNode" />
|
||||||
|
</path>
|
||||||
|
<path>
|
||||||
|
<item name="mear" type="b2602c69:ProjectViewProjectNode" />
|
||||||
|
<item name="mear" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
|
||||||
|
<item name="app" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
|
||||||
|
<item name="src" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="main" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="java" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="mear" type="462c0819:PsiDirectoryNode" />
|
||||||
|
</path>
|
||||||
|
<path>
|
||||||
|
<item name="mear" type="b2602c69:ProjectViewProjectNode" />
|
||||||
|
<item name="mear" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
|
||||||
|
<item name="app" type="8a07ba80:GradleTreeStructureProvider$GradleModuleDirectoryNode" />
|
||||||
|
<item name="src" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="main" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="java" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="mear" type="462c0819:PsiDirectoryNode" />
|
||||||
|
<item name="management" 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="layout" type="462c0819:PsiDirectoryNode" />
|
||||||
</path>
|
</path>
|
||||||
</expand>
|
</expand>
|
||||||
<select />
|
<select />
|
||||||
@@ -407,6 +641,10 @@
|
|||||||
<key name="MoveKotlinTopLevelDeclarationsDialog.RECENTS_KEY">
|
<key name="MoveKotlinTopLevelDeclarationsDialog.RECENTS_KEY">
|
||||||
<recent name="com.example.mear.models" />
|
<recent name="com.example.mear.models" />
|
||||||
</key>
|
</key>
|
||||||
|
<key name="MoveFile.RECENT_KEYS">
|
||||||
|
<recent name="$PROJECT_DIR$/app/src/main/cpp" />
|
||||||
|
<recent name="$PROJECT_DIR$/app/src/main/cpp/model" />
|
||||||
|
</key>
|
||||||
</component>
|
</component>
|
||||||
<component name="RunDashboard">
|
<component name="RunDashboard">
|
||||||
<option name="ruleStates">
|
<option name="ruleStates">
|
||||||
@@ -500,7 +738,14 @@
|
|||||||
<option name="project" value="LOCAL" />
|
<option name="project" value="LOCAL" />
|
||||||
<updated>1570311037656</updated>
|
<updated>1570311037656</updated>
|
||||||
</task>
|
</task>
|
||||||
<option name="localTasksCounter" value="2" />
|
<task id="LOCAL-00002" summary="Able to do a demo stream, not via jni but with android's media player. Need to integrate sqlite to save token, username, password, and uri">
|
||||||
|
<created>1570328051146</created>
|
||||||
|
<option name="number" value="00002" />
|
||||||
|
<option name="presentableId" value="LOCAL-00002" />
|
||||||
|
<option name="project" value="LOCAL" />
|
||||||
|
<updated>1570328051146</updated>
|
||||||
|
</task>
|
||||||
|
<option name="localTasksCounter" value="3" />
|
||||||
<servers />
|
<servers />
|
||||||
</component>
|
</component>
|
||||||
<component name="ToolWindowManager">
|
<component name="ToolWindowManager">
|
||||||
@@ -508,12 +753,12 @@
|
|||||||
<editor active="true" />
|
<editor active="true" />
|
||||||
<layout>
|
<layout>
|
||||||
<window_info id="Captures" order="0" side_tool="true" weight="0.25" />
|
<window_info id="Captures" order="0" side_tool="true" weight="0.25" />
|
||||||
<window_info content_ui="combo" id="Project" order="1" visible="true" weight="0.22198506" />
|
<window_info content_ui="combo" id="Project" order="1" weight="0.2217484" />
|
||||||
<window_info id="Structure" order="2" side_tool="true" />
|
<window_info id="Structure" order="2" side_tool="true" />
|
||||||
<window_info id="Build Variants" order="3" side_tool="true" />
|
<window_info id="Build Variants" order="3" side_tool="true" />
|
||||||
<window_info id="Image Layers" order="4" />
|
<window_info id="Image Layers" order="4" />
|
||||||
<window_info id="Designer" order="5" />
|
<window_info id="Designer" order="5" />
|
||||||
<window_info id="Resources Explorer" order="6" weight="0.32977587" />
|
<window_info id="Resources Explorer" order="6" weight="0.32942432" />
|
||||||
<window_info id="Capture Tool" order="7" />
|
<window_info id="Capture Tool" order="7" />
|
||||||
<window_info id="Favorites" order="8" side_tool="true" />
|
<window_info id="Favorites" order="8" side_tool="true" />
|
||||||
<window_info anchor="bottom" id="Version Control" order="0" />
|
<window_info anchor="bottom" id="Version Control" order="0" />
|
||||||
@@ -522,20 +767,21 @@
|
|||||||
<window_info anchor="bottom" id="Android Profiler" order="3" />
|
<window_info anchor="bottom" id="Android Profiler" order="3" />
|
||||||
<window_info anchor="bottom" id="Terminal" order="4" weight="0.32917964" />
|
<window_info anchor="bottom" id="Terminal" order="4" weight="0.32917964" />
|
||||||
<window_info anchor="bottom" id="Event Log" order="5" sideWeight="0.5010672" side_tool="true" weight="0.32917964" />
|
<window_info anchor="bottom" id="Event Log" order="5" sideWeight="0.5010672" side_tool="true" weight="0.32917964" />
|
||||||
<window_info anchor="bottom" id="Build" order="6" sideWeight="0.49893278" weight="0.3271028" />
|
<window_info anchor="bottom" id="Build" order="6" sideWeight="0.49893278" weight="0.32541323" />
|
||||||
<window_info anchor="bottom" id="Run" order="7" />
|
<window_info anchor="bottom" id="Run" order="7" />
|
||||||
<window_info active="true" anchor="bottom" id="Debug" order="8" sideWeight="0.49893278" visible="true" weight="0.32917964" />
|
<window_info active="true" anchor="bottom" id="Debug" order="8" sideWeight="0.49893278" visible="true" weight="0.3285124" />
|
||||||
<window_info anchor="right" id="Device File Explorer" order="0" side_tool="true" />
|
<window_info anchor="right" id="Device File Explorer" order="0" sideWeight="0.50153846" side_tool="true" weight="0.32995737" />
|
||||||
<window_info anchor="right" id="Capture Analysis" order="1" />
|
<window_info anchor="right" id="Capture Analysis" order="1" />
|
||||||
<window_info anchor="right" id="Gradle" order="2" />
|
<window_info anchor="right" id="Gradle" order="2" sideWeight="0.49846154" weight="0.32995737" />
|
||||||
<window_info anchor="right" id="Theme Preview" order="3" />
|
<window_info anchor="right" id="Theme Preview" order="3" />
|
||||||
<window_info anchor="right" id="Palette	" order="4" />
|
<window_info anchor="right" id="Palette	" order="4" />
|
||||||
<window_info active="true" anchor="right" id="Preview" order="5" visible="true" weight="0.32977587" />
|
<window_info anchor="right" id="Preview" order="5" weight="0.32942432" />
|
||||||
</layout>
|
</layout>
|
||||||
</component>
|
</component>
|
||||||
<component name="VcsManagerConfiguration">
|
<component name="VcsManagerConfiguration">
|
||||||
<MESSAGE value="JNI is wanky. Finally about to return an object from C++ to Java/Kotlin" />
|
<MESSAGE value="JNI is wanky. Finally about to return an object from C++ to Java/Kotlin" />
|
||||||
<option name="LAST_COMMIT_MESSAGE" value="JNI is wanky. Finally about to return an object from C++ to Java/Kotlin" />
|
<MESSAGE value="Able to do a demo stream, not via jni but with android's media player. Need to integrate sqlite to save token, username, password, and uri" />
|
||||||
|
<option name="LAST_COMMIT_MESSAGE" value="Able to do a demo stream, not via jni but with android's media player. Need to integrate sqlite to save token, username, password, and uri" />
|
||||||
</component>
|
</component>
|
||||||
<component name="XDebuggerManager">
|
<component name="XDebuggerManager">
|
||||||
<breakpoint-manager>
|
<breakpoint-manager>
|
||||||
@@ -548,21 +794,116 @@
|
|||||||
</line-breakpoint>
|
</line-breakpoint>
|
||||||
<line-breakpoint enabled="true" type="kotlin-line">
|
<line-breakpoint enabled="true" type="kotlin-line">
|
||||||
<url>file://$PROJECT_DIR$/app/src/main/java/com/example/mear/activities/DemoStreamActivity.kt</url>
|
<url>file://$PROJECT_DIR$/app/src/main/java/com/example/mear/activities/DemoStreamActivity.kt</url>
|
||||||
<line>76</line>
|
<line>87</line>
|
||||||
<properties />
|
<properties />
|
||||||
<option name="timeStamp" value="67" />
|
<option name="timeStamp" value="67" />
|
||||||
</line-breakpoint>
|
</line-breakpoint>
|
||||||
<line-breakpoint enabled="true" type="kotlin-line">
|
<line-breakpoint enabled="true" type="kotlin-line">
|
||||||
<url>file://$PROJECT_DIR$/app/src/main/java/com/example/mear/activities/DemoStreamActivity.kt</url>
|
<url>file://$PROJECT_DIR$/app/src/main/java/com/example/mear/activities/DemoStreamActivity.kt</url>
|
||||||
<line>68</line>
|
<line>75</line>
|
||||||
<properties />
|
<properties />
|
||||||
<option name="timeStamp" value="82" />
|
<option name="timeStamp" value="82" />
|
||||||
</line-breakpoint>
|
</line-breakpoint>
|
||||||
<line-breakpoint enabled="true" type="kotlin-line">
|
<line-breakpoint enabled="true" type="kotlin-line">
|
||||||
<url>file://$PROJECT_DIR$/app/src/main/java/com/example/mear/activities/DemoStreamActivity.kt</url>
|
<url>file://$PROJECT_DIR$/app/src/main/java/com/example/mear/activities/DemoStreamActivity.kt</url>
|
||||||
<line>71</line>
|
<line>83</line>
|
||||||
<properties />
|
<properties />
|
||||||
<option name="timeStamp" value="86" />
|
<option name="timeStamp" value="87" />
|
||||||
|
</line-breakpoint>
|
||||||
|
<line-breakpoint enabled="true" type="com.jetbrains.cidr.execution.debugger.OCBreakpointType">
|
||||||
|
<url>file://$PROJECT_DIR$/app/src/main/cpp/BaseRepository.cpp</url>
|
||||||
|
<line>56</line>
|
||||||
|
<option name="timeStamp" value="94" />
|
||||||
|
</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>107</line>
|
||||||
|
<option name="timeStamp" value="95" />
|
||||||
|
</line-breakpoint>
|
||||||
|
<line-breakpoint enabled="true" type="com.jetbrains.cidr.execution.debugger.OCBreakpointType">
|
||||||
|
<url>file://$PROJECT_DIR$/app/src/main/cpp/BaseRepository.cpp</url>
|
||||||
|
<line>20</line>
|
||||||
|
<option name="timeStamp" value="96" />
|
||||||
|
</line-breakpoint>
|
||||||
|
<line-breakpoint enabled="true" type="com.jetbrains.cidr.execution.debugger.OCBreakpointType">
|
||||||
|
<url>file://$PROJECT_DIR$/app/src/main/cpp/BaseRepository.cpp</url>
|
||||||
|
<line>30</line>
|
||||||
|
<option name="timeStamp" value="101" />
|
||||||
|
</line-breakpoint>
|
||||||
|
<line-breakpoint enabled="true" type="com.jetbrains.cidr.execution.debugger.OCBreakpointType">
|
||||||
|
<url>file://$PROJECT_DIR$/app/src/main/cpp/UserRepository.cpp</url>
|
||||||
|
<line>49</line>
|
||||||
|
<option name="timeStamp" value="102" />
|
||||||
|
</line-breakpoint>
|
||||||
|
<line-breakpoint enabled="true" type="com.jetbrains.cidr.execution.debugger.OCBreakpointType">
|
||||||
|
<url>file://$PROJECT_DIR$/app/src/main/cpp/UserRepository.cpp</url>
|
||||||
|
<line>55</line>
|
||||||
|
<option name="timeStamp" value="103" />
|
||||||
|
</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>111</line>
|
||||||
|
<option name="timeStamp" value="104" />
|
||||||
|
</line-breakpoint>
|
||||||
|
<line-breakpoint enabled="true" type="com.jetbrains.cidr.execution.debugger.OCBreakpointType">
|
||||||
|
<url>file://$PROJECT_DIR$/app/src/main/cpp/UserRepository.cpp</url>
|
||||||
|
<line>74</line>
|
||||||
|
<option name="timeStamp" value="105" />
|
||||||
|
</line-breakpoint>
|
||||||
|
<line-breakpoint enabled="true" type="com.jetbrains.cidr.execution.debugger.OCBreakpointType">
|
||||||
|
<url>file://$PROJECT_DIR$/app/src/main/cpp/UserRepository.cpp</url>
|
||||||
|
<line>65</line>
|
||||||
|
<option name="timeStamp" value="106" />
|
||||||
|
</line-breakpoint>
|
||||||
|
<line-breakpoint enabled="true" type="com.jetbrains.cidr.execution.debugger.OCBreakpointType">
|
||||||
|
<url>file://$PROJECT_DIR$/app/src/main/cpp/UserRepository.cpp</url>
|
||||||
|
<line>94</line>
|
||||||
|
<option name="timeStamp" value="108" />
|
||||||
|
</line-breakpoint>
|
||||||
|
<line-breakpoint enabled="true" type="com.jetbrains.cidr.execution.debugger.OCBreakpointType">
|
||||||
|
<url>file://$PROJECT_DIR$/app/src/main/cpp/UserRepository.cpp</url>
|
||||||
|
<line>19</line>
|
||||||
|
<option name="timeStamp" value="109" />
|
||||||
|
</line-breakpoint>
|
||||||
|
<line-breakpoint enabled="true" type="com.jetbrains.cidr.execution.debugger.OCBreakpointType">
|
||||||
|
<url>file://$PROJECT_DIR$/app/src/main/cpp/UserRepository.cpp</url>
|
||||||
|
<line>39</line>
|
||||||
|
<option name="timeStamp" value="110" />
|
||||||
|
</line-breakpoint>
|
||||||
|
<line-breakpoint enabled="true" type="com.jetbrains.cidr.execution.debugger.OCBreakpointType">
|
||||||
|
<url>file://$PROJECT_DIR$/app/src/main/cpp/UserRepository.cpp</url>
|
||||||
|
<line>81</line>
|
||||||
|
<option name="timeStamp" value="112" />
|
||||||
|
</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>109</line>
|
||||||
|
<option name="timeStamp" value="113" />
|
||||||
|
</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>112</line>
|
||||||
|
<option name="timeStamp" value="114" />
|
||||||
|
</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>114</line>
|
||||||
|
<option name="timeStamp" value="115" />
|
||||||
|
</line-breakpoint>
|
||||||
|
<line-breakpoint enabled="true" type="com.jetbrains.cidr.execution.debugger.OCBreakpointType">
|
||||||
|
<url>file://$PROJECT_DIR$/app/src/main/cpp/BaseRepository.cpp</url>
|
||||||
|
<line>37</line>
|
||||||
|
<option name="timeStamp" value="117" />
|
||||||
|
</line-breakpoint>
|
||||||
|
<line-breakpoint enabled="true" type="com.jetbrains.cidr.execution.debugger.OCBreakpointType">
|
||||||
|
<url>file://$PROJECT_DIR$/app/src/main/cpp/BaseRepository.cpp</url>
|
||||||
|
<line>16</line>
|
||||||
|
<option name="timeStamp" value="123" />
|
||||||
|
</line-breakpoint>
|
||||||
|
<line-breakpoint enabled="true" type="com.jetbrains.cidr.execution.debugger.OCBreakpointType">
|
||||||
|
<url>file://$PROJECT_DIR$/app/src/main/cpp/UserRepository.cpp</url>
|
||||||
|
<line>26</line>
|
||||||
|
<option name="timeStamp" value="125" />
|
||||||
</line-breakpoint>
|
</line-breakpoint>
|
||||||
</breakpoints>
|
</breakpoints>
|
||||||
</breakpoint-manager>
|
</breakpoint-manager>
|
||||||
@@ -576,10 +917,6 @@
|
|||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/app/src/main/res/layout/activity_demo_stream.xml">
|
|
||||||
<provider editor-type-id="text-editor" />
|
|
||||||
<provider selected="true" editor-type-id="android-designer2" />
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$USER_HOME$/Android/Sdk/ndk/20.0.5594570/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory">
|
<entry file="file://$USER_HOME$/Android/Sdk/ndk/20.0.5594570/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/include/c++/v1/memory">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="206">
|
<state relative-caret-position="206">
|
||||||
@@ -653,10 +990,6 @@
|
|||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/app/src/main/res/layout/content_demo_stream.xml">
|
|
||||||
<provider editor-type-id="text-editor" />
|
|
||||||
<provider selected="true" editor-type-id="android-designer2" />
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$USER_HOME$/Android/Sdk/sources/android-28/android/content/ContextWrapper.java">
|
<entry file="file://$USER_HOME$/Android/Sdk/sources/android-28/android/content/ContextWrapper.java">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="206">
|
<state relative-caret-position="206">
|
||||||
@@ -727,9 +1060,37 @@
|
|||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/example/mear/activities/BaseServiceActivity.kt">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="416">
|
||||||
|
<caret line="38" column="26" selection-start-line="38" selection-start-column="26" selection-end-line="38" selection-end-column="26" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/Tok.cpp">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="1024">
|
||||||
|
<caret line="64" column="28" selection-start-line="64" selection-start-column="28" selection-end-line="64" selection-end-column="28" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#41#57#0" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$USER_HOME$/AndroidStudio/DeviceExplorer/motorola-moto_e__4__plus-ZY2248HP8X/data/data/com.example.mear/databases/Mear" />
|
||||||
|
<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="-1318">
|
||||||
|
<caret line="9" column="6" selection-start-line="9" selection-start-column="6" selection-end-line="9" selection-end-column="6" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#39#172#0" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/example/mear/management/TrackManager.kt">
|
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/example/mear/management/TrackManager.kt">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="-2113">
|
<state relative-caret-position="-2048">
|
||||||
<caret line="18" column="6" selection-start-line="18" selection-start-column="6" selection-end-line="18" selection-end-column="6" />
|
<caret line="18" column="6" selection-start-line="18" selection-start-column="6" selection-end-line="18" selection-end-column="6" />
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="e#37#545#0" expanded="true" />
|
<element signature="e#37#545#0" expanded="true" />
|
||||||
@@ -737,6 +1098,16 @@
|
|||||||
</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" />
|
||||||
|
</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="571">
|
||||||
|
<caret line="324" selection-start-line="324" selection-end-line="324" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/example/mear/management/MusicFiles.kt">
|
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/example/mear/management/MusicFiles.kt">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="32">
|
<state relative-caret-position="32">
|
||||||
@@ -747,30 +1118,22 @@
|
|||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/SongRepository.h">
|
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/TokenRepository.cpp">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor" />
|
||||||
<state relative-caret-position="272">
|
|
||||||
<caret line="20" column="90" selection-start-line="20" selection-start-column="90" selection-end-line="20" selection-end-column="90" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/example/mear/playback/service/MusicService.kt">
|
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/TokenRepository.h">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor" />
|
||||||
<state relative-caret-position="397">
|
|
||||||
<caret line="324" selection-start-line="324" selection-end-line="324" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/example/mear/activities/BaseServiceActivity.kt">
|
<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="5">
|
<state relative-caret-position="16">
|
||||||
<caret line="38" column="26" selection-start-line="38" selection-start-column="26" selection-end-line="38" selection-end-column="26" />
|
<caret line="1" column="17" selection-start-line="1" selection-start-column="17" selection-end-line="1" selection-end-column="17" />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<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="-433">
|
<state relative-caret-position="304">
|
||||||
<caret line="105" column="61" selection-start-line="105" selection-start-column="61" selection-end-line="105" selection-end-column="61" />
|
<caret line="105" column="61" selection-start-line="105" selection-start-column="61" selection-end-line="105" selection-end-column="61" />
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="e#37#1543#0" expanded="true" />
|
<element signature="e#37#1543#0" expanded="true" />
|
||||||
@@ -790,23 +1153,16 @@
|
|||||||
<element signature="e#9761#10165#0" />
|
<element signature="e#9761#10165#0" />
|
||||||
<element signature="e#10202#10701#0" />
|
<element signature="e#10202#10701#0" />
|
||||||
<element signature="e#10741#11801#0" />
|
<element signature="e#10741#11801#0" />
|
||||||
<element signature="e#11863#12377#0" />
|
<element signature="e#11908#12272#0" />
|
||||||
<element signature="e#12428#12844#0" />
|
<element signature="e#12428#12844#0" />
|
||||||
<element signature="e#12894#13172#0" />
|
<element signature="e#12894#13172#0" />
|
||||||
</folding>
|
</folding>
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/example/mear/activities/DemoStreamActivity.kt">
|
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
|
||||||
<state relative-caret-position="597">
|
|
||||||
<caret line="77" selection-start-line="77" selection-end-line="77" />
|
|
||||||
</state>
|
|
||||||
</provider>
|
|
||||||
</entry>
|
|
||||||
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/SongRepository.cpp">
|
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/SongRepository.cpp">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="114">
|
<state relative-caret-position="-32">
|
||||||
<caret line="10" column="22" selection-start-line="10" selection-start-column="22" selection-end-line="10" selection-end-column="22" />
|
<caret line="10" column="22" selection-start-line="10" selection-start-column="22" selection-end-line="10" selection-end-column="22" />
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="e#41#68#0" expanded="true" />
|
<element signature="e#41#68#0" expanded="true" />
|
||||||
@@ -814,8 +1170,19 @@
|
|||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/build.gradle">
|
<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="48">
|
||||||
|
<caret line="18" column="72" selection-start-line="18" selection-start-column="72" selection-end-line="18" selection-end-column="72" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/model/Token.h">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="80">
|
||||||
|
<caret line="5" column="19" selection-start-line="5" selection-start-column="19" selection-end-line="5" selection-end-column="19" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/app/build.gradle">
|
<entry file="file://$PROJECT_DIR$/app/build.gradle">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
@@ -824,27 +1191,92 @@
|
|||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/CMakeLists.txt">
|
<entry file="file://$PROJECT_DIR$/build.gradle">
|
||||||
|
<provider selected="true" editor-type-id="text-editor" />
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/example/mear/management/DatabaseManager.kt">
|
||||||
<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="16">
|
||||||
<caret line="11" selection-start-line="11" selection-end-line="11" />
|
<caret line="14" column="6" selection-start-line="14" selection-start-column="6" selection-end-line="14" selection-end-column="6" />
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/Tok.cpp">
|
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/UserRepository.h">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="1024">
|
<state relative-caret-position="299">
|
||||||
<caret line="64" column="28" selection-start-line="64" selection-start-column="28" selection-end-line="64" selection-end-column="28" />
|
<caret line="19" column="61" selection-start-line="19" selection-start-column="61" selection-end-line="19" selection-end-column="61" />
|
||||||
<folding>
|
<folding>
|
||||||
<element signature="e#41#57#0" expanded="true" />
|
<element signature="e#102#119#0" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/app/src/main/res/layout/activity_demo_stream.xml">
|
||||||
|
<provider selected="true" editor-type-id="android-designer2" />
|
||||||
|
<provider editor-type-id="text-editor" />
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/app/src/main/res/layout/content_demo_stream.xml">
|
||||||
|
<provider editor-type-id="android-designer2" />
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="414">
|
||||||
|
<caret line="58" column="45" selection-start-line="58" selection-start-column="45" selection-end-line="58" selection-end-column="45" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/SongRepository.h">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="272">
|
||||||
|
<caret line="20" column="90" selection-start-line="20" selection-start-column="90" selection-end-line="20" selection-end-column="90" />
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/BaseRepository.h">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="304">
|
||||||
|
<caret line="19" column="51" selection-start-line="19" selection-start-column="51" selection-end-line="19" selection-end-column="51" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#102#119#0" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/BaseRepository.cpp">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="568">
|
||||||
|
<caret line="39" selection-start-line="39" selection-end-line="39" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#41#68#0" expanded="true" />
|
||||||
</folding>
|
</folding>
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/Demo.cpp">
|
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/Demo.cpp">
|
||||||
<provider selected="true" editor-type-id="text-editor">
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
<state relative-caret-position="266">
|
<state relative-caret-position="312">
|
||||||
<caret line="18" selection-start-line="18" selection-end-line="18" />
|
<caret line="114" column="6" selection-start-line="114" selection-start-column="6" selection-end-line="114" selection-end-column="6" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#41#60#0" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/app/src/main/cpp/UserRepository.cpp">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="264">
|
||||||
|
<caret line="23" column="48" selection-start-line="23" selection-start-column="48" selection-end-line="23" selection-end-column="48" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#41#68#0" expanded="true" />
|
||||||
|
</folding>
|
||||||
|
</state>
|
||||||
|
</provider>
|
||||||
|
</entry>
|
||||||
|
<entry file="file://$PROJECT_DIR$/app/src/main/java/com/example/mear/activities/DemoStreamActivity.kt">
|
||||||
|
<provider selected="true" editor-type-id="text-editor">
|
||||||
|
<state relative-caret-position="184">
|
||||||
|
<caret line="64" column="10" selection-start-line="64" selection-start-column="10" selection-end-line="64" selection-end-column="10" />
|
||||||
|
<folding>
|
||||||
|
<element signature="e#37#402#0" expanded="true" />
|
||||||
|
</folding>
|
||||||
</state>
|
</state>
|
||||||
</provider>
|
</provider>
|
||||||
</entry>
|
</entry>
|
||||||
|
|||||||
@@ -64,6 +64,9 @@
|
|||||||
<output-test url="file://$MODULE_DIR$/build/intermediates/javac/debugUnitTest/classes" />
|
<output-test url="file://$MODULE_DIR$/build/intermediates/javac/debugUnitTest/classes" />
|
||||||
<exclude-output />
|
<exclude-output />
|
||||||
<content url="file://$MODULE_DIR$">
|
<content url="file://$MODULE_DIR$">
|
||||||
|
<sourceFolder url="file://$MODULE_DIR$/src/main/cpp/3rdparty/SQLiteCpp/sqlite3" isTestSource="false" />
|
||||||
|
<sourceFolder url="file://$MODULE_DIR$/src/main/cpp/3rdparty/SQLiteCpp" isTestSource="false" />
|
||||||
|
<sourceFolder url="file://$MODULE_DIR$/src/main/cpp/3rdparty/SQLiteCpp/src" isTestSource="false" />
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/main/cpp" isTestSource="false" />
|
<sourceFolder url="file://$MODULE_DIR$/src/main/cpp" isTestSource="false" />
|
||||||
<sourceFolder url="file://$MODULE_DIR$/build/generated/ap_generated_sources/debug/out" isTestSource="false" generated="true" />
|
<sourceFolder url="file://$MODULE_DIR$/build/generated/ap_generated_sources/debug/out" isTestSource="false" generated="true" />
|
||||||
<sourceFolder url="file://$MODULE_DIR$/build/generated/aidl_source_output_dir/debug/compileDebugAidl/out" isTestSource="false" generated="true" />
|
<sourceFolder url="file://$MODULE_DIR$/build/generated/aidl_source_output_dir/debug/compileDebugAidl/out" isTestSource="false" generated="true" />
|
||||||
|
|||||||
+1
Submodule app/src/main/cpp/3rdparty/SQLiteCpp added at 629497ed60
@@ -0,0 +1,75 @@
|
|||||||
|
//
|
||||||
|
// Created by brahmix on 10/6/19.
|
||||||
|
//
|
||||||
|
|
||||||
|
#include "BaseRepository.h"
|
||||||
|
|
||||||
|
#include <fstream>
|
||||||
|
|
||||||
|
#include <SQLiteCpp/SQLiteCpp.h>
|
||||||
|
|
||||||
|
namespace repository { namespace local {
|
||||||
|
bool BaseRepository::databaseExist(const std::string& appPath)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
const auto dbPath = pathOfDatabase(appPath);
|
||||||
|
|
||||||
|
SQLite::Database db(dbPath, SQLite::OPEN_READONLY);
|
||||||
|
//SQLite::Database db(m_tableName, SQLite::OPEN_READONLY);
|
||||||
|
return true;
|
||||||
|
} catch (std::exception& ex) {
|
||||||
|
auto msg = ex.what();
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool BaseRepository::isTableEmpty(const std::string& appPath)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
const auto dbPath = pathOfDatabase(appPath);
|
||||||
|
SQLite::Database db(dbPath, SQLite::OPEN_READONLY);
|
||||||
|
std::string queryStr("SELECT * FROM ");
|
||||||
|
queryStr.append(m_tableName);
|
||||||
|
|
||||||
|
SQLite::Statement query(db, queryStr);
|
||||||
|
|
||||||
|
return query.hasRow();
|
||||||
|
} catch (std::exception& ex) {
|
||||||
|
auto msg = ex.what();
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void BaseRepository::initializedDatabase(const std::string& appPath)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
const auto dbPath = pathOfDatabase(appPath);
|
||||||
|
//std::fstream cret(dbPath, std::ios::out);
|
||||||
|
//cret.close();
|
||||||
|
|
||||||
|
SQLite::Database db(dbPath, SQLite::OPEN_CREATE | SQLite::OPEN_READWRITE);
|
||||||
|
//SQLite::Database db(m_tableName, SQLite::OPEN_CREATE);
|
||||||
|
} catch (std::exception& ex) {
|
||||||
|
auto msg = ex.what();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
std::string BaseRepository::pathOfDatabase(const std::string& appPath)
|
||||||
|
{
|
||||||
|
std::string dbPath(appPath);
|
||||||
|
auto lastChar = dbPath.at(dbPath.size()-1);
|
||||||
|
if (lastChar != '/') {
|
||||||
|
dbPath.append("/");
|
||||||
|
}
|
||||||
|
|
||||||
|
dbPath.append(m_databaseName);
|
||||||
|
|
||||||
|
return dbPath;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}}
|
||||||
@@ -0,0 +1,28 @@
|
|||||||
|
//
|
||||||
|
// Created by brahmix on 10/6/19.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef MEAR_BASEREPOSITORY_H
|
||||||
|
#define MEAR_BASEREPOSITORY_H
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
#include <exception>
|
||||||
|
|
||||||
|
namespace repository { namespace local {
|
||||||
|
class BaseRepository {
|
||||||
|
public:
|
||||||
|
bool databaseExist(const std::string&);
|
||||||
|
bool isTableEmpty(const std::string&);
|
||||||
|
|
||||||
|
void initializedDatabase(const std::string&);
|
||||||
|
protected:
|
||||||
|
std::string pathOfDatabase(const std::string&);
|
||||||
|
|
||||||
|
const std::string m_databaseName = "mear.db3";
|
||||||
|
std::string m_tableName;
|
||||||
|
private:
|
||||||
|
};
|
||||||
|
} }
|
||||||
|
|
||||||
|
|
||||||
|
#endif //MEAR_BASEREPOSITORY_H
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
# Sets the minimum version of CMake required to build the native library.
|
# Sets the minimum version of CMake required to build the native library.
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 3.4.1)
|
cmake_minimum_required(VERSION 3.6.0)
|
||||||
|
|
||||||
# Creates and names a library, sets it as either STATIC
|
# Creates and names a library, sets it as either STATIC
|
||||||
# or SHARED, and provides the relative paths to its source code.
|
# or SHARED, and provides the relative paths to its source code.
|
||||||
@@ -14,24 +14,35 @@ cmake_minimum_required(VERSION 3.4.1)
|
|||||||
# set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
|
# set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH)
|
||||||
|
|
||||||
set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-std=c++17")
|
set(CMAKE_CXX11_EXTENSION_COMPILE_OPTION "-std=c++17")
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17")
|
||||||
|
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS} -g -O0 -std=c++17")
|
||||||
|
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} -O3 -std=c++17 -DNDEBUG")
|
||||||
|
|
||||||
set (SOURCES
|
set (SOURCES
|
||||||
|
BaseRepository.cpp
|
||||||
Demo.cpp
|
Demo.cpp
|
||||||
SongRepository.cpp
|
SongRepository.cpp
|
||||||
Tok.cpp
|
Tok.cpp
|
||||||
|
TokenRepository.cpp
|
||||||
|
UserRepository.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
set (HEADERS
|
set (HEADERS
|
||||||
|
BaseRepository.h
|
||||||
model/Song.h
|
model/Song.h
|
||||||
|
model/Token.h
|
||||||
model/User.h
|
model/User.h
|
||||||
SongRepository.h
|
SongRepository.h
|
||||||
Tok.h
|
Tok.h
|
||||||
|
TokenRepository.h
|
||||||
|
UserRepository.h
|
||||||
)
|
)
|
||||||
|
|
||||||
set(JSON_BuildTests OFF CACHE INTERNAL "")
|
set(JSON_BuildTests OFF CACHE INTERNAL "")
|
||||||
|
|
||||||
|
|
||||||
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/json)
|
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/json)
|
||||||
|
add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/3rdparty/SQLiteCpp)
|
||||||
|
|
||||||
|
|
||||||
add_library(native-lib SHARED
|
add_library(native-lib SHARED
|
||||||
@@ -42,12 +53,6 @@ add_library(native-lib SHARED
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
# Searches for a specified prebuilt library and stores the path as a
|
|
||||||
# variable. Because CMake includes system libraries in the search path by
|
|
||||||
# default, you only need to specify the name of the public NDK library
|
|
||||||
# you want to add. CMake verifies that the library exists before
|
|
||||||
# completing its build.
|
|
||||||
|
|
||||||
find_library(log-lib
|
find_library(log-lib
|
||||||
# Specifies the name of the NDK library that
|
# Specifies the name of the NDK library that
|
||||||
# you want CMake to locate.
|
# you want CMake to locate.
|
||||||
@@ -59,39 +64,33 @@ set (CURL_LIBRARY
|
|||||||
${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/android/${ANDROID_ABI}
|
${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/android/${ANDROID_ABI}
|
||||||
)
|
)
|
||||||
|
|
||||||
set (BASS_LIBRARY
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/bass/${ANDROID_ABI}
|
|
||||||
)
|
|
||||||
|
|
||||||
set (CURL_INCLUDE_DIR
|
set (CURL_INCLUDE_DIR
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/android/include/curl
|
${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/android/include/curl
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/android/include
|
${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/android/include
|
||||||
)
|
)
|
||||||
set (BASS_INCLUDE_DIR
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/bass/include
|
set(SQLITECPP_INCLUDE
|
||||||
|
${CMAKE_CURRENT_LIST_DIR}/3rdparty/SQLiteCpp/include
|
||||||
)
|
)
|
||||||
|
|
||||||
add_library(boo STATIC IMPORTED)
|
add_library(boo STATIC IMPORTED)
|
||||||
#add_library(bass SHARED IMPORTED)
|
|
||||||
|
|
||||||
set_target_properties(boo PROPERTIES IMPORTED_LOCATION
|
set_target_properties(boo PROPERTIES IMPORTED_LOCATION
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/android/${ANDROID_ABI}/libcurl.a"
|
"${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/android/${ANDROID_ABI}/libcurl.a"
|
||||||
)
|
)
|
||||||
#set_target_properties(bass PROPERTIES IMPORTED_LOCATION
|
|
||||||
# "${CMAKE_CURRENT_SOURCE_DIR}/3rdparty/bass/${ANDROID_ABI}/libbass.so"
|
|
||||||
# )
|
|
||||||
|
|
||||||
include_directories(${CURL_INCLUDE_DIR}) #${BASS_INCLUDE_DIR})
|
include_directories(${CURL_INCLUDE_DIR} ${SQLITECPP_INCLUDE}) #${BASS_INCLUDE_DIR})
|
||||||
|
|
||||||
# Specifies libraries CMake should link to your target library. You
|
|
||||||
# can link multiple libraries, such as libraries you define in this
|
|
||||||
# build script, prebuilt third-party libraries, or system libraries.
|
|
||||||
|
|
||||||
target_link_libraries(native-lib PRIVATE
|
target_link_libraries(native-lib PRIVATE
|
||||||
|
|
||||||
nlohmann_json::nlohmann_json
|
nlohmann_json::nlohmann_json
|
||||||
boo
|
boo
|
||||||
#bass
|
#bass
|
||||||
|
SQLiteCpp
|
||||||
|
sqlite3
|
||||||
|
#pthread
|
||||||
|
dl
|
||||||
${log-lib}
|
${log-lib}
|
||||||
z
|
z
|
||||||
)
|
)
|
||||||
@@ -3,12 +3,15 @@
|
|||||||
//
|
//
|
||||||
|
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
#include <fstream>
|
||||||
|
#include <sstream>
|
||||||
#include <filesystem>
|
#include <filesystem>
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
#include <jni.h>
|
#include <jni.h>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <iomanip>
|
#include <iomanip>
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
#include <vector>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
|
|
||||||
#include <android/asset_manager_jni.h>
|
#include <android/asset_manager_jni.h>
|
||||||
@@ -18,17 +21,21 @@
|
|||||||
|
|
||||||
#include <nlohmann/json.hpp>
|
#include <nlohmann/json.hpp>
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
|
#include <sqlite3.h>
|
||||||
|
|
||||||
#include "model/Song.h"
|
#include "model/Song.h"
|
||||||
#include "model/User.h"
|
#include "model/User.h"
|
||||||
#include "SongRepository.h"
|
#include "SongRepository.h"
|
||||||
#include "Tok.h"
|
#include "Tok.h"
|
||||||
|
#include "UserRepository.h"
|
||||||
|
|
||||||
|
|
||||||
model::Song retrieveSong(const std::string&, const std::string&);
|
model::Song retrieveSong(const std::string&, const std::string&);
|
||||||
|
|
||||||
std::string fetchToken(const std::string&, const std::string&, const std::string&);
|
std::string fetchToken(const std::string&, const std::string&, const std::string&);
|
||||||
|
|
||||||
|
void saveCredentials(const model::User&, const std::string&);
|
||||||
|
|
||||||
|
|
||||||
model::Song retrieveSong(const std::string& token, const std::string& baseUri)
|
model::Song retrieveSong(const std::string& token, const std::string& baseUri)
|
||||||
{
|
{
|
||||||
@@ -76,6 +83,26 @@ void iterateDirectory(const std::string& path)
|
|||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void saveCredentials(const model::User& user, const std::string& appDirectory)
|
||||||
|
{
|
||||||
|
std::string filePath(appDirectory);
|
||||||
|
filePath.append("/");
|
||||||
|
repository::local::UserRepository userRepo;
|
||||||
|
|
||||||
|
if (!userRepo.databaseExist(filePath)) {
|
||||||
|
userRepo.initializedDatabase(filePath);
|
||||||
|
}
|
||||||
|
if (!userRepo.doesUserTableExist(filePath)) {
|
||||||
|
userRepo.createUserTable(filePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (userRepo.isTableEmpty(filePath)) {
|
||||||
|
userRepo.deleteUserTable(filePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
userRepo.saveUserCred(user, filePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
extern "C"
|
extern "C"
|
||||||
JNIEXPORT jstring
|
JNIEXPORT jstring
|
||||||
@@ -143,7 +170,6 @@ Java_com_example_mear_activities_DemoStreamActivity_retrieveSong(
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
extern "C"
|
extern "C"
|
||||||
JNIEXPORT void
|
JNIEXPORT void
|
||||||
JNICALL
|
JNICALL
|
||||||
@@ -156,3 +182,26 @@ Java_com_example_mear_activities_DemoStreamActivity_pathIteratorDemo(
|
|||||||
const std::string pathStr = env->GetStringUTFChars(path, NULL);
|
const std::string pathStr = env->GetStringUTFChars(path, NULL);
|
||||||
iterateDirectory(pathStr);
|
iterateDirectory(pathStr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
extern "C"
|
||||||
|
JNIEXPORT void
|
||||||
|
JNICALL
|
||||||
|
Java_com_example_mear_activities_DemoStreamActivity_saveUserCredentials(
|
||||||
|
JNIEnv *env,
|
||||||
|
jobject thisObj,
|
||||||
|
jstring username,
|
||||||
|
jstring password,
|
||||||
|
jstring appDirectory
|
||||||
|
) {
|
||||||
|
|
||||||
|
const std::string usernameStr = env->GetStringUTFChars(username, NULL);
|
||||||
|
const std::string passwordStr = env->GetStringUTFChars(password, NULL);
|
||||||
|
const std::string appDirectoryStr = env->GetStringUTFChars(appDirectory, NULL);
|
||||||
|
|
||||||
|
model::User user;
|
||||||
|
user.username = usernameStr;
|
||||||
|
user.password = passwordStr;
|
||||||
|
|
||||||
|
saveCredentials(user, appDirectoryStr);
|
||||||
|
}
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
//
|
||||||
|
// Created by brahmix on 10/6/19.
|
||||||
|
//
|
||||||
|
|
||||||
|
#include "TokenRepository.h"
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
//
|
||||||
|
// Created by brahmix on 10/6/19.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef MEAR_TOKENREPOSITORY_H
|
||||||
|
#define MEAR_TOKENREPOSITORY_H
|
||||||
|
|
||||||
|
|
||||||
|
class TokenRepository {
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
#endif //MEAR_TOKENREPOSITORY_H
|
||||||
@@ -0,0 +1,122 @@
|
|||||||
|
//
|
||||||
|
// Created by brahmix on 10/6/19.
|
||||||
|
//
|
||||||
|
|
||||||
|
#include "UserRepository.h"
|
||||||
|
|
||||||
|
#include <SQLiteCpp/SQLiteCpp.h>
|
||||||
|
|
||||||
|
namespace repository { namespace local {
|
||||||
|
UserRepository::UserRepository()
|
||||||
|
{
|
||||||
|
m_tableName = userTable();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
model::User UserRepository::retrieveUserCredentials(const std::string &appPath)
|
||||||
|
{
|
||||||
|
model::User user;
|
||||||
|
try {
|
||||||
|
const auto dbPath = pathOfDatabase(appPath);
|
||||||
|
SQLite::Database db(dbPath, SQLite::OPEN_READONLY);
|
||||||
|
//SQLite::Database db(m_tableName, SQLite::OPEN_READONLY);
|
||||||
|
|
||||||
|
std::string queryString("SELECT * FROM ");
|
||||||
|
queryString.append(m_tableName);
|
||||||
|
queryString.append(" LIMIT 1");
|
||||||
|
|
||||||
|
SQLite::Statement query(db, queryString);
|
||||||
|
|
||||||
|
auto result = query.executeStep();
|
||||||
|
|
||||||
|
auto valZero = query.getColumn(1);
|
||||||
|
auto valOne = query.getColumn(2);
|
||||||
|
|
||||||
|
user.username = valZero.getString();
|
||||||
|
user.password = valOne.getString();
|
||||||
|
|
||||||
|
return user;
|
||||||
|
|
||||||
|
} catch (std::exception& ex) {
|
||||||
|
auto msg = ex.what();
|
||||||
|
}
|
||||||
|
|
||||||
|
return user;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool UserRepository::doesUserTableExist(const std::string &appPath)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
const auto dbPath = pathOfDatabase(appPath);
|
||||||
|
SQLite::Database db(dbPath, SQLite::OPEN_READONLY);
|
||||||
|
//SQLite::Database db(m_tableName, SQLite::OPEN_READONLY);
|
||||||
|
|
||||||
|
return db.tableExists(m_tableName);
|
||||||
|
} catch (std::exception& ex) {
|
||||||
|
auto msg = ex.what();
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void UserRepository::createUserTable(const std::string &appPath)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
const auto dbPath = pathOfDatabase(appPath);
|
||||||
|
SQLite::Database db(dbPath, SQLite::OPEN_READWRITE);
|
||||||
|
//SQLite::Database db(m_tableName, SQLite::OPEN_READWRITE);
|
||||||
|
|
||||||
|
std::string queryString("CREATE TABLE ");
|
||||||
|
queryString.append(m_tableName);
|
||||||
|
queryString.append(" (Id INTEGER PRIMARY KEY, Username TEXT, Password TEXT)");
|
||||||
|
db.exec(queryString);
|
||||||
|
} catch (std::exception& ex) {
|
||||||
|
auto msg = ex.what();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void UserRepository::deleteUserTable(const std::string& appPath)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
const auto dbPath = pathOfDatabase(appPath);
|
||||||
|
SQLite::Database db(dbPath, SQLite::OPEN_READWRITE);
|
||||||
|
|
||||||
|
std::string queryStr("DELETE FROM ");
|
||||||
|
queryStr.append(m_tableName);
|
||||||
|
|
||||||
|
db.exec(queryStr);
|
||||||
|
} catch (std::exception& ex) {
|
||||||
|
auto msg = ex.what();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void UserRepository::saveUserCred(const model::User & user, const std::string& appPath)
|
||||||
|
{
|
||||||
|
try {
|
||||||
|
const auto dbPath = pathOfDatabase(appPath);
|
||||||
|
SQLite::Database db(dbPath, SQLite::OPEN_READWRITE);
|
||||||
|
//SQLite::Database db(m_tableName, SQLite::OPEN_READWRITE);
|
||||||
|
std::string queryString("INSERT INTO ");
|
||||||
|
queryString.append(m_tableName);
|
||||||
|
queryString.append(" (Username, Password) VALUES (?, ?)");
|
||||||
|
|
||||||
|
SQLite::Statement query(db, queryString);
|
||||||
|
query.bind(1, user.username);
|
||||||
|
query.bind(2, user.password);
|
||||||
|
|
||||||
|
query.exec();
|
||||||
|
} catch (std::exception& ex) {
|
||||||
|
auto msg = ex.what();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
std::string UserRepository::userTable()
|
||||||
|
{
|
||||||
|
constexpr auto table = "User";
|
||||||
|
|
||||||
|
return table;
|
||||||
|
}
|
||||||
|
}}
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
//
|
||||||
|
// Created by brahmix on 10/6/19.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef MEAR_USERREPOSITORY_H
|
||||||
|
#define MEAR_USERREPOSITORY_H
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
#include "BaseRepository.h"
|
||||||
|
#include "model/User.h"
|
||||||
|
|
||||||
|
|
||||||
|
namespace repository { namespace local {
|
||||||
|
|
||||||
|
class UserRepository : public BaseRepository {
|
||||||
|
public:
|
||||||
|
UserRepository();
|
||||||
|
|
||||||
|
model::User retrieveUserCredentials(const std::string&);
|
||||||
|
|
||||||
|
bool doesUserTableExist(const std::string&);
|
||||||
|
|
||||||
|
void createUserTable(const std::string&);
|
||||||
|
void deleteUserTable(const std::string&);
|
||||||
|
void saveUserCred(const model::User&, const std::string&);
|
||||||
|
private:
|
||||||
|
std::string userTable();
|
||||||
|
};
|
||||||
|
|
||||||
|
}}
|
||||||
|
|
||||||
|
#endif //MEAR_USERREPOSITORY_H
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
//
|
||||||
|
// Created by brahmix on 10/6/19.
|
||||||
|
//
|
||||||
|
|
||||||
|
#ifndef MEAR_TOKEN_H
|
||||||
|
#define MEAR_TOKEN_H
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
namespace model {
|
||||||
|
class Token
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
Token(const std::string& token) : token(token) { }
|
||||||
|
|
||||||
|
std::string token;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif //MEAR_TOKEN_H
|
||||||
@@ -24,10 +24,12 @@ class DemoStreamActivity : BaseServiceActivity() {
|
|||||||
private var token: String? = null
|
private var token: String? = null
|
||||||
|
|
||||||
|
|
||||||
|
// TODO: add external call to retrieve User credentials
|
||||||
private external fun logUser(usr: String, pass: String, api: String): String
|
private external fun logUser(usr: String, pass: String, api: String): String
|
||||||
private external fun retrieveSong(tok: String, api: String): Song
|
private external fun retrieveSong(tok: String, api: String): Song
|
||||||
//private external fun testSongStream(tok: String, id: Int)
|
//private external fun testSongStream(tok: String, id: Int)
|
||||||
private external fun pathIteratorDemo(path: String)
|
private external fun pathIteratorDemo(path: String)
|
||||||
|
private external fun saveUserCredentials(username: String, password: String, appDir: String)
|
||||||
|
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
@@ -57,21 +59,30 @@ class DemoStreamActivity : BaseServiceActivity() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
var usernameStr = username.text.toString()
|
val saveCred = saveUserCred.isChecked
|
||||||
var passwordStr = password.text.toString()
|
|
||||||
|
val usernameStr = username.text.toString()
|
||||||
|
val passwordStr = password.text.toString()
|
||||||
var apiUriStr = apiUri.text.toString()
|
var apiUriStr = apiUri.text.toString()
|
||||||
|
|
||||||
|
if (apiUriStr.isEmpty()) {
|
||||||
|
apiUriStr = ""
|
||||||
|
}
|
||||||
|
|
||||||
token = logUser(usernameStr, passwordStr, apiUriStr)
|
token = logUser(usernameStr, passwordStr, apiUriStr)
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
var s = retrieveSong(token!!, apiUriStr)
|
val s = retrieveSong(token!!, apiUriStr)
|
||||||
musicService!!.icarusPlaySong(this.applicationContext, token!!, apiUriStr, s)
|
musicService!!.icarusPlaySong(this.applicationContext, token!!, apiUriStr, s)
|
||||||
val dir = Environment.getExternalStorageDirectory().absolutePath + "/music"
|
val dir = Environment.getExternalStorageDirectory().absolutePath + "/music"
|
||||||
pathIteratorDemo(dir)
|
val appRelPath: String = resources.getString(R.string.app_relative_path)
|
||||||
var currentTrack = musicService!!.getCurrentTrack()
|
var inStoragePath = Environment.getDataDirectory().toString()
|
||||||
val title = currentTrack.title
|
inStoragePath += "/data/$appRelPath"
|
||||||
val artist = currentTrack.artist
|
|
||||||
|
if (saveCred) {
|
||||||
|
saveUserCredentials(usernameStr, passwordStr, inStoragePath)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch (ex: Exception) {
|
catch (ex: Exception) {
|
||||||
val msg = ex.message
|
val msg = ex.message
|
||||||
|
|||||||
@@ -49,11 +49,11 @@
|
|||||||
android:id="@+id/apiUri"
|
android:id="@+id/apiUri"
|
||||||
android:layout_width="245dp"
|
android:layout_width="245dp"
|
||||||
android:layout_height="43dp"
|
android:layout_height="43dp"
|
||||||
android:layout_marginBottom="76dp"
|
android:layout_marginBottom="16dp"
|
||||||
android:ems="10"
|
android:ems="10"
|
||||||
android:hint="apiUri"
|
android:hint="apiUri"
|
||||||
android:inputType="textPersonName"
|
android:inputType="textPersonName"
|
||||||
app:layout_constraintBottom_toTopOf="@+id/login"
|
app:layout_constraintBottom_toTopOf="@+id/saveUserCred"
|
||||||
app:layout_constraintEnd_toEndOf="parent"
|
app:layout_constraintEnd_toEndOf="parent"
|
||||||
app:layout_constraintStart_toStartOf="parent" />
|
app:layout_constraintStart_toStartOf="parent" />
|
||||||
|
|
||||||
@@ -68,4 +68,14 @@
|
|||||||
app:layout_constraintHorizontal_bias="0.498"
|
app:layout_constraintHorizontal_bias="0.498"
|
||||||
app:layout_constraintStart_toStartOf="parent" />
|
app:layout_constraintStart_toStartOf="parent" />
|
||||||
|
|
||||||
|
<CheckBox
|
||||||
|
android:id="@+id/saveUserCred"
|
||||||
|
android:layout_width="153dp"
|
||||||
|
android:layout_height="28dp"
|
||||||
|
android:layout_marginStart="80dp"
|
||||||
|
android:layout_marginBottom="32dp"
|
||||||
|
android:text="Save Credentials"
|
||||||
|
app:layout_constraintBottom_toTopOf="@+id/login"
|
||||||
|
app:layout_constraintStart_toStartOf="parent" />
|
||||||
|
|
||||||
</android.support.constraint.ConstraintLayout>
|
</android.support.constraint.ConstraintLayout>
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
<resources>
|
<resources>
|
||||||
|
<string name="app_relative_path">com.example.mear</string>
|
||||||
<string name="app_name">Mear</string>
|
<string name="app_name">Mear</string>
|
||||||
<string name="app_version">Pre-development release</string>
|
<string name="app_version">Pre-development release</string>
|
||||||
<string name="app_author">amazing-username - Kun Deng</string>
|
<string name="app_author">amazing-username - Kun Deng</string>
|
||||||
|
|||||||
Reference in New Issue
Block a user