From 0e324fe855ef390d0f27d69e08081ff9b98e1eef Mon Sep 17 00:00:00 2001 From: Vegard Bieker Matthey Date: Wed, 5 Aug 2026 00:11:16 +0200 Subject: [PATCH] fix: call readComic when correct comic is loaded --- ImageViewer/ViewController.swift | 36 +++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 12 deletions(-) diff --git a/ImageViewer/ViewController.swift b/ImageViewer/ViewController.swift index 44d373c..d5d1cd9 100644 --- a/ImageViewer/ViewController.swift +++ b/ImageViewer/ViewController.swift @@ -167,9 +167,9 @@ final class ViewController: UIViewController, UIGestureRecognizerDelegate { homeView.translatesAutoresizingMaskIntoConstraints = false readerView.translatesAutoresizingMaskIntoConstraints = false - readerView.isHidden = true + readerView.isHidden = globalState.comicName == nil readerView.backgroundColor = .black - homeView.isHidden = false + homeView.isHidden = globalState.comicName != nil homeView.backgroundColor = convertStringToColor(settings.homeBackgroundColor) view.addSubview(homeView) view.addSubview(readerView) @@ -190,9 +190,6 @@ final class ViewController: UIViewController, UIGestureRecognizerDelegate { setupGestures() setupBar() setupHomeView() - if let name = globalState.comicName { - readComic(name: name) - } } func setupHomeView() { @@ -284,14 +281,18 @@ final class ViewController: UIViewController, UIGestureRecognizerDelegate { let metadataPath = dir.appendingPathComponent(metadataFilename) guard let data = try? Data(contentsOf: metadataPath) else { - alert.message = String(format: "Failed to read contents of metadata: \(metadataPath))") + DispatchQueue.main.async { + alert.message = String(format: "Failed to read contents of metadata: \(metadataPath))") + } pendingAlert = alert return } var byteBuffer = ByteBuffer(data: data) guard let metadata: Metadata = try? getCheckedRoot(byteBuffer: &byteBuffer) else { - alert.message = - String(format: "Failed to read contents of metadata flatbuffer file: \(metadataPath))") + DispatchQueue.main.async { + alert.message = + String(format: "Failed to read contents of metadata flatbuffer file: \(metadataPath))") + } pendingAlert = alert return } @@ -306,13 +307,17 @@ final class ViewController: UIViewController, UIGestureRecognizerDelegate { let a = try Archive(url: archivePath, accessMode: .read) archive = a } catch { - alert.message = String(format: "Could not open Archive: \(archivePath)") + DispatchQueue.main.async { + alert.message = String(format: "Could not open Archive: \(archivePath)") + } pendingAlert = alert return } let filename = metadata.volumes[volCovP.v].chapters[volCovP.c].images[volCovP.i].filename! guard let targetEntry = archive[filename] else { - alert.message = String(format: "Archive entry does not exist: \(filename)") + DispatchQueue.main.async { + alert.message = String(format: "Archive entry does not exist: \(filename)") + } pendingAlert = alert return } @@ -322,12 +327,16 @@ final class ViewController: UIViewController, UIGestureRecognizerDelegate { extractedData.append(data) } } catch { - alert.message = String(format: "Failed to extract data from entry: \(targetEntry.path)") + DispatchQueue.main.async { + alert.message = String(format: "Failed to extract data from entry: \(targetEntry.path)") + } pendingAlert = alert return } guard let coverImage = UIImage(data: extractedData) else { - alert.message = String(format: "Cover image is nil: \(filename)") + DispatchQueue.main.async { + alert.message = String(format: "Cover image is nil: \(filename)") + } pendingAlert = alert return } @@ -339,6 +348,9 @@ final class ViewController: UIViewController, UIGestureRecognizerDelegate { ) ) DispatchQueue.main.async { + if metadata.title == self.globalState.comicName { + self.readComic(name: metadata.title) + } self.comicCollectionView.reloadData() } }