├── .gitignore ├── .swift-version ├── Examples ├── Podfile ├── Podfile.lock ├── README.md ├── VideoChat.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata ├── VideoChat.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist └── VideoChat │ ├── ChatRoom │ ├── Assets.xcassets │ │ ├── Contents.json │ │ ├── btn-ic-history_g.imageset │ │ │ ├── Contents.json │ │ │ ├── btn-ic-history_g.png │ │ │ ├── btn-ic-history_g@2x.png │ │ │ └── btn-ic-history_g@3x.png │ │ ├── btn-ic-history_w.imageset │ │ │ ├── Contents.json │ │ │ ├── btn-ic-history_w.png │ │ │ ├── btn-ic-history_w@2x.png │ │ │ └── btn-ic-history_w@3x.png │ │ ├── btn-stickers.imageset │ │ │ ├── Contents.json │ │ │ ├── btn-stickers.png │ │ │ ├── btn-stickers@2x.png │ │ │ └── btn-stickers@3x.png │ │ ├── btn_emoji.imageset │ │ │ ├── Contents.json │ │ │ ├── btn_emoji.png │ │ │ ├── btn_emoji@2x.png │ │ │ └── btn_emoji@3x.png │ │ ├── btn_ic_keyboard.imageset │ │ │ ├── Contents.json │ │ │ ├── btn_ic_keyboard.png │ │ │ ├── btn_ic_keyboard@2x.png │ │ │ └── btn_ic_keyboard@3x.png │ │ ├── btn_msg.imageset │ │ │ ├── Contents.json │ │ │ ├── btn_msg.png │ │ │ ├── btn_msg@2x.png │ │ │ └── btn_msg@3x.png │ │ ├── emoji_XD.imageset │ │ │ ├── Contents.json │ │ │ ├── emoji_XD.png │ │ │ ├── emoji_XD@2x.png │ │ │ └── emoji_XD@3x.png │ │ ├── emoji_heart.imageset │ │ │ ├── Contents.json │ │ │ ├── emoji_heart.png │ │ │ ├── emoji_heart@2x.png │ │ │ └── emoji_heart@3x.png │ │ ├── emoji_like.imageset │ │ │ ├── Contents.json │ │ │ ├── emoji_like.png │ │ │ ├── emoji_like@2x.png │ │ │ └── emoji_like@3x.png │ │ ├── ic_arrow_downward_chatroom.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_arrow_downward_chatroom.png │ │ │ ├── ic_arrow_downward_chatroom@2x.png │ │ │ └── ic_arrow_downward_chatroom@3x.png │ │ ├── ic_host_chatroom.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_host_chatroom.png │ │ │ ├── ic_host_chatroom@2x.png │ │ │ └── ic_host_chatroom@3x.png │ │ ├── ic_moderator_chatroom.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_moderator_chatroom.png │ │ │ ├── ic_moderator_chatroom@2x.png │ │ │ └── ic_moderator_chatroom@3x.png │ │ ├── ic_pin_message.imageset │ │ │ ├── Contents.json │ │ │ ├── ic_pin_message.png │ │ │ ├── ic_pin_message@2x.png │ │ │ └── ic_pin_message@3x.png │ │ ├── img-guest-photo.imageset │ │ │ ├── Contents.json │ │ │ ├── img-guest-photo.png │ │ │ ├── img-guest-photo@x2.png │ │ │ └── img-guest-photo@x3.png │ │ ├── img_chatroom_background.imageset │ │ │ ├── Contents.json │ │ │ ├── img_chatroom_background@2x.png │ │ │ └── img_chatroom_background@3x.png │ │ └── img_sticker_default.imageset │ │ │ ├── Contents.json │ │ │ ├── img_sticker_default.png │ │ │ ├── img_sticker_default@2x.png │ │ │ └── img_sticker_default@3x.png │ ├── ChatExampleViewController.h │ ├── ChatExampleViewController.m │ ├── ChatStickerDelegate.h │ ├── ChatStickerExampleViewController.h │ ├── ChatStickerExampleViewController.m │ ├── ChatStickerViewController.h │ ├── ChatStickerViewController.m │ ├── ChatViewController.h │ ├── ChatViewController.m │ ├── ECommerceChatViewController.h │ ├── ECommerceChatViewController.m │ ├── IconLabel.h │ ├── IconLabel.m │ ├── MessageTableViewCell.h │ ├── MessageTableViewCell.m │ ├── MessageTextView.h │ ├── MessageTextView.m │ ├── NSFileManager+Sticker.h │ ├── NSFileManager+Sticker.m │ ├── NSTimer+SafeTimer.h │ ├── NSTimer+SafeTimer.m │ ├── STSChatMessage+VideoChatUtility.h │ ├── STSChatMessage+VideoChatUtility.m │ ├── STSChatUser+VieoChatUtility.h │ ├── STSChatUser+VieoChatUtility.m │ ├── STSMessageLongPressGestureRecognizer.h │ ├── STSMessageLongPressGestureRecognizer.m │ ├── STSPinnedMessageView.h │ ├── STSPinnedMessageView.m │ ├── STSSegmentedControl.h │ ├── STSSegmentedControl.m │ ├── StickerInputViewDelegate.h │ ├── StickersInputView.h │ ├── StickersInputView.m │ ├── StickersInputView.xib │ ├── TransparentChatViewController.h │ ├── TransparentChatViewController.m │ ├── TransparentMessageTableViewCell.h │ ├── TransparentMessageTableViewCell.m │ ├── TypingIndicatorView.h │ ├── TypingIndicatorView.m │ ├── UIAlertController+VideoChatUtility.h │ ├── UIAlertController+VideoChatUtility.m │ ├── UIImage+sticker.h │ ├── UIImage+sticker.m │ ├── UIViewController+VideoChatUtility.h │ ├── UIViewController+VideoChatUtility.m │ ├── en.lproj │ │ └── Localizable.strings │ └── zh-Hant.lproj │ │ └── Localizable.strings │ ├── FloatingImageView.h │ ├── FloatingImageView.m │ ├── Info.plist │ ├── Player │ ├── STSPlayerViewController.h │ ├── STSPlayerViewController.m │ ├── UIViewController+STSKeyboard.h │ └── UIViewController+STSKeyboard.m │ ├── STSStreamingViewController.h │ ├── STSStreamingViewController.m │ ├── Shared │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── Icon-60@2x.png │ │ │ ├── Icon-60@3x.png │ │ │ ├── Icon-Small-40@2x.png │ │ │ ├── Icon-Small-40@3x.png │ │ │ ├── Icon-Small@2x.png │ │ │ └── Icon-Small@3x.png │ │ ├── Contents.json │ │ ├── camera.imageset │ │ │ ├── Contents.json │ │ │ ├── camera.png │ │ │ ├── camera@2x.png │ │ │ └── camera@3x.png │ │ ├── nav-icon-close_n.imageset │ │ │ ├── Contents.json │ │ │ ├── nav-icon-close_n.png │ │ │ ├── nav-icon-close_n@2x.png │ │ │ └── nav-icon-close_n@3x.png │ │ └── scan.imageset │ │ │ ├── Contents.json │ │ │ ├── scan.png │ │ │ ├── scan@2x.png │ │ │ └── scan@3x.png │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── DetailViewController.h │ ├── DetailViewController.m │ ├── File.swift │ ├── MasterViewController.h │ ├── MasterViewController.m │ ├── NSLayoutConstraint+STSUtility.h │ ├── NSLayoutConstraint+STSUtility.m │ ├── STSConstant.h │ ├── STSQRCodeScannerViewController.h │ ├── STSQRCodeScannerViewController.m │ ├── UIColor+STSColor.h │ ├── UIColor+STSColor.m │ ├── UIViewController+Keyboard.h │ ├── UIViewController+Keyboard.m │ └── VideoChat-Bridging-Header.h │ ├── StreamingFiltersViewController.h │ ├── StreamingFiltersViewController.m │ └── main.m ├── ISSUE_TEMPLATE.md ├── README.md ├── StraaS-iOS-SDK.podspec ├── docs └── StraaSMessagingSDK │ ├── Classes.html │ ├── Classes │ ├── LHDataObject.html │ ├── STSApplication.html │ ├── STSChat.html │ ├── STSChatManager.html │ ├── STSChatMessage.html │ └── STSChatUser.html │ ├── Enums.html │ ├── Enums │ ├── STSChatInputMode.html │ └── STSMSGErrorCode.html │ ├── Protocols.html │ ├── Protocols │ └── STSChatEventDelegate.html │ ├── css │ ├── highlight.css │ └── jazzy.css │ ├── docsets │ ├── StraaSMessagingSDK.docset │ │ └── Contents │ │ │ ├── Info.plist │ │ │ └── Resources │ │ │ ├── Documents │ │ │ ├── Classes.html │ │ │ ├── Classes │ │ │ │ ├── LHDataObject.html │ │ │ │ ├── STSApplication.html │ │ │ │ ├── STSChat.html │ │ │ │ ├── STSChatManager.html │ │ │ │ ├── STSChatMessage.html │ │ │ │ └── STSChatUser.html │ │ │ ├── Enums.html │ │ │ ├── Enums │ │ │ │ ├── STSChatInputMode.html │ │ │ │ └── STSMSGErrorCode.html │ │ │ ├── Protocols.html │ │ │ ├── Protocols │ │ │ │ └── STSChatEventDelegate.html │ │ │ ├── css │ │ │ │ ├── highlight.css │ │ │ │ └── jazzy.css │ │ │ ├── img │ │ │ │ ├── carat.png │ │ │ │ ├── dash.png │ │ │ │ └── gh.png │ │ │ ├── index.html │ │ │ ├── js │ │ │ │ ├── jazzy.js │ │ │ │ └── jquery.min.js │ │ │ └── undocumented.json │ │ │ └── docSet.dsidx │ ├── StraaSMessagingSDK.tgz │ └── StraaSMessagingSDK.xml │ ├── img │ ├── carat.png │ ├── dash.png │ └── gh.png │ ├── index.html │ └── js │ ├── jazzy.js │ └── jquery.min.js └── ios ├── StraaSCoreSDK.framework ├── Headers │ ├── LHDataObject.h │ ├── NSError+STSUtility.h │ ├── NSString+STSUtility.h │ ├── STSApplication.h │ ├── STSCoreErrorCode.h │ ├── STSSDKAuthManager.h │ ├── StraaSCoreSDK.h │ └── UIDevice+STSUtility.h ├── Info.plist ├── Modules │ └── module.modulemap ├── PrivacyInfo.xcprivacy ├── StraaSCoreSDK ├── _CodeSignature │ ├── CodeDirectory │ ├── CodeRequirements │ ├── CodeRequirements-1 │ ├── CodeResources │ └── CodeSignature ├── en.lproj │ └── Localizable.strings └── zh-Hant.lproj │ └── Localizable.strings ├── StraaSMessagingSDK.framework ├── Headers │ ├── STSAggregatedData.h │ ├── STSAggregatedItem.h │ ├── STSChat.h │ ├── STSChatManager.h │ ├── STSChatManagerConfig.h │ ├── STSChatMessage.h │ ├── STSChatMetadata.h │ ├── STSChatSticker.h │ ├── STSChatUser.h │ ├── STSGetMessagesConfiguration.h │ ├── STSGetMessagesOrder.h │ ├── STSGetUsersType.h │ ├── STSMSGErrorCode.h │ ├── StraaSMessagingSDK-Swift.h │ └── StraaSMessagingSDK.h ├── Info.plist ├── Modules │ ├── StraaSMessagingSDK.swiftmodule │ │ ├── arm64-apple-ios-simulator.swiftdoc │ │ ├── arm64-apple-ios-simulator.swiftinterface │ │ ├── arm64-apple-ios-simulator.swiftmodule │ │ ├── arm64-apple-ios.swiftdoc │ │ ├── arm64-apple-ios.swiftinterface │ │ ├── arm64-apple-ios.swiftmodule │ │ ├── x86_64-apple-ios-simulator.swiftdoc │ │ ├── x86_64-apple-ios-simulator.swiftinterface │ │ └── x86_64-apple-ios-simulator.swiftmodule │ └── module.modulemap ├── PrivacyInfo.xcprivacy ├── StraaSMessagingSDK ├── _CodeSignature │ ├── CodeDirectory │ ├── CodeRequirements │ ├── CodeRequirements-1 │ ├── CodeResources │ └── CodeSignature ├── en.lproj │ └── Localizable.strings └── zh-Hant.lproj │ └── Localizable.strings ├── StraaSPlayerLowLatencyExtensionSDK.framework ├── Headers │ ├── STSLowLatencyPlayer.h │ └── StraaSPlayerLowLatencyExtensionSDK.h ├── Info.plist ├── Modules │ └── module.modulemap ├── PrivacyInfo.xcprivacy ├── StraaSPlayerLowLatencyExtensionSDK └── _CodeSignature │ ├── CodeDirectory │ ├── CodeRequirements │ ├── CodeRequirements-1 │ ├── CodeResources │ └── CodeSignature ├── StraaSPlayerSDK.framework ├── Assets.car ├── Headers │ ├── STSCMSManager.h │ ├── STSCategory.h │ ├── STSGetLiveListConfiguration.h │ ├── STSGetVideoListConfiguration.h │ ├── STSLive.h │ ├── STSLiveBroadcastState.h │ ├── STSLiveEventListener.h │ ├── STSLiveEventListenerState.h │ ├── STSPagination.h │ ├── STSPlayerDelegate.h │ ├── STSPlayerErrorCode.h │ ├── STSPlayerLiveEventDelegate.h │ ├── STSPlayerPlayback.h │ ├── STSPlayerPlaybackEventDelegate.h │ ├── STSPlayerPlaylistEventDelegate.h │ ├── STSPlaylist.h │ ├── STSPlaylistItem.h │ ├── STSSDKPlaybackStatus.h │ ├── STSSDKPlayerControlView.h │ ├── STSSDKPlayerView.h │ ├── STSSDKStreamingTimelineView.h │ ├── STSTag.h │ ├── STSVideo.h │ ├── STSVideoMetadata.h │ ├── STSVideoScalingMode.h │ ├── StraaSPlayerSDK-Swift.h │ └── StraaSPlayerSDK.h ├── Info.plist ├── Modules │ ├── StraaSPlayerSDK.swiftmodule │ │ ├── arm64-apple-ios-simulator.swiftdoc │ │ ├── arm64-apple-ios-simulator.swiftinterface │ │ ├── arm64-apple-ios-simulator.swiftmodule │ │ ├── arm64-apple-ios.swiftdoc │ │ ├── arm64-apple-ios.swiftinterface │ │ ├── arm64-apple-ios.swiftmodule │ │ ├── x86_64-apple-ios-simulator.swiftdoc │ │ ├── x86_64-apple-ios-simulator.swiftinterface │ │ └── x86_64-apple-ios-simulator.swiftmodule │ └── module.modulemap ├── PrivacyInfo.xcprivacy ├── Shader.vsh ├── StraaSPlayerSDK ├── _CodeSignature │ ├── CodeDirectory │ ├── CodeRequirements │ ├── CodeRequirements-1 │ ├── CodeResources │ └── CodeSignature ├── en.lproj │ └── Localizable.strings └── zh-Hant.lproj │ └── Localizable.strings └── StraaSStreamingSDK.framework ├── Headers ├── STSAudioConfiguration.h ├── STSLiveStreamer.h ├── STSSkinBeautifyFilter.h ├── STSStreamingConstants.h ├── STSStreamingErrorCode.h ├── STSStreamingInfo.h ├── STSStreamingLiveEventConfig.h ├── STSStreamingManager.h ├── STSStreamingPrepareConfig.h ├── STSStreamingProfile.h ├── STSStreamingResolution.h ├── STSStreamingState.h ├── STSStreamingStatsReport.h ├── STSVideoConfiguration.h ├── StraaSStreamingSDK-Swift.h └── StraaSStreamingSDK.h ├── Info.plist ├── Localizable.strings ├── Modules ├── StraaSStreamingSDK.swiftmodule │ ├── arm64-apple-ios-simulator.swiftdoc │ ├── arm64-apple-ios-simulator.swiftinterface │ ├── arm64-apple-ios-simulator.swiftmodule │ ├── arm64-apple-ios.swiftdoc │ ├── arm64-apple-ios.swiftinterface │ ├── arm64-apple-ios.swiftmodule │ ├── x86_64-apple-ios-simulator.swiftdoc │ ├── x86_64-apple-ios-simulator.swiftinterface │ └── x86_64-apple-ios-simulator.swiftmodule └── module.modulemap ├── PrivacyInfo.xcprivacy ├── StraaSStreamingSDK └── _CodeSignature ├── CodeDirectory ├── CodeRequirements ├── CodeRequirements-1 ├── CodeResources └── CodeSignature /.gitignore: -------------------------------------------------------------------------------- 1 | # Xcode 2 | # 3 | # gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore 4 | 5 | ## Build generated 6 | build/ 7 | DerivedData/ 8 | 9 | ## Various settings 10 | *.pbxuser 11 | !default.pbxuser 12 | *.mode1v3 13 | !default.mode1v3 14 | *.mode2v3 15 | !default.mode2v3 16 | *.perspectivev3 17 | !default.perspectivev3 18 | xcuserdata/ 19 | 20 | ## Other 21 | *.moved-aside 22 | *.xcuserstate 23 | 24 | ## Obj-C/Swift specific 25 | *.hmap 26 | *.ipa 27 | *.dSYM.zip 28 | *.dSYM 29 | 30 | # CocoaPods 31 | # 32 | # We recommend against adding the Pods directory to your .gitignore. However 33 | # you should judge for yourself, the pros and cons are mentioned at: 34 | # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control 35 | # 36 | Pods/ 37 | 38 | # Carthage 39 | # 40 | # Add this line if you want to avoid checking in source code from Carthage dependencies. 41 | # Carthage/Checkouts 42 | 43 | Carthage/Build 44 | 45 | # fastlane 46 | # 47 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the 48 | # screenshots whenever they are needed. 49 | # For more information about the recommended setup visit: 50 | # https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Gitignore.md 51 | 52 | fastlane/report.xml 53 | fastlane/screenshots 54 | 55 | #Code Injection 56 | # 57 | # After new code Injection tools there's a generated folder /iOSInjectionProject 58 | # https://github.com/johnno1962/injectionforxcode 59 | 60 | iOSInjectionProject/ 61 | 62 | # jazzy 63 | 64 | undocumented.json 65 | -------------------------------------------------------------------------------- /.swift-version: -------------------------------------------------------------------------------- 1 | 4.0 2 | -------------------------------------------------------------------------------- /Examples/Podfile: -------------------------------------------------------------------------------- 1 | # Uncomment this line to define a global platform for your project 2 | platform :ios, '13.0' 3 | 4 | use_modular_headers! 5 | use_frameworks! 6 | 7 | target 'VideoChat' do 8 | pod 'SlackTextViewController' 9 | pod 'SDWebImage' 10 | pod 'TTTAttributedLabel' 11 | pod 'StraaS-iOS-SDK', :path=>'../' 12 | pod 'MBProgressHUD' 13 | pod 'IQKeyboardManager' 14 | pod 'Socket.IO-Client-Swift', '~> 15.1.0' 15 | pod 'IJKMediaFramework', '~> 0.1.2' 16 | pod 'YUGPUImageHighPassSkinSmoothing-Straas', '~> 1.6.0' 17 | end 18 | 19 | post_install do |installer| 20 | installer.pods_project.targets.each do |target| 21 | target.build_configurations.each do |config| 22 | config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0' 23 | end 24 | end 25 | end -------------------------------------------------------------------------------- /Examples/VideoChat.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Examples/VideoChat.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Examples/VideoChat.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/btn-ic-history_g.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "btn-ic-history_g.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "btn-ic-history_g@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "btn-ic-history_g@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/btn-ic-history_g.imageset/btn-ic-history_g.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/ChatRoom/Assets.xcassets/btn-ic-history_g.imageset/btn-ic-history_g.png -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/btn-ic-history_g.imageset/btn-ic-history_g@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/ChatRoom/Assets.xcassets/btn-ic-history_g.imageset/btn-ic-history_g@2x.png -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/btn-ic-history_g.imageset/btn-ic-history_g@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/ChatRoom/Assets.xcassets/btn-ic-history_g.imageset/btn-ic-history_g@3x.png -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/btn-ic-history_w.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "btn-ic-history_w.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "btn-ic-history_w@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "btn-ic-history_w@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/btn-ic-history_w.imageset/btn-ic-history_w.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/ChatRoom/Assets.xcassets/btn-ic-history_w.imageset/btn-ic-history_w.png -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/btn-ic-history_w.imageset/btn-ic-history_w@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/ChatRoom/Assets.xcassets/btn-ic-history_w.imageset/btn-ic-history_w@2x.png -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/btn-ic-history_w.imageset/btn-ic-history_w@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/ChatRoom/Assets.xcassets/btn-ic-history_w.imageset/btn-ic-history_w@3x.png -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/btn-stickers.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "btn-stickers.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "btn-stickers@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "btn-stickers@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/btn-stickers.imageset/btn-stickers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/ChatRoom/Assets.xcassets/btn-stickers.imageset/btn-stickers.png -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/btn-stickers.imageset/btn-stickers@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/ChatRoom/Assets.xcassets/btn-stickers.imageset/btn-stickers@2x.png -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/btn-stickers.imageset/btn-stickers@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/ChatRoom/Assets.xcassets/btn-stickers.imageset/btn-stickers@3x.png -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/btn_emoji.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "btn_emoji.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "btn_emoji@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "btn_emoji@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/btn_emoji.imageset/btn_emoji.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/ChatRoom/Assets.xcassets/btn_emoji.imageset/btn_emoji.png -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/btn_emoji.imageset/btn_emoji@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/ChatRoom/Assets.xcassets/btn_emoji.imageset/btn_emoji@2x.png -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/btn_emoji.imageset/btn_emoji@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/ChatRoom/Assets.xcassets/btn_emoji.imageset/btn_emoji@3x.png -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/btn_ic_keyboard.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "btn_ic_keyboard.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "btn_ic_keyboard@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "btn_ic_keyboard@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/btn_ic_keyboard.imageset/btn_ic_keyboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/ChatRoom/Assets.xcassets/btn_ic_keyboard.imageset/btn_ic_keyboard.png -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/btn_ic_keyboard.imageset/btn_ic_keyboard@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/ChatRoom/Assets.xcassets/btn_ic_keyboard.imageset/btn_ic_keyboard@2x.png -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/btn_ic_keyboard.imageset/btn_ic_keyboard@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/ChatRoom/Assets.xcassets/btn_ic_keyboard.imageset/btn_ic_keyboard@3x.png -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/btn_msg.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "btn_msg.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "btn_msg@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "btn_msg@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/btn_msg.imageset/btn_msg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/ChatRoom/Assets.xcassets/btn_msg.imageset/btn_msg.png -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/btn_msg.imageset/btn_msg@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/ChatRoom/Assets.xcassets/btn_msg.imageset/btn_msg@2x.png -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/btn_msg.imageset/btn_msg@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/ChatRoom/Assets.xcassets/btn_msg.imageset/btn_msg@3x.png -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/emoji_XD.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "emoji_XD.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "emoji_XD@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "emoji_XD@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/emoji_XD.imageset/emoji_XD.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/ChatRoom/Assets.xcassets/emoji_XD.imageset/emoji_XD.png -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/emoji_XD.imageset/emoji_XD@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/ChatRoom/Assets.xcassets/emoji_XD.imageset/emoji_XD@2x.png -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/emoji_XD.imageset/emoji_XD@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/ChatRoom/Assets.xcassets/emoji_XD.imageset/emoji_XD@3x.png -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/emoji_heart.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "emoji_heart.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "emoji_heart@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "emoji_heart@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/emoji_heart.imageset/emoji_heart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/ChatRoom/Assets.xcassets/emoji_heart.imageset/emoji_heart.png -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/emoji_heart.imageset/emoji_heart@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/ChatRoom/Assets.xcassets/emoji_heart.imageset/emoji_heart@2x.png -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/emoji_heart.imageset/emoji_heart@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/ChatRoom/Assets.xcassets/emoji_heart.imageset/emoji_heart@3x.png -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/emoji_like.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "emoji_like.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "emoji_like@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "emoji_like@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/emoji_like.imageset/emoji_like.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/ChatRoom/Assets.xcassets/emoji_like.imageset/emoji_like.png -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/emoji_like.imageset/emoji_like@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/ChatRoom/Assets.xcassets/emoji_like.imageset/emoji_like@2x.png -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/emoji_like.imageset/emoji_like@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/ChatRoom/Assets.xcassets/emoji_like.imageset/emoji_like@3x.png -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/ic_arrow_downward_chatroom.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_arrow_downward_chatroom.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "ic_arrow_downward_chatroom@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "ic_arrow_downward_chatroom@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/ic_arrow_downward_chatroom.imageset/ic_arrow_downward_chatroom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/ChatRoom/Assets.xcassets/ic_arrow_downward_chatroom.imageset/ic_arrow_downward_chatroom.png -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/ic_arrow_downward_chatroom.imageset/ic_arrow_downward_chatroom@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/ChatRoom/Assets.xcassets/ic_arrow_downward_chatroom.imageset/ic_arrow_downward_chatroom@2x.png -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/ic_arrow_downward_chatroom.imageset/ic_arrow_downward_chatroom@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/ChatRoom/Assets.xcassets/ic_arrow_downward_chatroom.imageset/ic_arrow_downward_chatroom@3x.png -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/ic_host_chatroom.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_host_chatroom.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "ic_host_chatroom@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "ic_host_chatroom@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/ic_host_chatroom.imageset/ic_host_chatroom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/ChatRoom/Assets.xcassets/ic_host_chatroom.imageset/ic_host_chatroom.png -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/ic_host_chatroom.imageset/ic_host_chatroom@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/ChatRoom/Assets.xcassets/ic_host_chatroom.imageset/ic_host_chatroom@2x.png -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/ic_host_chatroom.imageset/ic_host_chatroom@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/ChatRoom/Assets.xcassets/ic_host_chatroom.imageset/ic_host_chatroom@3x.png -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/ic_moderator_chatroom.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_moderator_chatroom.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "ic_moderator_chatroom@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "ic_moderator_chatroom@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/ic_moderator_chatroom.imageset/ic_moderator_chatroom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/ChatRoom/Assets.xcassets/ic_moderator_chatroom.imageset/ic_moderator_chatroom.png -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/ic_moderator_chatroom.imageset/ic_moderator_chatroom@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/ChatRoom/Assets.xcassets/ic_moderator_chatroom.imageset/ic_moderator_chatroom@2x.png -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/ic_moderator_chatroom.imageset/ic_moderator_chatroom@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/ChatRoom/Assets.xcassets/ic_moderator_chatroom.imageset/ic_moderator_chatroom@3x.png -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/ic_pin_message.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_pin_message.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "ic_pin_message@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "ic_pin_message@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/ic_pin_message.imageset/ic_pin_message.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/ChatRoom/Assets.xcassets/ic_pin_message.imageset/ic_pin_message.png -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/ic_pin_message.imageset/ic_pin_message@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/ChatRoom/Assets.xcassets/ic_pin_message.imageset/ic_pin_message@2x.png -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/ic_pin_message.imageset/ic_pin_message@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/ChatRoom/Assets.xcassets/ic_pin_message.imageset/ic_pin_message@3x.png -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/img-guest-photo.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "img-guest-photo.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "img-guest-photo@x2.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "img-guest-photo@x3.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/img-guest-photo.imageset/img-guest-photo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/ChatRoom/Assets.xcassets/img-guest-photo.imageset/img-guest-photo.png -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/img-guest-photo.imageset/img-guest-photo@x2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/ChatRoom/Assets.xcassets/img-guest-photo.imageset/img-guest-photo@x2.png -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/img-guest-photo.imageset/img-guest-photo@x3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/ChatRoom/Assets.xcassets/img-guest-photo.imageset/img-guest-photo@x3.png -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/img_chatroom_background.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "img_chatroom_background@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "img_chatroom_background@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/img_chatroom_background.imageset/img_chatroom_background@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/ChatRoom/Assets.xcassets/img_chatroom_background.imageset/img_chatroom_background@2x.png -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/img_chatroom_background.imageset/img_chatroom_background@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/ChatRoom/Assets.xcassets/img_chatroom_background.imageset/img_chatroom_background@3x.png -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/img_sticker_default.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "img_sticker_default.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "img_sticker_default@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "img_sticker_default@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/img_sticker_default.imageset/img_sticker_default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/ChatRoom/Assets.xcassets/img_sticker_default.imageset/img_sticker_default.png -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/img_sticker_default.imageset/img_sticker_default@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/ChatRoom/Assets.xcassets/img_sticker_default.imageset/img_sticker_default@2x.png -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/Assets.xcassets/img_sticker_default.imageset/img_sticker_default@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/ChatRoom/Assets.xcassets/img_sticker_default.imageset/img_sticker_default@3x.png -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/ChatExampleViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ChatExampleViewController.h 3 | // VideoChat 4 | // 5 | // Created by Lee on 09/01/2017. 6 | // Copyright © 2020 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import "ChatViewController.h" 10 | 11 | @class STSChatManager; 12 | 13 | @interface ChatExampleViewController : ChatViewController 14 | 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/ChatStickerDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // ChatStickerDelegate.h 3 | // VideoChat 4 | // 5 | // Created by Lee on 04/11/2016. 6 | // Copyright © 2020 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @protocol ChatStickerDelegate 12 | 13 | - (void)chatStickerDidLoad:(NSArray *)stickers; 14 | - (void)showStickerView:(BOOL)animated; 15 | - (void)dismissStickerView:(BOOL)animated; 16 | - (BOOL)isStickerViewShowing; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/ChatStickerExampleViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ChatStickerExampleViewController.h 3 | // VideoChat 4 | // 5 | // Created by Lee on 05/01/2017. 6 | // Copyright © 2020 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import "ChatStickerViewController.h" 10 | 11 | @class STSChatManager; 12 | @class ChatViewController; 13 | 14 | @interface ChatStickerExampleViewController : ChatStickerViewController 15 | 16 | + (instancetype)viewControllerWithChatViewController:(ChatViewController *)chatViewController; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/ECommerceChatViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ECommerceChatViewController.h 3 | // VideoChat 4 | // 5 | // Created by Harry on 25/05/2017. 6 | // Copyright © 2020 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | #import "TransparentChatViewController.h" 12 | 13 | extern CGFloat const kEcommerceChatVCfloatingDistrictWidth; 14 | 15 | @interface ECommerceChatViewController : UIViewController 16 | 17 | - (void)connectToChatWithJWT:(NSString *)JWT chatroomName:(NSString *)chatroomName; 18 | 19 | @property (nonatomic, readonly) TransparentChatViewController *chatVC; 20 | @property (nonatomic, readonly) UIView * toolbarView; 21 | @property (nonatomic, readonly) UIButton * showKeyboardButton; 22 | @property (nonatomic, readonly) UIButton * likeButton; 23 | @property (nonatomic, readonly) UILabel * likeCountLabel; 24 | @property (nonatomic, readonly) UIView * floatingDistrictView; 25 | @property (nonatomic) UIView * backgroundView; 26 | 27 | - (void)chatroomConnected:(STSChat *)chatroom NS_REQUIRES_SUPER; 28 | - (void)chatroomInputModeChanged:(STSChat *)chatroom NS_REQUIRES_SUPER; 29 | - (void)chatroom:(STSChat *)chatroom usersUpdated:(NSArray *)users NS_REQUIRES_SUPER; 30 | - (void)chatroom:(STSChat *)chatroom messageAdded:(STSChatMessage *)message NS_REQUIRES_SUPER; 31 | - (void)chatroom:(STSChat *)chatroom messageRemoved:(NSString *)messageId NS_REQUIRES_SUPER; 32 | - (void)chatroomMessageFlushed:(STSChat *)chatroom NS_REQUIRES_SUPER; 33 | - (void)chatroomDisconnected:(STSChat *)chatroom NS_REQUIRES_SUPER; 34 | - (void)chatroom:(STSChat *)chatroom failToConnect:(NSError *)error NS_REQUIRES_SUPER; 35 | - (void)chatroom:(STSChat *)chatroom aggregatedItemsAdded:(NSArray *)aggregatedItems NS_REQUIRES_SUPER; 36 | - (void)chatroom:(STSChat *)chatroom pinnedMessageUpdated:(STSChatMessage *)pinnedMessage NS_REQUIRES_SUPER; 37 | 38 | @end 39 | -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/IconLabel.h: -------------------------------------------------------------------------------- 1 | // 2 | // IconLabel.h 3 | // StraaS 4 | // 5 | // Created by shihwen.wang on 2017/2/16. 6 | // Copyright © 2020年 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface IconLabel : UILabel 12 | 13 | //This method will set the default verticalOffset which is 0. If you need to custom vertical offset use `setIconImage:verticalOffset` instead. 14 | - (void)setIconImage:(UIImage *)image; 15 | - (void)setIconImage:(UIImage *)image verticalOffset:(CGFloat)verticalOffset; 16 | 17 | //Note: This method will override the attributedText in IconLabel, it may cause Icon Image disappear. 18 | //If you want to show IconImage with your custom attributedText, call setIconImage after calling this method. 19 | - (void)setAttributedText:(NSAttributedString *)attributedText; 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/IconLabel.m: -------------------------------------------------------------------------------- 1 | // 2 | // IconLabel.m 3 | // StraaS 4 | // 5 | // Created by shihwen.wang on 2017/2/16. 6 | // Copyright © 2020年 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import "IconLabel.h" 10 | #import 11 | 12 | @interface IconLabel() 13 | @property (nonatomic, nullable) NSTextAttachment * attachment; 14 | @property (nonatomic) CGFloat verticalOffset; 15 | @end 16 | 17 | @implementation IconLabel 18 | 19 | - (void)setIconImage:(UIImage *)image { 20 | [self setIconImage:image verticalOffset:0.0]; 21 | } 22 | 23 | - (void)setIconImage:(UIImage *)image verticalOffset:(CGFloat)verticalOffset { 24 | if (!image) { 25 | self.attachment = nil; 26 | return; 27 | } 28 | _verticalOffset = verticalOffset; 29 | NSTextAttachment * attachment = [[NSTextAttachment alloc] init]; 30 | attachment.image = image; 31 | self.attachment = attachment; 32 | } 33 | 34 | - (void)setAttachment:(NSTextAttachment *)attachment { 35 | if ([_attachment isEqual:attachment]) { 36 | return; 37 | } 38 | _attachment = attachment; 39 | if (self.attributedText && self.attributedText.length > 0) { 40 | NSMutableAttributedString * attributedText = [self.attributedText mutableCopy]; 41 | [attributedText removeAttribute:NSAttachmentAttributeName range:NSMakeRange(0, 1)]; 42 | if (attachment) { 43 | NSMutableAttributedString * tempAttributedText = 44 | [[NSAttributedString attributedStringWithAttachment:attachment] mutableCopy]; 45 | if (self.verticalOffset) { 46 | [tempAttributedText addAttribute:NSBaselineOffsetAttributeName value:@(self.verticalOffset) range:NSMakeRange(0,1)]; 47 | } 48 | [tempAttributedText appendAttributedString:[[NSAttributedString alloc] initWithString:@" "]]; 49 | [attributedText insertAttributedString:tempAttributedText atIndex:0]; 50 | } else if (attributedText.mutableString.length > 0) { 51 | [attributedText.mutableString replaceOccurrencesOfString:@" " withString:@"" options:NSCaseInsensitiveSearch range:NSMakeRange(0, 1)]; 52 | } 53 | self.attributedText = attributedText; 54 | [self sizeToFit]; 55 | return; 56 | } 57 | [self setText:self.text]; 58 | } 59 | 60 | - (void)setText:(NSString *)text { 61 | if (!self.attachment || [text length] == 0) { 62 | self.attributedText = nil; 63 | [super setText:text]; 64 | return; 65 | } 66 | NSMutableAttributedString * attributedText = 67 | [[NSAttributedString attributedStringWithAttachment:self.attachment] mutableCopy]; 68 | if (self.verticalOffset) { 69 | [attributedText addAttribute:NSBaselineOffsetAttributeName value:@(self.verticalOffset) range:NSMakeRange(0,1)]; 70 | } 71 | NSString * textToAppend = [NSString stringWithFormat:@" %@", text]; 72 | [attributedText appendAttributedString:[[NSAttributedString alloc] initWithString:textToAppend]]; 73 | self.attributedText = attributedText; 74 | [self sizeToFit]; 75 | } 76 | 77 | - (void)setAttributedText:(NSAttributedString *)attributedText { 78 | [super setAttributedText:attributedText]; 79 | } 80 | 81 | @end 82 | -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/MessageTableViewCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // MessageTableViewCell.h 3 | // Messenger 4 | // 5 | // Created by Ignacio Romero Zurbuchen on 9/1/14. 6 | // Copyright (c) 2014 Slack Technologies, Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "IconLabel.h" 11 | #import 12 | 13 | static NSString *const MessengerCellIdentifier = @"MessengerCell"; 14 | static NSString *const StickerCellIdentifier = @"StickerCell"; 15 | static NSString *const AutoCompletionCellIdentifier = @"AutoCompletionCell"; 16 | 17 | @interface MessageTableViewCell : UITableViewCell 18 | 19 | @property (nonatomic, strong) IconLabel *titleLabel; 20 | @property (nonatomic, strong) UILabel *sideLabel; 21 | @property (nonatomic, strong) TTTAttributedLabel *bodyLabel; 22 | @property (nonatomic, strong) UIImageView *thumbnailView; 23 | @property (nonatomic, strong) UIImageView * stickerImageView; 24 | @property (nonatomic, strong) UIView *separatorLineView; 25 | 26 | @property (nonatomic, strong) NSIndexPath *indexPath; 27 | 28 | @property (nonatomic) BOOL usedForMessage; 29 | 30 | + (CGFloat)defaultFontSize; 31 | + (CGFloat)estimateBodyLabelHeightWithText:(NSString *)text widthToFit:(CGFloat)width; 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/MessageTextView.h: -------------------------------------------------------------------------------- 1 | // 2 | // MessageTextView.h 3 | // Messenger 4 | // 5 | // Created by Ignacio Romero Z. on 1/20/15. 6 | // Copyright (c) 2015 Slack Technologies, Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface MessageTextView : SLKTextView 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/MessageTextView.m: -------------------------------------------------------------------------------- 1 | // 2 | // MessageTextView.m 3 | // Messenger 4 | // 5 | // Created by Ignacio Romero Z. on 1/20/15. 6 | // Copyright (c) 2015 Slack Technologies, Inc. All rights reserved. 7 | // 8 | 9 | #import "MessageTextView.h" 10 | 11 | @implementation MessageTextView 12 | 13 | - (instancetype)init 14 | { 15 | if (self = [super init]) { 16 | // Do something 17 | } 18 | return self; 19 | } 20 | 21 | - (void)willMoveToSuperview:(UIView *)newSuperview 22 | { 23 | [super willMoveToSuperview:newSuperview]; 24 | 25 | self.backgroundColor = [UIColor whiteColor]; 26 | 27 | self.placeholder = NSLocalizedString(@"Message", nil); 28 | self.placeholderColor = [UIColor lightGrayColor]; 29 | self.pastableMediaTypes = SLKPastableMediaTypeAll; 30 | 31 | self.layer.borderColor = [UIColor colorWithRed:217.0/255.0 green:217.0/255.0 blue:217.0/255.0 alpha:1.0].CGColor; 32 | } 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/NSFileManager+Sticker.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSFileManager+Sticker.h 3 | // VideoChat 4 | // 5 | // Created by Lee on 09/11/2016. 6 | // Copyright © 2020 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface NSFileManager (Sticker) 12 | 13 | + (NSArray *)getRecentlyUsedStickerItems; 14 | + (void)addRecentlyUsedStickerItem:(NSDictionary *)stickerItem; 15 | + (void)clearRecentlyUsedStickerItems; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/NSFileManager+Sticker.m: -------------------------------------------------------------------------------- 1 | // 2 | // NSFileManager+Sticker.m 3 | // VideoChat 4 | // 5 | // Created by Lee on 09/11/2016. 6 | // Copyright © 2020 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import "NSFileManager+Sticker.h" 10 | 11 | NSString * const recentlyUsedStickerPathKey = @"recentlyUsedSticker.txt"; 12 | NSUInteger const maxRecentlyUsedStickerCount = 20; 13 | 14 | @implementation NSFileManager (Sticker) 15 | + (NSArray *)getRecentlyUsedStickerItems { 16 | NSString * path = [self pathWithPathkey:recentlyUsedStickerPathKey]; 17 | if ([[NSFileManager defaultManager] fileExistsAtPath:path]) { 18 | NSArray * recentlyUsedSticker = [NSArray arrayWithContentsOfFile:path]; 19 | return recentlyUsedSticker; 20 | } 21 | return nil; 22 | } 23 | 24 | + (void)addRecentlyUsedStickerItem:(NSDictionary *)stickerItem { 25 | NSString * path = [self pathWithPathkey:recentlyUsedStickerPathKey]; 26 | NSMutableArray * usedStickerItems = [NSMutableArray arrayWithContentsOfFile:path]; 27 | if (!usedStickerItems) { 28 | [@[stickerItem] writeToFile:path atomically:YES]; 29 | return; 30 | } 31 | if ([usedStickerItems containsObject:stickerItem]) { 32 | [usedStickerItems removeObject:stickerItem]; 33 | } 34 | [usedStickerItems insertObject:stickerItem atIndex:0]; 35 | if (usedStickerItems.count > maxRecentlyUsedStickerCount) { 36 | [usedStickerItems removeLastObject]; 37 | } 38 | [usedStickerItems writeToFile:path atomically:YES]; 39 | } 40 | 41 | + (void)clearRecentlyUsedStickerItems { 42 | NSString * path = [self pathWithPathkey:recentlyUsedStickerPathKey]; 43 | [[NSFileManager defaultManager] removeItemAtPath:path error:NULL]; 44 | } 45 | 46 | + (NSString *)pathWithPathkey:(NSString *)pathKey { 47 | NSString * path; 48 | NSArray * paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 49 | path = [[paths objectAtIndex:0] stringByAppendingPathComponent:pathKey]; 50 | return path; 51 | } 52 | @end 53 | -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/NSTimer+SafeTimer.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSTimer+SafeTimer.h 3 | // VideoChat 4 | // 5 | // Created by Lee on 18/03/2017. 6 | // Copyright © 2020 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface NSTimer (SafeTimer) 12 | + (NSTimer*)safeScheduledTimerWithTimeInterval:(NSTimeInterval)interval 13 | block:(void(^)(void))block 14 | repeats:(BOOL)repeats; 15 | @end 16 | -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/NSTimer+SafeTimer.m: -------------------------------------------------------------------------------- 1 | // 2 | // NSTimer+SafeTimer.m 3 | // VideoChat 4 | // 5 | // Created by Lee on 18/03/2017. 6 | // Copyright © 2020 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import "NSTimer+SafeTimer.h" 10 | 11 | @implementation NSTimer (SafeTimer) 12 | + (NSTimer*)safeScheduledTimerWithTimeInterval:(NSTimeInterval)interval 13 | block:(void(^)(void))block 14 | repeats:(BOOL)repeats { 15 | return [self scheduledTimerWithTimeInterval:interval 16 | target:self 17 | selector:@selector(safeBlockInvoke:) 18 | userInfo:[block copy] 19 | repeats:repeats]; 20 | } 21 | 22 | + (void)safeBlockInvoke:(NSTimer *)timer { 23 | void (^block)(void) = timer.userInfo; 24 | if (block) { 25 | block(); 26 | } 27 | } 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/STSChatMessage+VideoChatUtility.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSChatMessage+VideoChatUtility.h 3 | // VideoChat 4 | // 5 | // Created by Luke Jang on 8/30/16. 6 | // Copyright © 2020 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface STSChatMessage (VideoChatUtility) 12 | 13 | - (NSString *)shortCreatedDate; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/STSChatMessage+VideoChatUtility.m: -------------------------------------------------------------------------------- 1 | // 2 | // STSChatMessage+VideoChatUtility.m 3 | // VideoChat 4 | // 5 | // Created by Luke Jang on 8/30/16. 6 | // Copyright © 2020 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import "STSChatMessage+VideoChatUtility.h" 10 | 11 | @implementation STSChatMessage (VideoChatUtility) 12 | 13 | - (NSString *)shortCreatedDate { 14 | NSDateFormatter * formatter = [NSDateFormatter new]; 15 | formatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ss.SSSZ"; 16 | NSDate * date = [formatter dateFromString:self.createdDate]; 17 | formatter.dateFormat = @"HH:mm"; 18 | return [formatter stringFromDate:date]; 19 | } 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/STSChatUser+VieoChatUtility.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSChatUser+VieoChatUtility.h 3 | // VideoChat 4 | // 5 | // Created by Lee on 11/11/2016. 6 | // Copyright © 2020 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface STSChatUser (VieoChatUtility) 12 | 13 | - (BOOL)canChatInAnchorMode; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/STSChatUser+VieoChatUtility.m: -------------------------------------------------------------------------------- 1 | // 2 | // STSChatUser+VieoChatUtility.m 3 | // VideoChat 4 | // 5 | // Created by Lee on 11/11/2016. 6 | // Copyright © 2020 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import "STSChatUser+VieoChatUtility.h" 10 | 11 | @implementation STSChatUser (VieoChatUtility) 12 | 13 | - (BOOL)canChatInAnchorMode { 14 | return ([self.role isEqualToString:kSTSUserRoleMaster] || 15 | [self.role isEqualToString:kSTSUserRoleLocalManager] || 16 | [self.role isEqualToString:kSTSUserRoleModerator]); 17 | } 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/STSMessageLongPressGestureRecognizer.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSMessageLongPressGestureRecognizer.h 3 | // VideoChat 4 | // 5 | // Created by shihwen.wang on 2017/6/21. 6 | // Copyright © 2020年 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface STSMessageLongPressGestureRecognizer : UILongPressGestureRecognizer 13 | 14 | @property (nonatomic, nullable) STSChatMessage * message; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/STSMessageLongPressGestureRecognizer.m: -------------------------------------------------------------------------------- 1 | // 2 | // STSMessageLongPressGestureRecognizer.m 3 | // VideoChat 4 | // 5 | // Created by shihwen.wang on 2017/6/21. 6 | // Copyright © 2020年 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import "STSMessageLongPressGestureRecognizer.h" 10 | 11 | @implementation STSMessageLongPressGestureRecognizer 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/STSPinnedMessageView.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSPinnedMessageView.h 3 | // VideoChat 4 | // 5 | // Created by shihwen.wang on 2017/6/21. 6 | // Copyright © 2020年 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "IconLabel.h" 11 | #import 12 | 13 | NS_ASSUME_NONNULL_BEGIN 14 | 15 | @interface STSPinnedMessageView : UIView 16 | 17 | @property (nonatomic, strong, readonly) IconLabel * titleLabel; 18 | @property (nonatomic, strong, readonly) TTTAttributedLabel * bodyLabel; 19 | @property (nonatomic, strong, readonly) UIImageView * avatarView; 20 | @property (nonatomic, strong, readonly) UIButton * pinButton; 21 | 22 | @end 23 | 24 | NS_ASSUME_NONNULL_END 25 | -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/STSSegmentedControl.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSSegmentedControl.h 3 | // VideoChat 4 | // 5 | // Created by Lee on 07/11/2016. 6 | // Copyright © 2020 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | @class STSSegmentedControl; 11 | 12 | @protocol STSSegmentedControlDelegate 13 | - (void)segmentedControl:(STSSegmentedControl *)segmentedControl didSelectSegmentIndex:(NSUInteger)index; 14 | @end 15 | 16 | @interface STSSegmentedControl : UIControl 17 | 18 | @property (weak ,nonatomic) id delegate; 19 | @property (nonatomic) NSArray * items; 20 | @property (nonatomic) NSUInteger selectedSegmentIndex; 21 | @property (nonatomic, readwrite) CGFloat itemHeight; 22 | @property (nonatomic, readwrite) CGFloat itemWidth; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/StickerInputViewDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // StickerInputViewDelegate.h 3 | // VideoChat 4 | // 5 | // Created by Lee on 04/11/2016. 6 | // Copyright © 2020 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | /** 12 | The delegate of a NSObject must adopt the StickerInputViewDelegate protocol. 13 | */ 14 | @protocol StickerInputViewDelegate 15 | 16 | /** 17 | Tells the delegate that a sticker key did be selected. 18 | 19 | @param key The sticker key name. 20 | @param imageURL The sticker image URL. 21 | */ 22 | - (void)didSelectStickerKey:(NSString *)key 23 | imageURL:(NSString *)imageURL; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/StickersInputView.h: -------------------------------------------------------------------------------- 1 | // 2 | // StickersInputView.h 3 | // VideoChat 4 | // 5 | // Created by Lee on 02/11/2016. 6 | // Copyright © 2020 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "STSSegmentedControl.h" 11 | #import 12 | #import "StickerInputViewDelegate.h" 13 | 14 | NS_ASSUME_NONNULL_BEGIN 15 | 16 | extern NSString * const kStickersInputView; 17 | static CGFloat const kStickerSegmentWidth = 55.0; 18 | static CGFloat const kStickerSegmentHeight = 35.0; 19 | static CGFloat const kStickerItemScrollViewHeight = 180.0; 20 | 21 | static CGFloat const stickerItemSideLength = 62.0; 22 | static CGFloat const viewStickerPadding = 10.0; 23 | static CGFloat const minPaddingBetweenStickerItems = 10; 24 | 25 | 26 | @interface StickersInputView : UIView 27 | @property (weak, nonatomic) id delegate; 28 | @property (weak, nonatomic) IBOutlet UIScrollView *stickerGroupScrollView; 29 | @property (weak, nonatomic) IBOutlet UIScrollView *stickerItemScrollview; 30 | @property (nonatomic) CGFloat stickerInputViewHeight; 31 | @property (nonatomic) STSSegmentedControl * segmentedControl; 32 | - (void)setStickers:(NSArray *)stickers; 33 | 34 | @end 35 | 36 | NS_ASSUME_NONNULL_END 37 | -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/TransparentChatViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // TransparentChatViewController.h 3 | // VideoChat 4 | // 5 | // Created by Harry on 25/05/2017. 6 | // Copyright © 2020 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "ChatViewController.h" 11 | 12 | static NSString *TransparentMessengerCellIdentifier = @"TransparentMessengerCell"; 13 | 14 | @interface TransparentChatViewController : ChatViewController 15 | 16 | + (CGFloat)cellLeftPadding; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/TransparentMessageTableViewCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // TransparentMessageTableViewCell.h 3 | // VideoChat 4 | // 5 | // Created by Harry on 25/05/2017. 6 | // Copyright © 2020 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | #import 12 | 13 | extern CGFloat const kTransparentCellLabelPaddingLeft; 14 | extern CGFloat const kTransparentCellLabelPaddingRight; 15 | extern CGFloat const kTransparentCellLabelPaddingTop; 16 | extern CGFloat const kTransparentCellLabelPaddingBottom; 17 | 18 | extern CGFloat const kTransparentCellBackgroundMaskHorizontalPadding; 19 | extern CGFloat const kTransparentCellBackgroundMaskVerticalPadding; 20 | 21 | @interface TransparentMessageTableViewCell : UITableViewCell 22 | 23 | + (CGFloat)estimateCellHeightWithMessage:(STSChatMessage *)message widthToFit:(CGFloat)width; 24 | 25 | - (void)setMessage:(STSChatMessage *)message; 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/TypingIndicatorView.h: -------------------------------------------------------------------------------- 1 | // 2 | // TypingIndicatorView.h 3 | // Messenger 4 | // 5 | // Created by Ignacio Romero Z. on 6/27/15. 6 | // Copyright (c) 2015 Slack Technologies, Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | static CGFloat kTypingIndicatorViewMinimumHeight = 80.0; 13 | static CGFloat kTypingIndicatorViewAvatarHeight = 30.0; 14 | 15 | @interface TypingIndicatorView : UIView 16 | 17 | - (void)presentIndicatorWithName:(NSString *)name image:(UIImage *)image; 18 | - (void)dismissIndicator; 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/UIAlertController+VideoChatUtility.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIAlertController+VideoChatUtility.h 3 | // VideoChat 4 | // 5 | // Created by Lee on 9/8/16. 6 | // Copyright © 2020 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UIAlertController (VideoChatUtility) 12 | 13 | + (UIAlertController *)nicknameAlertControllerWithCurrentNickname:(NSString *)nickname 14 | cancelActionHandler:(void (^)(UIAlertAction *))cancelActionHandler 15 | confirmActionHandler:(void (^)(UIAlertAction *, NSString *))confirmActionHandler; 16 | 17 | + (UIAlertController *)alertControllerWithTitle:(NSString *)title 18 | message:(NSString *)message 19 | confirmActionHandler:(void (^)(UIAlertAction *))confirmActionHandler; 20 | 21 | + (UIAlertController *)messageAlertControllerWithTitle:(NSString *)title 22 | message:(NSString *)message 23 | pinActionHandler:(void (^)(UIAlertAction *))pinActionHandler 24 | deleteActionHandler:(void (^)(UIAlertAction *))deleteActionHandler 25 | unpinActionHandler:(void (^)(UIAlertAction *))pinActionHandler 26 | cancelActionHandler:(void (^)(UIAlertAction *))cancelActionHandler; 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/UIImage+sticker.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIImage+sticker.h 3 | // VideoChat 4 | // 5 | // Created by Lee on 03/11/2016. 6 | // Copyright © 2020 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | static CGFloat const stickerMainImageSideLength = 30.0; 11 | 12 | @interface UIImage (sticker) 13 | 14 | + (instancetype)desaturatedImage:(UIImage *)image; 15 | + (instancetype)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/UIImage+sticker.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIImage+sticker.m 3 | // VideoChat 4 | // 5 | // Created by Lee on 03/11/2016. 6 | // Copyright © 2020 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import "UIImage+sticker.h" 10 | #import 11 | 12 | @implementation UIImage (sticker) 13 | 14 | + (instancetype)imageWithImage:(UIImage *)image scaledToSize:(CGSize)newSize { 15 | UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0); 16 | [image drawInRect:CGRectMake(0, 0, newSize.width, newSize.height)]; 17 | UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); 18 | UIGraphicsEndImageContext(); 19 | return newImage; 20 | } 21 | 22 | + (instancetype)desaturatedImage:(UIImage *)image { 23 | CIImage * inputImage = [CIImage imageWithCGImage:image.CGImage]; 24 | CIFilter * filter = [CIFilter filterWithName:@"CIColorControls" 25 | withInputParameters:@{@"inputImage": inputImage, 26 | @"inputSaturation": @0}]; 27 | CIImage * outputImage = [filter valueForKey:@"outputImage"]; 28 | return [UIImage imageWithCIImage:outputImage scale:image.scale orientation:image.imageOrientation]; 29 | } 30 | 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/UIViewController+VideoChatUtility.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIViewController+VideoChatUtility.h 3 | // VideoChat 4 | // 5 | // Created by shihwen.wang on 2017/6/23. 6 | // Copyright © 2020年 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface UIViewController(VideoChatUtility) 15 | - (void)showMessage:(NSString *)message dismissAfter:(NSTimeInterval)delay; 16 | @end 17 | 18 | NS_ASSUME_NONNULL_END 19 | -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/UIViewController+VideoChatUtility.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIViewController+VideoChatUtility.m 3 | // VideoChat 4 | // 5 | // Created by shihwen.wang on 2017/6/23. 6 | // Copyright © 2020年 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import "UIViewController+VideoChatUtility.h" 10 | #import 11 | 12 | @implementation UIViewController(VideoChatUtility) 13 | 14 | - (void)showMessage:(NSString *)message dismissAfter:(NSTimeInterval)delay 15 | { 16 | if (!self.view || ([message length] == 0)) { 17 | return; 18 | } 19 | TTTAttributedLabel * label = [self labelWithText:message]; 20 | label.alpha = 0; 21 | [self.view addSubview:label]; 22 | NSDictionary * views = @{@"label": label}; 23 | NSString * visualFormat = @"H:|-(>=20)-[label]-(>=20)-|"; 24 | NSArray * constraints = 25 | [NSLayoutConstraint constraintsWithVisualFormat:visualFormat options:0 metrics:nil views:views]; 26 | [NSLayoutConstraint activateConstraints:constraints]; 27 | 28 | visualFormat = @"V:|-(>=30)-[label]-(30)-|"; 29 | constraints = 30 | [NSLayoutConstraint constraintsWithVisualFormat:visualFormat options:0 metrics:nil views:views]; 31 | [NSLayoutConstraint activateConstraints:constraints]; 32 | 33 | NSLayoutConstraint * constraint = 34 | [NSLayoutConstraint constraintWithItem:label 35 | attribute:NSLayoutAttributeCenterX 36 | relatedBy:NSLayoutRelationEqual 37 | toItem:self.view 38 | attribute:NSLayoutAttributeCenterX 39 | multiplier:1 40 | constant:0]; 41 | [NSLayoutConstraint activateConstraints:@[constraint]]; 42 | [UIView animateWithDuration:0.3 animations:^{ 43 | label.alpha = 1; 44 | }]; 45 | dispatch_time_t time = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delay * NSEC_PER_SEC)); 46 | dispatch_after(time, dispatch_get_main_queue(), ^{ 47 | [label removeFromSuperview]; 48 | }); 49 | } 50 | 51 | - (TTTAttributedLabel *)labelWithText:(NSString *)text { 52 | TTTAttributedLabel * label = [[TTTAttributedLabel alloc] initWithFrame:CGRectZero]; 53 | label.translatesAutoresizingMaskIntoConstraints = NO; 54 | label.textInsets = UIEdgeInsetsMake(12, 12, 12, 12); 55 | label.numberOfLines = 0; 56 | label.font = [UIFont boldSystemFontOfSize:16]; 57 | label.backgroundColor = [UIColor colorWithWhite:0 alpha:0.8]; 58 | label.textColor = [UIColor whiteColor]; 59 | label.text = text; 60 | label.textAlignment = NSTextAlignmentCenter; 61 | label.layer.cornerRadius = 10; 62 | label.layer.masksToBounds = YES; 63 | return label; 64 | } 65 | 66 | @end 67 | -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/en.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | /* 2 | Localizable.strings 3 | VideoChat 4 | 5 | Created by Lee on 27/03/2017. 6 | Copyright © 2020 StraaS.io. All rights reserved. 7 | */ 8 | 9 | 10 | "encourage_to_chat" = "say something, let anchor know you're here!"; 11 | 12 | "enter_nickname" = "Please Enter a Nickname"; 13 | 14 | "jump_to_lastest_message" = "Jump to latest"; 15 | 16 | "plz_signin" = "Please sign in to chat"; 17 | 18 | "Send" = "Send"; 19 | 20 | "input_hint" = "Type a message..."; 21 | 22 | "update_nickname_fail" = "Failed to set nickname."; 23 | 24 | "user_join_welcome" = "%@ is coming!"; 25 | 26 | "cancel" = "Cancel"; 27 | 28 | "deleate_message" = "Delete Message"; 29 | 30 | "operation_failed_message" = "Operation failed, please try again."; 31 | 32 | "pin_message_to_top" = "Pin to Top"; 33 | 34 | "unping_message" = "Unpin from Top"; 35 | -------------------------------------------------------------------------------- /Examples/VideoChat/ChatRoom/zh-Hant.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | /* 2 | Localizable.strings 3 | VideoChat 4 | 5 | Created by Lee on 27/03/2017. 6 | Copyright © 2020 StraaS.io. All rights reserved. 7 | */ 8 | 9 | "encourage_to_chat" = "跟主播說些話,讓他/她知道你來了"; 10 | 11 | "enter_nickname" = "請輸入訪客名稱"; 12 | 13 | "jump_to_lastest_message" = "跳至新訊息"; 14 | 15 | "plz_signin" = "需登入後才可發言"; 16 | 17 | "Send" = "送出"; 18 | 19 | "input_hint" = "輸入訊息..."; 20 | 21 | "update_nickname_fail" = "輸入名稱失敗"; 22 | 23 | "user_join_welcome" = "%@ 來了!"; 24 | 25 | "cancel" = "取消"; 26 | 27 | "deleate_message" = "刪除留言"; 28 | 29 | "operation_failed_message" = "操作失敗,請重試"; 30 | 31 | "pin_message_to_top" = "留言置頂"; 32 | 33 | "unping_message" = "取消置頂"; 34 | -------------------------------------------------------------------------------- /Examples/VideoChat/FloatingImageView.h: -------------------------------------------------------------------------------- 1 | // 2 | // FloatingImageView.h 3 | // VideoChat 4 | // 5 | // This class is modified by referring https://github.com/saidmarouf/FloatingHearts 6 | // 7 | // Created by Lee on 25/05/2017. 8 | // Copyright © 2020 StraaS.io. All rights reserved. 9 | // 10 | 11 | #import 12 | 13 | @interface FloatingImageView : UIImageView 14 | 15 | //This method will automatically add FloatingImageView to view and remove from view when animation finished. 16 | - (void)animateInView:(UIView *)view; 17 | 18 | @end 19 | -------------------------------------------------------------------------------- /Examples/VideoChat/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | $(MARKETING_VERSION) 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | NSCameraUsageDescription 26 | 27 | NSLocationAlwaysAndWhenInUseUsageDescription 28 | You could permit the location access for usage analysis. 29 | NSLocationWhenInUseUsageDescription 30 | You could permit the location access for usage analysis. 31 | NSMicrophoneUsageDescription 32 | 33 | NSPhotoLibraryAddUsageDescription 34 | 「StraaS」想要將截圖存入您的相簿 35 | NSPhotoLibraryUsageDescription 36 | 「StraaS」想要將截圖存入您的相簿 37 | STSSDKClientID 38 | $(STRAAS_CMS_CLIENT_IDENTIFIER) 39 | UIBackgroundModes 40 | 41 | audio 42 | 43 | UILaunchStoryboardName 44 | LaunchScreen 45 | UIMainStoryboardFile 46 | Main 47 | UIRequiredDeviceCapabilities 48 | 49 | UIStatusBarTintParameters 50 | 51 | UINavigationBar 52 | 53 | Style 54 | UIBarStyleDefault 55 | Translucent 56 | 57 | 58 | 59 | UISupportedInterfaceOrientations 60 | 61 | UIInterfaceOrientationPortrait 62 | 63 | UISupportedInterfaceOrientations~ipad 64 | 65 | UIInterfaceOrientationPortrait 66 | UIInterfaceOrientationPortraitUpsideDown 67 | UIInterfaceOrientationLandscapeLeft 68 | UIInterfaceOrientationLandscapeRight 69 | 70 | UIUserInterfaceStyle 71 | Light 72 | 73 | 74 | -------------------------------------------------------------------------------- /Examples/VideoChat/Player/STSPlayerViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSPlayerViewController.h 3 | // StraaS 4 | // 5 | // Created by Lee on 6/21/16. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface STSPlayerViewController : UIViewController 12 | 13 | + (instancetype)viewControllerFromStoryboard; 14 | @property (nonatomic) NSString * JWT; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /Examples/VideoChat/Player/UIViewController+STSKeyboard.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIViewController+STSKeyboard.h 3 | // StraaS 4 | // 5 | // Created by Jerome Lee on 13/6/16. 6 | // Copyright (c) 2017 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UIViewController (STSKeyboard) 12 | 13 | - (void)registerForKeyboardNotifications; 14 | - (void)unregisterForKeyboardNotifications; 15 | - (void)sts_keyboardWillBeShown:(NSNotification*)notification; 16 | - (void)sts_keyboardWillBeHidden:(NSNotification*)notification; 17 | - (void)updateLayoutWithKeyboard:(BOOL)keyboard notification:(NSNotification *)notification; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /Examples/VideoChat/Player/UIViewController+STSKeyboard.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIViewController+STSKeyboard.m 3 | // StraaS 4 | // 5 | // Created by Jerome Lee on 13/6/16. 6 | // Copyright (c) 2017 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import "UIViewController+STSKeyboard.h" 10 | 11 | @implementation UIViewController (STSKeyboard) 12 | 13 | - (void)registerForKeyboardNotifications 14 | { 15 | [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sts_keyboardWillBeShown:) name:UIKeyboardWillShowNotification object:nil]; 16 | [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(sts_keyboardWillBeHidden:) name:UIKeyboardWillHideNotification object:nil]; 17 | } 18 | 19 | - (void)unregisterForKeyboardNotifications { 20 | [[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillHideNotification object:nil]; 21 | [[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillShowNotification object:nil]; 22 | } 23 | 24 | - (void)sts_keyboardWillBeShown:(NSNotification*)notification 25 | { 26 | [self updateLayoutWithKeyboard:YES notification:notification]; 27 | } 28 | 29 | - (void)sts_keyboardWillBeHidden:(NSNotification*)notification 30 | { 31 | [self updateLayoutWithKeyboard:NO notification:notification]; 32 | } 33 | 34 | - (void)updateLayoutWithKeyboard:(BOOL)keyboard notification:(NSNotification *)notification 35 | { 36 | NSAssert(NO, @"Please override this method"); 37 | } 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /Examples/VideoChat/STSStreamingViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSStreamingViewController.h 3 | // StraaS 4 | // 5 | // Created by shihwen.wang on 2016/10/28. 6 | // Copyright © 2020年 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | typedef NS_ENUM(NSUInteger, STSStreamWay) { 12 | STSStreamWayLiveEvent = 0, 13 | STSStreamWayStreamKey = 1, 14 | }; 15 | 16 | @interface STSStreamingViewController : UIViewController 17 | 18 | + (instancetype)viewControllerFromStoryboard; 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /Examples/VideoChat/Shared/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // VideoChat 4 | // 5 | // Created by Luke Jang on 8/26/16. 6 | // Copyright © 2020 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /Examples/VideoChat/Shared/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "20x20", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "20x20", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "size" : "29x29", 15 | "idiom" : "iphone", 16 | "filename" : "Icon-Small@2x.png", 17 | "scale" : "2x" 18 | }, 19 | { 20 | "size" : "29x29", 21 | "idiom" : "iphone", 22 | "filename" : "Icon-Small@3x.png", 23 | "scale" : "3x" 24 | }, 25 | { 26 | "size" : "40x40", 27 | "idiom" : "iphone", 28 | "filename" : "Icon-Small-40@2x.png", 29 | "scale" : "2x" 30 | }, 31 | { 32 | "size" : "40x40", 33 | "idiom" : "iphone", 34 | "filename" : "Icon-Small-40@3x.png", 35 | "scale" : "3x" 36 | }, 37 | { 38 | "size" : "60x60", 39 | "idiom" : "iphone", 40 | "filename" : "Icon-60@2x.png", 41 | "scale" : "2x" 42 | }, 43 | { 44 | "size" : "60x60", 45 | "idiom" : "iphone", 46 | "filename" : "Icon-60@3x.png", 47 | "scale" : "3x" 48 | }, 49 | { 50 | "idiom" : "ipad", 51 | "size" : "20x20", 52 | "scale" : "1x" 53 | }, 54 | { 55 | "idiom" : "ipad", 56 | "size" : "20x20", 57 | "scale" : "2x" 58 | }, 59 | { 60 | "idiom" : "ipad", 61 | "size" : "29x29", 62 | "scale" : "1x" 63 | }, 64 | { 65 | "idiom" : "ipad", 66 | "size" : "29x29", 67 | "scale" : "2x" 68 | }, 69 | { 70 | "idiom" : "ipad", 71 | "size" : "40x40", 72 | "scale" : "1x" 73 | }, 74 | { 75 | "idiom" : "ipad", 76 | "size" : "40x40", 77 | "scale" : "2x" 78 | }, 79 | { 80 | "idiom" : "ipad", 81 | "size" : "76x76", 82 | "scale" : "1x" 83 | }, 84 | { 85 | "idiom" : "ipad", 86 | "size" : "76x76", 87 | "scale" : "2x" 88 | }, 89 | { 90 | "idiom" : "ipad", 91 | "size" : "83.5x83.5", 92 | "scale" : "2x" 93 | }, 94 | { 95 | "idiom" : "ios-marketing", 96 | "size" : "1024x1024", 97 | "scale" : "1x" 98 | } 99 | ], 100 | "info" : { 101 | "version" : 1, 102 | "author" : "xcode" 103 | } 104 | } -------------------------------------------------------------------------------- /Examples/VideoChat/Shared/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/Shared/Assets.xcassets/AppIcon.appiconset/Icon-60@2x.png -------------------------------------------------------------------------------- /Examples/VideoChat/Shared/Assets.xcassets/AppIcon.appiconset/Icon-60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/Shared/Assets.xcassets/AppIcon.appiconset/Icon-60@3x.png -------------------------------------------------------------------------------- /Examples/VideoChat/Shared/Assets.xcassets/AppIcon.appiconset/Icon-Small-40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/Shared/Assets.xcassets/AppIcon.appiconset/Icon-Small-40@2x.png -------------------------------------------------------------------------------- /Examples/VideoChat/Shared/Assets.xcassets/AppIcon.appiconset/Icon-Small-40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/Shared/Assets.xcassets/AppIcon.appiconset/Icon-Small-40@3x.png -------------------------------------------------------------------------------- /Examples/VideoChat/Shared/Assets.xcassets/AppIcon.appiconset/Icon-Small@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/Shared/Assets.xcassets/AppIcon.appiconset/Icon-Small@2x.png -------------------------------------------------------------------------------- /Examples/VideoChat/Shared/Assets.xcassets/AppIcon.appiconset/Icon-Small@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/Shared/Assets.xcassets/AppIcon.appiconset/Icon-Small@3x.png -------------------------------------------------------------------------------- /Examples/VideoChat/Shared/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Examples/VideoChat/Shared/Assets.xcassets/camera.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "camera.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "camera@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "camera@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Examples/VideoChat/Shared/Assets.xcassets/camera.imageset/camera.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/Shared/Assets.xcassets/camera.imageset/camera.png -------------------------------------------------------------------------------- /Examples/VideoChat/Shared/Assets.xcassets/camera.imageset/camera@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/Shared/Assets.xcassets/camera.imageset/camera@2x.png -------------------------------------------------------------------------------- /Examples/VideoChat/Shared/Assets.xcassets/camera.imageset/camera@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/Shared/Assets.xcassets/camera.imageset/camera@3x.png -------------------------------------------------------------------------------- /Examples/VideoChat/Shared/Assets.xcassets/nav-icon-close_n.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "nav-icon-close_n.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "nav-icon-close_n@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "nav-icon-close_n@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Examples/VideoChat/Shared/Assets.xcassets/nav-icon-close_n.imageset/nav-icon-close_n.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/Shared/Assets.xcassets/nav-icon-close_n.imageset/nav-icon-close_n.png -------------------------------------------------------------------------------- /Examples/VideoChat/Shared/Assets.xcassets/nav-icon-close_n.imageset/nav-icon-close_n@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/Shared/Assets.xcassets/nav-icon-close_n.imageset/nav-icon-close_n@2x.png -------------------------------------------------------------------------------- /Examples/VideoChat/Shared/Assets.xcassets/nav-icon-close_n.imageset/nav-icon-close_n@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/Shared/Assets.xcassets/nav-icon-close_n.imageset/nav-icon-close_n@3x.png -------------------------------------------------------------------------------- /Examples/VideoChat/Shared/Assets.xcassets/scan.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "scan.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "scan@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "scan@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Examples/VideoChat/Shared/Assets.xcassets/scan.imageset/scan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/Shared/Assets.xcassets/scan.imageset/scan.png -------------------------------------------------------------------------------- /Examples/VideoChat/Shared/Assets.xcassets/scan.imageset/scan@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/Shared/Assets.xcassets/scan.imageset/scan@2x.png -------------------------------------------------------------------------------- /Examples/VideoChat/Shared/Assets.xcassets/scan.imageset/scan@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/Examples/VideoChat/Shared/Assets.xcassets/scan.imageset/scan@3x.png -------------------------------------------------------------------------------- /Examples/VideoChat/Shared/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Examples/VideoChat/Shared/DetailViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // DetailViewController.h 3 | // VideoChat 4 | // 5 | // Created by Luke Jang on 8/26/16. 6 | // Copyright © 2020 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | extern NSString * const STSPlayerServiceBasicPlayerViewKeyword; 12 | extern NSString * const STSMessagingServiceKeyword; 13 | extern NSString * const STSMessagingServiceCustomUIKeyword; 14 | extern NSString * const STSMessagingServiceECommerceUIKeyword; 15 | extern NSString * const STSStreamingServiceKeyword; 16 | extern NSString * const STSStreamingFiltersServiceKeyword; 17 | 18 | @interface DetailViewController : UIViewController 19 | 20 | @property (strong, nonatomic) id detailItem; 21 | @property (weak, nonatomic) IBOutlet UILabel *detailDescriptionLabel; 22 | @property (nonatomic, readonly) UIViewController * contentViewController; 23 | @end 24 | 25 | -------------------------------------------------------------------------------- /Examples/VideoChat/Shared/File.swift: -------------------------------------------------------------------------------- 1 | // 2 | // File.swift 3 | // VideoChat 4 | // 5 | // Created by Allen and Kim on 2019/9/11. 6 | // Copyright © 2020 StraaS.io. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | -------------------------------------------------------------------------------- /Examples/VideoChat/Shared/MasterViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // MasterViewController.h 3 | // VideoChat 4 | // 5 | // Created by Luke Jang on 8/26/16. 6 | // Copyright © 2020 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @class DetailViewController; 12 | 13 | @interface MasterViewController : UITableViewController 14 | 15 | @property (strong, nonatomic) DetailViewController *detailViewController; 16 | 17 | 18 | @end 19 | 20 | -------------------------------------------------------------------------------- /Examples/VideoChat/Shared/MasterViewController.m: -------------------------------------------------------------------------------- 1 | // 2 | // MasterViewController.m 3 | // VideoChat 4 | // 5 | // Created by Luke Jang on 8/26/16. 6 | // Copyright © 2020 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import "MasterViewController.h" 10 | #import "DetailViewController.h" 11 | 12 | @interface MasterViewController () 13 | 14 | @property (nonatomic) NSArray *objects; 15 | @end 16 | 17 | @implementation MasterViewController 18 | 19 | - (void)viewDidLoad { 20 | [super viewDidLoad]; 21 | // Do any additional setup after loading the view, typically from a nib. 22 | self.detailViewController = (DetailViewController *)[[self.splitViewController.viewControllers lastObject] topViewController]; 23 | } 24 | 25 | - (void)viewWillAppear:(BOOL)animated { 26 | self.clearsSelectionOnViewWillAppear = self.splitViewController.isCollapsed; 27 | [super viewWillAppear:animated]; 28 | self.navigationItem.title = @"Examples"; 29 | } 30 | 31 | - (void)didReceiveMemoryWarning { 32 | [super didReceiveMemoryWarning]; 33 | // Dispose of any resources that can be recreated. 34 | } 35 | 36 | - (NSArray *)objects { 37 | if (!_objects) { 38 | _objects = @[STSPlayerServiceBasicPlayerViewKeyword, 39 | STSMessagingServiceKeyword, 40 | STSMessagingServiceCustomUIKeyword, 41 | STSMessagingServiceECommerceUIKeyword, 42 | STSStreamingServiceKeyword, 43 | STSStreamingFiltersServiceKeyword]; 44 | } 45 | return _objects; 46 | } 47 | 48 | #pragma mark - Segues 49 | 50 | - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 51 | if ([[segue identifier] isEqualToString:@"showDetail"]) { 52 | NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow]; 53 | id object = self.objects[indexPath.row]; 54 | DetailViewController *controller = (DetailViewController *)[[segue destinationViewController] topViewController]; 55 | [controller setDetailItem:object]; 56 | controller.navigationItem.leftBarButtonItem = self.splitViewController.displayModeButtonItem; 57 | controller.navigationItem.leftItemsSupplementBackButton = YES; 58 | } 59 | } 60 | 61 | #pragma mark - Table View 62 | 63 | - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 64 | return 1; 65 | } 66 | 67 | - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 68 | return self.objects.count; 69 | } 70 | 71 | - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 72 | UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath]; 73 | 74 | NSDate *object = self.objects[indexPath.row]; 75 | cell.textLabel.text = [object description]; 76 | return cell; 77 | } 78 | 79 | @end 80 | -------------------------------------------------------------------------------- /Examples/VideoChat/Shared/NSLayoutConstraint+STSUtility.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSLayoutConstraint+LHUtility.h 3 | // LiveHouse 4 | // 5 | // Created by Luke Jang on 12/8/15. 6 | // Copyright © 2020年 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface NSLayoutConstraint (STSUtility) 12 | 13 | + (nonnull NSArray *)constraintsForViews:(nonnull NSDictionary *)views 14 | horizaontalVisualFormat:(nonnull NSString *)horizontalVisualFormat 15 | verticalVisualFormat:(nonnull NSString *)verticalVisualFormat; 16 | 17 | + (nonnull NSArray *)constraintsForViews:(nonnull NSDictionary *)views 18 | horizaontalVisualFormat:(nonnull NSString *)horizontalVisualFormat 19 | verticalVisualFormat:(nonnull NSString *)verticalVisualFormat 20 | horizaontalOptions:(NSLayoutFormatOptions)horizaontalOptions 21 | verticalOptions:(NSLayoutFormatOptions)verticalOptions 22 | metrics:(nullable NSDictionary *)metrics; 23 | 24 | + (nonnull NSArray *)centerConstraintsWithView:(nonnull UIView *)view 25 | equalToView:(nonnull UIView *)referenceView; 26 | 27 | + (nonnull NSArray *)centerConstraintsWithView:(nonnull UIView *)view 28 | equalToView:(nonnull UIView *)referenceView 29 | ViewSize:(CGSize)size; 30 | 31 | + (nonnull NSLayoutConstraint *)horizontallyCenterConstraintWithView:(nonnull UIView *)view 32 | equalToView:(nonnull UIView *)referenceView; 33 | 34 | + (nonnull NSLayoutConstraint *)verticallyCenterConstraintWithView:(nonnull UIView *)view 35 | equalToView:(nonnull UIView *)referenceView; 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /Examples/VideoChat/Shared/STSConstant.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSConstant.h 3 | // StraaS 4 | // 5 | // Created by Chuang Jason on 2018/11/9. 6 | // Copyright © 2020年 StraaS.io. All rights reserved. 7 | // 8 | 9 | #ifndef STSConstant_h 10 | #define STSConstant_h 11 | 12 | #warning It is a placeholder, should be replaced with a member JWT. 13 | static NSString * const kStraaSProdMemberJWT = <#PUT_YOUR_MEMEBER_JWT_HERE#>; 14 | 15 | 16 | #endif /* STSConstant_h */ 17 | -------------------------------------------------------------------------------- /Examples/VideoChat/Shared/STSQRCodeScannerViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // QRCodeScannerViewController.h 3 | // LFLiveKitSample 4 | // 5 | // Created by shihwen.wang on 2017/8/18. 6 | // Copyright © 2020年 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | typedef NS_ENUM(NSUInteger, STSStreamWay); 12 | 13 | @class STSQRCodeScannerViewController; 14 | 15 | @protocol STSQRCodeScannerViewControllerDelegate 16 | - (void)scanner:(STSQRCodeScannerViewController *)scanner didGetQRCode:(NSString *)qrCode; 17 | @end 18 | 19 | @interface STSQRCodeScannerViewController : UIViewController 20 | 21 | @property (nonatomic, weak) id delegate; 22 | 23 | @property (nonatomic, assign) STSStreamWay streamWay; 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /Examples/VideoChat/Shared/UIColor+STSColor.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIColor+STSColor.h 3 | // StraaS 4 | // 5 | // Created by Lee on 6/23/16. 6 | // Copyright © 2020年 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UIColor(STSColor) 12 | + (UIColor *)STSBarTintColor; 13 | + (UIColor *)LHGrey; 14 | 15 | + (UIColor *)STSBlueButtonColor; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /Examples/VideoChat/Shared/UIColor+STSColor.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIColor+STSColor.m 3 | // StraaS 4 | // 5 | // Created by Lee on 6/23/16. 6 | // Copyright © 2020年 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import "UIColor+STSColor.h" 10 | 11 | @implementation UIColor(STSColor) 12 | 13 | + (UIColor *)STSBarTintColor { 14 | return [UIColor colorWithRed:45./255. green:135./255. blue:135./255. alpha:1]; 15 | } 16 | 17 | + (UIColor *)LHGrey { 18 | return [self colorWithWhite:153./255. alpha:1.0]; 19 | } 20 | 21 | + (UIColor *)STSBlueButtonColor { 22 | return [UIColor colorWithRed:0.0 green:100./255. blue:255./255. alpha:1]; 23 | } 24 | 25 | @end 26 | -------------------------------------------------------------------------------- /Examples/VideoChat/Shared/UIViewController+Keyboard.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIViewController+Keyboard.h 3 | // LiveHouse 4 | // 5 | // Created by Luke Jang on 12/9/14. 6 | // Copyright © 2020年 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UIViewController (Keyboard) 12 | 13 | - (void)registerForKeyboardNotifications; 14 | - (void)unregisterForKeyboardNotifications; 15 | - (void)keyboardWillBeShown:(NSNotification*)notification; 16 | - (void)keyboardWillBeHidden:(NSNotification*)notification; 17 | - (void)updateLayoutWithKeyboard:(BOOL)keyboard notification:(NSNotification *)notification; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /Examples/VideoChat/Shared/UIViewController+Keyboard.m: -------------------------------------------------------------------------------- 1 | // 2 | // UIViewController+Keyboard.m 3 | // LiveHouse 4 | // 5 | // Created by Luke Jang on 12/9/14. 6 | // Copyright © 2020年 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import "UIViewController+Keyboard.h" 10 | 11 | @implementation UIViewController (Keyboard) 12 | 13 | - (void)registerForKeyboardNotifications 14 | { 15 | [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillBeShown:) name:UIKeyboardWillShowNotification object:nil]; 16 | [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillBeHidden:) name:UIKeyboardWillHideNotification object:nil]; 17 | } 18 | 19 | - (void)unregisterForKeyboardNotifications { 20 | [[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillHideNotification object:nil]; 21 | [[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillShowNotification object:nil]; 22 | } 23 | 24 | - (void)keyboardWillBeShown:(NSNotification*)notification 25 | { 26 | [self updateLayoutWithKeyboard:YES notification:notification]; 27 | } 28 | 29 | - (void)keyboardWillBeHidden:(NSNotification*)notification 30 | { 31 | [self updateLayoutWithKeyboard:NO notification:notification]; 32 | } 33 | 34 | - (void)updateLayoutWithKeyboard:(BOOL)keyboard notification:(NSNotification *)notification 35 | { 36 | NSAssert(NO, @"Please override this method"); 37 | } 38 | 39 | @end 40 | -------------------------------------------------------------------------------- /Examples/VideoChat/Shared/VideoChat-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | // 2 | // Use this file to import your target's public headers that you would like to expose to Swift. 3 | // 4 | 5 | -------------------------------------------------------------------------------- /Examples/VideoChat/StreamingFiltersViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // StreamingFiltersViewController.h 3 | // VideoChat 4 | // 5 | // Created by Allen on 2019/1/28. 6 | // Copyright © 2020 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface StreamingFiltersViewController : UIViewController 14 | 15 | + (instancetype)viewControllerFromStoryboard; 16 | 17 | @end 18 | 19 | NS_ASSUME_NONNULL_END 20 | -------------------------------------------------------------------------------- /Examples/VideoChat/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // VideoChat 4 | // 5 | // Created by Luke Jang on 8/26/16. 6 | // Copyright © 2020 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | Welcome to StraaS and thanks for submitting an issue! 2 | 3 | Please feel free to fill in the following info so we can help faster! 4 | 5 | ### Step 1: Are you in the right place? 6 | 7 | * For issues or feature requests related to the code **in this repository** file a GitHub issue. 8 | * For general technical questions, post a question on [StackOverflow](http://stackoverflow.com/) tagged appropriately. 9 | * Contact our [tech support](https://straas.io/contact/) for further service and assistance. 10 | 11 | ### Step 2: Describe your environment 12 | 13 | * Objective C or Swift: ____ 14 | * iOS version: _____ 15 | * iOS SDK version: _____ 16 | * Use StraaS UI or not: _____ 17 | * Cocoapods version: ____ 18 | * Xcode version: ____ 19 | 20 | 21 | ### Step 3: Describe the problem: 22 | 23 | #### Steps to reproduce: 24 | 25 | 1. _____ 26 | 2. _____ 27 | 3. _____ 28 | 29 | #### Observed Results: 30 | 31 | * What happened? This could be a description, log output, error message, etc. 32 | 33 | #### Expected Results: 34 | 35 | * What did you expect to happen? 36 | 37 | #### Relevant Code: 38 | 39 | ``` 40 | // TODO(you): code here to reproduce the problem 41 | ``` 42 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | **Straas.io - Streaming as a Service, Your Best OTT Solution** 4 | https://straas.io/ 5 | 6 | World-class streaming and advertisement technology to drive profit and provide best multi-screen, 7 | multi-device user experiences. 8 | 9 | ## Feature 10 | 11 | - [Video Streaming Service](https://github.com/Straas/Straas-iOS-sdk/wiki/Streaming) 12 | - [Messaging Service](https://github.com/Straas/Straas-iOS-sdk/wiki/Messaging-Installation) 13 | - [Player Service](https://github.com/Straas/Straas-iOS-sdk/wiki/Player-sdk) 14 | 15 | ## Documentation 16 | 17 | - [Guides](https://github.com/Straas/Straas-iOS-sdk/wiki) 18 | - [Core SDK API Reference](https://straas.github.io/Straas-iOS-sdk/StraaSCoreSDK/) 19 | - [Messaging SDK API Reference](https://straas.github.io/Straas-iOS-sdk/StraaSMessagingSDK/) 20 | - [Streaming SDK API Reference](https://straas.github.io/Straas-iOS-sdk/StraaSStreamingSDK/) 21 | - [Player SDK API Reference](https://straas.github.io/Straas-iOS-sdk/StraaSPlayerSDK/) 22 | -------------------------------------------------------------------------------- /StraaS-iOS-SDK.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | 3 | 4 | s.name = "StraaS-iOS-SDK" 5 | s.version = "0.74.0" 6 | s.summary = "StraaS.io iOS SDK" 7 | 8 | s.description = "StraaS.io - Streaming as a Service, Your Best OTT Solution." 9 | 10 | s.homepage = "https://github.com/StraaS/StraaS-iOS-sdk" 11 | s.license = { :type => "Copyright", :text => "Copyright (c) 2020 StraaS.io. All rights reserved." } 12 | s.author = "StraaS.io" 13 | 14 | s.platform = :ios, "13.0" 15 | 16 | s.pod_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' } 17 | s.user_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' } 18 | 19 | s.source = { :git => "https://github.com/StraaS/StraaS-iOS-sdk.git", 20 | :tag => s.version } 21 | s.static_framework = true 22 | s.resource_bundles = { 23 | 'StraaSPlayerSDK' => ['ios/StraaSPlayerSDK.framework/Assets.car', 'ios/StraaSPlayerSDK.framework/*.lproj'], 24 | 'StraaSMessagingSDK' => ['ios/StraaSMessagingSDK.framework/*.lproj'] 25 | } 26 | 27 | s.subspec 'Messaging' do |msg| 28 | msg.vendored_frameworks = "ios/StraaSMessagingSDK.framework" 29 | msg.dependency "StraaS-iOS-SDK/Core" 30 | msg.dependency "Socket.IO-Client-Swift", "= 15.1.0" 31 | end 32 | s.subspec 'Core' do |co| 33 | co.vendored_frameworks = "ios/StraaSCoreSDK.framework" 34 | co.dependency "AFNetworking", "= 4.0.1" 35 | co.dependency "Socket.IO-Client-Swift", "= 15.1.0" 36 | end 37 | s.subspec 'Streaming' do |streaming| 38 | streaming.vendored_frameworks = "ios/StraaSStreamingSDK.framework" 39 | streaming.dependency "StraaS-iOS-SDK/Core" 40 | streaming.dependency "GPUImage-StraaS", "= 0.1.10" 41 | end 42 | s.subspec 'Player' do |player| 43 | player.vendored_frameworks = "ios/StraaSPlayerSDK.framework" 44 | player.dependency "StraaS-iOS-SDK/Core" 45 | player.dependency "Socket.IO-Client-Swift", "= 15.1.0" 46 | player.dependency "GoogleAds-IMA-iOS-SDK", "= 3.13.0" 47 | player.dependency "KVOController", "= 1.2.0" 48 | player.dependency "AFNetworking", "= 4.0.1" 49 | end 50 | s.subspec 'PlayerLowLatencyExtension' do |playerLowLatencyExtension| 51 | playerLowLatencyExtension.vendored_frameworks = "ios/StraaSPlayerLowLatencyExtensionSDK.framework" 52 | playerLowLatencyExtension.dependency "StraaS-iOS-SDK/Player" 53 | end 54 | end 55 | -------------------------------------------------------------------------------- /docs/StraaSMessagingSDK/docsets/StraaSMessagingSDK.docset/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleIdentifier 6 | com.jazzy.straasmessagingsdk 7 | CFBundleName 8 | StraaSMessagingSDK 9 | DocSetPlatformFamily 10 | straasmessagingsdk 11 | isDashDocset 12 | 13 | dashIndexFilePath 14 | index.html 15 | isJavaScriptEnabled 16 | 17 | DashDocSetFamily 18 | dashtoc 19 | 20 | 21 | -------------------------------------------------------------------------------- /docs/StraaSMessagingSDK/docsets/StraaSMessagingSDK.docset/Contents/Resources/Documents/img/carat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/docs/StraaSMessagingSDK/docsets/StraaSMessagingSDK.docset/Contents/Resources/Documents/img/carat.png -------------------------------------------------------------------------------- /docs/StraaSMessagingSDK/docsets/StraaSMessagingSDK.docset/Contents/Resources/Documents/img/dash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/docs/StraaSMessagingSDK/docsets/StraaSMessagingSDK.docset/Contents/Resources/Documents/img/dash.png -------------------------------------------------------------------------------- /docs/StraaSMessagingSDK/docsets/StraaSMessagingSDK.docset/Contents/Resources/Documents/img/gh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/docs/StraaSMessagingSDK/docsets/StraaSMessagingSDK.docset/Contents/Resources/Documents/img/gh.png -------------------------------------------------------------------------------- /docs/StraaSMessagingSDK/docsets/StraaSMessagingSDK.docset/Contents/Resources/Documents/js/jazzy.js: -------------------------------------------------------------------------------- 1 | window.jazzy = {'docset': false} 2 | if (typeof window.dash != 'undefined') { 3 | document.documentElement.className += ' dash' 4 | window.jazzy.docset = true 5 | } 6 | if (navigator.userAgent.match(/xcode/i)) { 7 | document.documentElement.className += ' xcode' 8 | window.jazzy.docset = true 9 | } 10 | 11 | // On doc load, toggle the URL hash discussion if present 12 | $(document).ready(function() { 13 | if (!window.jazzy.docset) { 14 | var linkToHash = $('a[href="' + window.location.hash +'"]'); 15 | linkToHash.trigger("click"); 16 | } 17 | }); 18 | 19 | // On token click, toggle its discussion and animate token.marginLeft 20 | $(".token").click(function(event) { 21 | if (window.jazzy.docset) { 22 | return; 23 | } 24 | var link = $(this); 25 | var animationDuration = 300; 26 | var tokenOffset = "15px"; 27 | var original = link.css('marginLeft') == tokenOffset; 28 | link.animate({'margin-left':original ? "0px" : tokenOffset}, animationDuration); 29 | $content = link.parent().parent().next(); 30 | $content.slideToggle(animationDuration); 31 | 32 | // Keeps the document from jumping to the hash. 33 | var href = $(this).attr('href'); 34 | if (history.pushState) { 35 | history.pushState({}, '', href); 36 | } else { 37 | location.hash = href; 38 | } 39 | event.preventDefault(); 40 | }); 41 | -------------------------------------------------------------------------------- /docs/StraaSMessagingSDK/docsets/StraaSMessagingSDK.docset/Contents/Resources/Documents/undocumented.json: -------------------------------------------------------------------------------- 1 | {"warnings":[{"file":"/Users/lukejang/Developer/iKala/ios-sdk/StraaSMessagingSDK/NSError+StraaSMessagingSDK.h","line":11,"symbol":"STSMSGErrorDomain","symbol_kind":"sourcekitten.source.lang.objc.decl.constant","warning":"undocumented"},{"file":"/Users/lukejang/Developer/iKala/ios-sdk/StraaSMessagingSDK/NSError+StraaSMessagingSDK.h","line":73,"symbol":"NSError(StraaSMessagingSDK)","symbol_kind":"sourcekitten.source.lang.objc.decl.category","warning":"undocumented"},{"file":"/Users/lukejang/Developer/iKala/ios-sdk/StraaSMessagingSDK/STSChat.h","line":64,"symbol":"+new","symbol_kind":"sourcekitten.source.lang.objc.decl.method.class","warning":"undocumented"},{"file":"/Users/lukejang/Developer/iKala/ios-sdk/StraaSMessagingSDK/STSChat.h","line":65,"symbol":"-init","symbol_kind":"sourcekitten.source.lang.objc.decl.method.instance","warning":"undocumented"},{"file":"/Users/lukejang/Developer/iKala/ios-sdk/StraaSMessagingSDK/STSChatMessage.h","line":40,"symbol":"+new","symbol_kind":"sourcekitten.source.lang.objc.decl.method.class","warning":"undocumented"},{"file":"/Users/lukejang/Developer/iKala/ios-sdk/StraaSMessagingSDK/STSChatMessage.h","line":41,"symbol":"-init","symbol_kind":"sourcekitten.source.lang.objc.decl.method.instance","warning":"undocumented"},{"file":"/Users/lukejang/Developer/iKala/ios-sdk/StraaSMessagingSDK/STSChatUser.h","line":39,"symbol":"+new","symbol_kind":"sourcekitten.source.lang.objc.decl.method.class","warning":"undocumented"},{"file":"/Users/lukejang/Developer/iKala/ios-sdk/StraaSMessagingSDK/STSChatUser.h","line":40,"symbol":"-init","symbol_kind":"sourcekitten.source.lang.objc.decl.method.instance","warning":"undocumented"},{"file":"/Users/lukejang/Developer/iKala/ios-sdk/StraaSMessagingSDK/StraaSMessagingSDK.h","line":12,"symbol":"StraaSMessagingSDKVersionNumber","symbol_kind":"sourcekitten.source.lang.objc.decl.constant","warning":"undocumented"},{"file":"/Users/lukejang/Developer/iKala/ios-sdk/StraaSMessagingSDK/StraaSMessagingSDK.h","line":15,"symbol":"StraaSMessagingSDKVersionString","symbol_kind":"sourcekitten.source.lang.objc.decl.constant","warning":"undocumented"}],"source_directory":"/Users/lukejang/Developer/iKala/ios-sdk"} -------------------------------------------------------------------------------- /docs/StraaSMessagingSDK/docsets/StraaSMessagingSDK.docset/Contents/Resources/docSet.dsidx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/docs/StraaSMessagingSDK/docsets/StraaSMessagingSDK.docset/Contents/Resources/docSet.dsidx -------------------------------------------------------------------------------- /docs/StraaSMessagingSDK/docsets/StraaSMessagingSDK.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/docs/StraaSMessagingSDK/docsets/StraaSMessagingSDK.tgz -------------------------------------------------------------------------------- /docs/StraaSMessagingSDK/docsets/StraaSMessagingSDK.xml: -------------------------------------------------------------------------------- 1 | 0.2.0https://straas.github.io/StraaS-iOS-sdk/docsets/StraaSMessagingSDK.tgz 2 | -------------------------------------------------------------------------------- /docs/StraaSMessagingSDK/img/carat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/docs/StraaSMessagingSDK/img/carat.png -------------------------------------------------------------------------------- /docs/StraaSMessagingSDK/img/dash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/docs/StraaSMessagingSDK/img/dash.png -------------------------------------------------------------------------------- /docs/StraaSMessagingSDK/img/gh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/docs/StraaSMessagingSDK/img/gh.png -------------------------------------------------------------------------------- /docs/StraaSMessagingSDK/js/jazzy.js: -------------------------------------------------------------------------------- 1 | window.jazzy = {'docset': false} 2 | if (typeof window.dash != 'undefined') { 3 | document.documentElement.className += ' dash' 4 | window.jazzy.docset = true 5 | } 6 | if (navigator.userAgent.match(/xcode/i)) { 7 | document.documentElement.className += ' xcode' 8 | window.jazzy.docset = true 9 | } 10 | 11 | // On doc load, toggle the URL hash discussion if present 12 | $(document).ready(function() { 13 | if (!window.jazzy.docset) { 14 | var linkToHash = $('a[href="' + window.location.hash +'"]'); 15 | linkToHash.trigger("click"); 16 | } 17 | }); 18 | 19 | // On token click, toggle its discussion and animate token.marginLeft 20 | $(".token").click(function(event) { 21 | if (window.jazzy.docset) { 22 | return; 23 | } 24 | var link = $(this); 25 | var animationDuration = 300; 26 | var tokenOffset = "15px"; 27 | var original = link.css('marginLeft') == tokenOffset; 28 | link.animate({'margin-left':original ? "0px" : tokenOffset}, animationDuration); 29 | $content = link.parent().parent().next(); 30 | $content.slideToggle(animationDuration); 31 | 32 | // Keeps the document from jumping to the hash. 33 | var href = $(this).attr('href'); 34 | if (history.pushState) { 35 | history.pushState({}, '', href); 36 | } else { 37 | location.hash = href; 38 | } 39 | event.preventDefault(); 40 | }); 41 | -------------------------------------------------------------------------------- /ios/StraaSCoreSDK.framework/Headers/LHDataObject.h: -------------------------------------------------------------------------------- 1 | // 2 | // LHDataObject.h 3 | // LiveHouse 4 | // 5 | // Created by chao hsin-cheng on 2014/6/5. 6 | // Copyright (c) 2014年 LIVEhouse.in. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | /// LIVEhouse.in data model base class 12 | @interface LHDataObject : NSObject 13 | 14 | /** 15 | * Create an array with LHDataObject or subclass object inside 16 | * 17 | * @param jsonArray JSON data to mapping 18 | * 19 | * @return a desired NSArray object 20 | */ 21 | + (nonnull NSArray*)objectsWithArrayOfJSON:(nonnull NSArray*)jsonArray; 22 | 23 | /** 24 | * designated initializer to mapping raw JSON data to an object 25 | * 26 | * subclass of LHDataObject can override this method to provide it own implementation 27 | * 28 | * @param json a dictionary of raw JSON data 29 | * 30 | * @return an LHDataObject instance if mapping success, nil when mapping failure 31 | */ 32 | - (nullable instancetype)initWithJSON:(nonnull NSDictionary*)json; 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /ios/StraaSCoreSDK.framework/Headers/NSError+STSUtility.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSError+STSUtility.h 3 | // StraaS 4 | // 5 | // Created by Lee on 28/03/2017. 6 | // Copyright © 2017 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | /// :nodoc: 12 | @interface NSError (STSUtility) 13 | 14 | - (BOOL)isNetworkError; 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /ios/StraaSCoreSDK.framework/Headers/NSString+STSUtility.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSString+STSUtility.h 3 | // StraaS 4 | // 5 | // Created by Harry Hsu on 26/09/2017. 6 | // Copyright © 2017 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | /** 14 | * A helper category on NSString. 15 | */ 16 | @interface NSString(STSUtility) 17 | 18 | /** 19 | Get the payload of a JSON Web Token. 20 | 21 | @return The payload of a JSON Web Token. Nil if self is not a valid JWT. 22 | */ 23 | - (nullable NSDictionary *)jwtPayload; 24 | 25 | @end 26 | 27 | NS_ASSUME_NONNULL_END 28 | -------------------------------------------------------------------------------- /ios/StraaSCoreSDK.framework/Headers/STSApplication.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSApplication.h 3 | // StraaS 4 | // 5 | // Created by Luke Jang on 8/16/16. 6 | // Copyright © 2016 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | /** 12 | * StraaS.io application class, the base interface of your StraaS.io application. 13 | */ 14 | @interface STSApplication : NSObject 15 | 16 | /** 17 | * Configure your StraaS.io application. 18 | * You need to complete the configuration process and get a successfull response in order to using 19 | * StraaS-iOS-SDK. 20 | * 21 | * @param completion If success is YES, error will be nil. And StraaS-iOS-SDK components is ready 22 | * to use. Otherwise, an NSError object is passed into completion handler. 23 | */ 24 | + (void)configureApplication:(void (^)(BOOL success, NSError * error))completion; 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /ios/StraaSCoreSDK.framework/Headers/STSCoreErrorCode.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSCoreErrorCode.m 3 | // StraaS 4 | // 5 | // Created by Lee on 24/10/2016. 6 | // Copyright © 2016 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | /** 12 | * StraaS.io core SDK error code 13 | */ 14 | typedef NS_ENUM(NSUInteger, STSCoreErrorCode) { 15 | /** 16 | * Network error, underlying error object is included in the user info dictionary. 17 | */ 18 | STSCoreErrorCodeNetwork, 19 | /** 20 | * Check if you've set the STSSDKClientID corresponding to your Bundle id in your project info.plist 21 | * and have called STSApplication configureApplication successfully before use this class. 22 | */ 23 | STSCoreErrorCodeWrongInformation, 24 | /** 25 | * Succeed to reach our server, but fail to get authorized. Check if you've set the authorized 26 | * STSSDKClientID and bundleId pair. 27 | */ 28 | STSCoreErrorCodeUnauthorized, 29 | /** 30 | * Server side error happened, please try again later or contact with service provider. 31 | */ 32 | STSCoreErrorCodeServer, 33 | }; 34 | 35 | -------------------------------------------------------------------------------- /ios/StraaSCoreSDK.framework/Headers/STSSDKAuthManager.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSSDKAuthManager.h 3 | // StraaS 4 | // 5 | // Created by Lee on 8/11/16. 6 | // 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | /** 14 | * StraaS.io auth manager. 15 | */ 16 | @interface STSSDKAuthManager : NSObject 17 | 18 | /** 19 | * The account id of current vendor. 20 | */ 21 | @property (nonatomic, readonly) NSString * accountId; 22 | 23 | /** 24 | * The app token. If the app is authorized, then the token is not nil. 25 | */ 26 | @property (nonatomic, readonly) NSString * token; 27 | 28 | /** 29 | * Using new to create a STSSDKAuthManager instance is unavailable. 30 | */ 31 | + (instancetype)new NS_UNAVAILABLE; 32 | 33 | /** 34 | * Using init to create a STSSDKAuthManager instance is unavailable. 35 | */ 36 | - (instancetype)init NS_UNAVAILABLE; 37 | 38 | /** 39 | * Returns the STSSDKAuthManager instance, creating it if it doesn’t exist yet. 40 | * 41 | * @return The shared instance of STSSDKAuthManager. 42 | */ 43 | + (STSSDKAuthManager *)sharedManager; 44 | 45 | /** 46 | * Refresh a member access token. 47 | * 48 | * @param refreshToken The token wants to be refresh 49 | * @param success Handler for successful request. It takes refreshed token argument. 50 | * @param failure Error handler. 51 | * @return The new session data task. Returns `nil` if the application is unauthorized. 52 | */ 53 | - (NSURLSessionDataTask *)refreshMemberToken:(NSString *)refreshToken 54 | success:(void(^)(NSString * token))success 55 | failure:(void(^)(NSError * error))failure; 56 | 57 | @end 58 | NS_ASSUME_NONNULL_END 59 | -------------------------------------------------------------------------------- /ios/StraaSCoreSDK.framework/Headers/StraaSCoreSDK.h: -------------------------------------------------------------------------------- 1 | // 2 | // StraaSCoreSDK.h 3 | // StraaSCoreSDK 4 | // 5 | // Created by Lee on 9/21/16. 6 | // Copyright © 2016 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for StraaSCoreSDK. 12 | FOUNDATION_EXPORT double StraaSCoreSDKVersionNumber; 13 | 14 | //! Project version string for StraaSCoreSDK. 15 | FOUNDATION_EXPORT const unsigned char StraaSCoreSDKVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | 19 | 20 | #import 21 | #import 22 | #import 23 | #import 24 | #import 25 | #import 26 | #import 27 | -------------------------------------------------------------------------------- /ios/StraaSCoreSDK.framework/Headers/UIDevice+STSUtility.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIDevice+DeviceName.h 3 | // LiveHouse 4 | // 5 | // Created by chao hsin-cheng on 2014/9/5. 6 | // Copyright (c) 2014年 LIVEhouse.in. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | /// :nodoc: 12 | @interface UIDevice (STSUtility) 13 | 14 | - (NSString*)platfromString; 15 | - (NSString*)hardwareString; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /ios/StraaSCoreSDK.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSCoreSDK.framework/Info.plist -------------------------------------------------------------------------------- /ios/StraaSCoreSDK.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module StraaSCoreSDK { 2 | umbrella header "StraaSCoreSDK.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /ios/StraaSCoreSDK.framework/PrivacyInfo.xcprivacy: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSPrivacyCollectedDataTypes 6 | 7 | NSPrivacyTracking 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /ios/StraaSCoreSDK.framework/StraaSCoreSDK: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSCoreSDK.framework/StraaSCoreSDK -------------------------------------------------------------------------------- /ios/StraaSCoreSDK.framework/_CodeSignature/CodeDirectory: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSCoreSDK.framework/_CodeSignature/CodeDirectory -------------------------------------------------------------------------------- /ios/StraaSCoreSDK.framework/_CodeSignature/CodeRequirements: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSCoreSDK.framework/_CodeSignature/CodeRequirements -------------------------------------------------------------------------------- /ios/StraaSCoreSDK.framework/_CodeSignature/CodeRequirements-1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSCoreSDK.framework/_CodeSignature/CodeRequirements-1 -------------------------------------------------------------------------------- /ios/StraaSCoreSDK.framework/_CodeSignature/CodeSignature: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSCoreSDK.framework/_CodeSignature/CodeSignature -------------------------------------------------------------------------------- /ios/StraaSCoreSDK.framework/en.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSCoreSDK.framework/en.lproj/Localizable.strings -------------------------------------------------------------------------------- /ios/StraaSCoreSDK.framework/zh-Hant.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSCoreSDK.framework/zh-Hant.lproj/Localizable.strings -------------------------------------------------------------------------------- /ios/StraaSMessagingSDK.framework/Headers/STSAggregatedData.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSAggregatedData.h 3 | // StraaS 4 | // 5 | // Created by Lee on 23/01/2017. 6 | // Copyright © 2017 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @class STSAggregatedItem; 14 | 15 | /** 16 | * STSAggregatedData class defines an aggregated data which being sent on certain time. 17 | */ 18 | @interface STSAggregatedData : LHDataObject 19 | 20 | /** 21 | * The aggregated items. 22 | */ 23 | @property(nonatomic, readonly) NSArray * items; 24 | 25 | /** 26 | * The aggregated data created date. 27 | */ 28 | @property(nonatomic, readonly) NSString * createdDate; 29 | 30 | @end 31 | 32 | 33 | NS_ASSUME_NONNULL_END 34 | -------------------------------------------------------------------------------- /ios/StraaSMessagingSDK.framework/Headers/STSAggregatedItem.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSAggregatedItem.h 3 | // StraaS 4 | // 5 | // Created by Lee on 18/02/2017. 6 | // Copyright © 2017 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | /** 13 | * STSAggregatedItem class defines an aggregated item. 14 | */ 15 | @interface STSAggregatedItem : LHDataObject; 16 | 17 | /** 18 | * The key of an aggregated data. 19 | */ 20 | @property (nonatomic, readonly) NSString * key; 21 | 22 | /** 23 | * The number of count indicates how many times that `key` be sent in one period. 24 | */ 25 | @property (nonatomic, readonly) NSNumber * count; 26 | 27 | @end 28 | 29 | NS_ASSUME_NONNULL_END 30 | -------------------------------------------------------------------------------- /ios/StraaSMessagingSDK.framework/Headers/STSChat.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSChat.h 3 | // StraaS 4 | // 5 | // Created by Luke Jang on 8/11/16. 6 | // Copyright (c) 2016年 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @class STSChatUser; 14 | @class STSChatMessage; 15 | @class STSChatSticker; 16 | @class STSAggregatedItem; 17 | 18 | /** 19 | * Chat room model 20 | */ 21 | @interface STSChat : NSObject 22 | 23 | /** 24 | * StraaS.io chat room support user privilege control. Each input mode has different chat ability 25 | * limitation depends on user's role. 26 | */ 27 | typedef NS_ENUM(NSUInteger, STSChatInputMode) { 28 | /** 29 | * Mode undefined, it should not happen. 30 | */ 31 | STSChatInputUndefined, 32 | /** 33 | * Normal mode, every user can chat. 34 | */ 35 | STSChatInputNormal, 36 | /** 37 | * Member-only mode, guest can not send message in this mode. 38 | */ 39 | STSChatInputMember, 40 | /** 41 | * Master mode, only the master of channel can send message. 42 | */ 43 | STSChatInputMaster 44 | }; 45 | 46 | typedef NS_ENUM(NSUInteger, STSChatStatus) { 47 | /** 48 | * The chatroom just initialized. 49 | */ 50 | STSChatStatusEmptyProfile, 51 | /** 52 | * The chatroom is ready to connect. 53 | */ 54 | STSChatStatusReady, 55 | /** 56 | * The chatroom is connecting. 57 | */ 58 | STSChatStatusConnecting, 59 | /** 60 | * The chatroom is connected. 61 | */ 62 | STSChatStatusConnected, 63 | /** 64 | * The chatroom is disconnecting. 65 | */ 66 | STSChatStatusDisconnecting, 67 | /** 68 | * The connection of chatroom has be canceled. 69 | */ 70 | STSChatStatusCanceled 71 | }; 72 | 73 | /** 74 | * Input mode of chat. 75 | */ 76 | @property (nonatomic, readonly) STSChatInputMode mode; 77 | 78 | /** 79 | * Chatroom name. 80 | */ 81 | @property (nonatomic, readonly) NSString * chatroomName; 82 | 83 | /** 84 | The status of chat. 85 | */ 86 | @property (nonatomic, readonly) STSChatStatus status; 87 | 88 | /** 89 | * The current user object in this chat. 90 | */ 91 | @property (nonatomic, readonly) STSChatUser * currentUser; 92 | 93 | /** 94 | * Total user number of this chat. 95 | */ 96 | @property (nonatomic, readonly) NSInteger userCount; 97 | 98 | /** 99 | * Total total aggregated items contain all of the aggregated items that a chatroom have. 100 | * The count property in each STSAggregatedItem indicates how many times this aggregated item key being sent. 101 | */ 102 | @property (nonatomic, readonly) NSArray * totalAggregatedItems; 103 | 104 | /** 105 | * The chat stickers. 106 | */ 107 | @property (nonatomic, readonly) NSArray * stickers; 108 | 109 | /** 110 | * Using new to create a STSChat instance is unavailable. 111 | */ 112 | + (instancetype)new NS_UNAVAILABLE; 113 | 114 | /** 115 | * Using init to create a STSChat instance is unavailable. 116 | */ 117 | - (instancetype)init NS_UNAVAILABLE; 118 | 119 | @end 120 | 121 | NS_ASSUME_NONNULL_END 122 | -------------------------------------------------------------------------------- /ios/StraaSMessagingSDK.framework/Headers/STSChatManagerConfig.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSChatManagerConfig.h 3 | // StraaSMessagingSDK 4 | // 5 | // Created by Allen and Kim on 2020/10/6. 6 | // Copyright © 2020 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | /** 14 | * Configuration for STSChatManager. 15 | */ 16 | @interface STSChatManagerConfig : NSObject 17 | 18 | /** 19 | * The host of the chatroom restful API server. Not to set this or sets this to nil to use the default value. 20 | */ 21 | @property (nonatomic, strong) NSString *restHost; 22 | 23 | /** 24 | * The host of the chatroom socket server. Not to set this or sets this to nil to use the default value. 25 | */ 26 | @property (nonatomic, strong) NSString *socketHost; 27 | 28 | @end 29 | 30 | NS_ASSUME_NONNULL_END 31 | -------------------------------------------------------------------------------- /ios/StraaSMessagingSDK.framework/Headers/STSChatMessage.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSChatRoomMessage.h 3 | // StraaS 4 | // 5 | // Created by Luke Jang on 8/11/16. 6 | // Copyright (c) 2016年 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "STSChatUser.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | /** 15 | * The type of the message. 16 | */ 17 | typedef NS_ENUM(NSInteger, STSChatMesssageType) { 18 | /** 19 | * The message text type. 20 | */ 21 | STSChatMessageTypeText, 22 | /** 23 | * The message sticker type. 24 | */ 25 | STSChatMessageTypeSticker, 26 | }; 27 | 28 | /** 29 | * Chat room message model 30 | */ 31 | @interface STSChatMessage : LHDataObject 32 | 33 | /** 34 | * Message Id. 35 | */ 36 | @property (nonatomic, readonly) NSString * messageId; 37 | 38 | /** 39 | * Message text. It may be the normal text or rawData text. 40 | */ 41 | @property (nonatomic, readonly) NSString * text; 42 | 43 | /** 44 | * Message RawData, only valid when recieves data chanenl RawData. 45 | */ 46 | @property (nonatomic, readonly, nullable) id rawData; 47 | 48 | /** 49 | * Chat message type. 50 | */ 51 | @property (nonatomic, readonly) STSChatMesssageType type; 52 | 53 | /** 54 | * Message create time. 55 | */ 56 | @property (nonatomic, readonly) NSString * createdDate; 57 | 58 | /** 59 | * String represent where this message is sent from. 60 | */ 61 | @property (nonatomic, readonly) NSString * sourceType; 62 | 63 | /** 64 | * Chat user who create this message. 65 | */ 66 | @property (nonatomic, readonly) STSChatUser * creator; 67 | 68 | /** 69 | * Using new to create a STSChatMessage instance is unavailable. 70 | */ 71 | + (instancetype)new NS_UNAVAILABLE; 72 | 73 | /** 74 | * Using int to create a STSChatMessage instance is unavailable. 75 | */ 76 | - (instancetype)init NS_UNAVAILABLE; 77 | 78 | @end 79 | 80 | /** 81 | * Chat room message sticker category. The property is only valid when message is sent for sticker. 82 | */ 83 | @interface STSChatMessage (sticker) 84 | 85 | /** 86 | * The sticker image url. 87 | */ 88 | @property (nonatomic, readonly) NSURL * stickerURL; 89 | 90 | @end 91 | 92 | NS_ASSUME_NONNULL_END 93 | -------------------------------------------------------------------------------- /ios/StraaSMessagingSDK.framework/Headers/STSChatMetadata.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSChatMetadata.h 3 | // StraaS 4 | // 5 | // Created by shihwen.wang on 2017/7/7. 6 | // Copyright © 2017年 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | /** 14 | * Model for chatroom metadata. 15 | */ 16 | @interface STSChatMetadata : LHDataObject 17 | 18 | /** 19 | * The key of the metadata. 20 | */ 21 | @property (nonatomic, readonly) NSString * key; 22 | 23 | /** 24 | * The value of the metadata. 25 | * 26 | * The value types could be: 27 | * 28 | * * NSArray 29 | * * NSNull 30 | * * NSNumber (also includes booleans) 31 | * * NSDictionary 32 | * * NSString 33 | */ 34 | @property (nonatomic, readonly) id value; 35 | 36 | @end 37 | 38 | NS_ASSUME_NONNULL_END 39 | -------------------------------------------------------------------------------- /ios/StraaSMessagingSDK.framework/Headers/STSChatSticker.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSChatSticker.h 3 | // StraaS 4 | // 5 | // Created by Lee on 26/10/2016. 6 | // Copyright © 2016 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | /** 14 | * Chat sticker model. 15 | */ 16 | @interface STSChatSticker : LHDataObject 17 | 18 | /** 19 | * The sticker name. 20 | */ 21 | @property (nonatomic, readonly) NSString * name; 22 | 23 | /** 24 | * The main image of the sticker. 25 | */ 26 | @property (nonatomic, readonly) NSString * mainImage; 27 | 28 | /** 29 | * The stickers dictionary whose key indicate sticker text and value indicate sticker url. 30 | */ 31 | @property (nonatomic, readonly) NSDictionary * stickers; 32 | 33 | @end 34 | 35 | NS_ASSUME_NONNULL_END 36 | -------------------------------------------------------------------------------- /ios/StraaSMessagingSDK.framework/Headers/STSChatUser.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSChatUser.h 3 | // StraaS 4 | // 5 | // Created by Luke Jang on 8/10/16. 6 | // Copyright (c) 2016年 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | /** 14 | * User role Global Manager key. 15 | */ 16 | extern NSString * const kSTSUserRoleGlobalManager; 17 | /** 18 | * User role Local Manager key. 19 | */ 20 | extern NSString * const kSTSUserRoleLocalManager; 21 | /** 22 | * User role Master key. 23 | */ 24 | extern NSString * const kSTSUserRoleMaster; 25 | /** 26 | * User role Moderator key. 27 | */ 28 | extern NSString * const kSTSUserRoleModerator; 29 | /** 30 | * User role Normal key. 31 | */ 32 | extern NSString * const kSTSUserRoleNormal; 33 | /** 34 | * User role Blocked key. 35 | */ 36 | extern NSString * const kSTSUserRoleBlocked; 37 | 38 | /** 39 | * Chat room user model 40 | */ 41 | @interface STSChatUser : LHDataObject 42 | 43 | /** 44 | * Unique identifier of chat room user. Users are identifying and comparing using this attribute. 45 | * (`NSObject` method `isEqual:` and `hash` are implemented). 46 | */ 47 | @property (nonatomic, readonly, nullable) NSNumber * label; 48 | 49 | /** 50 | * Guest nickname or member name. 51 | */ 52 | @property (nonatomic, readonly, nullable) NSString * name; 53 | 54 | /** 55 | * Chat room member avatar 56 | */ 57 | @property (nonatomic, readonly, nullable) NSString * avatar; 58 | 59 | /** 60 | * When user info was updated. 61 | */ 62 | @property (nonatomic, readonly, nullable) NSString * updatedDate; 63 | 64 | /** 65 | * User's role. Get more informations in the following link. 66 | * https://github.com/StraaS/StraaS-web-document/wiki/Messaging-Service#roles-of-messaging-service 67 | */ 68 | @property (nonatomic, readonly, nullable) NSString * role; 69 | 70 | /** 71 | * Using new to create a STSChatUser instance is unavailable. 72 | */ 73 | + (instancetype)new NS_UNAVAILABLE; 74 | 75 | /** 76 | * Using init to create a STSChatUser instance is unavailable. 77 | */ 78 | - (instancetype)init NS_UNAVAILABLE; 79 | 80 | @end 81 | 82 | NS_ASSUME_NONNULL_END 83 | -------------------------------------------------------------------------------- /ios/StraaSMessagingSDK.framework/Headers/STSGetMessagesConfiguration.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSGetMessagesConfiguration.h 3 | // StraaS 4 | // 5 | // Created by shihwen.wang on 2016/12/12. 6 | // Copyright © 2016年 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "STSGetMessagesOrder.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | /** 15 | * A STSGetMessagesConfiguration object defines the request rules of how to get messages from StraaS server. 16 | */ 17 | @interface STSGetMessagesConfiguration : NSObject 18 | 19 | /** 20 | * The target page. Default value is 1. This value should be bigger than or equal to 1. 21 | * The newest message will be at page 1. 22 | */ 23 | @property (nonatomic) NSNumber * page; 24 | 25 | /** 26 | * How many messages you want each page to return. Default value is 10. This value should be in the range [1..100]. 27 | */ 28 | @property (nonatomic) NSNumber * perPage; 29 | 30 | /** 31 | * Oldest date of request messages. Unix time in millisecond. 32 | */ 33 | @property (nonatomic, nullable) NSNumber * oldestDate; 34 | 35 | /** 36 | * Latest date of request messages. Unix time in millisecond. 37 | */ 38 | @property (nonatomic, nullable) NSNumber * latestDate; 39 | 40 | /** 41 | * Indicates in what order the message will be sorted by created date. Default value is STSGetMessagesOrderDescending. 42 | */ 43 | @property (nonatomic) STSGetMessagesOrder order; 44 | 45 | @end 46 | 47 | NS_ASSUME_NONNULL_END 48 | -------------------------------------------------------------------------------- /ios/StraaSMessagingSDK.framework/Headers/STSGetMessagesOrder.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSGetMessagesOrder.h 3 | // StraaS 4 | // 5 | // Created by Lee on 13/02/2017. 6 | // Copyright © 2017 StraaS.io. All rights reserved. 7 | // 8 | 9 | #ifndef STSGetMessagesOrder_h 10 | #define STSGetMessagesOrder_h 11 | 12 | /** 13 | * Options for how the messages will be sorted. 14 | */ 15 | typedef NS_ENUM(NSUInteger, STSGetMessagesOrder) { 16 | /** 17 | * Get messages with ascending order. 18 | */ 19 | STSGetMessagesOrderAscending = 0, 20 | /** 21 | * Get messages with descending order. 22 | */ 23 | STSGetMessagesOrderDescending = 1, 24 | }; 25 | 26 | #endif /* STSGetMessagesOrder_h */ 27 | -------------------------------------------------------------------------------- /ios/StraaSMessagingSDK.framework/Headers/STSGetUsersType.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSGetUsersType.h 3 | // StraaS 4 | // 5 | // Created by Lee on 26/12/2016. 6 | // Copyright © 2016 StraaS.io. All rights reserved. 7 | // 8 | 9 | #ifndef STSGetUsersType_h 10 | #define STSGetUsersType_h 11 | 12 | /** 13 | * The type of users you want to get. 14 | */ 15 | typedef NS_ENUM(NSUInteger, STSGetUsersType) { 16 | /** 17 | * Get the online users from user list. 18 | * STSGetUsersTypeOnlineUsers will return every online user except those who were blocked. 19 | */ 20 | STSGetUsersTypeOnlineUsers, 21 | /** 22 | * Get the blocked users from user list no matter the user is online or not. 23 | */ 24 | STSGetUsersTypeBlocked, 25 | /** 26 | * Get the supervisors user from user list. 27 | * STSGetUsersTypeModerator will return whose role is Globale manager, localManager, master, or moderator. No matter that user is online or not. 28 | */ 29 | STSGetUsersTypeSupervisor, 30 | }; 31 | 32 | #endif /* STSGetUsersType_h */ 33 | -------------------------------------------------------------------------------- /ios/StraaSMessagingSDK.framework/Headers/StraaSMessagingSDK.h: -------------------------------------------------------------------------------- 1 | // 2 | // StraaSMessagingSDK.h 3 | // StraaSMessagingSDK 4 | // 5 | // Created by Luke Jang on 7/26/16. 6 | // 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for StraaSMessagingSDK. 12 | FOUNDATION_EXPORT double StraaSMessagingSDKVersionNumber; 13 | 14 | //! Project version string for StraaSMessagingSDK. 15 | FOUNDATION_EXPORT const unsigned char StraaSMessagingSDKVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | #import 19 | #import 20 | #import 21 | #import 22 | #import 23 | #import 24 | #import 25 | #import 26 | -------------------------------------------------------------------------------- /ios/StraaSMessagingSDK.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSMessagingSDK.framework/Info.plist -------------------------------------------------------------------------------- /ios/StraaSMessagingSDK.framework/Modules/StraaSMessagingSDK.swiftmodule/arm64-apple-ios-simulator.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSMessagingSDK.framework/Modules/StraaSMessagingSDK.swiftmodule/arm64-apple-ios-simulator.swiftdoc -------------------------------------------------------------------------------- /ios/StraaSMessagingSDK.framework/Modules/StraaSMessagingSDK.swiftmodule/arm64-apple-ios-simulator.swiftinterface: -------------------------------------------------------------------------------- 1 | // swift-interface-format-version: 1.0 2 | // swift-compiler-version: Apple Swift version 5.6.1 effective-4.1.50 (swiftlang-5.6.0.323.66 clang-1316.0.20.12) 3 | // swift-module-flags: -target arm64-apple-ios11.0-simulator -enable-objc-interop -enable-library-evolution -swift-version 4 -enforce-exclusivity=checked -O -module-name StraaSMessagingSDK 4 | @_exported import StraaSMessagingSDK 5 | import Swift 6 | import _Concurrency 7 | -------------------------------------------------------------------------------- /ios/StraaSMessagingSDK.framework/Modules/StraaSMessagingSDK.swiftmodule/arm64-apple-ios-simulator.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSMessagingSDK.framework/Modules/StraaSMessagingSDK.swiftmodule/arm64-apple-ios-simulator.swiftmodule -------------------------------------------------------------------------------- /ios/StraaSMessagingSDK.framework/Modules/StraaSMessagingSDK.swiftmodule/arm64-apple-ios.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSMessagingSDK.framework/Modules/StraaSMessagingSDK.swiftmodule/arm64-apple-ios.swiftdoc -------------------------------------------------------------------------------- /ios/StraaSMessagingSDK.framework/Modules/StraaSMessagingSDK.swiftmodule/arm64-apple-ios.swiftinterface: -------------------------------------------------------------------------------- 1 | // swift-interface-format-version: 1.0 2 | // swift-compiler-version: Apple Swift version 5.6.1 effective-4.1.50 (swiftlang-5.6.0.323.66 clang-1316.0.20.12) 3 | // swift-module-flags: -target arm64-apple-ios11.0 -enable-objc-interop -enable-library-evolution -swift-version 4 -enforce-exclusivity=checked -O -module-name StraaSMessagingSDK 4 | @_exported import StraaSMessagingSDK 5 | import Swift 6 | import _Concurrency 7 | -------------------------------------------------------------------------------- /ios/StraaSMessagingSDK.framework/Modules/StraaSMessagingSDK.swiftmodule/arm64-apple-ios.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSMessagingSDK.framework/Modules/StraaSMessagingSDK.swiftmodule/arm64-apple-ios.swiftmodule -------------------------------------------------------------------------------- /ios/StraaSMessagingSDK.framework/Modules/StraaSMessagingSDK.swiftmodule/x86_64-apple-ios-simulator.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSMessagingSDK.framework/Modules/StraaSMessagingSDK.swiftmodule/x86_64-apple-ios-simulator.swiftdoc -------------------------------------------------------------------------------- /ios/StraaSMessagingSDK.framework/Modules/StraaSMessagingSDK.swiftmodule/x86_64-apple-ios-simulator.swiftinterface: -------------------------------------------------------------------------------- 1 | // swift-interface-format-version: 1.0 2 | // swift-compiler-version: Apple Swift version 5.6.1 effective-4.1.50 (swiftlang-5.6.0.323.66 clang-1316.0.20.12) 3 | // swift-module-flags: -target x86_64-apple-ios11.0-simulator -enable-objc-interop -enable-library-evolution -swift-version 4 -enforce-exclusivity=checked -O -module-name StraaSMessagingSDK 4 | @_exported import StraaSMessagingSDK 5 | import Swift 6 | import _Concurrency 7 | -------------------------------------------------------------------------------- /ios/StraaSMessagingSDK.framework/Modules/StraaSMessagingSDK.swiftmodule/x86_64-apple-ios-simulator.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSMessagingSDK.framework/Modules/StraaSMessagingSDK.swiftmodule/x86_64-apple-ios-simulator.swiftmodule -------------------------------------------------------------------------------- /ios/StraaSMessagingSDK.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module StraaSMessagingSDK { 2 | umbrella header "StraaSMessagingSDK.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | 8 | module StraaSMessagingSDK.Swift { 9 | header "StraaSMessagingSDK-Swift.h" 10 | requires objc 11 | } 12 | -------------------------------------------------------------------------------- /ios/StraaSMessagingSDK.framework/PrivacyInfo.xcprivacy: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSPrivacyCollectedDataTypes 6 | 7 | NSPrivacyTracking 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /ios/StraaSMessagingSDK.framework/StraaSMessagingSDK: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSMessagingSDK.framework/StraaSMessagingSDK -------------------------------------------------------------------------------- /ios/StraaSMessagingSDK.framework/_CodeSignature/CodeDirectory: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSMessagingSDK.framework/_CodeSignature/CodeDirectory -------------------------------------------------------------------------------- /ios/StraaSMessagingSDK.framework/_CodeSignature/CodeRequirements: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSMessagingSDK.framework/_CodeSignature/CodeRequirements -------------------------------------------------------------------------------- /ios/StraaSMessagingSDK.framework/_CodeSignature/CodeRequirements-1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSMessagingSDK.framework/_CodeSignature/CodeRequirements-1 -------------------------------------------------------------------------------- /ios/StraaSMessagingSDK.framework/_CodeSignature/CodeSignature: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSMessagingSDK.framework/_CodeSignature/CodeSignature -------------------------------------------------------------------------------- /ios/StraaSMessagingSDK.framework/en.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSMessagingSDK.framework/en.lproj/Localizable.strings -------------------------------------------------------------------------------- /ios/StraaSMessagingSDK.framework/zh-Hant.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSMessagingSDK.framework/zh-Hant.lproj/Localizable.strings -------------------------------------------------------------------------------- /ios/StraaSPlayerLowLatencyExtensionSDK.framework/Headers/STSLowLatencyPlayer.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSLowLatencyPlayer.h 3 | // STSLowLatencyPlayer 4 | // 5 | // Created by Jason.Chuang on 2018/8/10. 6 | // Copyright © 2018年 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | /** 15 | * The low latency player used in STSSDKPlayerView 16 | * [lowLatencyPlayer](https://straas.github.io/StraaS-iOS-sdk/StraaSPlayerSDK/Classes/STSSDKPlayerView.html#/c:objc(cs)STSSDKPlayerView(py)lowLatencyPlayer) 17 | * property 18 | */ 19 | @interface STSLowLatencyPlayer : NSObject 20 | 21 | @end 22 | 23 | NS_ASSUME_NONNULL_END 24 | -------------------------------------------------------------------------------- /ios/StraaSPlayerLowLatencyExtensionSDK.framework/Headers/StraaSPlayerLowLatencyExtensionSDK.h: -------------------------------------------------------------------------------- 1 | // 2 | // StraaSPlayerLowLatencyExtensionSDK.h 3 | // StraaSPlayerLowLatencyExtensionSDK 4 | // 5 | // Created by Jason.Chuang on 2018/8/10. 6 | // Copyright © 2018年 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for StraaSPlayerLowLatencyExtensionSDK. 12 | FOUNDATION_EXPORT double StraaSPlayerLowLatencyExtensionSDKVersionNumber; 13 | 14 | //! Project version string for StraaSPlayerLowLatencyExtensionSDK. 15 | FOUNDATION_EXPORT const unsigned char StraaSPlayerLowLatencyExtensionSDKVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | #import 19 | 20 | -------------------------------------------------------------------------------- /ios/StraaSPlayerLowLatencyExtensionSDK.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSPlayerLowLatencyExtensionSDK.framework/Info.plist -------------------------------------------------------------------------------- /ios/StraaSPlayerLowLatencyExtensionSDK.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module StraaSPlayerLowLatencyExtensionSDK { 2 | umbrella header "StraaSPlayerLowLatencyExtensionSDK.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /ios/StraaSPlayerLowLatencyExtensionSDK.framework/PrivacyInfo.xcprivacy: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSPrivacyCollectedDataTypes 6 | 7 | NSPrivacyTracking 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /ios/StraaSPlayerLowLatencyExtensionSDK.framework/StraaSPlayerLowLatencyExtensionSDK: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSPlayerLowLatencyExtensionSDK.framework/StraaSPlayerLowLatencyExtensionSDK -------------------------------------------------------------------------------- /ios/StraaSPlayerLowLatencyExtensionSDK.framework/_CodeSignature/CodeDirectory: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSPlayerLowLatencyExtensionSDK.framework/_CodeSignature/CodeDirectory -------------------------------------------------------------------------------- /ios/StraaSPlayerLowLatencyExtensionSDK.framework/_CodeSignature/CodeRequirements: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSPlayerLowLatencyExtensionSDK.framework/_CodeSignature/CodeRequirements -------------------------------------------------------------------------------- /ios/StraaSPlayerLowLatencyExtensionSDK.framework/_CodeSignature/CodeRequirements-1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSPlayerLowLatencyExtensionSDK.framework/_CodeSignature/CodeRequirements-1 -------------------------------------------------------------------------------- /ios/StraaSPlayerLowLatencyExtensionSDK.framework/_CodeSignature/CodeSignature: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSPlayerLowLatencyExtensionSDK.framework/_CodeSignature/CodeSignature -------------------------------------------------------------------------------- /ios/StraaSPlayerSDK.framework/Assets.car: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSPlayerSDK.framework/Assets.car -------------------------------------------------------------------------------- /ios/StraaSPlayerSDK.framework/Headers/STSCategory.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSCategory.h 3 | // StraaS 4 | // 5 | // Created by Lee on 7/28/16. 6 | // 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | /** 14 | * Category model of StraaS player SDK 15 | */ 16 | @interface STSCategory : LHDataObject 17 | 18 | /** 19 | * The category id. 20 | */ 21 | @property (nonatomic, readonly) NSNumber * categoryId; 22 | 23 | /** 24 | * The category name. 25 | */ 26 | @property (nonatomic, readonly) NSString * name; 27 | 28 | /** 29 | * The category description. 30 | */ 31 | @property (nonatomic, readonly) NSString * categoryDescription; 32 | 33 | /** 34 | * The number of videos which are contained in the category. 35 | */ 36 | @property (nonatomic, readonly) NSInteger videosCount; 37 | 38 | /** 39 | * The id of the category which contains this category. If this category has no parentCategoryId, then it is not a subcategory. 40 | */ 41 | @property (nonatomic, readonly, nullable) NSNumber * parentCategoryId; 42 | 43 | @end 44 | NS_ASSUME_NONNULL_END 45 | -------------------------------------------------------------------------------- /ios/StraaSPlayerSDK.framework/Headers/STSGetLiveListConfiguration.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSGetLiveListConfiguration.h 3 | // StraaSPlayerSDK 4 | // 5 | // Created by Harry Hsu on 21/09/2017. 6 | // Copyright © 2017 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | 12 | /** 13 | * The configuration defines the request rules of how to get a live list. 14 | */ 15 | @interface STSGetLiveListConfiguration : NSObject 16 | 17 | /** 18 | * Filter the items which exist in the categories. 19 | */ 20 | @property (nonatomic) NSArray * categoryIds; 21 | 22 | /** 23 | * Filter the items which are tagged with the tag names. 24 | */ 25 | @property (nonatomic) NSArray * tags; 26 | 27 | /** 28 | * Filter the items which are owned by the member. 29 | */ 30 | @property (nonatomic) NSString * ownerMemberId; 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /ios/StraaSPlayerSDK.framework/Headers/STSGetVideoListConfiguration.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSGetVideoListConfiguration.h 3 | // StraaS 4 | // 5 | // Created by Harry Hsu on 14/09/2017. 6 | // Copyright © 2017 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | /** 12 | * The configuration defines the request rules of how to get a video list. 13 | */ 14 | @interface STSGetVideoListConfiguration : NSObject 15 | 16 | /** 17 | * Filter the items which exist in the categories. 18 | */ 19 | @property (nonatomic) NSArray * categoryIds; 20 | 21 | /** 22 | * Filter the items which are tagged with the tag names. 23 | */ 24 | @property (nonatomic) NSArray * tags; 25 | 26 | /** 27 | * Filter the items which are owned by the member. 28 | */ 29 | @property (nonatomic) NSString * ownerMemberId; 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /ios/StraaSPlayerSDK.framework/Headers/STSLive.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSLive.h 3 | // StraaS 4 | // 5 | // Created by shihwen.wang on 2016/8/31. 6 | // Copyright © 2016年 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "STSVideo.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | /** 15 | * Live model of StraaS player SDK 16 | */ 17 | @interface STSLive : LHDataObject 18 | 19 | /** 20 | * The live id. 21 | */ 22 | @property (nonatomic, readonly) NSString * liveId; 23 | 24 | /** 25 | * The id of the account which the resource belongs to. 26 | */ 27 | @property (nonatomic, readonly) NSString * accountId; 28 | 29 | /** 30 | * The title of the live. 31 | */ 32 | @property (nonatomic, readonly) NSString * title; 33 | 34 | /** 35 | * The synopsis of the live. 36 | */ 37 | @property (nonatomic, readonly) NSString * synopsis; 38 | 39 | /** 40 | * The status of the live.(ready|started|ended) 41 | */ 42 | @property (nonatomic, readonly) NSString * status; 43 | 44 | /** 45 | * The live event created time. 46 | */ 47 | @property (nonatomic, readonly) NSString *createdAt; 48 | 49 | /** 50 | * The start time of the live event. 51 | */ 52 | @property (nonatomic, readonly) NSString * startTime; 53 | 54 | /** 55 | * The starting time of live streaming. 56 | */ 57 | @property (nonatomic, readonly) NSString * startedAt; 58 | 59 | /** 60 | * The ending time of live streaming. 61 | */ 62 | @property (nonatomic, readonly) NSString * endedAt; 63 | 64 | /** 65 | * The large size thumbnail of thumbnail_urls. 66 | */ 67 | @property (nonatomic, readonly, nullable) NSString * posterUrl; 68 | 69 | /** 70 | * The concurrent user in the live. 71 | */ 72 | @property (nonatomic, readonly, nullable) NSNumber * ccu; 73 | 74 | /** 75 | * The hit count of the live. 76 | */ 77 | @property (nonatomic, readonly, nullable) NSNumber * hitCountSum; 78 | 79 | /** 80 | * The play count of the live. 81 | */ 82 | @property (nonatomic, readonly, nullable) NSNumber * playCountSum; 83 | 84 | /** 85 | * The VODs of the live event. 86 | */ 87 | @property (nonatomic, readonly, nullable) NSArray * videos; 88 | 89 | /** 90 | * Indicate if the source is 360-degree streaming or not. 91 | * "equirectangular" if the source is 360-degree streaming. "flat" if not. 92 | */ 93 | @property (nonatomic, readonly) NSString * projection; 94 | 95 | /** 96 | * The associated chatroom name. 97 | */ 98 | @property (nonatomic, readonly, nullable) NSString * chatroomName; 99 | 100 | /** 101 | * The image shown in the StraaS web player when the live streaming is off air. 102 | */ 103 | @property (nonatomic, readonly, nullable) NSString * coverUrl; 104 | 105 | /** 106 | * A boolean value indicates whether the DVR playback is enabled. 107 | */ 108 | @property (nonatomic, readonly) BOOL isDvrEnabled; 109 | 110 | @end 111 | 112 | NS_ASSUME_NONNULL_END 113 | -------------------------------------------------------------------------------- /ios/StraaSPlayerSDK.framework/Headers/STSLiveBroadcastState.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSLiveBroadcastState.h 3 | // StraaS 4 | // 5 | // Created by shihwen.wang on 2017/3/22. 6 | // Copyright © 2017年 StraaS.io. All rights reserved. 7 | // 8 | 9 | #ifndef STSLiveEventStatus_h 10 | #define STSLiveEventStatus_h 11 | 12 | /** 13 | * The broadcast state of the live. 14 | */ 15 | typedef NS_ENUM(NSInteger, STSLiveBroadcastState) { 16 | /** 17 | * The broadcast state of the live cannot be determined. 18 | */ 19 | STSLiveBroadcastStateUnknown = 0, 20 | 21 | /** 22 | * The stream of the live has started. 23 | */ 24 | STSLiveBroadcastStateStreamStarted = 1, 25 | 26 | /** 27 | * The stream of the live has stopped. 28 | */ 29 | STSLiveBroadcastStateStreamStopped = 2, 30 | 31 | /** 32 | * The live is waiting for stream. 33 | */ 34 | STSLiveBroadcastStateWaitingForStream = 3, 35 | 36 | /** 37 | * The live event has ended. 38 | */ 39 | STSLiveBroadcastStateEventEnded = 4, 40 | 41 | /** 42 | * Means the live event state is still available for playback within amount of time temporarily 43 | * when this event is not broadcasting for live dvr enabled live event. 44 | */ 45 | STSLiveBroadcastStateDvrPlaybackAvailable = 5, 46 | }; 47 | 48 | #endif /* STSLiveEventStatus_h */ 49 | -------------------------------------------------------------------------------- /ios/StraaSPlayerSDK.framework/Headers/STSLiveEventListenerState.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSLiveEventListenerState.h 3 | // StraaS 4 | // 5 | // Created by shihwen.wang on 2018/2/21. 6 | // Copyright © 2018年 StraaS.io. All rights reserved. 7 | // 8 | 9 | #ifndef STSLiveEventListenerState_h 10 | #define STSLiveEventListenerState_h 11 | 12 | /** 13 | * The state of the STSLiveEventListner. 14 | */ 15 | typedef NS_ENUM(NSInteger, STSLiveEventListenerState) { 16 | /** 17 | * The STSLiveEventListner object is idle. 18 | */ 19 | STSLiveEventListenerStateIdle = 0, 20 | /** 21 | * The STSLiveEventListner object is attempting to connect to the server. 22 | */ 23 | STSLiveEventListenerStateStarting = 1, 24 | /** 25 | * The STSLiveEventListner object is connected to the server and can receive event. 26 | */ STSLiveEventListenerStateStarted = 2 27 | }; 28 | 29 | 30 | #endif /* STSLiveEventListenerState_h */ 31 | -------------------------------------------------------------------------------- /ios/StraaSPlayerSDK.framework/Headers/STSPagination.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSPagination.h 3 | // StraaS 4 | // 5 | // Created by Lee on 8/10/16. 6 | // 7 | // 8 | 9 | #import 10 | 11 | /** 12 | * Pagination model of StraaS player SDK 13 | * STSPagination is an object wrapping pagination header in api request. 14 | * reference: https://developer.github.com/guides/traversing-with-pagination/ 15 | */ 16 | @interface STSPagination : NSObject 17 | 18 | /** 19 | * The number of the last page. 20 | * Usually, last page is a constant, unless CMS update resource. 21 | * Nil if at the last page. 22 | */ 23 | @property (nonatomic) NSNumber * last; 24 | 25 | /** 26 | * The number of the first page. 27 | * Usually, first page will equal 1. Nil if at the first page. 28 | */ 29 | @property (nonatomic) NSNumber * first; 30 | 31 | /** 32 | * The number of the previous page. Nil if have no previous page. 33 | */ 34 | @property (nonatomic) NSNumber * prev; 35 | 36 | /** 37 | * The number of the next page. Nil if have no next page. 38 | */ 39 | @property (nonatomic) NSNumber * next; 40 | 41 | @end 42 | -------------------------------------------------------------------------------- /ios/StraaSPlayerSDK.framework/Headers/STSPlayerDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSPlayerDelegate.h 3 | // StraaS 4 | // 5 | // Created by Lee on 08/03/2017. 6 | // Copyright © 2017 StraaS.io. All rights reserved. 7 | // 8 | 9 | #ifndef STSPlayerDelegate_h 10 | #define STSPlayerDelegate_h 11 | 12 | @protocol STSPlayerPlayback; 13 | 14 | NS_ASSUME_NONNULL_BEGIN 15 | 16 | @protocol STSPlayerDelegate 17 | 18 | - (void)playerIsReadyToPlay:(id)player; 19 | - (void)playerItemReadyToPlay:(id)player; 20 | - (void)playerStartToPlay:(id)player; 21 | - (void)player:(id)player onBuffering:(BOOL)isBuffering; 22 | - (void)playerDidStop:(id)player; 23 | - (void)playerOnError:(id)player; 24 | - (void)player:(id)player durationChanged:(Float64)timeInSeconds; 25 | - (void)player:(id)player playbackTimeChanged:(Float64)timeInSeconds; 26 | - (void)player:(id)player loadedTimeRangesChanged:(NSArray *)loadedTimeRanges; 27 | - (void)player:(id)player seekableTimeRangesChanged:(NSArray *)seekableTimeRanges; 28 | 29 | @end 30 | 31 | NS_ASSUME_NONNULL_END 32 | 33 | #endif /* STSPlayerDelegate_h */ 34 | -------------------------------------------------------------------------------- /ios/StraaSPlayerSDK.framework/Headers/STSPlayerErrorCode.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSPlayerErrorCode.h 3 | // StraaS 4 | // 5 | // Created by Lee on 6/16/16. 6 | // 7 | // 8 | 9 | #ifndef STSPlayerErrorCode_h 10 | #define STSPlayerErrorCode_h 11 | 12 | /** 13 | * StraaS.io player SDK error code. 14 | */ 15 | typedef NS_ENUM(NSInteger, STSPlayerErrorCode) { 16 | /** 17 | * Network error, underlying error object is included in the user info dictionary. 18 | */ 19 | STSPlayerErrorCodeNetwork = 0, 20 | /** 21 | * Server side error happened, please try again later or contact with service provider. 22 | */ 23 | STSPlayerErrorCodeServer = 1, 24 | /** 25 | * SDK internal error happened, please try again or report issue. 26 | */ 27 | STSPlayerErrorCodeSDKInternal = 2, 28 | /** 29 | * Playback has been stopped due to error. Usually caused by player failing to play playerItem. PlayerItem may fail due to invalid url, bad network. 30 | */ 31 | STSPlayerErrorCodePlayer = 3, 32 | /** 33 | * The requested resource is not found. 34 | */ 35 | STSPlayerErrorCodeNotFound = 4, 36 | /** 37 | * The format of the received data is unacceptable. 38 | */ 39 | STSPlayerErrorCodeDataDeserialization = 5, 40 | /** 41 | * Member JWT is invalid or expired. Please try again with a new member JWT. 42 | */ 43 | STSPlayerErrorCodeJWTTokenUnauthorized = 6, 44 | /** 45 | * Have no permission to use the SDK. Make sure you've configured your app successfully. 46 | * Check if you've set the STSSDKClientID corresponding to your Bundle id in your project setting and have called STSApplication's configureApplication method to configure your identity. 47 | * REMIND: you needs to register your bundle id to StraaS.io to get an client_id(STSSDKClientID). 48 | */ 49 | STSPlayerErrorCodeSDKUnauthorized = 7, 50 | /** 51 | * Current member has no permission to get the requested resource. This resource may need to be paid to get. 52 | */ 53 | STSPlayerErrorCodeMediaPermissionDenial = 8, 54 | /** 55 | * The requested resource exist, but is unlisted and can not be played. 56 | */ 57 | STSPlayerErrorCodeMediaUnavailable = 9, 58 | /** 59 | * Unprocessable entity. May occurred due to unacceptable input value. 60 | */ 61 | STSPlayerErrorCodeUnprocessableEntity = 10, 62 | /** 63 | * Operation denied. May occur due to calling the method in a wrong state. 64 | */ 65 | STSPlayerErrorCodeOperationDenied = 11, 66 | /** 67 | * Invalid live id. The live id should not be nil or empty string. 68 | */ 69 | STSPlayerErrorCodeInvalidLiveId = 12, 70 | /** 71 | * Failed to connect to the socket server(for listening live event) or disconnected from the socket server due to unexpected error after a connection was established successfully. 72 | */ 73 | STSPlayerErrorCodeSocketConnection = 13, 74 | /** 75 | * Too many requests for the server, please try again later. 76 | */ 77 | STSPlayerErrorCodeTooManyRequest = 14, 78 | /** 79 | * The operation was cancelled before it was completed. 80 | */ 81 | STSPlayerErrorCodeCancelled = 15, 82 | }; 83 | 84 | #endif /* STSPlayerErrorCode_h */ 85 | -------------------------------------------------------------------------------- /ios/StraaSPlayerSDK.framework/Headers/STSPlayerPlayback.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSPlayerPlayback.h 3 | // StraaS 4 | // 5 | // Created by Lee on 07/03/2017. 6 | // Copyright © 2017 StraaS.io. All rights reserved. 7 | // 8 | 9 | #ifndef STSPlayerPlayback_h 10 | #define STSPlayerPlayback_h 11 | 12 | #import "STSPlayerDelegate.h" 13 | #import "STSSDKPlaybackStatus.h" 14 | #import "STSVideoScalingMode.h" 15 | 16 | NS_ASSUME_NONNULL_BEGIN 17 | 18 | typedef NSArray * (^QualityNamesMappingType)(NSArray * rawQualityNames); 19 | 20 | @protocol STSPlayerPlayback 21 | 22 | @property (nonatomic, readonly) STSSDKPlaybackStatus playbackStatus; 23 | @property (nonatomic, readwrite) STSVideoScalingMode videoScalingMode; 24 | @property (nonatomic, nullable, weak) id delegate; 25 | @property (nonatomic, readonly) CALayer * playerLayer; 26 | @property (nonatomic) BOOL allowsPlayingInBackground; 27 | @property (nonatomic) BOOL muted; 28 | @property (nonatomic) float playbackSpeed; 29 | @property (nonatomic) float playbackSpeedForContinue; 30 | @property (nonatomic) CGSize preferredMaximumResolution; 31 | @property (nonatomic, readonly) CGSize presentationSize; 32 | 33 | - (void)setStreamURL:(NSURL * _Nullable)URL; 34 | - (void)setStreamURL:(NSURL * _Nullable)URL cookie:(NSHTTPCookie * _Nullable)cookie; 35 | - (void)play; 36 | - (void)pause; 37 | - (void)resume; 38 | - (void)stop; 39 | - (void)replay; 40 | - (void)forceToEnd; 41 | - (CVPixelBufferRef _Nullable)pixelBufferForCurrentItemTime; 42 | - (BOOL)isPlaying; 43 | - (BOOL)hasEnded; 44 | - (void)seekToTime:(Float64)timeInSeconds shouldPlayAfterSeeking:(BOOL)play; 45 | - (NSTimeInterval)currentTime; 46 | - (NSTimeInterval)currentLiveDateTime; 47 | - (UIViewController *)qualitySelectionViewControllerWithQualityNamesMapping:(QualityNamesMappingType)mapping; 48 | - (NSArray *)availableRawQualityNames; 49 | - (NSString *)currentRawQualityName; 50 | - (BOOL)setMediaQuality:(NSString *)qualityName; 51 | @end 52 | 53 | NS_ASSUME_NONNULL_END 54 | 55 | #endif /* STSPlayerPlayback_h */ 56 | -------------------------------------------------------------------------------- /ios/StraaSPlayerSDK.framework/Headers/STSPlayerPlaylistEventDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSPlayerPlaylistEventDelegate.h 3 | // StraaS 4 | // 5 | // Created by shihwen.wang on 2016/10/17. 6 | // Copyright © 2016年 StraaS.io. All rights reserved. 7 | // 8 | 9 | #ifndef STSPlayerPlaylistEventDelegate_h 10 | #define STSPlayerPlaylistEventDelegate_h 11 | 12 | @class STSSDKPlayerView; 13 | @class STSPlaylist; 14 | 15 | NS_ASSUME_NONNULL_BEGIN 16 | 17 | /** 18 | * Implements the STSPlayerPlaybackEventDelegate protocol to respond to playlist events. 19 | */ 20 | @protocol STSPlayerPlaylistEventDelegate 21 | 22 | /** 23 | * Sent when the player view did load an playlist. 24 | * 25 | * @param playerView The player view that sent the message. 26 | * @param playlist The loaded playlist. 27 | */ 28 | - (void)playerView:(STSSDKPlayerView *)playerView didLoadPlaylist:(STSPlaylist *)playlist; 29 | 30 | /** 31 | * Sent when the player view is about to play a specific item. 32 | * 33 | * @param playerView The player view that sent the message. 34 | * @param index The index of the target item in the current playlist that the player view is going to play. 35 | * 36 | * @return YES if the player view should play the target item, NO if not. 37 | */ 38 | - (BOOL)playerView:(STSSDKPlayerView *)playerView willPlayItemAtIndex:(NSInteger)index; 39 | 40 | /** 41 | * Sent when the player view did start playing the target item. 42 | * 43 | * @param playerView The player view that sent the message. 44 | * @param index The index of the played item in the current playlist. 45 | */ 46 | - (void)playerView:(STSSDKPlayerView *)playerView didPlayItemAtIndex:(NSInteger)index; 47 | 48 | /** 49 | * Sent when the last item in the playlist has ended. 50 | * 51 | * @param playerView The player view that sent the message. 52 | * @param playlist The playlist that related to this message. 53 | */ 54 | - (void)playerView:(STSSDKPlayerView *)playerView playListDidPlayToEnd:(STSPlaylist *)playlist; 55 | 56 | @end 57 | 58 | NS_ASSUME_NONNULL_END 59 | 60 | #endif /* STSPlayerPlaylistEventDelegate_h */ 61 | -------------------------------------------------------------------------------- /ios/StraaSPlayerSDK.framework/Headers/STSPlaylist.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSPlaylist.h 3 | // StraaS 4 | // 5 | // Created by Lee on 8/16/16. 6 | // 7 | // 8 | 9 | #import 10 | #import "STSPlaylistItem.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | /** 15 | * Playlist model of StraaS player SDK 16 | */ 17 | @interface STSPlaylist : LHDataObject 18 | 19 | /** 20 | * The playlist id. 21 | */ 22 | @property (nonatomic, readonly) NSString * playlistId; 23 | 24 | /** 25 | * The id of the account which the resource belongs to. 26 | */ 27 | @property (nonatomic, readonly) NSString * accountId; 28 | 29 | /** 30 | * The playlist title. 31 | */ 32 | @property (nonatomic, readonly) NSString * title; 33 | 34 | /** 35 | * The playlist synposis. 36 | */ 37 | @property (nonatomic, readonly) NSString * synposis; 38 | 39 | /** 40 | * The number of videos that the playlist contains. 41 | */ 42 | @property (nonatomic, readonly) NSInteger videosCount; 43 | 44 | /** 45 | * The large size thumbnail of thumbnail_urls. 46 | */ 47 | @property (nonatomic, readonly) NSString * posterURL; 48 | 49 | /** 50 | * The playlist created time. 51 | */ 52 | @property (nonatomic, readonly) NSString * createdAt; 53 | 54 | /** 55 | * The array of playlistItems. 56 | */ 57 | @property (nonatomic, readonly, nullable) NSArray * playlistItems; 58 | 59 | @end 60 | 61 | NS_ASSUME_NONNULL_END 62 | -------------------------------------------------------------------------------- /ios/StraaSPlayerSDK.framework/Headers/STSPlaylistItem.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSPlaylistItem.h 3 | // StraaS 4 | // 5 | // Created by Lee on 8/10/16. 6 | // 7 | // 8 | 9 | #import 10 | #import "STSVideo.h" 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | /** 15 | * Playlist item model of StraaS player SDK 16 | */ 17 | @interface STSPlaylistItem : LHDataObject 18 | 19 | /** 20 | * The playlist item id. 21 | */ 22 | @property (nonatomic, readonly) NSString * playlistItemId; 23 | 24 | /** 25 | * The playlist id which the playlist item belongs to. 26 | */ 27 | @property (nonatomic, readonly) NSString * playlistId; 28 | 29 | /** 30 | * The id of the account which the playlist item belongs to. 31 | */ 32 | @property (nonatomic, readonly) NSString * accountId; 33 | 34 | /** 35 | * The video id of the playlist item. 36 | */ 37 | @property (nonatomic, readonly) NSString * videoId; 38 | 39 | /** 40 | * The STSVideo object. 41 | */ 42 | @property (nonatomic, readonly) STSVideo * video; 43 | 44 | @end 45 | NS_ASSUME_NONNULL_END 46 | -------------------------------------------------------------------------------- /ios/StraaSPlayerSDK.framework/Headers/STSSDKPlaybackStatus.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSSDKPlaybackStatus.h 3 | // StraaS 4 | // 5 | // Created by Lee on 6/16/16. 6 | // 7 | // 8 | 9 | #ifndef STSSDKPlaybackStatus_h 10 | #define STSSDKPlaybackStatus_h 11 | 12 | /** 13 | * The playback status of the player view. 14 | */ 15 | typedef NS_ENUM(NSInteger, STSSDKPlaybackStatus) { 16 | /** 17 | * The default status. The player has no item to play. 18 | */ 19 | STSSDKPlaybackStatusNone, 20 | /** 21 | * The player is loading a new item. 22 | */ 23 | STSSDKPlaybackStatusConnecting, 24 | /** 25 | * The player is playing an item. 26 | */ 27 | STSSDKPlaybackStatusPlaying, 28 | /** 29 | * The player is buffering. 30 | */ 31 | STSSDKPlaybackStatusBuffering, 32 | /** 33 | * The player has an item to play, but is stopped/paused. 34 | */ 35 | STSSDKPlaybackStatusStopped, 36 | /** 37 | * The player is stopped due to error. 38 | */ 39 | STSSDKPlaybackStatusError, 40 | }; 41 | 42 | #endif 43 | -------------------------------------------------------------------------------- /ios/StraaSPlayerSDK.framework/Headers/STSSDKStreamingTimelineView.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSSDKPlayerTimelineView.h 3 | // StraaS 4 | // 5 | // Created by Lee on 6/22/16. 6 | // 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | /** 14 | * A STSSDKStreamingTimelineView object includes subviews that shows the playback time information. 15 | */ 16 | @interface STSSDKStreamingTimelineView : UIControl 17 | 18 | /** 19 | * The slider that shows the playback progress. 20 | */ 21 | @property (nonatomic, readonly) UISlider * playbackTimeSlider; 22 | 23 | /** 24 | * The label shows the playback duration. 25 | */ 26 | @property (nonatomic, readonly) UILabel * durationLabel; 27 | 28 | /** 29 | * The label shows the playback elapsed time. 30 | */ 31 | @property (nonatomic, readonly) UILabel * playbackTimeLabel; 32 | 33 | /** 34 | * The layout constraints of the subviews embedded in the currentView. 35 | * Change this property to customize the layout of the subviews. 36 | */ 37 | @property (nonatomic) NSArray * subviewLayoutConstraints; 38 | 39 | @end 40 | 41 | NS_ASSUME_NONNULL_END 42 | -------------------------------------------------------------------------------- /ios/StraaSPlayerSDK.framework/Headers/STSTag.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSTag.h 3 | // StraaS 4 | // 5 | // Created by Lee on 6/28/16. 6 | // 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | /** 13 | * Tag model for StraaS player SDK 14 | */ 15 | @interface STSTag : LHDataObject 16 | 17 | /** 18 | * The tag id, which is uniquo. 19 | */ 20 | @property (nonatomic, readonly) NSNumber * tagId; 21 | 22 | /** 23 | * The tag name. 24 | */ 25 | @property (nonatomic, readonly) NSString * name; 26 | 27 | /** 28 | * The tag description. 29 | */ 30 | @property (nonatomic, readonly) NSString * tagDescription; 31 | 32 | /** 33 | * The number of objects which are tagged with this tag. 34 | */ 35 | @property (nonatomic, readonly) NSNumber * taggingsCount; 36 | 37 | @end 38 | NS_ASSUME_NONNULL_END 39 | -------------------------------------------------------------------------------- /ios/StraaSPlayerSDK.framework/Headers/STSVideo.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSVideos.h 3 | // StraaS 4 | // 5 | // Created by Lee on 6/27/16. 6 | // 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | /** 14 | * Video model of StraaS player SDK 15 | */ 16 | @interface STSVideo : LHDataObject 17 | 18 | /** 19 | * The video id. 20 | */ 21 | @property (nonatomic, readonly) NSString * videoId; 22 | 23 | /** 24 | * The id of the account which the resource belongs to. 25 | */ 26 | @property (nonatomic, readonly) NSString * accountId; 27 | 28 | /** 29 | * The video title. 30 | */ 31 | @property (nonatomic, readonly) NSString * title; 32 | 33 | /** 34 | * The video synopsis. 35 | */ 36 | @property (nonatomic, readonly) NSString * synopsis; 37 | 38 | /** 39 | * The video transcoding status. 40 | */ 41 | @property (nonatomic, readonly) BOOL accomplished; 42 | 43 | /** 44 | * The duration of the video. 45 | */ 46 | @property (nonatomic, readonly) NSNumber * duration; 47 | 48 | /** 49 | * The large size thumbnail of thumbnail_urls. 50 | */ 51 | @property (nonatomic, readonly) NSString * posterUrl; 52 | 53 | /** 54 | * The id of the live event that the video is generated by. 55 | * If a video is generated by a live event, it would have a corresponding live id. 56 | * If a video is generated by uploading, liveId would be nil; 57 | */ 58 | @property (nonatomic, readonly, nullable) NSString * liveId; 59 | 60 | /** 61 | * Indicate if the source is 360-degree streaming or not. 62 | * "equirectangular" if the source is 360-degree streaming. "flat" if not. 63 | */ 64 | @property (nonatomic, readonly) NSString * projection; 65 | 66 | /** 67 | * The total views count. 68 | * This property is deprecated. Use `playCountSum` instead. 69 | */ 70 | @property (nonatomic, readonly) NSNumber * viewsCount __attribute__((deprecated("Use playCountSum instead."))); 71 | 72 | /** 73 | * The total viewers count. 74 | * This property is deprecated and will be removed in a feature release. 75 | */ 76 | @property (nonatomic, readonly) NSNumber * viewersCount __attribute__((deprecated("This property will be removed in a feature release."))); 77 | 78 | /** 79 | * The total watched duration. 80 | * This property is deprecated. Use `playDurationSum` instead. 81 | */ 82 | @property (nonatomic, readonly) NSNumber * timeWatched __attribute__((deprecated("Use playDurationSum instead."))); 83 | 84 | /** 85 | * The sum of number of times the media (Live or VOD) played. 86 | */ 87 | @property (nonatomic, readonly) NSNumber * playCountSum; 88 | 89 | /** 90 | * The play count inherited from related media. 91 | */ 92 | @property (nonatomic, readonly) NSNumber * basePlayCount; 93 | 94 | /** 95 | * The sum of play duration of the media (Live or VOD) in seconds. 96 | */ 97 | @property (nonatomic, readonly) NSNumber * playDurationSum; 98 | 99 | /** 100 | * The play duration inherited from related media. 101 | */ 102 | @property (nonatomic, readonly) NSNumber * basePlayDuration; 103 | 104 | /** 105 | * The video created time. 106 | */ 107 | @property (nonatomic, readonly) NSString * createdAt; 108 | 109 | /** 110 | * The sum of number of times the media (Live or VOD) hit. 111 | */ 112 | @property (nonatomic, readonly) NSNumber * hitCountSum; 113 | 114 | /** 115 | * The hit count inherited from related media. 116 | */ 117 | @property (nonatomic, readonly) NSNumber * baseHitCount; 118 | 119 | @end 120 | NS_ASSUME_NONNULL_END 121 | -------------------------------------------------------------------------------- /ios/StraaSPlayerSDK.framework/Headers/STSVideoMetadata.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSVideoMetadata.h 3 | // StraaS 4 | // 5 | // Created by Lee on 6/27/16. 6 | // 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | /** 14 | * Video metadata model of StraaS player SDK 15 | */ 16 | @interface STSVideoMetadata : LHDataObject 17 | 18 | /** 19 | * The metadata id. 20 | */ 21 | @property (nonatomic, readonly) NSNumber * metadataId; 22 | 23 | /** 24 | * The author of the video. 25 | */ 26 | @property (nonatomic, readonly, nullable) NSString * author; 27 | 28 | /** 29 | * The location of the video. 30 | */ 31 | @property (nonatomic, readonly, nullable) NSString * location; 32 | 33 | /** 34 | * The language of the video. 35 | */ 36 | @property (nonatomic, readonly, nullable) NSString * language; 37 | 38 | /** 39 | * The video id. 40 | */ 41 | @property (nonatomic, readonly) NSString * videoId; 42 | 43 | @end 44 | NS_ASSUME_NONNULL_END 45 | -------------------------------------------------------------------------------- /ios/StraaSPlayerSDK.framework/Headers/STSVideoScalingMode.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSVideoScalingMode.h 3 | // StraaS 4 | // 5 | // Created by shihwen.wang on 2017/1/9. 6 | // Copyright © 2017年 StraaS.io. All rights reserved. 7 | // 8 | 9 | #ifndef STSVideoScalingMode_h 10 | #define STSVideoScalingMode_h 11 | 12 | /** 13 | * Constants specify how the video is displayed within a STSSDKPLayerView. 14 | */ 15 | typedef NS_ENUM(NSInteger, STSVideoScalingMode) { 16 | /** 17 | * Specifies that the player should preserve the video’s aspect ratio and fit the video within the STSSDKPLayerView's bounds. 18 | */ 19 | STSVideoScalingModeAspectFit, 20 | 21 | /** 22 | * Specifies that the player should preserve the video’s aspect ratio and fill the STSSDKPLayerView's bounds. 23 | */ 24 | STSVideoScalingModeAspectFill, 25 | 26 | /** 27 | * Specifies that the video should be stretched to fill the STSSDKPLayerView's bounds. 28 | */ 29 | STSVideoScalingModeFill 30 | }; 31 | #endif /* STSVideoScalingMode_h */ 32 | -------------------------------------------------------------------------------- /ios/StraaSPlayerSDK.framework/Headers/StraaSPlayerSDK.h: -------------------------------------------------------------------------------- 1 | // 2 | // StraaSSDK.h 3 | // StraaSSDK 4 | // 5 | // Created by Lee on 6/15/16. 6 | // 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for StraaSSDK. 12 | FOUNDATION_EXPORT double StraaSSDKVersionNumber; 13 | 14 | //! Project version string for StraaSSDK. 15 | FOUNDATION_EXPORT const unsigned char StraaSSDKVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | #import 19 | #import 20 | #import 21 | #import 22 | #import 23 | #import 24 | #import 25 | #import 26 | #import 27 | #import 28 | #import 29 | #import 30 | #import 31 | #import 32 | #import 33 | #import 34 | #import 35 | #import 36 | #import 37 | #import 38 | #import 39 | #import 40 | #import 41 | -------------------------------------------------------------------------------- /ios/StraaSPlayerSDK.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSPlayerSDK.framework/Info.plist -------------------------------------------------------------------------------- /ios/StraaSPlayerSDK.framework/Modules/StraaSPlayerSDK.swiftmodule/arm64-apple-ios-simulator.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSPlayerSDK.framework/Modules/StraaSPlayerSDK.swiftmodule/arm64-apple-ios-simulator.swiftdoc -------------------------------------------------------------------------------- /ios/StraaSPlayerSDK.framework/Modules/StraaSPlayerSDK.swiftmodule/arm64-apple-ios-simulator.swiftinterface: -------------------------------------------------------------------------------- 1 | // swift-interface-format-version: 1.0 2 | // swift-compiler-version: Apple Swift version 5.6.1 effective-4.1.50 (swiftlang-5.6.0.323.66 clang-1316.0.20.12) 3 | // swift-module-flags: -target arm64-apple-ios13.0-simulator -enable-objc-interop -enable-library-evolution -swift-version 4 -enforce-exclusivity=checked -O -module-name StraaSPlayerSDK 4 | @_exported import StraaSPlayerSDK 5 | import Swift 6 | import _Concurrency 7 | -------------------------------------------------------------------------------- /ios/StraaSPlayerSDK.framework/Modules/StraaSPlayerSDK.swiftmodule/arm64-apple-ios-simulator.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSPlayerSDK.framework/Modules/StraaSPlayerSDK.swiftmodule/arm64-apple-ios-simulator.swiftmodule -------------------------------------------------------------------------------- /ios/StraaSPlayerSDK.framework/Modules/StraaSPlayerSDK.swiftmodule/arm64-apple-ios.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSPlayerSDK.framework/Modules/StraaSPlayerSDK.swiftmodule/arm64-apple-ios.swiftdoc -------------------------------------------------------------------------------- /ios/StraaSPlayerSDK.framework/Modules/StraaSPlayerSDK.swiftmodule/arm64-apple-ios.swiftinterface: -------------------------------------------------------------------------------- 1 | // swift-interface-format-version: 1.0 2 | // swift-compiler-version: Apple Swift version 5.6.1 effective-4.1.50 (swiftlang-5.6.0.323.66 clang-1316.0.20.12) 3 | // swift-module-flags: -target arm64-apple-ios13.0 -enable-objc-interop -enable-library-evolution -swift-version 4 -enforce-exclusivity=checked -O -module-name StraaSPlayerSDK 4 | @_exported import StraaSPlayerSDK 5 | import Swift 6 | import _Concurrency 7 | -------------------------------------------------------------------------------- /ios/StraaSPlayerSDK.framework/Modules/StraaSPlayerSDK.swiftmodule/arm64-apple-ios.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSPlayerSDK.framework/Modules/StraaSPlayerSDK.swiftmodule/arm64-apple-ios.swiftmodule -------------------------------------------------------------------------------- /ios/StraaSPlayerSDK.framework/Modules/StraaSPlayerSDK.swiftmodule/x86_64-apple-ios-simulator.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSPlayerSDK.framework/Modules/StraaSPlayerSDK.swiftmodule/x86_64-apple-ios-simulator.swiftdoc -------------------------------------------------------------------------------- /ios/StraaSPlayerSDK.framework/Modules/StraaSPlayerSDK.swiftmodule/x86_64-apple-ios-simulator.swiftinterface: -------------------------------------------------------------------------------- 1 | // swift-interface-format-version: 1.0 2 | // swift-compiler-version: Apple Swift version 5.6.1 effective-4.1.50 (swiftlang-5.6.0.323.66 clang-1316.0.20.12) 3 | // swift-module-flags: -target x86_64-apple-ios13.0-simulator -enable-objc-interop -enable-library-evolution -swift-version 4 -enforce-exclusivity=checked -O -module-name StraaSPlayerSDK 4 | @_exported import StraaSPlayerSDK 5 | import Swift 6 | import _Concurrency 7 | -------------------------------------------------------------------------------- /ios/StraaSPlayerSDK.framework/Modules/StraaSPlayerSDK.swiftmodule/x86_64-apple-ios-simulator.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSPlayerSDK.framework/Modules/StraaSPlayerSDK.swiftmodule/x86_64-apple-ios-simulator.swiftmodule -------------------------------------------------------------------------------- /ios/StraaSPlayerSDK.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module StraaSPlayerSDK { 2 | umbrella header "StraaSPlayerSDK.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | 8 | module StraaSPlayerSDK.Swift { 9 | header "StraaSPlayerSDK-Swift.h" 10 | requires objc 11 | } 12 | -------------------------------------------------------------------------------- /ios/StraaSPlayerSDK.framework/PrivacyInfo.xcprivacy: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSPrivacyCollectedDataTypes 6 | 7 | 8 | NSPrivacyCollectedDataType 9 | NSPrivacyCollectedDataTypePreciseLocation 10 | NSPrivacyCollectedDataTypeLinked 11 | 12 | NSPrivacyCollectedDataTypeTracking 13 | 14 | NSPrivacyCollectedDataTypePurposes 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /ios/StraaSPlayerSDK.framework/Shader.vsh: -------------------------------------------------------------------------------- 1 | // 2 | // Shader.vsh 3 | // 4 | // Created by  on 11/8/15. 5 | // Copyright © 2015 Hanton. All rights reserved. 6 | // 7 | 8 | attribute vec4 position; 9 | attribute vec2 texCoord; 10 | 11 | varying vec2 v_textureCoordinate; 12 | 13 | uniform mat4 modelViewProjectionMatrix; 14 | 15 | void main() { 16 | v_textureCoordinate = texCoord; 17 | gl_Position = modelViewProjectionMatrix * position; 18 | } 19 | -------------------------------------------------------------------------------- /ios/StraaSPlayerSDK.framework/StraaSPlayerSDK: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSPlayerSDK.framework/StraaSPlayerSDK -------------------------------------------------------------------------------- /ios/StraaSPlayerSDK.framework/_CodeSignature/CodeDirectory: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSPlayerSDK.framework/_CodeSignature/CodeDirectory -------------------------------------------------------------------------------- /ios/StraaSPlayerSDK.framework/_CodeSignature/CodeRequirements: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSPlayerSDK.framework/_CodeSignature/CodeRequirements -------------------------------------------------------------------------------- /ios/StraaSPlayerSDK.framework/_CodeSignature/CodeRequirements-1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSPlayerSDK.framework/_CodeSignature/CodeRequirements-1 -------------------------------------------------------------------------------- /ios/StraaSPlayerSDK.framework/_CodeSignature/CodeSignature: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSPlayerSDK.framework/_CodeSignature/CodeSignature -------------------------------------------------------------------------------- /ios/StraaSPlayerSDK.framework/en.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSPlayerSDK.framework/en.lproj/Localizable.strings -------------------------------------------------------------------------------- /ios/StraaSPlayerSDK.framework/zh-Hant.lproj/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSPlayerSDK.framework/zh-Hant.lproj/Localizable.strings -------------------------------------------------------------------------------- /ios/StraaSStreamingSDK.framework/Headers/STSAudioConfiguration.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSAudioConfiguration.h 3 | // StraaS 4 | // 5 | // Created by Harry on 17/07/2017. 6 | // Copyright © 2017 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | /** 12 | * Indicates ReplayKit's microphone audio channel. 13 | */ 14 | extern NSString * const kSTSReplayKitAudioChannelMic; 15 | 16 | /** 17 | * Indicates ReplayKit's application audio channel. 18 | */ 19 | extern NSString * const kSTSReplayKitAudioChannelApp; 20 | 21 | /** 22 | * Constants specifying the audio sample rate. 23 | */ 24 | typedef NS_ENUM(NSInteger, STSAudioSampleRate) { 25 | 26 | /** 27 | * Indicates the sample rate of 16000 Hz. 28 | */ 29 | STSAudioSampleRate_16000Hz = 16000, 30 | 31 | /** 32 | * Indicates the sample rate of 44100 Hz. 33 | */ 34 | STSAudioSampleRate_44100Hz = 44100, 35 | 36 | /** 37 | * Indicates the sample rate of 48000 Hz. 38 | */ 39 | STSAudioSampleRate_48000Hz = 48000 40 | }; 41 | 42 | /** 43 | * A STSAudioConfiguration object defines the audio configuration of a STSLiveStreamer object. 44 | */ 45 | @interface STSAudioConfiguration : NSObject 46 | 47 | /** 48 | * The output audio sample rate. Defaults to STSAudioSampleRate_44100Hz. See STSAudioSampleRate for details. 49 | */ 50 | @property (nonatomic) STSAudioSampleRate sampleRate; 51 | 52 | /** 53 | * The number of output channels. Defaults to 1. Set the value to 1 for mono and 2 for stereo. 54 | */ 55 | @property (nonatomic) NSUInteger numOfChannels; 56 | 57 | /** 58 | * The input ReplayKit audio channels. Defaults to nil. 59 | */ 60 | @property (nonatomic, copy) NSArray * replayKitAudioChannels; 61 | 62 | /** 63 | * The volume of kSTSReplayKitAudioChannelMic channel. The property will be used only when the elements of replayKitAudioChannels contain both kSTSReplayKitAudioChannelMic and kSTSReplayKitAudioChannelApp. The value must be between 0.0 and 1.0. By default, the value is set to 0.8. 64 | */ 65 | @property (nonatomic) float replayKitMicChannelVolume; 66 | 67 | /** 68 | * The volume of kSTSReplayKitAudioChannelApp channel. The property will be used only when the elements of replayKitAudioChannels contain both kSTSReplayKitAudioChannelMic and kSTSReplayKitAudioChannelApp. The value must be between 0.0 and 1.0. By default, the value is set to 0.8. 69 | */ 70 | @property (nonatomic) float replayKitAppChannelVolume; 71 | 72 | @end 73 | -------------------------------------------------------------------------------- /ios/StraaSStreamingSDK.framework/Headers/STSSkinBeautifyFilter.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSSkinBeautifyFilter.h 3 | // StraaSStreamingSDK 4 | // 5 | // Created by Allen on 2019/1/17. 6 | // Copyright © 2019 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | /** 14 | * GPUImageFilter for beaufity skin. 15 | */ 16 | @interface STSSkinBeautifyFilter : GPUImageFilter 17 | 18 | /** 19 | * The class method to create a STSSkinBeautifyFilter instance with default skin smoothness level 0.5, brightness level 0.5. 20 | */ 21 | + (STSSkinBeautifyFilter *)filter; 22 | 23 | /** 24 | * The class method to create a STSSkinBeautifyFilter. 25 | * @param skinSmoothnessLevel The skin smoothness level. 26 | * @param brightnessLevel The brightness level. 27 | * @return The instance of the STSSkinBeautifyFilter. 28 | */ 29 | + (STSSkinBeautifyFilter *)filterWithSkinSmoothnessLevel:(CGFloat)skinSmoothnessLevel brightnessLevel:(CGFloat)brightnessLevel; 30 | 31 | /** 32 | * The skin smoothness level. The default value is 0.5. Suggested value is between 0 to 2. 33 | */ 34 | @property (nonatomic, assign) CGFloat skinSmoothnessLevel; 35 | 36 | /** 37 | * The brightness level. The default value is 0.5. Suggested value is between 0 to 1. 38 | */ 39 | @property (nonatomic, assign) CGFloat brightnessLevel; 40 | 41 | /** 42 | * Using init to create a STSSkinBeautifyFilter instance is unavailable. 43 | */ 44 | - (instancetype)init NS_UNAVAILABLE; 45 | 46 | /** 47 | * Using new to create a STSSkinBeautifyFilter instance is unavailable. 48 | */ 49 | + (instancetype)new NS_UNAVAILABLE; 50 | 51 | /** 52 | * Using initWithFragmentShaderFromFile to create a STSSkinBeautifyFilter instance is unavailable. 53 | */ 54 | - (instancetype)initWithFragmentShaderFromFile:(NSString *)fragmentShaderFilename NS_UNAVAILABLE; 55 | 56 | /** 57 | * Using initWithFragmentShaderFromString to create a STSSkinBeautifyFilter instance is unavailable. 58 | */ 59 | - (instancetype)initWithFragmentShaderFromString:(NSString *)fragmentShaderString NS_UNAVAILABLE; 60 | 61 | /** 62 | * Using initWithVertexShaderFromString to create a STSSkinBeautifyFilter instance is unavailable. 63 | */ 64 | -(id)initWithVertexShaderFromString:(NSString *)vertexShaderString fragmentShaderFromString:(NSString *)fragmentShaderString NS_UNAVAILABLE; 65 | 66 | @end 67 | 68 | NS_ASSUME_NONNULL_END 69 | -------------------------------------------------------------------------------- /ios/StraaSStreamingSDK.framework/Headers/STSStreamingConstants.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSStreamingConstants.h 3 | // StraaS 4 | // 5 | // Created by shihwen.wang on 2017/1/9. 6 | // Copyright © 2017年 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #ifndef STSStreamingConstants_h 12 | #define STSStreamingConstants_h 13 | 14 | /** 15 | * The error doamin of StraaS streaming SDK. 16 | */ 17 | FOUNDATION_EXPORT NSString * const STSStreamingErrorDomain; 18 | 19 | #endif /* STSStreamingConstants_h */ 20 | -------------------------------------------------------------------------------- /ios/StraaSStreamingSDK.framework/Headers/STSStreamingErrorCode.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSStreamingErrorCode.h 3 | // StraaS 4 | // 5 | // Created by shihwen.wang on 2016/10/26. 6 | // Copyright © 2016年 StraaS.io. All rights reserved. 7 | // 8 | 9 | #ifndef STSStreamingSDKErrorCode_h 10 | #define STSStreamingSDKErrorCode_h 11 | 12 | /** 13 | * StraaS.io streaming SDK error code 14 | */ 15 | typedef NS_ENUM(NSUInteger, STSStreamingErrorCode) { 16 | /** 17 | * Couldn't access the camera, may be the permission problem or other camera problems. 18 | */ 19 | STSStreamingErrorCodeCamera = 0, 20 | /** 21 | * Couldn't access the microphone, may be the permission problem or other microphone problems. 22 | */ 23 | STSStreamingErrorCodeMicrophone = 1, 24 | /** 25 | * Resolution is not supported by camera in current device. 26 | */ 27 | STSStreamingErrorCodeResolutionNotSupport = 2, 28 | /** 29 | * SDK internal error happened, please try again or report issue. 30 | */ 31 | STSStreamingErrorCodeInternal = 3, 32 | /** 33 | * Network error, underlying error object is included in the user info dictionary. 34 | */ 35 | STSStreamingErrorCodeNetwork = 4, 36 | /** 37 | * Operation is denied, the cause may be calling a method in wrong state. 38 | */ 39 | STSStreamingErrorCodeOperationDenied = 5, 40 | /** 41 | * Server side error happened, please try again later or contact with service provider. 42 | */ 43 | STSStreamingErrorCodeServer = 6, 44 | /** 45 | * Member JWT is invalid or expired. Please try again with a new member JWT. 46 | */ 47 | STSStreamingErrorCodeUnauthorized = 7, 48 | /** 49 | * Provided parameter is invalid. 50 | */ 51 | STSStreamingErrorCodeParameterNotSupport = 8, 52 | /** 53 | * Couldn't create new event because of limitation of user's live event count. 54 | */ 55 | STSStreamingErrorCodeLiveCountLimit = 9, 56 | /** 57 | * Live event expired, please remove this event by calling STSStreamingManager's `cleanLiveEvent:success:failure:` method. 58 | */ 59 | STSStreamingErrorCodeEventExpired = 10, 60 | /** 61 | * Couldn't find target live event. This error may be due to the event doesn't exist, is ended, or doesn't belong to current JWT. 62 | */ 63 | STSStreamingErrorCodeEventNotFound = 11, 64 | /** 65 | * Too many requests for the server, please try again later. 66 | */ 67 | STSStreamingTooManyRequests = 12, 68 | }; 69 | 70 | #endif /* STSStreamingSDKErrorCode_h */ 71 | -------------------------------------------------------------------------------- /ios/StraaSStreamingSDK.framework/Headers/STSStreamingInfo.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSStreamingInfo.h 3 | // StraaS 4 | // 5 | // Created by shihwen.wang on 2016/10/24. 6 | // Copyright © 2016年 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | /** 15 | * Streaming info of a live event. 16 | */ 17 | @interface STSStreamingInfo : LHDataObject 18 | 19 | /** 20 | * The live id. 21 | */ 22 | @property (nonatomic, readonly) NSString *liveId; 23 | 24 | /** 25 | * The stream server URL. 26 | */ 27 | @property (nonatomic, readonly) NSString *streamServerURL; 28 | 29 | /** 30 | * The stream key. 31 | */ 32 | @property (nonatomic, readonly) NSString *streamKey; 33 | 34 | @end 35 | 36 | NS_ASSUME_NONNULL_END 37 | -------------------------------------------------------------------------------- /ios/StraaSStreamingSDK.framework/Headers/STSStreamingPrepareConfig.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSStreamingPrepareConfig.h 3 | // StraaS 4 | // 5 | // Created by shihwen.wang on 2017/1/25. 6 | // Copyright © 2017年 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | #import "STSStreamingResolution.h" 12 | 13 | 14 | NS_ASSUME_NONNULL_BEGIN 15 | 16 | /** 17 | * A STSStreamingPrepareConfig object defines the prepare configuration of the stream manager. 18 | */ 19 | @interface STSStreamingPrepareConfig : NSObject 20 | 21 | /** 22 | * The target size of the output video. Defaults to `CGSizeZero`. 23 | * The width and height should both be the positive even number. 24 | * If this property is set to `CGSizeZero`, the output video size will be calculated by the streaming manager according to property `fitAllCamera`, `maxResolution` and the aspect ratio of the preview view. 25 | */ 26 | @property (nonatomic) CGSize targetOutputSize; 27 | 28 | /** 29 | * A boolean value indicates if the size of the output video should fit all available cameras on the device. 30 | * Defaults to `YES`. This property will be used only when `targetOutputSize` is equal to `CGSizeZero`. 31 | * If this property is set to `NO`, the output video size will be limited by the max resolution of the current camera. If this property is set to `YES`, the output video size will be limited by the max resolution of all available cameras. 32 | */ 33 | @property (nonatomic) BOOL fitAllCamera; 34 | 35 | /** 36 | * The max resolution of the output video. Defaluts to `STSStreamingResolution720p`. 37 | * Both the width and the height of the output video will be limited by this value. 38 | * This property will be used only when `targetOutputSize` is equal to `CGSizeZero`. 39 | */ 40 | @property (nonatomic) STSStreamingResolution maxResolution __attribute__((deprecated("`maxResolution` has been deprecated. Use `maxVideoHeight` instead."))); 41 | 42 | /** 43 | * The max video hieght of the output video. Defaluts to 720. 44 | * The height of the output video will be limited by this value, and the width is limited by the calculated width based on `maxVideoHeight` and the aspect ratio of the `previewView` in `STSStreamingManager`. This value is usually as same as the `profile` in `STSStreamingLiveEventConfig` if you create a live event by iOS client SDK. 45 | * This property will be used only when `targetOutputSize` is equal to `CGSizeZero`. 46 | */ 47 | @property (nonatomic) NSUInteger maxVideoHeight; 48 | 49 | /** 50 | * The orientation of the output video. Defaults to `UIInterfaceOrientationPortrait`. 51 | */ 52 | @property (nonatomic) UIInterfaceOrientation outputImageOrientation; 53 | 54 | /** 55 | * The maximum video bitrate in bits per second. 56 | * By default, no value is set and the SDK calculates the maximum bitrate automatically using an algorithm which considers the output video size. We recommend to set maxVideoBitrate to at least more than 100000. 57 | */ 58 | @property (nonatomic) NSNumber * maxVideoBitrate; 59 | 60 | @end 61 | 62 | NS_ASSUME_NONNULL_END 63 | -------------------------------------------------------------------------------- /ios/StraaSStreamingSDK.framework/Headers/STSStreamingProfile.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSStreamingProfile.h 3 | // StraaS 4 | // 5 | // Created by shihwen.wang on 2018/4/16. 6 | // Copyright © 2018年 StraaS.io. All rights reserved. 7 | // 8 | 9 | #ifndef STSStreamingProfile_h 10 | #define STSStreamingProfile_h 11 | 12 | /** 13 | * The profile of the live event. 14 | */ 15 | typedef NS_ENUM(NSUInteger, STSStreamingProfile) { 16 | /** 17 | * No profile setting. 18 | */ 19 | STSStreamingProfileNone, 20 | /** 21 | * 1080p(1920 x 1080) and origin streaming source. 22 | */ 23 | STSStreamingProfile1080pAndSource, 24 | 25 | /** 26 | * 720p(1280 x 720) and origin streaming source. 27 | */ 28 | STSStreamingProfile720pAndSource, 29 | 30 | /** 31 | * 720p resolution.(1280 x 720) 32 | */ 33 | STSStreamingProfile720p, 34 | 35 | /** 36 | * 360p resolution.(640 x 360) 37 | */ 38 | STSStreamingProfile360p, 39 | }; 40 | 41 | #endif /* STSStreamingProfile_h */ 42 | -------------------------------------------------------------------------------- /ios/StraaSStreamingSDK.framework/Headers/STSStreamingResolution.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSStreamingResolution.h 3 | // StraaS 4 | // 5 | // Created by shihwen.wang on 2017/1/16. 6 | // Copyright © 2017年 StraaS.io. All rights reserved. 7 | // 8 | 9 | #ifndef STSStreamingResolution_h 10 | #define STSStreamingResolution_h 11 | 12 | /** 13 | * The highest resolution of the live event. 14 | */ 15 | typedef NS_ENUM(NSUInteger, STSStreamingResolution) { 16 | /** 17 | * 1080p resolution.(1920 * 1080) 18 | */ 19 | STSStreamingResolution1080p, 20 | 21 | /** 22 | * 720p resolution.(1280 x 720) 23 | */ 24 | STSStreamingResolution720p, 25 | 26 | /** 27 | * 360p resolution.(640 x 360) 28 | */ 29 | STSStreamingResolution360p 30 | }; 31 | 32 | #endif /* STSStreamingResolution_h */ 33 | -------------------------------------------------------------------------------- /ios/StraaSStreamingSDK.framework/Headers/STSStreamingState.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSStreamingState.h 3 | // StraaS 4 | // 5 | // Created by shihwen.wang on 2016/10/27. 6 | // Copyright © 2016年 StraaS.io. All rights reserved. 7 | // 8 | 9 | #ifndef STSStreamingState_h 10 | #define STSStreamingState_h 11 | 12 | /** 13 | * The state of the STSStreamingManager. 14 | */ 15 | typedef NS_ENUM(NSUInteger, STSStreamingState) { 16 | /** 17 | * The initial state. 18 | */ 19 | STSStreamingStateIdle = 0, 20 | /** 21 | * The STSStreamingManager is in the process of preparing. 22 | */ 23 | STSStreamingStatePreparing = 1, 24 | /** 25 | * The STSStreamingManager is ready for streaming. You can start streaming in this state. 26 | */ 27 | STSStreamingStatePrepared = 2, 28 | /** 29 | * The STSStreamingManager is connecting to the server, but is not yet connected. 30 | */ 31 | STSStreamingStateConnecting = 3, 32 | /** 33 | * The STSStreamingManager is streaming to the server. 34 | */ 35 | STSStreamingStateStreaming = 4, 36 | /** 37 | * The STSStreamingManager is in the process of disconnecting. 38 | */ 39 | STSStreamingStateDisconnecting = 5 40 | }; 41 | #endif /* STSStreamingState_h */ 42 | -------------------------------------------------------------------------------- /ios/StraaSStreamingSDK.framework/Headers/STSStreamingStatsReport.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSStreamingStatsReport.h 3 | // StraaS 4 | // 5 | // Created by Harry Hsu on 13/10/2017. 6 | // Copyright © 2017 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | /** 13 | * A STSStreamingStatsReport object provides streaming related information. 14 | */ 15 | @interface STSStreamingStatsReport : NSObject 16 | 17 | /** 18 | * The bitrate in bits per second. 19 | */ 20 | @property (nonatomic, readonly) NSUInteger currentBitrate; 21 | 22 | /** 23 | * The video frame rate in frames per second. 24 | */ 25 | @property (nonatomic, readonly) CGFloat currentFPS; 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /ios/StraaSStreamingSDK.framework/Headers/STSVideoConfiguration.h: -------------------------------------------------------------------------------- 1 | // 2 | // STSRKVideoConfiguration.h 3 | // StraaS 4 | // 5 | // Created by Harry on 17/07/2017. 6 | // Copyright © 2017 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | /** 15 | * A STSVideoConfiguration object defines the video configuration of a STSLiveStreamer object. 16 | */ 17 | @interface STSVideoConfiguration : NSObject 18 | 19 | /** 20 | * The output video resolution. Defaults to CGSizeZero. The width and height should both be even and the maximum resolution is 1080p. 21 | */ 22 | @property (nonatomic) CGSize videoSize; 23 | 24 | /** 25 | * The output frame rate. Defaults to 30. The value must be between 1 and 60. 26 | */ 27 | @property (nonatomic) NSUInteger frameRate; 28 | 29 | @end 30 | 31 | NS_ASSUME_NONNULL_END 32 | -------------------------------------------------------------------------------- /ios/StraaSStreamingSDK.framework/Headers/StraaSStreamingSDK.h: -------------------------------------------------------------------------------- 1 | // 2 | // StraaSStreamingSDK.h 3 | // StraaSStreamingSDK 4 | // 5 | // Created by shihwen.wang on 2016/10/24. 6 | // Copyright © 2016年 StraaS.io. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for StraaSStreamingSDK. 12 | FOUNDATION_EXPORT double StraaSStreamingSDKVersionNumber; 13 | 14 | //! Project version string for StraaSStreamingSDK. 15 | FOUNDATION_EXPORT const unsigned char StraaSStreamingSDKVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | #import 19 | #import 20 | #import 21 | #import 22 | #import 23 | #import 24 | #import 25 | #import 26 | #import 27 | #import 28 | #import 29 | #import 30 | #import 31 | #import 32 | -------------------------------------------------------------------------------- /ios/StraaSStreamingSDK.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSStreamingSDK.framework/Info.plist -------------------------------------------------------------------------------- /ios/StraaSStreamingSDK.framework/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSStreamingSDK.framework/Localizable.strings -------------------------------------------------------------------------------- /ios/StraaSStreamingSDK.framework/Modules/StraaSStreamingSDK.swiftmodule/arm64-apple-ios-simulator.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSStreamingSDK.framework/Modules/StraaSStreamingSDK.swiftmodule/arm64-apple-ios-simulator.swiftdoc -------------------------------------------------------------------------------- /ios/StraaSStreamingSDK.framework/Modules/StraaSStreamingSDK.swiftmodule/arm64-apple-ios-simulator.swiftinterface: -------------------------------------------------------------------------------- 1 | // swift-interface-format-version: 1.0 2 | // swift-compiler-version: Apple Swift version 5.6.1 effective-4.1.50 (swiftlang-5.6.0.323.66 clang-1316.0.20.12) 3 | // swift-module-flags: -target arm64-apple-ios11.0-simulator -enable-objc-interop -enable-library-evolution -swift-version 4 -enforce-exclusivity=checked -O -module-name StraaSStreamingSDK 4 | @_exported import StraaSStreamingSDK 5 | import Swift 6 | import _Concurrency 7 | -------------------------------------------------------------------------------- /ios/StraaSStreamingSDK.framework/Modules/StraaSStreamingSDK.swiftmodule/arm64-apple-ios-simulator.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSStreamingSDK.framework/Modules/StraaSStreamingSDK.swiftmodule/arm64-apple-ios-simulator.swiftmodule -------------------------------------------------------------------------------- /ios/StraaSStreamingSDK.framework/Modules/StraaSStreamingSDK.swiftmodule/arm64-apple-ios.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSStreamingSDK.framework/Modules/StraaSStreamingSDK.swiftmodule/arm64-apple-ios.swiftdoc -------------------------------------------------------------------------------- /ios/StraaSStreamingSDK.framework/Modules/StraaSStreamingSDK.swiftmodule/arm64-apple-ios.swiftinterface: -------------------------------------------------------------------------------- 1 | // swift-interface-format-version: 1.0 2 | // swift-compiler-version: Apple Swift version 5.6.1 effective-4.1.50 (swiftlang-5.6.0.323.66 clang-1316.0.20.12) 3 | // swift-module-flags: -target arm64-apple-ios11.0 -enable-objc-interop -enable-library-evolution -swift-version 4 -enforce-exclusivity=checked -O -module-name StraaSStreamingSDK 4 | @_exported import StraaSStreamingSDK 5 | import Swift 6 | import _Concurrency 7 | -------------------------------------------------------------------------------- /ios/StraaSStreamingSDK.framework/Modules/StraaSStreamingSDK.swiftmodule/arm64-apple-ios.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSStreamingSDK.framework/Modules/StraaSStreamingSDK.swiftmodule/arm64-apple-ios.swiftmodule -------------------------------------------------------------------------------- /ios/StraaSStreamingSDK.framework/Modules/StraaSStreamingSDK.swiftmodule/x86_64-apple-ios-simulator.swiftdoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSStreamingSDK.framework/Modules/StraaSStreamingSDK.swiftmodule/x86_64-apple-ios-simulator.swiftdoc -------------------------------------------------------------------------------- /ios/StraaSStreamingSDK.framework/Modules/StraaSStreamingSDK.swiftmodule/x86_64-apple-ios-simulator.swiftinterface: -------------------------------------------------------------------------------- 1 | // swift-interface-format-version: 1.0 2 | // swift-compiler-version: Apple Swift version 5.6.1 effective-4.1.50 (swiftlang-5.6.0.323.66 clang-1316.0.20.12) 3 | // swift-module-flags: -target x86_64-apple-ios11.0-simulator -enable-objc-interop -enable-library-evolution -swift-version 4 -enforce-exclusivity=checked -O -module-name StraaSStreamingSDK 4 | @_exported import StraaSStreamingSDK 5 | import Swift 6 | import _Concurrency 7 | -------------------------------------------------------------------------------- /ios/StraaSStreamingSDK.framework/Modules/StraaSStreamingSDK.swiftmodule/x86_64-apple-ios-simulator.swiftmodule: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSStreamingSDK.framework/Modules/StraaSStreamingSDK.swiftmodule/x86_64-apple-ios-simulator.swiftmodule -------------------------------------------------------------------------------- /ios/StraaSStreamingSDK.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module StraaSStreamingSDK { 2 | umbrella header "StraaSStreamingSDK.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | 8 | module StraaSStreamingSDK.Swift { 9 | header "StraaSStreamingSDK-Swift.h" 10 | requires objc 11 | } 12 | -------------------------------------------------------------------------------- /ios/StraaSStreamingSDK.framework/PrivacyInfo.xcprivacy: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | NSPrivacyCollectedDataTypes 6 | 7 | NSPrivacyTracking 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /ios/StraaSStreamingSDK.framework/StraaSStreamingSDK: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSStreamingSDK.framework/StraaSStreamingSDK -------------------------------------------------------------------------------- /ios/StraaSStreamingSDK.framework/_CodeSignature/CodeDirectory: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSStreamingSDK.framework/_CodeSignature/CodeDirectory -------------------------------------------------------------------------------- /ios/StraaSStreamingSDK.framework/_CodeSignature/CodeRequirements: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSStreamingSDK.framework/_CodeSignature/CodeRequirements -------------------------------------------------------------------------------- /ios/StraaSStreamingSDK.framework/_CodeSignature/CodeRequirements-1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSStreamingSDK.framework/_CodeSignature/CodeRequirements-1 -------------------------------------------------------------------------------- /ios/StraaSStreamingSDK.framework/_CodeSignature/CodeSignature: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Straas/Straas-iOS-sdk/8b7b55abb42d2447ce66e5173fd2798d01e39c4b/ios/StraaSStreamingSDK.framework/_CodeSignature/CodeSignature --------------------------------------------------------------------------------