Minor naming improvements

This commit is contained in:
Arkadiusz Fal 2021-10-23 13:51:02 +02:00
parent 7ab5886ed4
commit 512613d350
14 changed files with 143 additions and 115 deletions

View File

@ -97,7 +97,7 @@ final class InvidiousAPI: Service, ObservableObject, VideosAPI {
} else if type == "playlist" { } else if type == "playlist" {
return ContentItem(playlist: InvidiousAPI.extractChannelPlaylist(from: $0)) return ContentItem(playlist: InvidiousAPI.extractChannelPlaylist(from: $0))
} }
return ContentItem(video: InvidiousAPI.extractVideo($0)) return ContentItem(video: InvidiousAPI.extractVideo(from: $0))
} }
} }
@ -147,7 +147,7 @@ final class InvidiousAPI: Service, ObservableObject, VideosAPI {
} }
configureTransformer(pathPattern("videos/*"), requestMethods: [.get]) { (content: Entity<JSON>) -> Video in configureTransformer(pathPattern("videos/*"), requestMethods: [.get]) { (content: Entity<JSON>) -> Video in
InvidiousAPI.extractVideo(content.json) InvidiousAPI.extractVideo(from: content.json)
} }
} }
@ -276,7 +276,7 @@ final class InvidiousAPI: Service, ObservableObject, VideosAPI {
return AVURLAsset(url: url) return AVURLAsset(url: url)
} }
static func extractVideo(_ json: JSON) -> Video { static func extractVideo(from json: JSON) -> Video {
let indexID: String? let indexID: String?
var id: Video.ID var id: Video.ID
var publishedAt: Date? var publishedAt: Date?

View File

@ -32,7 +32,7 @@ final class PipedAPI: Service, ObservableObject, VideosAPI {
} }
configureTransformer(pathPattern("channel/*")) { (content: Entity<JSON>) -> Channel? in configureTransformer(pathPattern("channel/*")) { (content: Entity<JSON>) -> Channel? in
PipedAPI.extractChannel(content.json) PipedAPI.extractChannel(from: content.json)
} }
configureTransformer(pathPattern("playlists/*")) { (content: Entity<JSON>) -> ChannelPlaylist? in configureTransformer(pathPattern("playlists/*")) { (content: Entity<JSON>) -> ChannelPlaylist? in
@ -40,15 +40,15 @@ final class PipedAPI: Service, ObservableObject, VideosAPI {
} }
configureTransformer(pathPattern("streams/*")) { (content: Entity<JSON>) -> Video? in configureTransformer(pathPattern("streams/*")) { (content: Entity<JSON>) -> Video? in
PipedAPI.extractVideo(content.json) PipedAPI.extractVideo(from: content.json)
} }
configureTransformer(pathPattern("trending")) { (content: Entity<JSON>) -> [Video] in configureTransformer(pathPattern("trending")) { (content: Entity<JSON>) -> [Video] in
PipedAPI.extractVideos(content.json) PipedAPI.extractVideos(from: content.json)
} }
configureTransformer(pathPattern("search")) { (content: Entity<JSON>) -> [ContentItem] in configureTransformer(pathPattern("search")) { (content: Entity<JSON>) -> [ContentItem] in
PipedAPI.extractContentItems(content.json.dictionaryValue["items"]!) PipedAPI.extractContentItems(from: content.json.dictionaryValue["items"]!)
} }
configureTransformer(pathPattern("suggestions")) { (content: Entity<JSON>) -> [String] in configureTransformer(pathPattern("suggestions")) { (content: Entity<JSON>) -> [String] in
@ -101,7 +101,7 @@ final class PipedAPI: Service, ObservableObject, VideosAPI {
"**\(path)" "**\(path)"
} }
private static func extractContentItem(_ content: JSON) -> ContentItem? { private static func extractContentItem(from content: JSON) -> ContentItem? {
let details = content.dictionaryValue let details = content.dictionaryValue
let url: String! = details["url"]?.string let url: String! = details["url"]?.string
@ -121,7 +121,7 @@ final class PipedAPI: Service, ObservableObject, VideosAPI {
switch contentType { switch contentType {
case .video: case .video:
if let video = PipedAPI.extractVideo(content) { if let video = PipedAPI.extractVideo(from: content) {
return ContentItem(video: video) return ContentItem(video: video)
} }
@ -131,7 +131,7 @@ final class PipedAPI: Service, ObservableObject, VideosAPI {
} }
case .channel: case .channel:
if let channel = PipedAPI.extractChannel(content) { if let channel = PipedAPI.extractChannel(from: content) {
return ContentItem(channel: channel) return ContentItem(channel: channel)
} }
} }
@ -139,11 +139,11 @@ final class PipedAPI: Service, ObservableObject, VideosAPI {
return nil return nil
} }
private static func extractContentItems(_ content: JSON) -> [ContentItem] { private static func extractContentItems(from content: JSON) -> [ContentItem] {
content.arrayValue.compactMap { PipedAPI.extractContentItem($0) } content.arrayValue.compactMap { PipedAPI.extractContentItem(from: $0) }
} }
private static func extractChannel(_ content: JSON) -> Channel? { private static func extractChannel(from content: JSON) -> Channel? {
let attributes = content.dictionaryValue let attributes = content.dictionaryValue
guard let id = attributes["id"]?.stringValue ?? guard let id = attributes["id"]?.stringValue ??
(attributes["url"] ?? attributes["uploaderUrl"])?.stringValue.components(separatedBy: "/").last (attributes["url"] ?? attributes["uploaderUrl"])?.stringValue.components(separatedBy: "/").last
@ -155,7 +155,7 @@ final class PipedAPI: Service, ObservableObject, VideosAPI {
var videos = [Video]() var videos = [Video]()
if let relatedStreams = attributes["relatedStreams"] { if let relatedStreams = attributes["relatedStreams"] {
videos = PipedAPI.extractVideos(relatedStreams) videos = PipedAPI.extractVideos(from: relatedStreams)
} }
return Channel( return Channel(
@ -173,13 +173,13 @@ final class PipedAPI: Service, ObservableObject, VideosAPI {
let thumbnailURL = details["thumbnail"]?.url ?? details["thumbnailUrl"]?.url let thumbnailURL = details["thumbnail"]?.url ?? details["thumbnailUrl"]?.url
var videos = [Video]() var videos = [Video]()
if let relatedStreams = details["relatedStreams"] { if let relatedStreams = details["relatedStreams"] {
videos = PipedAPI.extractVideos(relatedStreams) videos = PipedAPI.extractVideos(from: relatedStreams)
} }
return ChannelPlaylist( return ChannelPlaylist(
id: id, id: id,
title: details["name"]!.stringValue, title: details["name"]!.stringValue,
thumbnailURL: thumbnailURL, thumbnailURL: thumbnailURL,
channel: extractChannel(json)!, channel: extractChannel(from: json)!,
videos: videos, videos: videos,
videosCount: details["videos"]?.int videosCount: details["videos"]?.int
) )
@ -189,7 +189,7 @@ final class PipedAPI: Service, ObservableObject, VideosAPI {
json.arrayValue.compactMap(PipedAPI.extractChannelPlaylist) json.arrayValue.compactMap(PipedAPI.extractChannelPlaylist)
} }
private static func extractVideo(_ content: JSON) -> Video? { private static func extractVideo(from content: JSON) -> Video? {
let details = content.dictionaryValue let details = content.dictionaryValue
let url = details["url"]?.string let url = details["url"]?.string
@ -202,7 +202,7 @@ final class PipedAPI: Service, ObservableObject, VideosAPI {
let channelId = details["uploaderUrl"]!.stringValue.components(separatedBy: "/").last! let channelId = details["uploaderUrl"]!.stringValue.components(separatedBy: "/").last!
let thumbnails: [Thumbnail] = Thumbnail.Quality.allCases.compactMap { let thumbnails: [Thumbnail] = Thumbnail.Quality.allCases.compactMap {
if let url = PipedAPI.buildThumbnailURL(content, quality: $0) { if let url = PipedAPI.buildThumbnailURL(from: content, quality: $0) {
return Thumbnail(url: url, quality: $0) return Thumbnail(url: url, quality: $0)
} }
@ -212,32 +212,32 @@ final class PipedAPI: Service, ObservableObject, VideosAPI {
let author = details["uploaderName"]?.stringValue ?? details["uploader"]!.stringValue let author = details["uploaderName"]?.stringValue ?? details["uploader"]!.stringValue
return Video( return Video(
videoID: PipedAPI.extractID(content), videoID: PipedAPI.extractID(from: content),
title: details["title"]!.stringValue, title: details["title"]!.stringValue,
author: author, author: author,
length: details["duration"]!.doubleValue, length: details["duration"]!.doubleValue,
published: details["uploadedDate"]?.stringValue ?? details["uploadDate"]!.stringValue, published: details["uploadedDate"]?.stringValue ?? details["uploadDate"]!.stringValue,
views: details["views"]!.intValue, views: details["views"]!.intValue,
description: PipedAPI.extractDescription(content), description: PipedAPI.extractDescription(from: content),
channel: Channel(id: channelId, name: author), channel: Channel(id: channelId, name: author),
thumbnails: thumbnails, thumbnails: thumbnails,
likes: details["likes"]?.int, likes: details["likes"]?.int,
dislikes: details["dislikes"]?.int, dislikes: details["dislikes"]?.int,
streams: extractStreams(content) streams: extractStreams(from: content)
) )
} }
private static func extractID(_ content: JSON) -> Video.ID { private static func extractID(from content: JSON) -> Video.ID {
content.dictionaryValue["url"]?.stringValue.components(separatedBy: "?v=").last ?? content.dictionaryValue["url"]?.stringValue.components(separatedBy: "?v=").last ??
extractThumbnailURL(content)!.relativeString.components(separatedBy: "/")[4] extractThumbnailURL(from: content)!.relativeString.components(separatedBy: "/")[4]
} }
private static func extractThumbnailURL(_ content: JSON) -> URL? { private static func extractThumbnailURL(from content: JSON) -> URL? {
content.dictionaryValue["thumbnail"]?.url! ?? content.dictionaryValue["thumbnailUrl"]!.url! content.dictionaryValue["thumbnail"]?.url! ?? content.dictionaryValue["thumbnailUrl"]!.url!
} }
private static func buildThumbnailURL(_ content: JSON, quality: Thumbnail.Quality) -> URL? { private static func buildThumbnailURL(from content: JSON, quality: Thumbnail.Quality) -> URL? {
let thumbnailURL = extractThumbnailURL(content) let thumbnailURL = extractThumbnailURL(from: content)
guard !thumbnailURL.isNil else { guard !thumbnailURL.isNil else {
return nil return nil
} }
@ -249,7 +249,7 @@ final class PipedAPI: Service, ObservableObject, VideosAPI {
)! )!
} }
private static func extractDescription(_ content: JSON) -> String? { private static func extractDescription(from content: JSON) -> String? {
guard var description = content.dictionaryValue["description"]?.string else { guard var description = content.dictionaryValue["description"]?.string else {
return nil return nil
} }
@ -271,22 +271,22 @@ final class PipedAPI: Service, ObservableObject, VideosAPI {
return description return description
} }
private static func extractVideos(_ content: JSON) -> [Video] { private static func extractVideos(from content: JSON) -> [Video] {
content.arrayValue.compactMap(extractVideo(_:)) content.arrayValue.compactMap(extractVideo(from:))
} }
private static func extractStreams(_ content: JSON) -> [Stream] { private static func extractStreams(from content: JSON) -> [Stream] {
var streams = [Stream]() var streams = [Stream]()
if let hlsURL = content.dictionaryValue["hls"]?.url { if let hlsURL = content.dictionaryValue["hls"]?.url {
streams.append(Stream(hlsURL: hlsURL)) streams.append(Stream(hlsURL: hlsURL))
} }
guard let audioStream = PipedAPI.compatibleAudioStreams(content).first else { guard let audioStream = PipedAPI.compatibleAudioStreams(from: content).first else {
return streams return streams
} }
let videoStreams = PipedAPI.compatibleVideoStream(content) let videoStreams = PipedAPI.compatibleVideoStream(from: content)
videoStreams.forEach { videoStream in videoStreams.forEach { videoStream in
let audioAsset = AVURLAsset(url: audioStream.dictionaryValue["url"]!.url!) let audioAsset = AVURLAsset(url: audioStream.dictionaryValue["url"]!.url!)
@ -309,7 +309,7 @@ final class PipedAPI: Service, ObservableObject, VideosAPI {
return streams return streams
} }
private static func compatibleAudioStreams(_ content: JSON) -> [JSON] { private static func compatibleAudioStreams(from content: JSON) -> [JSON] {
content content
.dictionaryValue["audioStreams"]? .dictionaryValue["audioStreams"]?
.arrayValue .arrayValue
@ -319,7 +319,7 @@ final class PipedAPI: Service, ObservableObject, VideosAPI {
} ?? [] } ?? []
} }
private static func compatibleVideoStream(_ content: JSON) -> [JSON] { private static func compatibleVideoStream(from content: JSON) -> [JSON] {
content content
.dictionaryValue["videoStreams"]? .dictionaryValue["videoStreams"]?
.arrayValue .arrayValue

View File

@ -34,7 +34,7 @@ struct Playlist: Identifiable, Equatable, Hashable {
title = json["title"].stringValue title = json["title"].stringValue
visibility = json["isListed"].boolValue ? .public : .private visibility = json["isListed"].boolValue ? .public : .private
updated = json["updated"].doubleValue updated = json["updated"].doubleValue
videos = json["videos"].arrayValue.map { InvidiousAPI.extractVideo($0) } videos = json["videos"].arrayValue.map { InvidiousAPI.extractVideo(from: $0) }
} }
static func == (lhs: Playlist, rhs: Playlist) -> Bool { static func == (lhs: Playlist, rhs: Playlist) -> Bool {

View File

@ -96,22 +96,25 @@
3748186E26A769D60084E870 /* DetailBadge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3748186D26A769D60084E870 /* DetailBadge.swift */; }; 3748186E26A769D60084E870 /* DetailBadge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3748186D26A769D60084E870 /* DetailBadge.swift */; };
3748186F26A769D60084E870 /* DetailBadge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3748186D26A769D60084E870 /* DetailBadge.swift */; }; 3748186F26A769D60084E870 /* DetailBadge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3748186D26A769D60084E870 /* DetailBadge.swift */; };
3748187026A769D60084E870 /* DetailBadge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3748186D26A769D60084E870 /* DetailBadge.swift */; }; 3748187026A769D60084E870 /* DetailBadge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3748186D26A769D60084E870 /* DetailBadge.swift */; };
37484C1926FC837400287258 /* PlaybackSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37484C1826FC837400287258 /* PlaybackSettingsView.swift */; }; 37484C1926FC837400287258 /* PlaybackSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37484C1826FC837400287258 /* PlaybackSettings.swift */; };
37484C1A26FC837400287258 /* PlaybackSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37484C1826FC837400287258 /* PlaybackSettingsView.swift */; }; 37484C1A26FC837400287258 /* PlaybackSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37484C1826FC837400287258 /* PlaybackSettings.swift */; };
37484C1B26FC837400287258 /* PlaybackSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37484C1826FC837400287258 /* PlaybackSettingsView.swift */; }; 37484C1B26FC837400287258 /* PlaybackSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37484C1826FC837400287258 /* PlaybackSettings.swift */; };
37484C1D26FC83A400287258 /* InstancesSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37484C1C26FC83A400287258 /* InstancesSettingsView.swift */; }; 37484C1D26FC83A400287258 /* InstancesSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37484C1C26FC83A400287258 /* InstancesSettings.swift */; };
37484C1F26FC83A400287258 /* InstancesSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37484C1C26FC83A400287258 /* InstancesSettingsView.swift */; }; 37484C1F26FC83A400287258 /* InstancesSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37484C1C26FC83A400287258 /* InstancesSettings.swift */; };
37484C2526FC83E000287258 /* InstanceFormView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37484C2426FC83E000287258 /* InstanceFormView.swift */; }; 37484C2526FC83E000287258 /* InstanceForm.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37484C2426FC83E000287258 /* InstanceForm.swift */; };
37484C2626FC83E000287258 /* InstanceFormView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37484C2426FC83E000287258 /* InstanceFormView.swift */; }; 37484C2626FC83E000287258 /* InstanceForm.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37484C2426FC83E000287258 /* InstanceForm.swift */; };
37484C2726FC83E000287258 /* InstanceFormView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37484C2426FC83E000287258 /* InstanceFormView.swift */; }; 37484C2726FC83E000287258 /* InstanceForm.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37484C2426FC83E000287258 /* InstanceForm.swift */; };
37484C2926FC83FF00287258 /* AccountFormView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37484C2826FC83FF00287258 /* AccountFormView.swift */; }; 37484C2926FC83FF00287258 /* AccountForm.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37484C2826FC83FF00287258 /* AccountForm.swift */; };
37484C2A26FC83FF00287258 /* AccountFormView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37484C2826FC83FF00287258 /* AccountFormView.swift */; }; 37484C2A26FC83FF00287258 /* AccountForm.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37484C2826FC83FF00287258 /* AccountForm.swift */; };
37484C2B26FC83FF00287258 /* AccountFormView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37484C2826FC83FF00287258 /* AccountFormView.swift */; }; 37484C2B26FC83FF00287258 /* AccountForm.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37484C2826FC83FF00287258 /* AccountForm.swift */; };
37484C2D26FC844700287258 /* AccountsSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37484C2C26FC844700287258 /* AccountsSettingsView.swift */; }; 37484C2D26FC844700287258 /* AccountsSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37484C2C26FC844700287258 /* AccountsSettings.swift */; };
37484C2F26FC844700287258 /* AccountsSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37484C2C26FC844700287258 /* AccountsSettingsView.swift */; }; 37484C2F26FC844700287258 /* AccountsSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37484C2C26FC844700287258 /* AccountsSettings.swift */; };
37484C3126FCB8F900287258 /* AccountValidator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37484C3026FCB8F900287258 /* AccountValidator.swift */; }; 37484C3126FCB8F900287258 /* AccountValidator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37484C3026FCB8F900287258 /* AccountValidator.swift */; };
37484C3226FCB8F900287258 /* AccountValidator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37484C3026FCB8F900287258 /* AccountValidator.swift */; }; 37484C3226FCB8F900287258 /* AccountValidator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37484C3026FCB8F900287258 /* AccountValidator.swift */; };
37484C3326FCB8F900287258 /* AccountValidator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37484C3026FCB8F900287258 /* AccountValidator.swift */; }; 37484C3326FCB8F900287258 /* AccountValidator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37484C3026FCB8F900287258 /* AccountValidator.swift */; };
374C053527242D9F009BDDBE /* ServicesSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 374C053427242D9F009BDDBE /* ServicesSettings.swift */; };
374C053627242D9F009BDDBE /* ServicesSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 374C053427242D9F009BDDBE /* ServicesSettings.swift */; };
374C053727242D9F009BDDBE /* ServicesSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 374C053427242D9F009BDDBE /* ServicesSettings.swift */; };
375168D62700FAFF008F96A6 /* Debounce.swift in Sources */ = {isa = PBXBuildFile; fileRef = 375168D52700FAFF008F96A6 /* Debounce.swift */; }; 375168D62700FAFF008F96A6 /* Debounce.swift in Sources */ = {isa = PBXBuildFile; fileRef = 375168D52700FAFF008F96A6 /* Debounce.swift */; };
375168D72700FDB8008F96A6 /* Debounce.swift in Sources */ = {isa = PBXBuildFile; fileRef = 375168D52700FAFF008F96A6 /* Debounce.swift */; }; 375168D72700FDB8008F96A6 /* Debounce.swift in Sources */ = {isa = PBXBuildFile; fileRef = 375168D52700FAFF008F96A6 /* Debounce.swift */; };
375168D82700FDB9008F96A6 /* Debounce.swift in Sources */ = {isa = PBXBuildFile; fileRef = 375168D52700FAFF008F96A6 /* Debounce.swift */; }; 375168D82700FDB9008F96A6 /* Debounce.swift in Sources */ = {isa = PBXBuildFile; fileRef = 375168D52700FAFF008F96A6 /* Debounce.swift */; };
@ -152,9 +155,9 @@
376CD21626FBE18D001E1AC1 /* Instance+Fixtures.swift in Sources */ = {isa = PBXBuildFile; fileRef = 376CD21526FBE18D001E1AC1 /* Instance+Fixtures.swift */; }; 376CD21626FBE18D001E1AC1 /* Instance+Fixtures.swift in Sources */ = {isa = PBXBuildFile; fileRef = 376CD21526FBE18D001E1AC1 /* Instance+Fixtures.swift */; };
376CD21726FBE18D001E1AC1 /* Instance+Fixtures.swift in Sources */ = {isa = PBXBuildFile; fileRef = 376CD21526FBE18D001E1AC1 /* Instance+Fixtures.swift */; }; 376CD21726FBE18D001E1AC1 /* Instance+Fixtures.swift in Sources */ = {isa = PBXBuildFile; fileRef = 376CD21526FBE18D001E1AC1 /* Instance+Fixtures.swift */; };
376CD21826FBE18D001E1AC1 /* Instance+Fixtures.swift in Sources */ = {isa = PBXBuildFile; fileRef = 376CD21526FBE18D001E1AC1 /* Instance+Fixtures.swift */; }; 376CD21826FBE18D001E1AC1 /* Instance+Fixtures.swift in Sources */ = {isa = PBXBuildFile; fileRef = 376CD21526FBE18D001E1AC1 /* Instance+Fixtures.swift */; };
37732FF02703A26300F04329 /* ValidationStatusView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37732FEF2703A26300F04329 /* ValidationStatusView.swift */; }; 37732FF02703A26300F04329 /* AccountValidationStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37732FEF2703A26300F04329 /* AccountValidationStatus.swift */; };
37732FF12703A26300F04329 /* ValidationStatusView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37732FEF2703A26300F04329 /* ValidationStatusView.swift */; }; 37732FF12703A26300F04329 /* AccountValidationStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37732FEF2703A26300F04329 /* AccountValidationStatus.swift */; };
37732FF22703A26300F04329 /* ValidationStatusView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37732FEF2703A26300F04329 /* ValidationStatusView.swift */; }; 37732FF22703A26300F04329 /* AccountValidationStatus.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37732FEF2703A26300F04329 /* AccountValidationStatus.swift */; };
37732FF42703D32400F04329 /* Sidebar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37732FF32703D32400F04329 /* Sidebar.swift */; }; 37732FF42703D32400F04329 /* Sidebar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37732FF32703D32400F04329 /* Sidebar.swift */; };
37732FF52703D32400F04329 /* Sidebar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37732FF32703D32400F04329 /* Sidebar.swift */; }; 37732FF52703D32400F04329 /* Sidebar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37732FF32703D32400F04329 /* Sidebar.swift */; };
377A20A92693C9A2002842B8 /* TypedContentAccessors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 377A20A82693C9A2002842B8 /* TypedContentAccessors.swift */; }; 377A20A92693C9A2002842B8 /* TypedContentAccessors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 377A20A82693C9A2002842B8 /* TypedContentAccessors.swift */; };
@ -349,9 +352,9 @@
37F4AE7226828F0900BD60EA /* VerticalCells.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37F4AE7126828F0900BD60EA /* VerticalCells.swift */; }; 37F4AE7226828F0900BD60EA /* VerticalCells.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37F4AE7126828F0900BD60EA /* VerticalCells.swift */; };
37F4AE7326828F0900BD60EA /* VerticalCells.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37F4AE7126828F0900BD60EA /* VerticalCells.swift */; }; 37F4AE7326828F0900BD60EA /* VerticalCells.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37F4AE7126828F0900BD60EA /* VerticalCells.swift */; };
37F4AE7426828F0900BD60EA /* VerticalCells.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37F4AE7126828F0900BD60EA /* VerticalCells.swift */; }; 37F4AE7426828F0900BD60EA /* VerticalCells.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37F4AE7126828F0900BD60EA /* VerticalCells.swift */; };
37F64FE426FE70A60081B69E /* RedrawOnViewModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37F64FE326FE70A60081B69E /* RedrawOnViewModifier.swift */; }; 37F64FE426FE70A60081B69E /* RedrawOnModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37F64FE326FE70A60081B69E /* RedrawOnModifier.swift */; };
37F64FE526FE70A60081B69E /* RedrawOnViewModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37F64FE326FE70A60081B69E /* RedrawOnViewModifier.swift */; }; 37F64FE526FE70A60081B69E /* RedrawOnModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37F64FE326FE70A60081B69E /* RedrawOnModifier.swift */; };
37F64FE626FE70A60081B69E /* RedrawOnViewModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37F64FE326FE70A60081B69E /* RedrawOnViewModifier.swift */; }; 37F64FE626FE70A60081B69E /* RedrawOnModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37F64FE326FE70A60081B69E /* RedrawOnModifier.swift */; };
37FB28412721B22200A57617 /* ContentItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37FB28402721B22200A57617 /* ContentItem.swift */; }; 37FB28412721B22200A57617 /* ContentItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37FB28402721B22200A57617 /* ContentItem.swift */; };
37FB28422721B22200A57617 /* ContentItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37FB28402721B22200A57617 /* ContentItem.swift */; }; 37FB28422721B22200A57617 /* ContentItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37FB28402721B22200A57617 /* ContentItem.swift */; };
37FB28432721B22200A57617 /* ContentItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37FB28402721B22200A57617 /* ContentItem.swift */; }; 37FB28432721B22200A57617 /* ContentItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37FB28402721B22200A57617 /* ContentItem.swift */; };
@ -367,7 +370,7 @@
37FB285E272225E800A57617 /* ContentItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37FB285D272225E800A57617 /* ContentItemView.swift */; }; 37FB285E272225E800A57617 /* ContentItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37FB285D272225E800A57617 /* ContentItemView.swift */; };
37FB285F272225E800A57617 /* ContentItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37FB285D272225E800A57617 /* ContentItemView.swift */; }; 37FB285F272225E800A57617 /* ContentItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37FB285D272225E800A57617 /* ContentItemView.swift */; };
37FB2860272225E800A57617 /* ContentItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37FB285D272225E800A57617 /* ContentItemView.swift */; }; 37FB2860272225E800A57617 /* ContentItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37FB285D272225E800A57617 /* ContentItemView.swift */; };
37FD43DC270470B70073EE42 /* InstancesSettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37FD43DB270470B70073EE42 /* InstancesSettingsView.swift */; }; 37FD43DC270470B70073EE42 /* InstancesSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37FD43DB270470B70073EE42 /* InstancesSettings.swift */; };
37FD43E32704847C0073EE42 /* View+Fixtures.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37FD43E22704847C0073EE42 /* View+Fixtures.swift */; }; 37FD43E32704847C0073EE42 /* View+Fixtures.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37FD43E22704847C0073EE42 /* View+Fixtures.swift */; };
37FD43E42704847C0073EE42 /* View+Fixtures.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37FD43E22704847C0073EE42 /* View+Fixtures.swift */; }; 37FD43E42704847C0073EE42 /* View+Fixtures.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37FD43E22704847C0073EE42 /* View+Fixtures.swift */; };
37FD43E52704847C0073EE42 /* View+Fixtures.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37FD43E22704847C0073EE42 /* View+Fixtures.swift */; }; 37FD43E52704847C0073EE42 /* View+Fixtures.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37FD43E22704847C0073EE42 /* View+Fixtures.swift */; };
@ -429,12 +432,13 @@
3748186526A7627F0084E870 /* Video+Fixtures.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Video+Fixtures.swift"; sourceTree = "<group>"; }; 3748186526A7627F0084E870 /* Video+Fixtures.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Video+Fixtures.swift"; sourceTree = "<group>"; };
3748186926A764FB0084E870 /* Thumbnail+Fixtures.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Thumbnail+Fixtures.swift"; sourceTree = "<group>"; }; 3748186926A764FB0084E870 /* Thumbnail+Fixtures.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Thumbnail+Fixtures.swift"; sourceTree = "<group>"; };
3748186D26A769D60084E870 /* DetailBadge.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailBadge.swift; sourceTree = "<group>"; }; 3748186D26A769D60084E870 /* DetailBadge.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailBadge.swift; sourceTree = "<group>"; };
37484C1826FC837400287258 /* PlaybackSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlaybackSettingsView.swift; sourceTree = "<group>"; }; 37484C1826FC837400287258 /* PlaybackSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlaybackSettings.swift; sourceTree = "<group>"; };
37484C1C26FC83A400287258 /* InstancesSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InstancesSettingsView.swift; sourceTree = "<group>"; }; 37484C1C26FC83A400287258 /* InstancesSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InstancesSettings.swift; sourceTree = "<group>"; };
37484C2426FC83E000287258 /* InstanceFormView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InstanceFormView.swift; sourceTree = "<group>"; }; 37484C2426FC83E000287258 /* InstanceForm.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InstanceForm.swift; sourceTree = "<group>"; };
37484C2826FC83FF00287258 /* AccountFormView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountFormView.swift; sourceTree = "<group>"; }; 37484C2826FC83FF00287258 /* AccountForm.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountForm.swift; sourceTree = "<group>"; };
37484C2C26FC844700287258 /* AccountsSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountsSettingsView.swift; sourceTree = "<group>"; }; 37484C2C26FC844700287258 /* AccountsSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountsSettings.swift; sourceTree = "<group>"; };
37484C3026FCB8F900287258 /* AccountValidator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountValidator.swift; sourceTree = "<group>"; }; 37484C3026FCB8F900287258 /* AccountValidator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountValidator.swift; sourceTree = "<group>"; };
374C053427242D9F009BDDBE /* ServicesSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ServicesSettings.swift; sourceTree = "<group>"; };
375168D52700FAFF008F96A6 /* Debounce.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Debounce.swift; sourceTree = "<group>"; }; 375168D52700FAFF008F96A6 /* Debounce.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Debounce.swift; sourceTree = "<group>"; };
375DFB5726F9DA010013F468 /* InstancesModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InstancesModel.swift; sourceTree = "<group>"; }; 375DFB5726F9DA010013F468 /* InstancesModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InstancesModel.swift; sourceTree = "<group>"; };
3761ABFC26F0F8DE00AA496F /* EnvironmentValues.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EnvironmentValues.swift; sourceTree = "<group>"; }; 3761ABFC26F0F8DE00AA496F /* EnvironmentValues.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EnvironmentValues.swift; sourceTree = "<group>"; };
@ -448,7 +452,7 @@
376A33E32720CB35000C1D6B /* Account.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Account.swift; sourceTree = "<group>"; }; 376A33E32720CB35000C1D6B /* Account.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Account.swift; sourceTree = "<group>"; };
376B2E0626F920D600B1D64D /* SignInRequiredView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SignInRequiredView.swift; sourceTree = "<group>"; }; 376B2E0626F920D600B1D64D /* SignInRequiredView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SignInRequiredView.swift; sourceTree = "<group>"; };
376CD21526FBE18D001E1AC1 /* Instance+Fixtures.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Instance+Fixtures.swift"; sourceTree = "<group>"; }; 376CD21526FBE18D001E1AC1 /* Instance+Fixtures.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Instance+Fixtures.swift"; sourceTree = "<group>"; };
37732FEF2703A26300F04329 /* ValidationStatusView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ValidationStatusView.swift; sourceTree = "<group>"; }; 37732FEF2703A26300F04329 /* AccountValidationStatus.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountValidationStatus.swift; sourceTree = "<group>"; };
37732FF32703D32400F04329 /* Sidebar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Sidebar.swift; sourceTree = "<group>"; }; 37732FF32703D32400F04329 /* Sidebar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Sidebar.swift; sourceTree = "<group>"; };
377A20A82693C9A2002842B8 /* TypedContentAccessors.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TypedContentAccessors.swift; sourceTree = "<group>"; }; 377A20A82693C9A2002842B8 /* TypedContentAccessors.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TypedContentAccessors.swift; sourceTree = "<group>"; };
3788AC2626F6840700F6BAA9 /* WatchNowSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WatchNowSection.swift; sourceTree = "<group>"; }; 3788AC2626F6840700F6BAA9 /* WatchNowSection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WatchNowSection.swift; sourceTree = "<group>"; };
@ -528,10 +532,10 @@
37EAD86E267B9ED100D9E01B /* Segment.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Segment.swift; sourceTree = "<group>"; }; 37EAD86E267B9ED100D9E01B /* Segment.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Segment.swift; sourceTree = "<group>"; };
37F49BA226CAA59B00304AC0 /* Playlist+Fixtures.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Playlist+Fixtures.swift"; sourceTree = "<group>"; }; 37F49BA226CAA59B00304AC0 /* Playlist+Fixtures.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Playlist+Fixtures.swift"; sourceTree = "<group>"; };
37F4AE7126828F0900BD60EA /* VerticalCells.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VerticalCells.swift; sourceTree = "<group>"; }; 37F4AE7126828F0900BD60EA /* VerticalCells.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VerticalCells.swift; sourceTree = "<group>"; };
37F64FE326FE70A60081B69E /* RedrawOnViewModifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RedrawOnViewModifier.swift; sourceTree = "<group>"; }; 37F64FE326FE70A60081B69E /* RedrawOnModifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RedrawOnModifier.swift; sourceTree = "<group>"; };
37FB28402721B22200A57617 /* ContentItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentItem.swift; sourceTree = "<group>"; }; 37FB28402721B22200A57617 /* ContentItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentItem.swift; sourceTree = "<group>"; };
37FB285D272225E800A57617 /* ContentItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentItemView.swift; sourceTree = "<group>"; }; 37FB285D272225E800A57617 /* ContentItemView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentItemView.swift; sourceTree = "<group>"; };
37FD43DB270470B70073EE42 /* InstancesSettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InstancesSettingsView.swift; sourceTree = "<group>"; }; 37FD43DB270470B70073EE42 /* InstancesSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InstancesSettings.swift; sourceTree = "<group>"; };
37FD43E22704847C0073EE42 /* View+Fixtures.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "View+Fixtures.swift"; sourceTree = "<group>"; }; 37FD43E22704847C0073EE42 /* View+Fixtures.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "View+Fixtures.swift"; sourceTree = "<group>"; };
/* End PBXFileReference section */ /* End PBXFileReference section */
@ -751,13 +755,14 @@
37484C1726FC836500287258 /* Settings */ = { 37484C1726FC836500287258 /* Settings */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
37484C2826FC83FF00287258 /* AccountFormView.swift */, 37484C2826FC83FF00287258 /* AccountForm.swift */,
37484C2C26FC844700287258 /* AccountsSettingsView.swift */, 37484C2C26FC844700287258 /* AccountsSettings.swift */,
37484C2426FC83E000287258 /* InstanceFormView.swift */, 37732FEF2703A26300F04329 /* AccountValidationStatus.swift */,
37484C1C26FC83A400287258 /* InstancesSettingsView.swift */, 37484C2426FC83E000287258 /* InstanceForm.swift */,
37484C1826FC837400287258 /* PlaybackSettingsView.swift */, 37484C1C26FC83A400287258 /* InstancesSettings.swift */,
37484C1826FC837400287258 /* PlaybackSettings.swift */,
374C053427242D9F009BDDBE /* ServicesSettings.swift */,
37B044B626F7AB9000E1419D /* SettingsView.swift */, 37B044B626F7AB9000E1419D /* SettingsView.swift */,
37732FEF2703A26300F04329 /* ValidationStatusView.swift */,
); );
path = Settings; path = Settings;
sourceTree = "<group>"; sourceTree = "<group>";
@ -765,7 +770,7 @@
3761AC0526F0F96100AA496F /* Modifiers */ = { 3761AC0526F0F96100AA496F /* Modifiers */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
37F64FE326FE70A60081B69E /* RedrawOnViewModifier.swift */, 37F64FE326FE70A60081B69E /* RedrawOnModifier.swift */,
3761AC0E26F0F9A600AA496F /* UnsubscribeAlertModifier.swift */, 3761AC0E26F0F9A600AA496F /* UnsubscribeAlertModifier.swift */,
); );
path = Modifiers; path = Modifiers;
@ -976,7 +981,7 @@
37FD43E1270472060073EE42 /* Settings */ = { 37FD43E1270472060073EE42 /* Settings */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
37FD43DB270470B70073EE42 /* InstancesSettingsView.swift */, 37FD43DB270470B70073EE42 /* InstancesSettings.swift */,
); );
path = Settings; path = Settings;
sourceTree = "<group>"; sourceTree = "<group>";
@ -1401,9 +1406,9 @@
37BE0BD626A1D4A90092E2DB /* PlayerViewController.swift in Sources */, 37BE0BD626A1D4A90092E2DB /* PlayerViewController.swift in Sources */,
37BA793F26DB8F97002A0235 /* ChannelVideosView.swift in Sources */, 37BA793F26DB8F97002A0235 /* ChannelVideosView.swift in Sources */,
37C194C726F6A9C8005D3B96 /* RecentsModel.swift in Sources */, 37C194C726F6A9C8005D3B96 /* RecentsModel.swift in Sources */,
37484C1926FC837400287258 /* PlaybackSettingsView.swift in Sources */, 37484C1926FC837400287258 /* PlaybackSettings.swift in Sources */,
3711403F26B206A6005B3555 /* SearchModel.swift in Sources */, 3711403F26B206A6005B3555 /* SearchModel.swift in Sources */,
37F64FE426FE70A60081B69E /* RedrawOnViewModifier.swift in Sources */, 37F64FE426FE70A60081B69E /* RedrawOnModifier.swift in Sources */,
376A33E02720CAD6000C1D6B /* VideosApp.swift in Sources */, 376A33E02720CAD6000C1D6B /* VideosApp.swift in Sources */,
37B81AF926D2C9A700675966 /* VideoPlayerSizeModifier.swift in Sources */, 37B81AF926D2C9A700675966 /* VideoPlayerSizeModifier.swift in Sources */,
37DD87C7271C9CFE0027CBF9 /* PlayerStreams.swift in Sources */, 37DD87C7271C9CFE0027CBF9 /* PlayerStreams.swift in Sources */,
@ -1431,6 +1436,7 @@
377FC7E3267A084A00A6BBAF /* VideoCell.swift in Sources */, 377FC7E3267A084A00A6BBAF /* VideoCell.swift in Sources */,
37C3A251272366440087A57A /* ChannelPlaylistView.swift in Sources */, 37C3A251272366440087A57A /* ChannelPlaylistView.swift in Sources */,
37E2EEAB270656EC00170416 /* PlayerControlsView.swift in Sources */, 37E2EEAB270656EC00170416 /* PlayerControlsView.swift in Sources */,
374C053527242D9F009BDDBE /* ServicesSettings.swift in Sources */,
376A33E42720CB35000C1D6B /* Account.swift in Sources */, 376A33E42720CB35000C1D6B /* Account.swift in Sources */,
37BA794326DBA973002A0235 /* PlaylistsModel.swift in Sources */, 37BA794326DBA973002A0235 /* PlaylistsModel.swift in Sources */,
37AAF29026740715007FC770 /* Channel.swift in Sources */, 37AAF29026740715007FC770 /* Channel.swift in Sources */,
@ -1442,7 +1448,7 @@
37C3A24527235DA70087A57A /* ChannelPlaylist.swift in Sources */, 37C3A24527235DA70087A57A /* ChannelPlaylist.swift in Sources */,
37FB28412721B22200A57617 /* ContentItem.swift in Sources */, 37FB28412721B22200A57617 /* ContentItem.swift in Sources */,
37C3A24D272360470087A57A /* ChannelPlaylist+Fixtures.swift in Sources */, 37C3A24D272360470087A57A /* ChannelPlaylist+Fixtures.swift in Sources */,
37484C2D26FC844700287258 /* AccountsSettingsView.swift in Sources */, 37484C2D26FC844700287258 /* AccountsSettings.swift in Sources */,
377A20A92693C9A2002842B8 /* TypedContentAccessors.swift in Sources */, 377A20A92693C9A2002842B8 /* TypedContentAccessors.swift in Sources */,
37484C3126FCB8F900287258 /* AccountValidator.swift in Sources */, 37484C3126FCB8F900287258 /* AccountValidator.swift in Sources */,
37319F0527103F94004ECCD0 /* PlayerQueue.swift in Sources */, 37319F0527103F94004ECCD0 /* PlayerQueue.swift in Sources */,
@ -1457,7 +1463,7 @@
37F49BA326CAA59B00304AC0 /* Playlist+Fixtures.swift in Sources */, 37F49BA326CAA59B00304AC0 /* Playlist+Fixtures.swift in Sources */,
37A9965A26D6F8CA006E3224 /* HorizontalCells.swift in Sources */, 37A9965A26D6F8CA006E3224 /* HorizontalCells.swift in Sources */,
37D526DE2720AC4400ED2F5E /* VideosAPI.swift in Sources */, 37D526DE2720AC4400ED2F5E /* VideosAPI.swift in Sources */,
37484C2526FC83E000287258 /* InstanceFormView.swift in Sources */, 37484C2526FC83E000287258 /* InstanceForm.swift in Sources */,
37B767DB2677C3CA0098BAA8 /* PlayerModel.swift in Sources */, 37B767DB2677C3CA0098BAA8 /* PlayerModel.swift in Sources */,
3788AC2726F6840700F6BAA9 /* WatchNowSection.swift in Sources */, 3788AC2726F6840700F6BAA9 /* WatchNowSection.swift in Sources */,
375DFB5826F9DA010013F468 /* InstancesModel.swift in Sources */, 375DFB5826F9DA010013F468 /* InstancesModel.swift in Sources */,
@ -1472,7 +1478,7 @@
37D526E32720B4BE00ED2F5E /* View+SwipeGesture.swift in Sources */, 37D526E32720B4BE00ED2F5E /* View+SwipeGesture.swift in Sources */,
37732FF42703D32400F04329 /* Sidebar.swift in Sources */, 37732FF42703D32400F04329 /* Sidebar.swift in Sources */,
37D4B19726717E1500C925CA /* Video.swift in Sources */, 37D4B19726717E1500C925CA /* Video.swift in Sources */,
37484C2926FC83FF00287258 /* AccountFormView.swift in Sources */, 37484C2926FC83FF00287258 /* AccountForm.swift in Sources */,
37E70927271CDDAE00D34DDE /* OpenSettingsButton.swift in Sources */, 37E70927271CDDAE00D34DDE /* OpenSettingsButton.swift in Sources */,
371F2F1A269B43D300E4A7AB /* NavigationModel.swift in Sources */, 371F2F1A269B43D300E4A7AB /* NavigationModel.swift in Sources */,
37BE0BCF26A0E2D50092E2DB /* VideoPlayerView.swift in Sources */, 37BE0BCF26A0E2D50092E2DB /* VideoPlayerView.swift in Sources */,
@ -1481,13 +1487,13 @@
37CC3F50270D010D00608308 /* VideoBanner.swift in Sources */, 37CC3F50270D010D00608308 /* VideoBanner.swift in Sources */,
378E50FB26FE8B9F00F49626 /* Instance.swift in Sources */, 378E50FB26FE8B9F00F49626 /* Instance.swift in Sources */,
37E70923271CD43000D34DDE /* WelcomeScreen.swift in Sources */, 37E70923271CD43000D34DDE /* WelcomeScreen.swift in Sources */,
37484C1D26FC83A400287258 /* InstancesSettingsView.swift in Sources */, 37484C1D26FC83A400287258 /* InstancesSettings.swift in Sources */,
37BD07BB2698AB60003EBB87 /* AppSidebarNavigation.swift in Sources */, 37BD07BB2698AB60003EBB87 /* AppSidebarNavigation.swift in Sources */,
37D4B0E42671614900C925CA /* PearvidiousApp.swift in Sources */, 37D4B0E42671614900C925CA /* PearvidiousApp.swift in Sources */,
37C3A241272359900087A57A /* Double+Format.swift in Sources */, 37C3A241272359900087A57A /* Double+Format.swift in Sources */,
37FB285E272225E800A57617 /* ContentItemView.swift in Sources */, 37FB285E272225E800A57617 /* ContentItemView.swift in Sources */,
3797758B2689345500DD52A8 /* Store.swift in Sources */, 3797758B2689345500DD52A8 /* Store.swift in Sources */,
37732FF02703A26300F04329 /* ValidationStatusView.swift in Sources */, 37732FF02703A26300F04329 /* AccountValidationStatus.swift in Sources */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };
@ -1501,6 +1507,7 @@
37C3A24627235DA70087A57A /* ChannelPlaylist.swift in Sources */, 37C3A24627235DA70087A57A /* ChannelPlaylist.swift in Sources */,
3788AC2C26F6842D00F6BAA9 /* WatchNowSectionBody.swift in Sources */, 3788AC2C26F6842D00F6BAA9 /* WatchNowSectionBody.swift in Sources */,
37CEE4BE2677B670005A1EFE /* SingleAssetStream.swift in Sources */, 37CEE4BE2677B670005A1EFE /* SingleAssetStream.swift in Sources */,
374C053627242D9F009BDDBE /* ServicesSettings.swift in Sources */,
37BA794826DC2E56002A0235 /* AppSidebarSubscriptions.swift in Sources */, 37BA794826DC2E56002A0235 /* AppSidebarSubscriptions.swift in Sources */,
37E70928271CDDAE00D34DDE /* OpenSettingsButton.swift in Sources */, 37E70928271CDDAE00D34DDE /* OpenSettingsButton.swift in Sources */,
37EAD86C267B9C5600D9E01B /* SponsorBlockAPI.swift in Sources */, 37EAD86C267B9C5600D9E01B /* SponsorBlockAPI.swift in Sources */,
@ -1515,17 +1522,17 @@
375DFB5926F9DA010013F468 /* InstancesModel.swift in Sources */, 375DFB5926F9DA010013F468 /* InstancesModel.swift in Sources */,
3705B183267B4E4900704544 /* TrendingCategory.swift in Sources */, 3705B183267B4E4900704544 /* TrendingCategory.swift in Sources */,
37FB285F272225E800A57617 /* ContentItemView.swift in Sources */, 37FB285F272225E800A57617 /* ContentItemView.swift in Sources */,
37FD43DC270470B70073EE42 /* InstancesSettingsView.swift in Sources */, 37FD43DC270470B70073EE42 /* InstancesSettings.swift in Sources */,
376B2E0826F920D600B1D64D /* SignInRequiredView.swift in Sources */, 376B2E0826F920D600B1D64D /* SignInRequiredView.swift in Sources */,
37CC3F4D270CFE1700608308 /* PlayerQueueView.swift in Sources */, 37CC3F4D270CFE1700608308 /* PlayerQueueView.swift in Sources */,
37B81B0026D2CA3700675966 /* VideoDetails.swift in Sources */, 37B81B0026D2CA3700675966 /* VideoDetails.swift in Sources */,
37484C1A26FC837400287258 /* PlaybackSettingsView.swift in Sources */, 37484C1A26FC837400287258 /* PlaybackSettings.swift in Sources */,
37BD07C32698AD4F003EBB87 /* ContentView.swift in Sources */, 37BD07C32698AD4F003EBB87 /* ContentView.swift in Sources */,
37484C3226FCB8F900287258 /* AccountValidator.swift in Sources */, 37484C3226FCB8F900287258 /* AccountValidator.swift in Sources */,
37F49BA426CAA59B00304AC0 /* Playlist+Fixtures.swift in Sources */, 37F49BA426CAA59B00304AC0 /* Playlist+Fixtures.swift in Sources */,
37EAD870267B9ED100D9E01B /* Segment.swift in Sources */, 37EAD870267B9ED100D9E01B /* Segment.swift in Sources */,
3788AC2826F6840700F6BAA9 /* WatchNowSection.swift in Sources */, 3788AC2826F6840700F6BAA9 /* WatchNowSection.swift in Sources */,
37F64FE526FE70A60081B69E /* RedrawOnViewModifier.swift in Sources */, 37F64FE526FE70A60081B69E /* RedrawOnModifier.swift in Sources */,
37BA793C26DB8EE4002A0235 /* PlaylistVideosView.swift in Sources */, 37BA793C26DB8EE4002A0235 /* PlaylistVideosView.swift in Sources */,
378E510026FE8EEE00F49626 /* AccountsMenuView.swift in Sources */, 378E510026FE8EEE00F49626 /* AccountsMenuView.swift in Sources */,
37141670267A8ACC006CA35D /* TrendingView.swift in Sources */, 37141670267A8ACC006CA35D /* TrendingView.swift in Sources */,
@ -1546,7 +1553,7 @@
37C3A242272359900087A57A /* Double+Format.swift in Sources */, 37C3A242272359900087A57A /* Double+Format.swift in Sources */,
37DD87C8271C9CFE0027CBF9 /* PlayerStreams.swift in Sources */, 37DD87C8271C9CFE0027CBF9 /* PlayerStreams.swift in Sources */,
376578922685490700D4EA09 /* PlaylistsView.swift in Sources */, 376578922685490700D4EA09 /* PlaylistsView.swift in Sources */,
37484C2626FC83E000287258 /* InstanceFormView.swift in Sources */, 37484C2626FC83E000287258 /* InstanceForm.swift in Sources */,
37D526E42720B4BE00ED2F5E /* View+SwipeGesture.swift in Sources */, 37D526E42720B4BE00ED2F5E /* View+SwipeGesture.swift in Sources */,
377FC7E4267A084E00A6BBAF /* SearchView.swift in Sources */, 377FC7E4267A084E00A6BBAF /* SearchView.swift in Sources */,
37B81AFA26D2C9A700675966 /* VideoPlayerSizeModifier.swift in Sources */, 37B81AFA26D2C9A700675966 /* VideoPlayerSizeModifier.swift in Sources */,
@ -1572,7 +1579,7 @@
37141674267A8E10006CA35D /* Country.swift in Sources */, 37141674267A8E10006CA35D /* Country.swift in Sources */,
37FD43E42704847C0073EE42 /* View+Fixtures.swift in Sources */, 37FD43E42704847C0073EE42 /* View+Fixtures.swift in Sources */,
37AAF2A126741C97007FC770 /* SubscriptionsView.swift in Sources */, 37AAF2A126741C97007FC770 /* SubscriptionsView.swift in Sources */,
37732FF12703A26300F04329 /* ValidationStatusView.swift in Sources */, 37732FF12703A26300F04329 /* AccountValidationStatus.swift in Sources */,
37BA794C26DC30EC002A0235 /* AppSidebarPlaylists.swift in Sources */, 37BA794C26DC30EC002A0235 /* AppSidebarPlaylists.swift in Sources */,
37CC3F46270CE30600608308 /* PlayerQueueItem.swift in Sources */, 37CC3F46270CE30600608308 /* PlayerQueueItem.swift in Sources */,
3700155C271B0D4D0049C794 /* PipedAPI.swift in Sources */, 3700155C271B0D4D0049C794 /* PipedAPI.swift in Sources */,
@ -1583,7 +1590,7 @@
37BD07C12698AD3B003EBB87 /* TrendingCountry.swift in Sources */, 37BD07C12698AD3B003EBB87 /* TrendingCountry.swift in Sources */,
37BA794026DB8F97002A0235 /* ChannelVideosView.swift in Sources */, 37BA794026DB8F97002A0235 /* ChannelVideosView.swift in Sources */,
3711404026B206A6005B3555 /* SearchModel.swift in Sources */, 3711404026B206A6005B3555 /* SearchModel.swift in Sources */,
37484C2A26FC83FF00287258 /* AccountFormView.swift in Sources */, 37484C2A26FC83FF00287258 /* AccountForm.swift in Sources */,
37BE0BD026A0E2D50092E2DB /* VideoPlayerView.swift in Sources */, 37BE0BD026A0E2D50092E2DB /* VideoPlayerView.swift in Sources */,
373CFAEC26975CBF003CB2C6 /* PlaylistFormView.swift in Sources */, 373CFAEC26975CBF003CB2C6 /* PlaylistFormView.swift in Sources */,
37977584268922F600DD52A8 /* InvidiousAPI.swift in Sources */, 37977584268922F600DD52A8 /* InvidiousAPI.swift in Sources */,
@ -1650,7 +1657,7 @@
37C3A243272359900087A57A /* Double+Format.swift in Sources */, 37C3A243272359900087A57A /* Double+Format.swift in Sources */,
37AAF29226740715007FC770 /* Channel.swift in Sources */, 37AAF29226740715007FC770 /* Channel.swift in Sources */,
37EAD86D267B9C5600D9E01B /* SponsorBlockAPI.swift in Sources */, 37EAD86D267B9C5600D9E01B /* SponsorBlockAPI.swift in Sources */,
37732FF22703A26300F04329 /* ValidationStatusView.swift in Sources */, 37732FF22703A26300F04329 /* AccountValidationStatus.swift in Sources */,
37666BAA27023AF000F869E5 /* AccountSelectionView.swift in Sources */, 37666BAA27023AF000F869E5 /* AccountSelectionView.swift in Sources */,
3765788B2685471400D4EA09 /* Playlist.swift in Sources */, 3765788B2685471400D4EA09 /* Playlist.swift in Sources */,
376A33E22720CAD6000C1D6B /* VideosApp.swift in Sources */, 376A33E22720CAD6000C1D6B /* VideosApp.swift in Sources */,
@ -1670,7 +1677,7 @@
37001565271B1F250049C794 /* AccountsModel.swift in Sources */, 37001565271B1F250049C794 /* AccountsModel.swift in Sources */,
37E70929271CDDAE00D34DDE /* OpenSettingsButton.swift in Sources */, 37E70929271CDDAE00D34DDE /* OpenSettingsButton.swift in Sources */,
376A33E62720CB35000C1D6B /* Account.swift in Sources */, 376A33E62720CB35000C1D6B /* Account.swift in Sources */,
37484C1F26FC83A400287258 /* InstancesSettingsView.swift in Sources */, 37484C1F26FC83A400287258 /* InstancesSettings.swift in Sources */,
37C7A1D7267BFD9D0010EAD6 /* SponsorBlockSegment.swift in Sources */, 37C7A1D7267BFD9D0010EAD6 /* SponsorBlockSegment.swift in Sources */,
376578932685490700D4EA09 /* PlaylistsView.swift in Sources */, 376578932685490700D4EA09 /* PlaylistsView.swift in Sources */,
37CC3F47270CE30600608308 /* PlayerQueueItem.swift in Sources */, 37CC3F47270CE30600608308 /* PlayerQueueItem.swift in Sources */,
@ -1688,9 +1695,10 @@
37BE0BD726A1D4A90092E2DB /* PlayerViewController.swift in Sources */, 37BE0BD726A1D4A90092E2DB /* PlayerViewController.swift in Sources */,
37484C3326FCB8F900287258 /* AccountValidator.swift in Sources */, 37484C3326FCB8F900287258 /* AccountValidator.swift in Sources */,
37CEE4C32677B697005A1EFE /* Stream.swift in Sources */, 37CEE4C32677B697005A1EFE /* Stream.swift in Sources */,
37F64FE626FE70A60081B69E /* RedrawOnViewModifier.swift in Sources */, 37F64FE626FE70A60081B69E /* RedrawOnModifier.swift in Sources */,
37484C2B26FC83FF00287258 /* AccountFormView.swift in Sources */, 37484C2B26FC83FF00287258 /* AccountForm.swift in Sources */,
37FB2860272225E800A57617 /* ContentItemView.swift in Sources */, 37FB2860272225E800A57617 /* ContentItemView.swift in Sources */,
374C053727242D9F009BDDBE /* ServicesSettings.swift in Sources */,
37BA793D26DB8EE4002A0235 /* PlaylistVideosView.swift in Sources */, 37BA793D26DB8EE4002A0235 /* PlaylistVideosView.swift in Sources */,
3711404126B206A6005B3555 /* SearchModel.swift in Sources */, 3711404126B206A6005B3555 /* SearchModel.swift in Sources */,
37FD43F02704A9C00073EE42 /* RecentsModel.swift in Sources */, 37FD43F02704A9C00073EE42 /* RecentsModel.swift in Sources */,
@ -1701,7 +1709,7 @@
37FD43E52704847C0073EE42 /* View+Fixtures.swift in Sources */, 37FD43E52704847C0073EE42 /* View+Fixtures.swift in Sources */,
37141675267A8E10006CA35D /* Country.swift in Sources */, 37141675267A8E10006CA35D /* Country.swift in Sources */,
37152EEC26EFEB95004FB96D /* LazyView.swift in Sources */, 37152EEC26EFEB95004FB96D /* LazyView.swift in Sources */,
37484C2726FC83E000287258 /* InstanceFormView.swift in Sources */, 37484C2726FC83E000287258 /* InstanceForm.swift in Sources */,
37F49BA826CB0FCE00304AC0 /* PlaylistFormView.swift in Sources */, 37F49BA826CB0FCE00304AC0 /* PlaylistFormView.swift in Sources */,
37D4B19926717E1500C925CA /* Video.swift in Sources */, 37D4B19926717E1500C925CA /* Video.swift in Sources */,
378E50FD26FE8B9F00F49626 /* Instance.swift in Sources */, 378E50FD26FE8B9F00F49626 /* Instance.swift in Sources */,
@ -1711,11 +1719,11 @@
37C3A24F272360470087A57A /* ChannelPlaylist+Fixtures.swift in Sources */, 37C3A24F272360470087A57A /* ChannelPlaylist+Fixtures.swift in Sources */,
37FB28432721B22200A57617 /* ContentItem.swift in Sources */, 37FB28432721B22200A57617 /* ContentItem.swift in Sources */,
37AAF2A226741C97007FC770 /* SubscriptionsView.swift in Sources */, 37AAF2A226741C97007FC770 /* SubscriptionsView.swift in Sources */,
37484C1B26FC837400287258 /* PlaybackSettingsView.swift in Sources */, 37484C1B26FC837400287258 /* PlaybackSettings.swift in Sources */,
372915E82687E3B900F5A35B /* Defaults.swift in Sources */, 372915E82687E3B900F5A35B /* Defaults.swift in Sources */,
37BAB54C269B39FD00E75ED1 /* TVNavigationView.swift in Sources */, 37BAB54C269B39FD00E75ED1 /* TVNavigationView.swift in Sources */,
3797758D2689345500DD52A8 /* Store.swift in Sources */, 3797758D2689345500DD52A8 /* Store.swift in Sources */,
37484C2F26FC844700287258 /* AccountsSettingsView.swift in Sources */, 37484C2F26FC844700287258 /* AccountsSettings.swift in Sources */,
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
}; };

View File

@ -1,6 +1,6 @@
import SwiftUI import SwiftUI
struct RedrawOnViewModifier: ViewModifier { struct RedrawOnModifier: ViewModifier {
@State private var changeFlag: Bool @State private var changeFlag: Bool
init(changeFlag: Bool) { init(changeFlag: Bool) {
@ -14,6 +14,6 @@ struct RedrawOnViewModifier: ViewModifier {
extension View { extension View {
func redrawOn(change flag: Bool) -> some View { func redrawOn(change flag: Bool) -> some View {
modifier(RedrawOnViewModifier(changeFlag: flag)) modifier(RedrawOnModifier(changeFlag: flag))
} }
} }

View File

@ -1,7 +1,7 @@
import Defaults import Defaults
import SwiftUI import SwiftUI
struct AccountFormView: View { struct AccountForm: View {
let instance: Instance let instance: Instance
var selectedAccount: Binding<Account?>? var selectedAccount: Binding<Account?>?
@ -83,7 +83,7 @@ struct AccountFormView: View {
var footer: some View { var footer: some View {
HStack { HStack {
ValidationStatusView(isValid: $isValid, isValidated: $isValidated, isValidating: $isValidating, error: .constant(nil)) AccountValidationStatus(isValid: $isValid, isValidated: $isValidated, isValidating: $isValidating, error: .constant(nil))
Spacer() Spacer()
@ -145,6 +145,6 @@ struct AccountFormView: View {
struct AccountFormView_Previews: PreviewProvider { struct AccountFormView_Previews: PreviewProvider {
static var previews: some View { static var previews: some View {
AccountFormView(instance: Instance.fixture) AccountForm(instance: Instance.fixture)
} }
} }

View File

@ -1,7 +1,7 @@
import Foundation import Foundation
import SwiftUI import SwiftUI
struct ValidationStatusView: View { struct AccountValidationStatus: View {
@Binding var isValid: Bool @Binding var isValid: Bool
@Binding var isValidated: Bool @Binding var isValidated: Bool
@Binding var isValidating: Bool @Binding var isValidating: Bool

View File

@ -1,6 +1,6 @@
import SwiftUI import SwiftUI
struct AccountsSettingsView: View { struct AccountsSettings: View {
let instanceID: Instance.ID? let instanceID: Instance.ID?
@State private var accountsChanged = false @State private var accountsChanged = false
@ -50,7 +50,7 @@ struct AccountsSettingsView: View {
} }
} }
.sheet(isPresented: $presentingAccountForm, onDismiss: { accountsChanged.toggle() }) { .sheet(isPresented: $presentingAccountForm, onDismiss: { accountsChanged.toggle() }) {
AccountFormView(instance: instance) AccountForm(instance: instance)
} }
#if os(iOS) #if os(iOS)
.listStyle(.insetGrouped) .listStyle(.insetGrouped)

View File

@ -1,6 +1,6 @@
import SwiftUI import SwiftUI
struct InstanceFormView: View { struct InstanceForm: View {
@Binding var savedInstanceID: Instance.ID? @Binding var savedInstanceID: Instance.ID?
@State private var name = "" @State private var name = ""
@ -94,7 +94,7 @@ struct InstanceFormView: View {
private var footer: some View { private var footer: some View {
HStack(alignment: .center) { HStack(alignment: .center) {
ValidationStatusView(isValid: $isValid, isValidated: $isValidated, isValidating: $isValidating, error: $validationError) AccountValidationStatus(isValid: $isValid, isValidated: $isValidated, isValidating: $isValidating, error: $validationError)
Spacer() Spacer()
@ -154,6 +154,6 @@ struct InstanceFormView: View {
struct InstanceFormView_Previews: PreviewProvider { struct InstanceFormView_Previews: PreviewProvider {
static var previews: some View { static var previews: some View {
InstanceFormView(savedInstanceID: .constant(nil)) InstanceForm(savedInstanceID: .constant(nil))
} }
} }

View File

@ -1,7 +1,7 @@
import Defaults import Defaults
import SwiftUI import SwiftUI
struct InstancesSettingsView: View { struct InstancesSettings: View {
@Default(.instances) private var instances @Default(.instances) private var instances
@EnvironmentObject<AccountsModel> private var accounts @EnvironmentObject<AccountsModel> private var accounts
@ -21,7 +21,7 @@ struct InstancesSettingsView: View {
ForEach(instances) { instance in ForEach(instances) { instance in
Group { Group {
NavigationLink(instance.longDescription) { NavigationLink(instance.longDescription) {
AccountsSettingsView(instanceID: instance.id) AccountsSettings(instanceID: instance.id)
} }
} }
#if os(iOS) #if os(iOS)
@ -43,7 +43,7 @@ struct InstancesSettingsView: View {
#endif #endif
} }
.sheet(isPresented: $presentingInstanceForm) { .sheet(isPresented: $presentingInstanceForm) {
InstanceFormView(savedInstanceID: $savedFormInstanceID) InstanceForm(savedInstanceID: $savedFormInstanceID)
} }
} }
@ -66,7 +66,7 @@ struct InstancesSettingsView: View {
struct InstancesSettingsView_Previews: PreviewProvider { struct InstancesSettingsView_Previews: PreviewProvider {
static var previews: some View { static var previews: some View {
VStack { VStack {
InstancesSettingsView() InstancesSettings()
} }
.frame(width: 400, height: 270) .frame(width: 400, height: 270)
.environmentObject(InstancesModel()) .environmentObject(InstancesModel())

View File

@ -1,7 +1,7 @@
import Defaults import Defaults
import SwiftUI import SwiftUI
struct PlaybackSettingsView: View { struct PlaybackSettings: View {
@Default(.quality) private var quality @Default(.quality) private var quality
var body: some View { var body: some View {

View File

@ -0,0 +1,20 @@
//
// ServicesSettings.swift
// Pearvidious
//
// Created by Arkadiusz Fal on 23/10/2021.
//
import SwiftUI
struct ServicesSettings: View {
var body: some View {
Text(/*@START_MENU_TOKEN@*/"Hello, World!"/*@END_MENU_TOKEN@*/)
}
}
struct ServicesSettings_Previews: PreviewProvider {
static var previews: some View {
ServicesSettings()
}
}

View File

@ -17,7 +17,7 @@ struct SettingsView: View {
#if os(macOS) #if os(macOS)
TabView { TabView {
Form { Form {
InstancesSettingsView() InstancesSettings()
} }
.tabItem { .tabItem {
Label("Instances", systemImage: "server.rack") Label("Instances", systemImage: "server.rack")
@ -25,7 +25,7 @@ struct SettingsView: View {
.tag(Tabs.instances) .tag(Tabs.instances)
Form { Form {
PlaybackSettingsView() PlaybackSettings()
} }
.tabItem { .tabItem {
Label("Playback", systemImage: "play.rectangle.on.rectangle.fill") Label("Playback", systemImage: "play.rectangle.on.rectangle.fill")
@ -40,8 +40,8 @@ struct SettingsView: View {
#if os(tvOS) #if os(tvOS)
AccountSelectionView() AccountSelectionView()
#endif #endif
InstancesSettingsView() InstancesSettings()
PlaybackSettingsView() PlaybackSettings()
} }
.navigationTitle("Settings") .navigationTitle("Settings")
.toolbar { .toolbar {

View File

@ -1,7 +1,7 @@
import Defaults import Defaults
import SwiftUI import SwiftUI
struct InstancesSettingsView: View { struct InstancesSettings: View {
@State private var selectedInstanceID: Instance.ID? @State private var selectedInstanceID: Instance.ID?
@State private var selectedAccount: Account? @State private var selectedAccount: Account?
@ -116,10 +116,10 @@ struct InstancesSettingsView: View {
selectedInstanceID = instances.first?.id selectedInstanceID = instances.first?.id
} }
.sheet(isPresented: $presentingAccountForm) { .sheet(isPresented: $presentingAccountForm) {
AccountFormView(instance: selectedInstance, selectedAccount: $selectedAccount) AccountForm(instance: selectedInstance, selectedAccount: $selectedAccount)
} }
.sheet(isPresented: $presentingInstanceForm, onDismiss: setSelectedInstanceToFormInstance) { .sheet(isPresented: $presentingInstanceForm, onDismiss: setSelectedInstanceToFormInstance) {
InstanceFormView(savedInstanceID: $savedFormInstanceID) InstanceForm(savedInstanceID: $savedFormInstanceID)
} }
} }
@ -146,7 +146,7 @@ struct InstancesSettingsView: View {
struct InstancesSettingsView_Previews: PreviewProvider { struct InstancesSettingsView_Previews: PreviewProvider {
static var previews: some View { static var previews: some View {
VStack { VStack {
InstancesSettingsView() InstancesSettings()
} }
.frame(width: 400, height: 270) .frame(width: 400, height: 270)
.injectFixtureEnvironmentObjects() .injectFixtureEnvironmentObjects()