You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

74 lines
2.5 KiB

6 years ago
  1. // Copyright (c) 2016-present, Facebook, Inc. All rights reserved.
  2. //
  3. // You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
  4. // copy, modify, and distribute this software in source code or binary form for use
  5. // in connection with the web services and APIs provided by Facebook.
  6. //
  7. // As with any software that integrates with the Facebook platform, your use of
  8. // this software is subject to the Facebook Developer Principles and Policies
  9. // [http://developers.facebook.com/policy/]. This copyright notice shall be
  10. // included in all copies or substantial portions of the software.
  11. //
  12. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  13. // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
  14. // FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
  15. // COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
  16. // IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
  17. // CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  18. import FBSDKShareKit
  19. /**
  20. Modes for the `ShareDialog`.
  21. The automatic mode will progressively check the availability of different modes and open the most appropriate mode
  22. for the dialog that is available.
  23. */
  24. public enum ShareDialogMode {
  25. /// Acts with the most appropriate mode that is available.
  26. case automatic
  27. /// Displays the dialog in the main native Facebook app.
  28. case native
  29. /// Displays the dialog in the iOS integrated share sheet.
  30. case shareSheet
  31. /// Displays the dialog in Safari.
  32. case browser
  33. /// Displays the dialog in a UIWebView within the app.
  34. case web
  35. /// Displays the feed dialog in Safari.
  36. case feedBrowser
  37. /// Displays the feed dialog in a UIWebView within the app.
  38. case feedWeb
  39. }
  40. extension ShareDialogMode {
  41. internal init(sdkShareMode: FBSDKShareDialogMode) {
  42. switch sdkShareMode {
  43. case .automatic: self = .automatic
  44. case .native: self = .native
  45. case .shareSheet: self = .shareSheet
  46. case .browser: self = .browser
  47. case .web: self = .web
  48. case .feedBrowser: self = .feedBrowser
  49. case .feedWeb: self = .feedWeb
  50. }
  51. }
  52. internal var sdkShareMode: FBSDKShareDialogMode {
  53. switch self {
  54. case .automatic: return .automatic
  55. case .native: return .native
  56. case .shareSheet: return .shareSheet
  57. case .browser: return .browser
  58. case .web: return .web
  59. case .feedBrowser: return .feedBrowser
  60. case .feedWeb: return .feedWeb
  61. }
  62. }
  63. }