mobile: Fix handling of works without sections

This commit is contained in:
Elias Projahn 2020-05-13 22:05:18 +02:00
parent 3af7c23bbc
commit 0ccebb2217
3 changed files with 11 additions and 6 deletions

View file

@ -341,8 +341,10 @@ class _PlaybackService extends BackgroundAudioTask {
if (partIds.isNotEmpty) { if (partIds.isNotEmpty) {
subtitleBuffer.write(': '); subtitleBuffer.write(': ');
final section = final section = workInfo.sections.lastWhere(
workInfo.sections.lastWhere((s) => s.beforePartIndex <= partIds[0]); (s) => s.beforePartIndex <= partIds[0],
orElse: () => null,
);
if (section != null) { if (section != null) {
subtitleBuffer.write(section.title); subtitleBuffer.write(section.title);

View file

@ -100,6 +100,7 @@ class _ProgramScreenState extends State<ProgramScreen> {
if (recordingInfo.recording.work != lastWorkId) { if (recordingInfo.recording.work != lastWorkId) {
lastWorkId = recordingInfo.recording.work; lastWorkId = recordingInfo.recording.work;
workInfo = await backend.db.getWork(lastWorkId); workInfo = await backend.db.getWork(lastWorkId);
lastSectionIndex = null;
} }
children.addAll([ children.addAll([
@ -118,7 +119,7 @@ class _ProgramScreenState extends State<ProgramScreen> {
final sectionIndex = workInfo.sections final sectionIndex = workInfo.sections
.lastIndexWhere((s) => s.beforePartIndex <= partId); .lastIndexWhere((s) => s.beforePartIndex <= partId);
if (sectionIndex != lastSectionIndex) { if (sectionIndex != lastSectionIndex && sectionIndex >= 0) {
lastSectionIndex = sectionIndex; lastSectionIndex = sectionIndex;
children.add(Padding( children.add(Padding(
padding: const EdgeInsets.only( padding: const EdgeInsets.only(

View file

@ -62,8 +62,10 @@ class _PlayerBarState extends State<PlayerBar> {
if (_partIds.isNotEmpty) { if (_partIds.isNotEmpty) {
subtitleBuffer.write(': '); subtitleBuffer.write(': ');
final section = _workInfo.sections final section = _workInfo.sections.lastWhere(
.lastWhere((s) => s.beforePartIndex <= _partIds[0]); (s) => s.beforePartIndex <= _partIds[0],
orElse: () => null,
);
if (section != null) { if (section != null) {
subtitleBuffer.write(section.title); subtitleBuffer.write(section.title);