From 610ccc11c2726e2e615b9b868b07fdeebf9ca8dc Mon Sep 17 00:00:00 2001 From: Shawn Schantz Date: Mon, 23 Feb 2026 13:38:01 -0500 Subject: [PATCH] Revert "maint(ios): resolved warnings for Xcode 26" This reverts commit a91f098ed6ba9f9ac57122eea416696dc120658c. Apply these changes in a separate PR. --- ios/engine/KMEI/KeymanEngine/Classes/Alerts.swift | 2 +- .../Installation/PackageInstallViewController.swift | 4 ++-- .../Classes/Keyboard/KeymanWebDelegate.swift | 2 +- .../Classes/Keyboard/KeymanWebViewController.swift | 7 ++----- .../KMEI/KeymanEngine/Classes/Obsoletions.swift | 6 +++--- .../Classes/PackageWebViewController.swift | 13 ++++++------- .../Classes/Resource Data/FontManager.swift | 2 +- .../Classes/ResourceDownloadStatusToolbar.swift | 2 +- .../Settings/InstalledLanguagesViewController.swift | 2 +- .../KeymanEngine/Classes/kmp.json/KMPKeyboard.swift | 2 +- .../Classes/kmp.json/KMPLexicalModel.swift | 2 +- .../MainViewController/MainViewController.swift | 2 +- 12 files changed, 21 insertions(+), 25 deletions(-) diff --git a/ios/engine/KMEI/KeymanEngine/Classes/Alerts.swift b/ios/engine/KMEI/KeymanEngine/Classes/Alerts.swift index 9d84fd1a2c..345eeb9312 100644 --- a/ios/engine/KMEI/KeymanEngine/Classes/Alerts.swift +++ b/ios/engine/KMEI/KeymanEngine/Classes/Alerts.swift @@ -16,7 +16,7 @@ open class Alerts { public static func constructActivitySpinner() -> UIActivityIndicatorView { let activitySpinner: UIActivityIndicatorView - activitySpinner = UIActivityIndicatorView(style: UIActivityIndicatorView.Style.large) + activitySpinner = UIActivityIndicatorView(style: .whiteLarge) activitySpinner.hidesWhenStopped = true activitySpinner.translatesAutoresizingMaskIntoConstraints = false activitySpinner.backgroundColor = Colors.spinnerBackground diff --git a/ios/engine/KMEI/KeymanEngine/Classes/Installation/PackageInstallViewController.swift b/ios/engine/KMEI/KeymanEngine/Classes/Installation/PackageInstallViewController.swift index 38848b316c..390583510d 100644 --- a/ios/engine/KMEI/KeymanEngine/Classes/Installation/PackageInstallViewController.swift +++ b/ios/engine/KMEI/KeymanEngine/Classes/Installation/PackageInstallViewController.swift @@ -195,8 +195,8 @@ public class PackageInstallViewController: UIViewCon tabView.translatesAutoresizingMaskIntoConstraints = false self.view.addSubview(tabVC.view) - tabView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor).isActive = true - tabView.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor).isActive = true + tabView.topAnchor.constraint(equalTo: topLayoutGuide.bottomAnchor).isActive = true + tabView.bottomAnchor.constraint(equalTo: bottomLayoutGuide.topAnchor).isActive = true tabView.leftAnchor.constraint(equalTo: view.leftAnchor).isActive = true tabView.rightAnchor.constraint(equalTo: view.rightAnchor).isActive = true diff --git a/ios/engine/KMEI/KeymanEngine/Classes/Keyboard/KeymanWebDelegate.swift b/ios/engine/KMEI/KeymanEngine/Classes/Keyboard/KeymanWebDelegate.swift index aaa6b82f9d..9a3ed80b9a 100644 --- a/ios/engine/KMEI/KeymanEngine/Classes/Keyboard/KeymanWebDelegate.swift +++ b/ios/engine/KMEI/KeymanEngine/Classes/Keyboard/KeymanWebDelegate.swift @@ -9,7 +9,7 @@ import WebKit /// Delegate receiving events from Keyman Web. -protocol KeymanWebDelegate: AnyObject { +protocol KeymanWebDelegate: class { /// Keyman Web has loaded (or reloaded). func keyboardLoaded(_ keymanWeb: KeymanWebViewController) diff --git a/ios/engine/KMEI/KeymanEngine/Classes/Keyboard/KeymanWebViewController.swift b/ios/engine/KMEI/KeymanEngine/Classes/Keyboard/KeymanWebViewController.swift index 2eca96cf49..4bd5375bc9 100644 --- a/ios/engine/KMEI/KeymanEngine/Classes/Keyboard/KeymanWebViewController.swift +++ b/ios/engine/KMEI/KeymanEngine/Classes/Keyboard/KeymanWebViewController.swift @@ -118,14 +118,11 @@ class KeymanWebViewController: UIViewController { override func loadView() { let config = WKWebViewConfiguration() let prefs = WKPreferences() + prefs.javaScriptEnabled = true config.preferences = prefs config.suppressesIncrementalRendering = false config.userContentController = self.userContentController - let webPagePrefs = WKWebpagePreferences.init() - webPagePrefs.allowsContentJavaScript = true - config.defaultWebpagePreferences = webPagePrefs - webView = KeymanWebView(frame: CGRect(origin: .zero, size: keyboardSize), configuration: config) webView!.isOpaque = false webView!.translatesAutoresizingMaskIntoConstraints = false @@ -256,7 +253,7 @@ extension KeymanWebViewController { self.currentText = String(jsonText) - let finalRange = range ?? self.currentCursorRange ?? nil + var finalRange = range ?? self.currentCursorRange ?? nil self.currentCursorRange = finalRange // diff --git a/ios/engine/KMEI/KeymanEngine/Classes/Obsoletions.swift b/ios/engine/KMEI/KeymanEngine/Classes/Obsoletions.swift index 53b5879bfd..4587dd5c58 100644 --- a/ios/engine/KMEI/KeymanEngine/Classes/Obsoletions.swift +++ b/ios/engine/KMEI/KeymanEngine/Classes/Obsoletions.swift @@ -17,10 +17,10 @@ public enum APIKeyboardFetchError: Error { } public class APIKeyboardRepository { } @available(swift, deprecated: 0.1, obsoleted: 0.1, message: "APIKeyboardRepository and associated types have been obsoleted in favor of keyboard search and package-oriented queries.") -public protocol KeyboardRepository: AnyObject { } +public protocol KeyboardRepository: class { } @available(swift, deprecated: 0.1, obsoleted: 0.1, message: "APIKeyboardRepository and associated types have been obsoleted in favor of keyboard search and package-oriented queries.") -public protocol KeyboardRepositoryDelegate: AnyObject { } +public protocol KeyboardRepositoryDelegate: class { } @available(swift, deprecated: 0.1, obsoleted: 0.1, message: "APILexicalModelRepository and associated types have been obsoleted by `Queries.LexicalModel` and its `fetch` variants.") public protocol LexicalModelRepository { } @@ -32,7 +32,7 @@ public enum APILexicalModelFetchError: Error { } public class APILexicalModelRepository { } @available(swift, deprecated: 0.1, obsoleted: 0.1, message: "APILexicalModelRepository and associated types have been obsoleted by `Queries.LexicalModel` and its `fetch` variants.") -public protocol LexicalModelRepositoryDelegate: AnyObject { } +public protocol LexicalModelRepositoryDelegate: class { } @available(swift, deprecated: 0.1, obsoleted: 0.1, message: "This type is no longer utilized by KeymanEngine, as the related API methods have all been obsoleted.") public struct Options: Codable { } diff --git a/ios/engine/KMEI/KeymanEngine/Classes/PackageWebViewController.swift b/ios/engine/KMEI/KeymanEngine/Classes/PackageWebViewController.swift index 111a99fc98..0277065a7e 100644 --- a/ios/engine/KMEI/KeymanEngine/Classes/PackageWebViewController.swift +++ b/ios/engine/KMEI/KeymanEngine/Classes/PackageWebViewController.swift @@ -40,18 +40,17 @@ class PackageWebViewController: UIViewController, WKNavigationDelegate { override func loadView() { let config = WKWebViewConfiguration() - let webkitPrefs = WKPreferences() + let prefs = WKPreferences() + prefs.javaScriptEnabled = true /** In iPadOS 16 and above WKWebView defaults to lying about its user-agent, telling the web server that it is a mac. We can avoid this with .mobile: */ - let webPagePrefs = WKWebpagePreferences.init() - webPagePrefs.preferredContentMode = .mobile - webPagePrefs.allowsContentJavaScript = true - config.defaultWebpagePreferences = webPagePrefs + let pref = WKWebpagePreferences.init() + pref.preferredContentMode = .mobile + config.defaultWebpagePreferences = pref - // Inject a meta viewport tag into the head of the file if it doesn't exist let metaViewportInjection = """ if(!document.querySelectorAll('meta[name=viewport]').length) { @@ -65,7 +64,7 @@ class PackageWebViewController: UIViewController, WKNavigationDelegate { let injection = WKUserScript(source: metaViewportInjection, injectionTime: .atDocumentStart, forMainFrameOnly: true) let controller = WKUserContentController() controller.addUserScript(injection) - config.preferences = webkitPrefs + config.preferences = prefs config.userContentController = controller webView = WKWebView(frame: CGRect.zero, configuration: config) diff --git a/ios/engine/KMEI/KeymanEngine/Classes/Resource Data/FontManager.swift b/ios/engine/KMEI/KeymanEngine/Classes/Resource Data/FontManager.swift index 32e938da4f..6070de2c96 100644 --- a/ios/engine/KMEI/KeymanEngine/Classes/Resource Data/FontManager.swift +++ b/ios/engine/KMEI/KeymanEngine/Classes/Resource Data/FontManager.swift @@ -65,7 +65,7 @@ public class FontManager { // // Calls to `cachedFont` after the `.filter` below may be assumed to have // non-nil return values. - let fontSet = initialFontSet.filter { !(cachedFont(at: $0)?.isRegistered ?? true) } + var fontSet = initialFontSet.filter { !(cachedFont(at: $0)?.isRegistered ?? true) } // The prior line filters out any entries where cachedFont(at: $0) would be nil. // Batch-lookups all fonts lacking cache-confirmation of prior registration. diff --git a/ios/engine/KMEI/KeymanEngine/Classes/ResourceDownloadStatusToolbar.swift b/ios/engine/KMEI/KeymanEngine/Classes/ResourceDownloadStatusToolbar.swift index 5bc2421f95..4625aad046 100644 --- a/ios/engine/KMEI/KeymanEngine/Classes/ResourceDownloadStatusToolbar.swift +++ b/ios/engine/KMEI/KeymanEngine/Classes/ResourceDownloadStatusToolbar.swift @@ -72,7 +72,7 @@ public class ResourceDownloadStatusToolbar: UIToolbar { * Creates the classic spinning-wheel 'activity in progress' indicator. */ private func setupActivityIndicator() -> UIActivityIndicatorView { - let indicatorView = UIActivityIndicatorView(style: UIActivityIndicatorView.Style.medium) + let indicatorView = UIActivityIndicatorView(style: .gray) indicatorView.center = CGPoint(x: frame.width - indicatorView.frame.width, y: frame.height * 0.5) indicatorView.autoresizingMask = [.flexibleLeftMargin, .flexibleTopMargin, .flexibleBottomMargin] diff --git a/ios/engine/KMEI/KeymanEngine/Classes/Settings/InstalledLanguagesViewController.swift b/ios/engine/KMEI/KeymanEngine/Classes/Settings/InstalledLanguagesViewController.swift index d213567e65..54eaa542f3 100644 --- a/ios/engine/KMEI/KeymanEngine/Classes/Settings/InstalledLanguagesViewController.swift +++ b/ios/engine/KMEI/KeymanEngine/Classes/Settings/InstalledLanguagesViewController.swift @@ -389,7 +389,7 @@ public class InstalledLanguagesViewController: UITableViewController, UIAlertVie func showActivityView() { view.isUserInteractionEnabled = false - let indicatorView = UIActivityIndicatorView(style: UIActivityIndicatorView.Style.large) + let indicatorView = UIActivityIndicatorView(style: .whiteLarge) let activityView = UIView(frame: indicatorView.bounds.insetBy(dx: -10.0, dy: -10.0)) activityView.backgroundColor = Colors.spinnerBackground activityView.layer.cornerRadius = 6.0 diff --git a/ios/engine/KMEI/KeymanEngine/Classes/kmp.json/KMPKeyboard.swift b/ios/engine/KMEI/KeymanEngine/Classes/kmp.json/KMPKeyboard.swift index 336b29d3a9..7a735f5fd3 100644 --- a/ios/engine/KMEI/KeymanEngine/Classes/kmp.json/KMPKeyboard.swift +++ b/ios/engine/KMEI/KeymanEngine/Classes/kmp.json/KMPKeyboard.swift @@ -8,7 +8,7 @@ import Foundation -final class KMPKeyboard: Codable, KMPResource { +class KMPKeyboard: Codable, KMPResource { public var name: String public var keyboardId: String public var packageId: String? diff --git a/ios/engine/KMEI/KeymanEngine/Classes/kmp.json/KMPLexicalModel.swift b/ios/engine/KMEI/KeymanEngine/Classes/kmp.json/KMPLexicalModel.swift index 63c7fba524..d63f451e56 100644 --- a/ios/engine/KMEI/KeymanEngine/Classes/kmp.json/KMPLexicalModel.swift +++ b/ios/engine/KMEI/KeymanEngine/Classes/kmp.json/KMPLexicalModel.swift @@ -8,7 +8,7 @@ import Foundation -final class KMPLexicalModel: Codable, KMPResource { +class KMPLexicalModel: Codable, KMPResource { public var name: String public var lexicalModelId: String public var packageId: String? diff --git a/ios/keyman/Keyman/Keyman/Classes/MainViewController/MainViewController.swift b/ios/keyman/Keyman/Keyman/Classes/MainViewController/MainViewController.swift index a55055d389..7c445a8fe4 100644 --- a/ios/keyman/Keyman/Keyman/Classes/MainViewController/MainViewController.swift +++ b/ios/keyman/Keyman/Keyman/Classes/MainViewController/MainViewController.swift @@ -781,7 +781,7 @@ class MainViewController: UIViewController, TextViewDelegate, UIActionSheetDeleg dismissGetStartedView(nil) overlayWindow.isHidden = false - let activityView = UIActivityIndicatorView(style: UIActivityIndicatorView.Style.large) + let activityView = UIActivityIndicatorView(style: .whiteLarge) let containerView = UIView(frame: activityView.bounds.insetBy(dx: -10.0, dy: -10.0)) containerView.backgroundColor = Colors.spinnerBackground containerView.layer.cornerRadius = 6.0