Skip to content

Commit 3c6c771

Browse files
committed
review fixes
1 parent 3aa561c commit 3c6c771

43 files changed

Lines changed: 694 additions & 581 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

BookPlayer.xcodeproj/project.pbxproj

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -663,12 +663,12 @@
663663
9911FBD12F7C1FBF00DC9A2B /* ConcurrentTasksCardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9911FBD02F7C1FB800DC9A2B /* ConcurrentTasksCardView.swift */; };
664664
9911FBD32F7C3AC700DC9A2B /* SyncTasksCardView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9911FBD22F7C3ABA00DC9A2B /* SyncTasksCardView.swift */; };
665665
9911FBD72F7CACEC00DC9A2B /* QueuedTasksView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9911FBD62F7CACE200DC9A2B /* QueuedTasksView.swift */; };
666-
9925427A2FA07E0D00E421CE /* MappingModel_v11_to_v12.xcmappingmodel in Sources */ = {isa = PBXBuildFile; fileRef = 992542792FA07E0D00E421CE /* MappingModel_v11_to_v12.xcmappingmodel */; };
667-
9925427B2FA07E0D00E421CE /* MappingModel_v11_to_v12.xcmappingmodel in Sources */ = {isa = PBXBuildFile; fileRef = 992542792FA07E0D00E421CE /* MappingModel_v11_to_v12.xcmappingmodel */; };
668-
9925427C2FA07E0D00E421CE /* MappingModel_v11_to_v12.xcmappingmodel in Sources */ = {isa = PBXBuildFile; fileRef = 992542792FA07E0D00E421CE /* MappingModel_v11_to_v12.xcmappingmodel */; };
669-
9925427D2FA07E0D00E421CE /* MappingModel_v11_to_v12.xcmappingmodel in Sources */ = {isa = PBXBuildFile; fileRef = 992542792FA07E0D00E421CE /* MappingModel_v11_to_v12.xcmappingmodel */; };
670-
9925427E2FA07E0D00E421CE /* MappingModel_v11_to_v12.xcmappingmodel in Sources */ = {isa = PBXBuildFile; fileRef = 992542792FA07E0D00E421CE /* MappingModel_v11_to_v12.xcmappingmodel */; };
671-
9925427F2FA07E0D00E421CE /* MappingModel_v11_to_v12.xcmappingmodel in Sources */ = {isa = PBXBuildFile; fileRef = 992542792FA07E0D00E421CE /* MappingModel_v11_to_v12.xcmappingmodel */; };
666+
992673AF2FAD4FCE0086BC47 /* MappingModel_v11_to_v12.xcmappingmodel in Sources */ = {isa = PBXBuildFile; fileRef = 992673AE2FAD4FCE0086BC47 /* MappingModel_v11_to_v12.xcmappingmodel */; };
667+
992673B02FAD4FCE0086BC47 /* MappingModel_v11_to_v12.xcmappingmodel in Sources */ = {isa = PBXBuildFile; fileRef = 992673AE2FAD4FCE0086BC47 /* MappingModel_v11_to_v12.xcmappingmodel */; };
668+
992673B12FAD4FCE0086BC47 /* MappingModel_v11_to_v12.xcmappingmodel in Sources */ = {isa = PBXBuildFile; fileRef = 992673AE2FAD4FCE0086BC47 /* MappingModel_v11_to_v12.xcmappingmodel */; };
669+
992673B22FAD4FCE0086BC47 /* MappingModel_v11_to_v12.xcmappingmodel in Sources */ = {isa = PBXBuildFile; fileRef = 992673AE2FAD4FCE0086BC47 /* MappingModel_v11_to_v12.xcmappingmodel */; };
670+
992673B32FAD4FCE0086BC47 /* MappingModel_v11_to_v12.xcmappingmodel in Sources */ = {isa = PBXBuildFile; fileRef = 992673AE2FAD4FCE0086BC47 /* MappingModel_v11_to_v12.xcmappingmodel */; };
671+
992673B42FAD4FCE0086BC47 /* MappingModel_v11_to_v12.xcmappingmodel in Sources */ = {isa = PBXBuildFile; fileRef = 992673AE2FAD4FCE0086BC47 /* MappingModel_v11_to_v12.xcmappingmodel */; };
672672
992D6E102FA2BD290091849F /* DynamicWaveLoadingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 992D6E0F2FA2BD230091849F /* DynamicWaveLoadingView.swift */; };
673673
992D6E132FA98B4D0091849F /* AudiobookShelfConnectionService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6384879D2EC7722400DF442B /* AudiobookShelfConnectionService.swift */; };
674674
992D6E142FA98B4D0091849F /* AudiobookShelfConnectionData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6384879C2EC7722400DF442B /* AudiobookShelfConnectionData.swift */; };
@@ -1683,7 +1683,7 @@
16831683
9911FBD02F7C1FB800DC9A2B /* ConcurrentTasksCardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConcurrentTasksCardView.swift; sourceTree = "<group>"; };
16841684
9911FBD22F7C3ABA00DC9A2B /* SyncTasksCardView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SyncTasksCardView.swift; sourceTree = "<group>"; };
16851685
9911FBD62F7CACE200DC9A2B /* QueuedTasksView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QueuedTasksView.swift; sourceTree = "<group>"; };
1686-
992542792FA07E0D00E421CE /* MappingModel_v11_to_v12.xcmappingmodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcmappingmodel; path = MappingModel_v11_to_v12.xcmappingmodel; sourceTree = "<group>"; };
1686+
992673AE2FAD4FCE0086BC47 /* MappingModel_v11_to_v12.xcmappingmodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcmappingmodel; path = MappingModel_v11_to_v12.xcmappingmodel; sourceTree = "<group>"; };
16871687
992D6E0F2FA2BD230091849F /* DynamicWaveLoadingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DynamicWaveLoadingView.swift; sourceTree = "<group>"; };
16881688
99329DB62F3AA8F6003F8E73 /* PlayControlsRowView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayControlsRowView.swift; sourceTree = "<group>"; };
16891689
99329DBA2F3AAA61003F8E73 /* ListeningProgressView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListeningProgressView.swift; sourceTree = "<group>"; };
@@ -2455,7 +2455,7 @@
24552455
9FF383D02A40F97000BBAC11 /* MappingModel_v8_to_v9.xcmappingmodel */,
24562456
3F66408C2E172DF500356522 /* MappingModel_v9_to_v10.xcmappingmodel */,
24572457
996D4CC42F98A25100FC3B57 /* MappingModel_v10_to_v11.xcmappingmodel */,
2458-
992542792FA07E0D00E421CE /* MappingModel_v11_to_v12.xcmappingmodel */,
2458+
992673AE2FAD4FCE0086BC47 /* MappingModel_v11_to_v12.xcmappingmodel */,
24592459
);
24602460
path = Migrations;
24612461
sourceTree = "<group>";
@@ -4412,7 +4412,7 @@
44124412
6399D0702CEBA35D00A2E278 /* RemoteItemListView.swift in Sources */,
44134413
41C3396225E04103003ED2B0 /* MappingModel_v2_to_v3.xcmappingmodel in Sources */,
44144414
6350E4722CF4D0220077CDC1 /* PlayerControlsView.swift in Sources */,
4415-
9925427D2FA07E0D00E421CE /* MappingModel_v11_to_v12.xcmappingmodel in Sources */,
4415+
992673B02FAD4FCE0086BC47 /* MappingModel_v11_to_v12.xcmappingmodel in Sources */,
44164416
9FA334C727C28D650064E8EA /* PlaybackControlsView.swift in Sources */,
44174417
4140EA8522728A160009F794 /* BookPlayer.xcdatamodeld in Sources */,
44184418
63CD851D2CE2964900EDBEA8 /* SettingsView.swift in Sources */,
@@ -4453,7 +4453,6 @@
44534453
9911FBA92F71BD3000DC9A2B /* JellyfinConnectionService.swift in Sources */,
44544454
99F3C2352F6BBECC00AC91A2 /* JellyfinConnectionData.swift in Sources */,
44554455
41A90C4927564DAA00C30394 /* BookPlayerError.swift in Sources */,
4456-
9925427F2FA07E0D00E421CE /* MappingModel_v11_to_v12.xcmappingmodel in Sources */,
44574456
3FF5BA6A2E10EA8000B82BCC /* HardcoverBook+CoreDataClass.swift in Sources */,
44584457
63344C022EA7097D00B90DF7 /* DatabaseBackupService.swift in Sources */,
44594458
41C23402272E1960006BC7B8 /* SimpleTheme.swift in Sources */,
@@ -4490,6 +4489,7 @@
44904489
9FDDD2E2289BFCE20020C428 /* LibraryService+Sync.swift in Sources */,
44914490
4140EA72227289A50009F794 /* UIColor+Sweetercolor.swift in Sources */,
44924491
63E1FF912E6C8C2000F2E003 /* SyncJobType.swift in Sources */,
4492+
992673B12FAD4FCE0086BC47 /* MappingModel_v11_to_v12.xcmappingmodel in Sources */,
44934493
9FC1E45D2814E6A500522FA8 /* NetworkProvider.swift in Sources */,
44944494
9FC1E4602814F66F00522FA8 /* AccountAPI.swift in Sources */,
44954495
9911FBBF2F74527800DC9A2B /* ConcurrentTaskProgressMonitor.swift in Sources */,
@@ -4603,7 +4603,7 @@
46034603
416A29DA256AB6A900605395 /* BookPlayer.xcdatamodeld in Sources */,
46044604
630826112AF6CA44002ACE0D /* SharedIconWidget.swift in Sources */,
46054605
637DAB0B2AEB3F6D006DC2D1 /* WidgetEntries.swift in Sources */,
4606-
9925427E2FA07E0D00E421CE /* MappingModel_v11_to_v12.xcmappingmodel in Sources */,
4606+
992673B22FAD4FCE0086BC47 /* MappingModel_v11_to_v12.xcmappingmodel in Sources */,
46074607
418CABB625EF28FC00D8C878 /* MappingModel_v3_to_v4.xcmappingmodel in Sources */,
46084608
63E893932CAFA89000946CD4 /* BPPlayerError.swift in Sources */,
46094609
41ADD6DA2570AC6300660C64 /* RecentBooksWidgetView.swift in Sources */,
@@ -4924,7 +4924,6 @@
49244924
6309F1262B0CF1C1002B86A4 /* BookPlaybackToggleIntent.swift in Sources */,
49254925
99329DC52F3AE9C4003F8E73 /* PlayerJumpView.swift in Sources */,
49264926
632D5A582E58C3CC006D10BC /* VerticalLabelStyle.swift in Sources */,
4927-
9925427C2FA07E0D00E421CE /* MappingModel_v11_to_v12.xcmappingmodel in Sources */,
49284927
63C48C822E3DC2BE005FBB96 /* LoginSignInButton.swift in Sources */,
49294928
63C48CA12E4181F0005FBB96 /* ContinueWithPasskeyButton.swift in Sources */,
49304929
63C48CA32E418200005FBB96 /* AppleSignInLink.swift in Sources */,
@@ -4953,6 +4952,7 @@
49534952
CA3B408256F8458669106CF9 /* IntegrationConnectionViewModelProtocol.swift in Sources */,
49544953
7CAD4B67352939D0A1E54A21 /* IntegrationConnectionFormViewModelProtocol.swift in Sources */,
49554954
18D0AD99D1AAA10976F75C11 /* BPNavigation.swift in Sources */,
4955+
992673AF2FAD4FCE0086BC47 /* MappingModel_v11_to_v12.xcmappingmodel in Sources */,
49564956
9236C57F833C70652BDD1FA3 /* TabEditingEnvironmentKey.swift in Sources */,
49574957
11A972EC3C4426DD4D02867E /* TagsFlowLayout.swift in Sources */,
49584958
D080B0A77D9844C3A0737170 /* IntegrationConnectionFormViewModel.swift in Sources */,
@@ -5002,6 +5002,7 @@
50025002
files = (
50035003
996D4CC52F98A25100FC3B57 /* MappingModel_v10_to_v11.xcmappingmodel in Sources */,
50045004
9911FBBE2F74527800DC9A2B /* ConcurrentTaskProgressMonitor.swift in Sources */,
5005+
992673B42FAD4FCE0086BC47 /* MappingModel_v11_to_v12.xcmappingmodel in Sources */,
50055006
9FC1E46C2815A8CA00522FA8 /* LibraryAPI.swift in Sources */,
50065007
9FAFC9F42995BB5C00FD531E /* RemoteFileURLResponse.swift in Sources */,
50075008
9911FBB92F72F46900DC9A2B /* ConcurrentSyncTask.swift in Sources */,
@@ -5084,7 +5085,6 @@
50845085
9FBDBC7D287940D900D315A2 /* ContentsResponse.swift in Sources */,
50855086
9F07B79829B770B7005A939D /* BPTaskUploadDelegate.swift in Sources */,
50865087
41C3394925E04091003ED2B0 /* MappingModel_v2_to_v3.xcmappingmodel in Sources */,
5087-
9925427A2FA07E0D00E421CE /* MappingModel_v11_to_v12.xcmappingmodel in Sources */,
50885088
996D4CD12F98A45300FC3B57 /* IntegrationError.swift in Sources */,
50895089
41640A452441ACE2004FB97B /* Intents.intentdefinition in Sources */,
50905090
41D20DB225D5F5A100AAEE30 /* MappingModel_v1_to_v2.xcmappingmodel in Sources */,
@@ -5158,7 +5158,7 @@
51585158
630826012AF29538002ACE0D /* SharedWidgetEntry.swift in Sources */,
51595159
6340D5692AF12D48003D0B09 /* SharedWidget.swift in Sources */,
51605160
63005A2D2AE7FD8000A4CA2C /* Intents.intentdefinition in Sources */,
5161-
9925427B2FA07E0D00E421CE /* MappingModel_v11_to_v12.xcmappingmodel in Sources */,
5161+
992673B32FAD4FCE0086BC47 /* MappingModel_v11_to_v12.xcmappingmodel in Sources */,
51625162
630825FE2AF293DC002ACE0D /* SharedWidgetContainerView.swift in Sources */,
51635163
630825FC2AF2923B002ACE0D /* WidgetUtils.swift in Sources */,
51645164
630826122AF6CA45002ACE0D /* SharedIconWidget.swift in Sources */,

BookPlayer.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

BookPlayer/AudiobookShelf/Library Screen/AudiobookShelfLibraryViewModel.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,7 @@ final class AudiobookShelfLibraryViewModel: IntegrationLibraryViewModelProtocol,
271271
)
272272

273273
let externalItem = SimpleExternalResource(
274-
id: UUID().hashValue,
274+
id: Int(Date.timeIntervalBetween1970AndReferenceDate),
275275
providerName: ExternalResource.ProviderName.audiobookshelf.rawValue,
276276
providerId: item.id,
277277
syncStatus: ExternalResource.SyncStatus.stream.rawValue,

BookPlayer/AudiobookShelf/Library Screen/GridLayout/AudiobookShelfLibraryGridItemView.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ struct AudiobookShelfLibraryGridItemView: View {
1515

1616
@State var item: AudiobookShelfLibraryItem
1717

18-
@ScaledMetric var accessabilityScale: CGFloat = 1
18+
@ScaledMetric var accessibilityScale: CGFloat = 1
1919

2020
var isSelected: Bool
2121

@@ -50,7 +50,7 @@ struct AudiobookShelfLibraryGridItemView: View {
5050
@ViewBuilder
5151
private var libraryBadge: some View {
5252
ZStack {
53-
Circle().strokeBorder(.foreground, lineWidth: 1 * accessabilityScale)
53+
Circle().strokeBorder(.foreground, lineWidth: 1 * accessibilityScale)
5454
.background(Circle().fill(.background))
5555
Image(systemName: item.placeholderImageName)
5656
.resizable()

BookPlayer/Import/ExternalSource/ExternalImportView.swift

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -19,17 +19,16 @@ struct ExternalImportView<Model: ExternalViewModelProtocol>: View {
1919
.ignoresSafeArea()
2020

2121
VStack(alignment: .leading, spacing: 20) {
22-
2322
HStack {
2423
Button {
2524
dismiss()
2625
} label: {
2726
Image(systemName: "xmark")
2827
.font(.system(size: 16, weight: .semibold))
29-
.foregroundColor(.white)
28+
.foregroundColor(theme.primaryColor)
3029
.frame(width: 44, height: 44)
3130
.background(
32-
Circle().stroke(Color.white.opacity(0.3), lineWidth: 1)
31+
Circle().stroke(theme.systemBackgroundColor.opacity(0.3), lineWidth: 1)
3332
)
3433
}
3534

@@ -43,32 +42,32 @@ struct ExternalImportView<Model: ExternalViewModelProtocol>: View {
4342
} label: {
4443
Image(systemName: "checkmark")
4544
.font(.system(size: 16, weight: .semibold))
46-
.foregroundColor(.white)
45+
.foregroundColor(theme.primaryColor)
4746
.frame(width: 44, height: 44)
4847
.background(
49-
Circle().stroke(Color.white.opacity(0.3), lineWidth: 1)
48+
Circle().stroke(theme.systemBackgroundColor.opacity(0.3), lineWidth: 1)
5049
)
5150
}
5251
}
53-
.padding(.top, 10)
52+
.safeAreaPadding(.top)
5453

5554
// Headers
5655
Text("Import")
5756
.font(.system(size: 34, weight: .bold))
58-
.foregroundColor(.white)
57+
.foregroundColor(theme.primaryColor)
5958

6059
Text("import_warning_description".localized)
6160
.font(.subheadline)
62-
.foregroundColor(Color.white.opacity(0.6))
61+
.foregroundColor(theme.primaryColor.opacity(0.6))
6362
.lineSpacing(4)
6463

6564
Text("\(viewModel.resources.count) File\(viewModel.resources.count == 1 ? "" : "s")")
6665
.font(.headline)
67-
.foregroundColor(Color.white.opacity(0.6))
66+
.foregroundColor(theme.primaryColor.opacity(0.6))
6867
.padding(.top, 10)
6968

7069
ScrollView {
71-
VStack(spacing: 0) {
70+
LazyVStack(spacing: 0) {
7271
ForEach(viewModel.resources) { resource in
7372
HStack(spacing: 16) {
7473
Button {
@@ -87,7 +86,7 @@ struct ExternalImportView<Model: ExternalViewModelProtocol>: View {
8786

8887
// File Name
8988
Text(resource.libraryItem?.title ?? "Unknown Item")
90-
.foregroundColor(.white)
89+
.foregroundColor(theme.primaryColor)
9190
.font(.system(size: 14))
9291
.lineLimit(1)
9392

@@ -97,7 +96,7 @@ struct ExternalImportView<Model: ExternalViewModelProtocol>: View {
9796

9897
// Separator
9998
Divider()
100-
.background(Color.white.opacity(0.2))
99+
.background(theme.systemBackgroundColor.opacity(0.2))
101100
}
102101
}
103102
}

BookPlayer/Import/ExternalSource/ExternalImportViewModel.swift

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ class ExternalImportViewModel: ExternalViewModelProtocol {
2020

2121
var resources: [SimpleExternalResource] {
2222
get {
23-
print(importManager.externalFiles.description)
2423
return importManager.externalFiles
2524
}
2625
set {

BookPlayer/Import/ImportManager.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,7 @@ final class ImportManager: ObservableObject {
171171
return false
172172
}
173173

174+
@MainActor
174175
func processExternalFiles() {
175176
guard self.externalFiles.count > 0 else {
176177
return

BookPlayer/Jellyfin/Library Screen/Details/JellyfinAudiobookDetailsViewModel.swift

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,9 @@ class JellyfinAudiobookDetailsViewModel: IntegrationDetailsViewModelProtocol {
9393

9494
@MainActor
9595
func virtualImportAudiobook(_ item: JellyfinLibraryItem) {
96-
let fileExt = self.details?.filePath?.split(separator: ".").last ?? "m4a"
96+
let fileExt = self.details?.fileExtension != nil
97+
? ".\(self.details!.fileExtension!)"
98+
: ""
9799
let libraryItem = SimpleLibraryItem(
98100
title: item.name,
99101
details: self.details?.artist ?? "voiceover_unknown_author".localized,
@@ -108,7 +110,7 @@ class JellyfinAudiobookDetailsViewModel: IntegrationDetailsViewModelProtocol {
108110
artworkURL: try? connectionService.createItemImageURL(item, size: CGSize(width: 200, height: 200)),
109111
orderRank: 0,
110112
parentFolder: nil,
111-
originalFileName: "\(item.name).\(fileExt)",
113+
originalFileName: "\(item.name)\(fileExt)",
112114
lastPlayDate: item.lastPlayedDate,
113115
type: .book,
114116
uuid: UUID().uuidString

BookPlayer/Jellyfin/Library Screen/GridLayout/JellyfinLibraryGridItemView.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ struct JellyfinLibraryGridItemView: View {
1515

1616
@State var item: JellyfinLibraryItem
1717

18-
@ScaledMetric var accessabilityScale: CGFloat = 1
18+
@ScaledMetric var accessibilityScale: CGFloat = 1
1919
@State private var imageSize: CGSize = CGSize.zero
2020

2121
var isSelected: Bool
@@ -60,7 +60,7 @@ struct JellyfinLibraryGridItemView: View {
6060
private var folderBadge: some View {
6161
let imageLength = min(imageSize.width, imageSize.height)
6262
ZStack {
63-
Circle().strokeBorder(.foreground, lineWidth: 1 * accessabilityScale)
63+
Circle().strokeBorder(.foreground, lineWidth: 1 * accessibilityScale)
6464
.background(Circle().fill(.background))
6565
Image(systemName: "folder.fill")
6666
.resizable()

0 commit comments

Comments
 (0)