import Sparkle
import Cocoa

class UpdaterDelegate: NSObject, SPUUpdaterDelegate {
    func feedURLString(for updater: SPUUpdater) -> String? {
        // Eventually w want to support multiple channels. Sparkle itself supports
        // channels but we probably don't want some appcasts in the same file (i.e.
        // tip) so this would be the place to change that. For now, we hardcode the
        // tip appcast URL since it is all we support.
        return "https://tip.files.ghostty.dev/appcast.xml"
    }
    
    func updaterWillRelaunchApplication(_ updater: SPUUpdater) {
        // When the updater is relaunching the application we want to get macOS
        // to invalidate and re-encode all of our restorable state so that when
        // we relaunch it uses it.
        NSApp.invalidateRestorableState()
        for window in NSApp.windows { window.invalidateRestorableState() }
    }
}
