Commit graph

69 commits

Author SHA1 Message Date
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
Elias Projahn
554cf4a6ac Work editor: Allow removing composer or instrument 2020-03-22 14:13:42 +01:00
Elias Projahn
44de5fdae3 Make work part details editable 2020-03-22 13:56:46 +01:00
Elias Projahn
97872f1646 Add settings screen 2020-03-21 17:46:23 +01:00
Elias Projahn
05574c78b6 Work editor: Initialize parts 2020-03-21 15:42:45 +01:00
Elias Projahn
71d51596ae Enable foreign key support 2020-03-21 15:41:03 +01:00
Elias Projahn
4994f6395f Work editor: Fix check for existing composer 2020-03-21 15:14:11 +01:00
Elias Projahn
84cdd51c52 Replace existing rows in update functions 2020-03-21 15:08:50 +01:00
Elias Projahn
319818a276 Make person and work editor accessible 2020-03-21 15:06:38 +01:00
Elias Projahn
743e0db4cf Add a simple work screen for debuggin purposes 2020-03-21 15:01:51 +01:00
Elias Projahn
4652a663d2 Work editor: Store edited work when done 2020-03-21 14:56:59 +01:00
Elias Projahn
4b178752b9 Redo how works are stored
Before works where stored using a complicated tree structure where each
part references its parent. Now it's a flat structure that keeps track
of the relations using a new field named part_level. The corresponding
query was simplified accordingly. Also, the updateWork function was
rewritten.
2020-03-21 14:34:45 +01:00
Elias Projahn
b15591b388 work editor: Clean part levels after level change 2020-03-20 18:00:56 +01:00
Elias Projahn
b6eabdbba3 Fix deprecation 2019-12-15 12:29:00 +01:00
Elias Projahn
25e4267cb8 Add person screen
This just displays a list of the persons works for now. It can be
reached from the home screens list of persons.
2019-12-15 12:22:39 +01:00
Elias Projahn
07e7e38a9b Add persons list to home screen 2019-12-15 12:16:08 +01:00
Elias Projahn
7bccfeaec7 Move actions to app bar on home screen 2019-12-15 12:11:40 +01:00
Elias Projahn
d441dbcd57 Add basic parts editing to work editor
The work editor contains a ReorderableList view now. This list consists
of instances of the new PartTile widget, which only supports editing the
parts title and its level (meaning how deep it is down the tree) for
now.
2019-12-13 22:51:55 +01:00
Elias Projahn
0594b00199 Make work editor modular
The work editor holds all data for a work and its parts. The widgets for
editing work information are reusable now.
2019-12-12 14:57:51 +01:00
Elias Projahn
0d29a5f15d Remove unnecessary tiles from home screen
The person and instruments selectors should only be acessed from the
work editor.
2019-12-11 13:22:39 +01:00
Elias Projahn
40acc2b555 Add initial selection to instrument selector
Also use this from the work editor.
2019-12-11 13:19:56 +01:00
Elias Projahn
4855cafdf3 Add instrument selector to work editor 2019-12-11 13:17:23 +01:00