From ee5ddd426481bed99652945755476e138b194b6b Mon Sep 17 00:00:00 2001 From: naturecodevoid <44983869+naturecodevoid@users.noreply.github.com> Date: Sun, 16 Apr 2023 09:29:12 -0700 Subject: [PATCH] fix: use a notification instead of an alert for force close --- AltStore/Operations/InstallAppOperation.swift | 29 +++++-------------- 1 file changed, 7 insertions(+), 22 deletions(-) diff --git a/AltStore/Operations/InstallAppOperation.swift b/AltStore/Operations/InstallAppOperation.swift index 41deab1a..12db3326 100644 --- a/AltStore/Operations/InstallAppOperation.swift +++ b/AltStore/Operations/InstallAppOperation.swift @@ -154,29 +154,14 @@ final class InstallAppOperation: ResultOperation if installedApp.storeApp?.bundleIdentifier == Bundle.Info.appbundleIdentifier { DispatchQueue.main.asyncAfter(deadline: .now() + 3) { if installing { - print("We are still installing after 3 seconds") + print("We are still installing after 3 seconds, requesting notification and then closing") - let alert = UIAlertController(title: "Finish Refresh", message: "To finish refreshing, SideStore must force close itself. Please reopen SideStore after continuing!", preferredStyle: .alert) - alert.addAction(UIAlertAction(title: NSLocalizedString("Continue", comment: ""), style: .default, handler: { _ in - if installing { - print("Closing SideStore since we are still installing") - exit(0) - } else { - print("Not closing SideStore since installing finished") - } - })) - - let keyWindow = UIApplication.shared.windows.filter { $0.isKeyWindow }.first - if var topController = keyWindow?.rootViewController { - while let presentedViewController = topController.presentedViewController { - topController = presentedViewController - } - - topController.present(alert, animated: true) - } else { - print("No key window? Closing SideStore") - exit(0) - } + var content = UNMutableNotificationContent() + content.title = "Refreshing..." + content.body = "To finish refreshing, SideStore must force close itself. Please reopen SideStore after it is done refreshing!" + let notification = UNNotificationRequest(identifier: Bundle.Info.appbundleIdentifier + ".FinishRefreshNotification", content: content, trigger: UNTimeIntervalNotificationTrigger(timeInterval: 1, repeats: false)) + UNUserNotificationCenter.current().add(notification) + exit(0) } else { print("Installing finished") }