Commit graph

143 commits

Author SHA1 Message Date
Elias Projahn
448a0de6fa Move platform dependent code to its own class 2020-04-18 20:34:03 +02:00
Elias Projahn
3471fcf78b Add player skeleton and playback service
This introduces a dependency on audio_service and implements the
playback service using that package. The UI was adapted to the new
interface.
2020-04-18 13:50:38 +02:00
Elias Projahn
e0fc60f9eb Run Moor within a background isolate
This basically follows the guidelines at
https://moor.simonbinder.eu/docs/advanced-features/isolates/. In the
future we will be able to have multiple simultaneous database
connections.
2020-04-17 17:28:24 +02:00
Elias Projahn
00def5382e Switch to more_ffi
This will be required to run the database in a background isolate.
2020-04-12 19:21:53 +02:00
Elias Projahn
59035bf2b0 Recording editor: Allow changing work 2020-04-12 11:51:13 +02:00
Elias Projahn
4decd17875 Add comment field to recording 2020-04-12 11:50:32 +02:00
Elias Projahn
e9f0bd03e7 Use the storage access framework
Everything related to file system access has been rewritten to make use
of the storage access framework. This means that the
WRITE_EXTERNAL_STORAGE is no longer needed. Because of that, the
dependency on permission_handler could be dropped and all code related
to permission handling has been removed. To be able to open a whole
document tree, the minSdkVersion was bumped to 21. Finally the file
selector was rewritten using custom platform dependent code.
2020-04-11 21:59:23 +02:00
Elias Projahn
febcf29cf1 Tracks editor: Use relative paths
They are based on the current music library path.
2020-04-06 12:26:50 +02:00
Elias Projahn
090c4501b1 Tracks editor: Make tracks reorderable 2020-04-06 11:55:19 +02:00
Elias Projahn
20d685a3eb Add basic track editor
This replaces the recording selector in the main menu.
2020-04-06 11:43:46 +02:00
Elias Projahn
0145206ed2 Add recording tile 2020-04-06 11:42:07 +02:00
Elias Projahn
e834abe1e0 Add composers and work texts
These replace the work tile widget.
2020-04-06 11:29:55 +02:00
Elias Projahn
40db00d88d Bundle text widgets and refactor performances row 2020-04-06 11:15:05 +02:00
Elias Projahn
3a9a3100fc Recording selector: Use a nested navigator
The selector also makes use of the new work tile widget.
2020-04-05 20:46:00 +02:00
Elias Projahn
ff38930e19 Restyle work tile 2020-04-05 20:24:29 +02:00
Elias Projahn
26b1f13c03 Work tile: Refactor and add leading widget 2020-04-05 20:15:20 +02:00
Elias Projahn
db9f6a0eb4 Extract work tile from recording editor 2020-04-05 20:11:11 +02:00
Elias Projahn
0438296bcc Add recording selector
As a proof of concept some widgets were seperated. The home screen now
links to this instead of the recording editor.
2020-04-05 19:31:46 +02:00
Elias Projahn
a6d795ef3c Set work when saving recordings 2020-04-05 13:02:12 +02:00
Elias Projahn
9bece557c7 Remove tracks from recording editor
The tracks will not be part of the recording entity. Instead, they will
be managed outside the database alongside the corresponding audio files.
2020-04-05 11:26:56 +02:00
Elias Projahn
8f0463a1a1 Allow selecting and adding ensembles 2020-03-31 16:15:59 +02:00
Elias Projahn
99e4711cfc Remove seperate role repesentation
The role and instrument tables have been merged into one (the instrument
table). There are not that many roles that aren't instruments and it is
much simpler to mange this way. The role editor and role selector have
been removed and the instrument related UI parts have been modified
accordingly.
2020-03-31 15:49:15 +02:00
Elias Projahn
24f2022930 Backend: Fix error at first startup
after the permissions were granted, the backend state was set to ready
without checking the music library path.
2020-03-31 15:33:10 +02:00
Elias Projahn
c83b942690 Recording editor: Track editing skeleton 2020-03-30 17:34:07 +02:00
Elias Projahn
e2167143ed Database: Fix null error 2020-03-30 17:33:36 +02:00
Elias Projahn
9f2c86db78 FilesSelector: Close when close button is pressed 2020-03-28 12:30:19 +01:00
Elias Projahn
88c9f65649 FilesSelector: Allow setting a base path 2020-03-28 12:27:30 +01:00
Elias Projahn
cbbc5bc7c6 Settings: Add music library path setting 2020-03-28 10:24:32 +01:00
Elias Projahn
f0644e4058 Add music library path setting
This introduces a new state of the backend called "setup". If the
music library path is not set, the backend goes into that state and the
app widget can show the UI to set it up. This also introduces a new
dependency on shared_preferences.
2020-03-28 10:18:52 +01:00
Elias Projahn
723977daec Properly handle permissions
The backend has a new state called "needsPermissions" and the app widget
reacts accordingly.
2020-03-28 09:54:04 +01:00
Elias Projahn
bd844c44ea Always notify listeners of backend
The state object may stay the same while there where in fact changes to
it that require a notification.
2020-03-28 09:52:42 +01:00
Elias Projahn
87582f200d Load the database asynchronously
Now the backend has multiple states including loading and the toplevel
app widget was adapted accordingly.
2020-03-28 09:16:42 +01:00
Elias Projahn
3f0567e688 Make Backend a stateful widget 2020-03-28 08:51:45 +01:00
Elias Projahn
ad7499051b Add directory mode to files selector 2020-03-27 17:44:04 +01:00
Elias Projahn
24a4911665 Add basic files selector
This required to add a platform channel with a method to get the
toplevel storage devices. The app will need to request the
WRITE_EXTERNAL_STORAGE permission later. Also the dependency on "path"
was introduced.
2020-03-27 17:33:47 +01:00
Elias Projahn
02e283b8cc PerformerSelector: Allow changing the person 2020-03-22 17:38:08 +01:00
Elias Projahn
9cc0b9020d Add basic recording editor 2020-03-22 16:49:20 +01:00
Elias Projahn
8c36988da9 Move PerformanceModel to database 2020-03-22 16:46:28 +01:00
Elias Projahn
7f783bd016 Database: Fix worksByComposer
While the previous code was indeed valid SQL is wasn't the best way to
do this. Also, only works with parts where included in the result set.
This is fixed now. Some optimization may still be neccessary.
2020-03-22 16:31:38 +01:00
Elias Projahn
2ee36aacf4 Work editor: Return new work 2020-03-22 16:24:43 +01:00
Elias Projahn
6cc110c76c Database: Add query to get composers of work 2020-03-22 15:59:23 +01:00
Elias Projahn
b414655a56 Add basic work selector 2020-03-22 15:58:39 +01:00
Elias Projahn
26c7ea048e Work editor: Use real part composer 2020-03-22 15:56:48 +01:00
Elias Projahn
5987a36e86 Allow works without composer 2020-03-22 15:49:39 +01:00
Elias Projahn
ff48ee376b Add basic performer selector 2020-03-22 15:35:56 +01:00
Elias Projahn
7579fd7b3f Rename RolesSelector to RoleSelector 2020-03-22 15:28:06 +01:00
Elias Projahn
8a9d71694d Add role selector 2020-03-22 15:11:23 +01:00
Elias Projahn
63c4ccf364 Add ensemble editor 2020-03-22 14:52:56 +01:00
Elias Projahn
36c79c7b82 Add role editor 2020-03-22 14:51:23 +01:00
Elias Projahn
4092a91f56 Add recordings
The tables ensembles, roles, recordings and performances as well as
corresponding queries and update logic have been added to the database.
2020-03-22 14:49:40 +01:00