Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -9,29 +9,29 @@
import Foundation
import JellyfinAPI

extension TaskTriggerType: Displayable, SystemImageable {
extension TaskTriggerInfoType: Displayable, SystemImageable {
var displayTitle: String {
switch self {
case .daily:
case .dailyTrigger:
return L10n.daily
case .weekly:
case .weeklyTrigger:
return L10n.weekly
case .interval:
case .intervalTrigger:
return L10n.interval
case .startup:
case .startupTrigger:
return L10n.onApplicationStartup
}
}

var systemImage: String {
switch self {
case .daily:
case .dailyTrigger:
return "clock"
case .weekly:
case .weeklyTrigger:
return "calendar"
case .interval:
case .intervalTrigger:
return "timer"
case .startup:
case .startupTrigger:
return "power"
}
}
Expand Down
9 changes: 6 additions & 3 deletions Shared/Extensions/JellyfinAPI/TranscodeReason.swift
Original file line number Diff line number Diff line change
Expand Up @@ -66,13 +66,16 @@ extension TranscodeReason: Displayable, SystemImageable {
return L10n.videoRangeTypeNotSupported
case .videoCodecTagNotSupported:
return L10n.videoCodecTagNotSupported
case .streamCountExceedsLimit:
return L10n.streamCountExceedsLimit
}
}

var systemImage: String {
switch self {
case .containerNotSupported,
.containerBitrateExceedsLimit:
.containerBitrateExceedsLimit,
.directPlayError:
return "shippingbox"
case .audioCodecNotSupported,
.audioIsExternal,
Expand Down Expand Up @@ -100,8 +103,8 @@ extension TranscodeReason: Displayable, SystemImageable {
return "photo.tv"
case .subtitleCodecNotSupported:
return "captions.bubble"
default:
return "questionmark.app"
case .streamCountExceedsLimit:
return "number.circle"
}
}
}
3 changes: 1 addition & 2 deletions Shared/Extensions/JellyfinAPI/UserDto.swift
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,7 @@ extension UserDto {
username: ""
)
.profileImageSource(
client: client,
maxWidth: maxWidth
client: client
)
}
}
8 changes: 8 additions & 0 deletions Shared/Extensions/VideoRangeType.swift
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,18 @@ extension VideoRangeType: Displayable {
return "HLG"
case .dovi:
return "Dolby Vision"
case .doviWithEL:
return "Dolby Vision with Enhancement Layer"
case .doviWithELHDR10Plus:
return "Dolby Vision with Enhancement Layer / HDR10+"
case .doviWithHDR10:
return "Dolby Vision / HDR10"
case .doviWithHDR10Plus:
return "Dolby Vision / HDR10+"
case .doviWithHLG:
return "Dolby Vision / HLG"
case .doviInvalid:
return "Invalid Dobly Vision"
case .doviWithSDR:
return "Dolby Vision / SDR"
case .hdr10Plus:
Expand Down
4 changes: 0 additions & 4 deletions Shared/Objects/ItemFilter/ItemSortBy.swift
Original file line number Diff line number Diff line change
Expand Up @@ -72,10 +72,6 @@ extension ItemSortBy: Displayable, SupportedCaseIterable {
return L10n.parentIndexNumber
case .indexNumber:
return L10n.indexNumber
case .similarityScore:
return L10n.similarityScore
case .searchScore:
return L10n.searchScore
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ class TrickplayPreviewImageProvider: PreviewImageProvider {
}
}

private let info: TrickplayInfo
private let info: TrickplayInfoDto
private let itemID: String
private let mediaSourceID: String
private let runtime: Duration
Expand All @@ -44,7 +44,7 @@ class TrickplayPreviewImageProvider: PreviewImageProvider {
private var imageTasks: [Int: Task<TrickplayImage?, Never>] = [:]

init(
info: TrickplayInfo,
info: TrickplayInfoDto,
itemID: String,
mediaSourceID: String,
runtime: Duration
Expand Down
6 changes: 2 additions & 4 deletions Shared/Strings/Strings.swift
Original file line number Diff line number Diff line change
Expand Up @@ -1344,8 +1344,6 @@ internal enum L10n {
internal static let scrubCurrentTime = L10n.tr("Localizable", "scrubCurrentTime", fallback: "Scrub Current Time")
/// Search
internal static let search = L10n.tr("Localizable", "search", fallback: "Search")
/// Search score
internal static let searchScore = L10n.tr("Localizable", "searchScore", fallback: "Search score")
/// Season
internal static let season = L10n.tr("Localizable", "season", fallback: "Season")
/// S%1$@:E%2$@
Expand Down Expand Up @@ -1448,8 +1446,6 @@ internal enum L10n {
internal static let signoutClose = L10n.tr("Localizable", "signoutClose", fallback: "Sign out on close")
/// Signs out the last user when Swiftfin has been force closed
internal static let signoutCloseFooter = L10n.tr("Localizable", "signoutCloseFooter", fallback: "Signs out the last user when Swiftfin has been force closed")
/// Similarity score
internal static let similarityScore = L10n.tr("Localizable", "similarityScore", fallback: "Similarity score")
/// Slider
internal static let slider = L10n.tr("Localizable", "slider", fallback: "Slider")
/// Slider Color
Expand Down Expand Up @@ -1490,6 +1486,8 @@ internal enum L10n {
internal static let stop = L10n.tr("Localizable", "stop", fallback: "Stop")
/// Story Arc
internal static let storyArc = L10n.tr("Localizable", "storyArc", fallback: "Story Arc")
/// The stream count exceeds the allowed limit
internal static let streamCountExceedsLimit = L10n.tr("Localizable", "streamCountExceedsLimit", fallback: "The stream count exceeds the allowed limit")
/// Streams
internal static let streams = L10n.tr("Localizable", "streams", fallback: "Streams")
/// Studio
Expand Down
8 changes: 2 additions & 6 deletions Shared/SwiftfinStore/SwiftinStore+UserState.swift
Original file line number Diff line number Diff line change
Expand Up @@ -160,14 +160,10 @@ extension UserState {

// we will always crop to a square, so just use width
func profileImageSource(
client: JellyfinClient,
maxWidth: CGFloat? = nil
client: JellyfinClient
) -> ImageSource {
let scaleWidth = maxWidth == nil ? nil : UIScreen.main.scale(maxWidth!)

let parameters = Paths.GetUserImageParameters(
userID: id,
maxWidth: scaleWidth
userID: id
)
let request = Paths.getUserImage(parameters: parameters)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,7 @@ extension SelectUserView {
UserProfileImage(
userID: user.id,
source: user.profileImageSource(
client: server.client,
maxWidth: 120
client: server.client
),
pipeline: .Swiftfin.local
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,23 +35,13 @@ struct UserProfileSettingsView: View {
UserProfileImage(
userID: viewModel.userSession.user.id,
source: viewModel.userSession.user.profileImageSource(
client: viewModel.userSession.client,
maxWidth: 400
client: viewModel.userSession.client
)
)
.aspectRatio(contentMode: .fit)
.frame(maxWidth: 400)
}
.contentView {

// TODO: bring reset password to tvOS
// Section {
// ChevronButton(L10n.password)
// .onSelect {
// router.route(to: \.resetUserPassword, viewModel.userSession.user.id)
// }
// }

Section {
ChevronButton(L10n.security) {
router.route(to: .localSecurity)
Expand Down
5 changes: 3 additions & 2 deletions Swiftfin.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,7 @@
E14565D92DFCAE6E008FF700 /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = {
isa = PBXFileSystemSynchronizedBuildFileExceptionSet;
membershipExceptions = (
Extensions/JellyfinAPI/TaskTriggerType.swift,
Extensions/JellyfinAPI/TaskTriggerInfoType.swift,
Objects/ItemArrayElements.swift,
ViewModels/AdminDashboard/ActiveSessionsViewModel.swift,
ViewModels/AdminDashboard/AddServerUserViewModel.swift,
Expand Down Expand Up @@ -684,6 +684,7 @@
uk,
"zh-Hant",
mn,
km,
);
mainGroup = 5377CBE8263B596A003A4E83;
packageReferences = (
Expand Down Expand Up @@ -1282,7 +1283,7 @@
repositoryURL = "https://github.com/jellyfin/jellyfin-sdk-swift.git";
requirement = {
kind = upToNextMinorVersion;
minimumVersion = 0.5.2;
minimumVersion = 0.6.0;
};
};
E15210522946DF1B00375CC2 /* XCRemoteSwiftPackageReference "Pulse" */ = {
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 1 addition & 2 deletions Swiftfin/Components/SettingsBarButton.swift
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,7 @@ struct SettingsBarButton: View {
UserProfileImage(
userID: user.id,
source: user.profileImageSource(
client: server.client,
maxWidth: 120
client: server.client
),
pipeline: .Swiftfin.local
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,29 +45,29 @@ struct AddTaskTriggerView: View {
intervalTicks: nil,
maxRuntimeTicks: nil,
timeOfDayTicks: nil,
type: TaskTriggerType.startup
type: TaskTriggerInfoType.startupTrigger
)

_taskTriggerInfo = State(initialValue: newTrigger)
self.emptyTaskTriggerInfo = newTrigger
}

// MARK: - View for TaskTriggerType.daily
// MARK: - View for TaskTriggerInfoType.daily

@ViewBuilder
private var dailyView: some View {
TimeRow(taskTriggerInfo: $taskTriggerInfo)
}

// MARK: - View for TaskTriggerType.weekly
// MARK: - View for TaskTriggerInfoType.weekly

@ViewBuilder
private var weeklyView: some View {
DayOfWeekRow(taskTriggerInfo: $taskTriggerInfo)
TimeRow(taskTriggerInfo: $taskTriggerInfo)
}

// MARK: - View for TaskTriggerType.interval
// MARK: - View for TaskTriggerInfoType.interval

@ViewBuilder
private var intervalView: some View {
Expand All @@ -82,11 +82,11 @@ struct AddTaskTriggerView: View {
TriggerTypeRow(taskTriggerInfo: $taskTriggerInfo)

if let taskType = taskTriggerInfo.type {
if taskType == TaskTriggerType.daily {
if taskType == TaskTriggerInfoType.dailyTrigger {
dailyView
} else if taskType == TaskTriggerType.weekly {
} else if taskType == TaskTriggerInfoType.weeklyTrigger {
weeklyView
} else if taskType == TaskTriggerType.interval {
} else if taskType == TaskTriggerInfoType.intervalTrigger {
intervalView
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,34 +21,34 @@ extension AddTaskTriggerView {
L10n.type,
selection: $taskTriggerInfo.type
) {
ForEach(TaskTriggerType.allCases, id: \.self) { type in
ForEach(TaskTriggerInfoType.allCases, id: \.self) { type in
Text(type.displayTitle)
.tag(type as TaskTriggerType?)
.tag(type as TaskTriggerInfoType?)
}
}
.onChange(of: taskTriggerInfo.type) { newType in
resetValuesForNewType(newType: newType)
}
}

private func resetValuesForNewType(newType: TaskTriggerType?) {
private func resetValuesForNewType(newType: TaskTriggerInfoType?) {
taskTriggerInfo.type = newType
let maxRuntimeTicks = taskTriggerInfo.maxRuntimeTicks

switch newType {
case .daily:
case .dailyTrigger:
taskTriggerInfo.timeOfDayTicks = defaultTimeOfDayTicks
taskTriggerInfo.dayOfWeek = nil
taskTriggerInfo.intervalTicks = nil
case .weekly:
case .weeklyTrigger:
taskTriggerInfo.timeOfDayTicks = defaultTimeOfDayTicks
taskTriggerInfo.dayOfWeek = defaultDayOfWeek
taskTriggerInfo.intervalTicks = nil
case .interval:
case .intervalTrigger:
taskTriggerInfo.intervalTicks = defaultIntervalTicks
taskTriggerInfo.timeOfDayTicks = nil
taskTriggerInfo.dayOfWeek = nil
case .startup:
case .startupTrigger:
taskTriggerInfo.timeOfDayTicks = nil
taskTriggerInfo.dayOfWeek = nil
taskTriggerInfo.intervalTicks = nil
Expand Down
Loading