this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

clean ios

Hailey bd7b0b5e de6347cd

+40 -35
+7 -3
ios/BlueskyVideoModule.swift
··· 27 27 28 28 View(VideoView.self) { 29 29 Events([ 30 - "onStatusChange", 30 + "onActiveChange", 31 31 "onLoadingChange", 32 - "onError", 33 32 "onMutedChange", 33 + "onStatusChange", 34 34 "onTimeRemainingChange", 35 - "onActiveChange", 35 + "onError", 36 36 ]) 37 37 38 38 Prop("url") { (view: VideoView, prop: URL) in ··· 41 41 42 42 Prop("autoplay") { (view: VideoView, prop: Bool) in 43 43 view.autoplay = prop 44 + } 45 + 46 + Prop("beginMuted") { (view: VideoView, prop: Bool) in 47 + view.beginMuted = prop 44 48 } 45 49 46 50 AsyncFunction("togglePlayback") { (view: VideoView) in
+32 -31
ios/VideoView.swift
··· 2 2 import AVFoundation 3 3 4 4 class VideoView: ExpoView, AVPlayerViewControllerDelegate { 5 - var pViewController: AVPlayerViewController? = nil 6 - var player: AVPlayer? = nil 5 + private var pViewController: AVPlayerViewController? 6 + private var player: AVPlayer? 7 + private var periodicTimeObserver: Any? 8 + 9 + // props 10 + var autoplay: Bool = true 11 + var url: URL? 12 + var beginMuted = true 7 13 8 14 // controls 9 - var isPlaying: Bool = false { 15 + private var isLoading: Bool = true { 10 16 didSet { 11 - if isPlaying == oldValue { 17 + if isLoading == oldValue { 12 18 return 13 19 } 14 - 15 - self.onStatusChange([ 16 - "status": isPlaying ? "playing" : "paused" 20 + self.onLoadingChange([ 21 + "isLoading": isLoading 17 22 ]) 18 23 } 19 24 } 20 25 21 - var isLoading: Bool = true { 26 + private var isPlaying: Bool = false { 22 27 didSet { 23 - if isLoading == oldValue { 28 + if isPlaying == oldValue { 24 29 return 25 30 } 26 - self.onLoadingChange([ 27 - "isLoading": isLoading 31 + 32 + self.onStatusChange([ 33 + "status": isPlaying ? "playing" : "paused" 28 34 ]) 29 35 } 30 36 } 31 37 32 - var isViewActive: Bool = false { 38 + private var isViewActive: Bool = false { 33 39 didSet { 34 40 if isViewActive == oldValue { 35 41 return ··· 40 46 } 41 47 } 42 48 43 - var isFullscreen: Bool = false { 49 + private var isFullscreen: Bool = false { 44 50 didSet { 45 51 if isFullscreen { 46 52 self.pViewController?.showsPlaybackControls = isFullscreen ··· 51 57 } 52 58 } 53 59 54 - // props 55 - var autoplay: Bool = true 56 - var url: URL? = nil 57 - 58 60 // event handlers 59 - let onStatusChange = EventDispatcher() 60 - let onLoadingChange = EventDispatcher() 61 - let onError = EventDispatcher() 62 - let onMutedChange = EventDispatcher() 63 - let onTimeRemainingChange = EventDispatcher() 64 - let onActiveChange = EventDispatcher() 61 + private let onActiveChange = EventDispatcher() 62 + private let onLoadingChange = EventDispatcher() 63 + private let onMutedChange = EventDispatcher() 64 + private let onStatusChange = EventDispatcher() 65 + private let onTimeRemainingChange = EventDispatcher() 66 + private let onError = EventDispatcher() 65 67 66 - // observers 67 - var periodicTimeObserver: Any? = nil 68 + private var enteredFullScreenMuted = true 68 69 69 70 required init(appContext: AppContext? = nil) { 70 71 self.pViewController = AVPlayerViewController() ··· 74 75 75 76 // MARK: - lifecycle 76 77 77 - func playVideo() { 78 + private func setup() { 78 79 guard let url = url, self.player == nil else { 79 80 return 80 81 } ··· 117 118 self.player = player 118 119 } 119 120 120 - func removeVideo() { 121 + private func destroy() { 121 122 guard let player = self.player else { 122 123 return 123 124 } ··· 159 160 160 161 if newWindow == nil { 161 162 ViewManager.shared.remove(self) 162 - self.removeVideo() 163 + self.destroy() 163 164 } else { 164 165 ViewManager.shared.add(self) 165 166 } 166 167 } 167 168 168 169 deinit { 169 - self.removeVideo() 170 + self.destroy() 170 171 } 171 172 172 173 // MARK: - observers ··· 253 254 254 255 self.isViewActive = active 255 256 if active { 256 - self.playVideo() 257 + self.setup() 257 258 } else { 258 - self.removeVideo() 259 + self.destroy() 259 260 } 260 261 return true 261 262 }
+1 -1
ios/ViewManager.swift
··· 90 90 91 91 private func clearActiveView() { 92 92 if let currentlyActiveView = self.currentlyActiveView { 93 - currentlyActiveView.setIsCurrentlyActive(active: false) 93 + let _ = currentlyActiveView.setIsCurrentlyActive(active: false) 94 94 self.currentlyActiveView = nil 95 95 } 96 96 }