Browse Source

patches: avoid namespace collision with iOS internals

osy 8 tháng trước cách đây
mục cha
commit
44186cd43a
1 tập tin đã thay đổi với 20 bổ sung20 xóa
  1. 20 20
      Platform/iOS/UTMPatches.swift

+ 20 - 20
Platform/iOS/UTMPatches.swift

@@ -39,32 +39,32 @@ fileprivate extension NSObject {
 
 /// We need to set these when the VM starts running since there is no way to do it from SwiftUI right now
 extension UIViewController {
-    private static var _childForHomeIndicatorAutoHiddenStorage: [UIViewController: UIViewController] = [:]
-    
-    @objc private dynamic var _childForHomeIndicatorAutoHidden: UIViewController? {
-        Self._childForHomeIndicatorAutoHiddenStorage[self]
+    private static var _utm__childForHomeIndicatorAutoHiddenStorage: [UIViewController: UIViewController] = [:]
+
+    @objc private dynamic var _utm__childForHomeIndicatorAutoHidden: UIViewController? {
+        Self._utm__childForHomeIndicatorAutoHiddenStorage[self]
     }
     
     @objc dynamic func setChildForHomeIndicatorAutoHidden(_ value: UIViewController?) {
         if let value = value {
-            Self._childForHomeIndicatorAutoHiddenStorage[self] = value
+            Self._utm__childForHomeIndicatorAutoHiddenStorage[self] = value
         } else {
-            Self._childForHomeIndicatorAutoHiddenStorage.removeValue(forKey: self)
+            Self._utm__childForHomeIndicatorAutoHiddenStorage.removeValue(forKey: self)
         }
         setNeedsUpdateOfHomeIndicatorAutoHidden()
     }
     
-    private static var _childViewControllerForPointerLockStorage: [UIViewController: UIViewController] = [:]
-    
-    @objc private dynamic var _childViewControllerForPointerLock: UIViewController? {
-        Self._childViewControllerForPointerLockStorage[self]
+    private static var _utm__childViewControllerForPointerLockStorage: [UIViewController: UIViewController] = [:]
+
+    @objc private dynamic var _utm__childViewControllerForPointerLock: UIViewController? {
+        Self._utm__childViewControllerForPointerLockStorage[self]
     }
     
     @objc dynamic func setChildViewControllerForPointerLock(_ value: UIViewController?) {
         if let value = value {
-            Self._childViewControllerForPointerLockStorage[self] = value
+            Self._utm__childViewControllerForPointerLockStorage[self] = value
         } else {
-            Self._childViewControllerForPointerLockStorage.removeValue(forKey: self)
+            Self._utm__childViewControllerForPointerLockStorage.removeValue(forKey: self)
         }
         setNeedsUpdateOfPrefersPointerLocked()
     }
@@ -72,10 +72,10 @@ extension UIViewController {
     /// SwiftUI currently does not provide a way to set the View Conrtoller's home indicator or pointer lock
     fileprivate static func patchViewController() {
         patch(#selector(getter: Self.childForHomeIndicatorAutoHidden),
-              with: #selector(getter: Self._childForHomeIndicatorAutoHidden),
+              with: #selector(getter: Self._utm__childForHomeIndicatorAutoHidden),
               class: Self.self)
         patch(#selector(getter: Self.childViewControllerForPointerLock),
-              with: #selector(getter: Self._childViewControllerForPointerLock),
+              with: #selector(getter: Self._utm__childViewControllerForPointerLock),
               class: Self.self)
     }
 }
@@ -83,8 +83,8 @@ extension UIViewController {
 extension UIPress {
     @objc static weak var pressResponderOverride: UIResponder?
     
-    @objc private dynamic var _responder: UIResponder? {
-        Self.pressResponderOverride ?? self._responder
+    @objc private dynamic var _utm__responder: UIResponder? {
+        Self.pressResponderOverride ?? self._utm__responder
     }
     
     /// On iOS 15.0, there is a bug where SwiftUI does not propogate the presses event down
@@ -93,7 +93,7 @@ extension UIPress {
         if #available(iOS 15.0, *) {
             if #unavailable(iOS 15.1) {
                 patch(#selector(getter: Self.responder),
-                      with: #selector(getter: Self._responder),
+                      with: #selector(getter: Self._utm__responder),
                       class: Self.self)
             }
         }
@@ -119,7 +119,7 @@ extension UIWindow {
     
     /// Replacement `sendEvent(_:)` function
     /// - Parameter event: The event to dispatch.
-    @objc private func xxx_sendEvent(_ event: UIEvent) {
+    @objc private func _utm__sendEvent(_ event: UIEvent) {
         if isIndirectPointerTouchIgnored && event.type == .touches {
             event.touches(for: self)?.forEach { touch in
                 if touch.type == .indirectPointer {
@@ -131,12 +131,12 @@ extension UIWindow {
                 }
             }
         }
-        xxx_sendEvent(event)
+        _utm__sendEvent(event)
     }
     
     fileprivate static func patchWindow() {
         patch(#selector(sendEvent),
-              with: #selector(xxx_sendEvent),
+              with: #selector(_utm__sendEvent),
               class: Self.self)
     }
 }