diff --git a/Sources/EeveeSpotify/Helpers/WindowHelper.swift b/Sources/EeveeSpotify/Helpers/WindowHelper.swift index 28f327a..a2891df 100644 --- a/Sources/EeveeSpotify/Helpers/WindowHelper.swift +++ b/Sources/EeveeSpotify/Helpers/WindowHelper.swift @@ -14,6 +14,19 @@ struct WindowHelper { func present(_ viewController: UIViewController) { rootViewController.present(viewController, animated: true) } + + func findFirstSubview(_ regex: String, in view: UIView) -> UIView? { + for subview in view.subviews { + if NSStringFromClass(type(of: subview)) ~= regex { + return subview + } + if let found = findFirstSubview(regex, in: subview) { + return found + } + } + + return nil + } func findFirstViewController(_ regex: String) -> UIViewController? { let rootView = self.rootViewController.view! diff --git a/Sources/EeveeSpotify/Lyrics/CustomLyrics.x.swift b/Sources/EeveeSpotify/Lyrics/CustomLyrics.x.swift index 35dc004..00416c7 100644 --- a/Sources/EeveeSpotify/Lyrics/CustomLyrics.x.swift +++ b/Sources/EeveeSpotify/Lyrics/CustomLyrics.x.swift @@ -63,12 +63,11 @@ class LyricsOnlyViewControllerHook: ClassHook { } // - - let lyricsLabel = EeveeSpotify.isOldSpotifyVersion - ? lyricsHeaderViewController.view.subviews.first?.subviews.first - : lyricsHeaderViewController.view.subviews.first - guard let lyricsLabel = lyricsLabel else { + guard let lyricsLabel = WindowHelper.shared.findFirstSubview( + "SPTEncoreLabel", + in: lyricsHeaderViewController.view + ) else { return }