From 19da47ea043ac74ff73e754fc457a58afaac8dcc Mon Sep 17 00:00:00 2001 From: Elias Projahn Date: Wed, 13 May 2020 21:09:22 +0200 Subject: [PATCH] mobile: Full playback notification --- mobile/lib/playback.dart | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/mobile/lib/playback.dart b/mobile/lib/playback.dart index d1d310f..d169b6a 100644 --- a/mobile/lib/playback.dart +++ b/mobile/lib/playback.dart @@ -331,16 +331,36 @@ class _PlaybackService extends BackgroundAudioTask { final recordingInfo = await db.getRecording(track.track.recordingId); final workInfo = await db.getWork(recordingInfo.recording.work); - final composers = workInfo.composers + final title = workInfo.composers .map((p) => '${p.firstName} ${p.lastName}') .join(', '); - final title = workInfo.work.title; + final subtitleBuffer = StringBuffer(workInfo.work.title); + + final partIds = track.track.partIds; + if (partIds.isNotEmpty) { + subtitleBuffer.write(': '); + + final section = + workInfo.sections.lastWhere((s) => s.beforePartIndex <= partIds[0]); + + if (section != null) { + subtitleBuffer.write(section.title); + subtitleBuffer.write(': '); + } + + subtitleBuffer + .write(partIds.map((i) => workInfo.parts[i].part.title).join(', ')); + } + + final subtitle = subtitleBuffer.toString(); AudioServiceBackground.setMediaItem(MediaItem( id: track.identifier, - album: composers, + album: subtitle, title: title, + displayTitle: title, + displaySubtitle: subtitle, )); } }