From 03fbb4933a9a2107227beaf6b99d8dbbd78bc8ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Toni=20F=C3=B6rster?= Date: Fri, 3 May 2024 15:20:51 +0200 Subject: [PATCH 1/2] new SeekType chapterSkip When a user taps on a chapter, the pop now also shows the name of the chapter. The chapters are now marked in AppRedColor instead of orange. This is based on PR #639 That one needs to be merged first before this one can go in. --- Model/SeekType.swift | 1 + Shared/Player/Controls/OSD/Seek.swift | 8 ++++++++ Shared/Player/Controls/TimelineView.swift | 2 +- Shared/Player/Video Details/ChapterView.swift | 4 ++-- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/Model/SeekType.swift b/Model/SeekType.swift index 62c021fd..8760c43e 100644 --- a/Model/SeekType.swift +++ b/Model/SeekType.swift @@ -1,6 +1,7 @@ import Foundation enum SeekType: Equatable { + case chapterSkip(String) case segmentSkip(String) case segmentRestore case userInteracted diff --git a/Shared/Player/Controls/OSD/Seek.swift b/Shared/Player/Controls/OSD/Seek.swift index f729a9a0..3bfa86b5 100644 --- a/Shared/Player/Controls/OSD/Seek.swift +++ b/Shared/Player/Controls/OSD/Seek.swift @@ -85,6 +85,14 @@ struct Seek: View { .font(.system(size: playerControlsLayout.segmentFontSize)) .foregroundColor(getColor(for: category)) .padding(.bottom, 3) + case let .chapterSkip(chapter): + Divider() + Text(chapter) + .font(.system(size: playerControlsLayout.segmentFontSize)) + .truncationMode(.tail) + .multilineTextAlignment(.center) + .foregroundColor(Color("AppRedColor")) + .padding(.bottom, 3) default: EmptyView() } diff --git a/Shared/Player/Controls/TimelineView.swift b/Shared/Player/Controls/TimelineView.swift index 81be7876..0058bc41 100644 --- a/Shared/Player/Controls/TimelineView.swift +++ b/Shared/Player/Controls/TimelineView.swift @@ -333,7 +333,7 @@ struct TimelineView: View { var chaptersLayers: some View { ForEach(chapters) { chapter in RoundedRectangle(cornerRadius: 4) - .fill(Color.orange) + .fill(Color("AppRedColor")) .frame(maxWidth: 2, maxHeight: height) .offset(x: (chapter.start * oneUnitWidth) - 1) } diff --git a/Shared/Player/Video Details/ChapterView.swift b/Shared/Player/Video Details/ChapterView.swift index 8a5fc0d2..aaad5b87 100644 --- a/Shared/Player/Video Details/ChapterView.swift +++ b/Shared/Player/Video Details/ChapterView.swift @@ -15,7 +15,7 @@ import SwiftUI var body: some View { Button(action: { - player.backend.seek(to: chapter.start, seekType: .userInteracted) + player.backend.seek(to: chapter.start, seekType: .chapterSkip(chapter.title)) }) { Group { verticalChapter @@ -72,7 +72,7 @@ import SwiftUI var body: some View { Button { - player.backend.seek(to: chapter.start, seekType: .userInteracted) + player.backend.seek(to: chapter.start, seekType: .chapterSkip(chapter.title)) } label: { Group { horizontalChapter From a1bde07ee1ac651de0534af683f9614f1ae08d51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Toni=20F=C3=B6rster?= Date: Sat, 11 May 2024 17:51:35 +0200 Subject: [PATCH 2/2] don't draw chapter mark if start is 0 --- Shared/Player/Controls/TimelineView.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Shared/Player/Controls/TimelineView.swift b/Shared/Player/Controls/TimelineView.swift index 0058bc41..bcb126fd 100644 --- a/Shared/Player/Controls/TimelineView.swift +++ b/Shared/Player/Controls/TimelineView.swift @@ -331,7 +331,7 @@ struct TimelineView: View { } var chaptersLayers: some View { - ForEach(chapters) { chapter in + ForEach(chapters.filter { $0.start != 0 }) { chapter in RoundedRectangle(cornerRadius: 4) .fill(Color("AppRedColor")) .frame(maxWidth: 2, maxHeight: height)