diff --git a/Mastodon/Extension/CoreDataStack/MastodonUser.swift b/Mastodon/Extension/CoreDataStack/MastodonUser.swift index bb99b15d4..7035a987b 100644 --- a/Mastodon/Extension/CoreDataStack/MastodonUser.swift +++ b/Mastodon/Extension/CoreDataStack/MastodonUser.swift @@ -58,10 +58,18 @@ extension MastodonUser { return URL(string: header) } + public func headerImageURLWithFallback(domain: String) -> URL { + return URL(string: header) ?? URL(string: "https://\(domain)/headers/original/missing.png")! + } + public func avatarImageURL() -> URL? { return URL(string: avatar) } + public func avatarImageURLWithFallback(domain: String) -> URL { + return URL(string: avatar) ?? URL(string: "https://\(domain)/avatars/original/missing.png")! + } + } extension MastodonUser { diff --git a/Mastodon/Scene/MediaPreview/MediaPreviewViewModel.swift b/Mastodon/Scene/MediaPreview/MediaPreviewViewModel.swift index 1b0cc6def..f3037c080 100644 --- a/Mastodon/Scene/MediaPreview/MediaPreviewViewModel.swift +++ b/Mastodon/Scene/MediaPreview/MediaPreviewViewModel.swift @@ -59,7 +59,7 @@ final class MediaPreviewViewModel: NSObject { let managedObjectContext = self.context.managedObjectContext managedObjectContext.performAndWait { let account = managedObjectContext.object(with: meta.accountObjectID) as! MastodonUser - let avatarURL = account.headerImageURL() ?? URL(string: "https://example.com")! // assert URL exist + let avatarURL = account.headerImageURLWithFallback(domain: account.domain) let meta = MediaPreviewImageViewModel.RemoteImagePreviewMeta(url: avatarURL, thumbnail: meta.preloadThumbnailImage) let mediaPreviewImageModel = MediaPreviewImageViewModel(meta: meta) let mediaPreviewImageViewController = MediaPreviewImageViewController() @@ -79,7 +79,7 @@ final class MediaPreviewViewModel: NSObject { let managedObjectContext = self.context.managedObjectContext managedObjectContext.performAndWait { let account = managedObjectContext.object(with: meta.accountObjectID) as! MastodonUser - let avatarURL = account.avatarImageURL() ?? URL(string: "https://example.com")! // assert URL exist + let avatarURL = account.avatarImageURLWithFallback(domain: account.domain) let meta = MediaPreviewImageViewModel.RemoteImagePreviewMeta(url: avatarURL, thumbnail: meta.preloadThumbnailImage) let mediaPreviewImageModel = MediaPreviewImageViewModel(meta: meta) let mediaPreviewImageViewController = MediaPreviewImageViewController()