added iOS source code
[wl-app.git] / iOS / Pods / OAuthSwift / Sources / UIApplication+OAuthSwift.swift
diff --git a/iOS/Pods/OAuthSwift/Sources/UIApplication+OAuthSwift.swift b/iOS/Pods/OAuthSwift/Sources/UIApplication+OAuthSwift.swift
new file mode 100644 (file)
index 0000000..523f84c
--- /dev/null
@@ -0,0 +1,50 @@
+//
+//  UIApplication+OAuthSwift.swift
+//  OAuthSwift
+//
+//  Created by phimage on 11/12/15.
+//  Copyright © 2015 Dongri Jin. All rights reserved.
+//
+
+#if os(iOS) || os(tvOS)
+    import UIKit
+
+    extension UIApplication {
+        static var topViewController: UIViewController? {
+            #if !OAUTH_APP_EXTENSIONS
+                return UIApplication.shared.topViewController
+            #else
+                return nil
+            #endif
+        }
+
+        var topViewController: UIViewController? {
+            guard let rootController = self.keyWindow?.rootViewController else {
+                return nil
+            }
+            return UIViewController.topViewController(rootController)
+        }
+    }
+
+    extension UIViewController {
+
+        static func topViewController(_ viewController: UIViewController) -> UIViewController {
+            guard let presentedViewController = viewController.presentedViewController else {
+                return viewController
+            }
+            #if !topVCCastDisabled
+            if let navigationController = presentedViewController as? UINavigationController {
+                if let visibleViewController = navigationController.visibleViewController {
+                    return topViewController(visibleViewController)
+                }
+            } else if let tabBarController = presentedViewController as? UITabBarController {
+                if let selectedViewController = tabBarController.selectedViewController {
+                    return topViewController(selectedViewController)
+                }
+            }
+            #endif
+            return topViewController(presentedViewController)
+        }
+    }
+
+#endif