diff --git a/Pocket Poster.xcodeproj/project.pbxproj b/Pocket Poster.xcodeproj/project.pbxproj index 7413994..3412f62 100644 --- a/Pocket Poster.xcodeproj/project.pbxproj +++ b/Pocket Poster.xcodeproj/project.pbxproj @@ -264,7 +264,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 2; DEVELOPMENT_ASSET_PATHS = "\"Pocket Poster/Preview Content\""; DEVELOPMENT_TEAM = 2P4CP47H76; ENABLE_PREVIEWS = YES; @@ -296,7 +296,7 @@ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; + CURRENT_PROJECT_VERSION = 2; DEVELOPMENT_ASSET_PATHS = "\"Pocket Poster/Preview Content\""; DEVELOPMENT_TEAM = 2P4CP47H76; ENABLE_PREVIEWS = YES; diff --git a/Pocket Poster/Controllers/PosterBoardManager.swift b/Pocket Poster/Controllers/PosterBoardManager.swift index 87b283d..a7d8911 100644 --- a/Pocket Poster/Controllers/PosterBoardManager.swift +++ b/Pocket Poster/Controllers/PosterBoardManager.swift @@ -28,6 +28,23 @@ class PosterBoardManager: ObservableObject { return tendiesStoreURL } + func setSystemLanguage(to new_lang: String) -> Bool { + var langManager: NSObject = NSObject() + if #available(iOS 18.0, *) { + guard let obj = objc_getClass("IPSettingsUtilities") as? NSObject else { return false } + langManager = obj + } else { + guard let obj = objc_getClass("PSLanguageSelector") as? NSObject else { return false } + langManager = obj + } + + if let success = langManager.perform(Selector(("setLanguage:")), with: new_lang) { + return success != nil + } + + return false + } + func openPosterBoard() -> Bool { guard let obj = objc_getClass("LSApplicationWorkspace") as? NSObject else { return false } let workspace = obj.perform(Selector(("defaultWorkspace")))?.takeUnretainedValue() as? NSObject diff --git a/Pocket Poster/Views/ContentView.swift b/Pocket Poster/Views/ContentView.swift index ef3f0b1..f2f41b1 100644 --- a/Pocket Poster/Views/ContentView.swift +++ b/Pocket Poster/Views/ContentView.swift @@ -174,7 +174,17 @@ struct ContentView: View { .buttonStyle(TintedButton(color: .blue, fullwidth: true)) } Button(action: { - hideResetHelp = false + guard let lang = UserDefaults.standard.stringArray(forKey: "AppleLanguages")?.first else { + hideResetHelp = false // fallback to tutorial + return + } + UIApplication.shared.confirmAlert(title: "Reset Collections", body: "Do you want to reset collections?", onOK: { + if PosterBoardManager.shared.setSystemLanguage(to: lang) { + UIApplication.shared.alert(title: "Collections Successfully Reset!", body: "Your PosterBoard will refresh automatically.") + } else { + UIApplication.shared.alert(body: "The API failed to call correctly.\nSystem Locale Code: \(lang)") + } + }, noCancel: false) }) { Text("Reset Collections") }