| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- // Copyright 2023 Google LLC
- //
- // Licensed under the Apache License, Version 2.0 (the "License");
- // you may not use this file except in compliance with the License.
- // You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- #if os(iOS) || os(tvOS)
- import Foundation
- import UIKit
- /** @protocol AuthUIDelegate
- @brief A protocol to handle user interface interactions for Firebase Auth.
- This protocol is available on iOS, macOS Catalyst, and tvOS only.
- */
- @objc(FIRAuthUIDelegate) public protocol AuthUIDelegate: NSObjectProtocol {
- /** @fn presentViewController:animated:completion:
- @brief If implemented, this method will be invoked when Firebase Auth needs to display a view
- controller.
- @param viewControllerToPresent The view controller to be presented.
- @param flag Decides whether the view controller presentation should be animated or not.
- @param completion The block to execute after the presentation finishes. This block has no return
- value and takes no parameters.
- */
- @objc(presentViewController:animated:completion:)
- func present(_ viewControllerToPresent: UIViewController,
- animated flag: Bool,
- completion: (() -> Void)?)
- /** @fn dismissViewControllerAnimated:completion:
- @brief If implemented, this method will be invoked when Firebase Auth needs to display a view
- controller.
- @param flag Decides whether removing the view controller should be animated or not.
- @param completion The block to execute after the presentation finishes. This block has no return
- value and takes no parameters.
- */
- @objc(dismissViewControllerAnimated:completion:)
- func dismiss(animated flag: Bool, completion: (() -> Void)?)
- }
- // Extension to support default argument variations.
- extension AuthUIDelegate {
- func present(_ viewControllerToPresent: UIViewController,
- animated flag: Bool,
- completion: (() -> Void)? = nil) {
- return present(viewControllerToPresent, animated: flag, completion: nil)
- }
- func dismiss(animated flag: Bool, completion: (() -> Void)? = nil) {
- return dismiss(animated: flag, completion: nil)
- }
- }
- #endif
|