mobile: Update to new client API

The settings screen was refactored too.
This commit is contained in:
Elias Projahn 2020-05-01 17:48:23 +02:00
parent 4f7a99d2a1
commit 820ff7eadb
11 changed files with 286 additions and 163 deletions

View file

@ -36,33 +36,25 @@ class WorkScreen extends StatelessWidget {
),
],
),
body: StreamBuilder<List<Recording>>(
stream: backend.db.recordingsByWork(workInfo.work.id).watch(),
body: FutureBuilder<List<RecordingInfo>>(
future: backend.db.getRecordings(workInfo.work.id),
builder: (context, snapshot) {
if (snapshot.hasData) {
return ListView.builder(
itemCount: snapshot.data.length,
itemBuilder: (context, index) {
final recording = snapshot.data[index];
final recordingInfo = snapshot.data[index];
final recording = recordingInfo.recording;
return ListTile(
title: FutureBuilder<RecordingInfo>(
future: backend.db.getRecordingInfo(recording),
builder: (context, snapshot) {
if (snapshot.hasData) {
return PerformancesText(
performanceInfos: snapshot.data.performances,
);
} else {
return Text('...');
}
}
title: PerformancesText(
performanceInfos: recordingInfo.performances,
),
onTap: () async {
final tracks = backend.ml.tracks[recording.id];
tracks.sort(
(t1, t2) => t1.track.index.compareTo(t2.track.index));
backend.player.addTracks(backend.ml.tracks[recording.id]);
},
);