diff --git a/ios/KSPlayerManager.m b/ios/KSPlayerManager.m index 708118a..0a9221a 100644 --- a/ios/KSPlayerManager.m +++ b/ios/KSPlayerManager.m @@ -5,11 +5,11 @@ // Created by KSPlayer integration // -#import #import #import +#import -@interface RCT_EXTERN_MODULE(KSPlayerViewManager, RCTViewManager) +@interface RCT_EXTERN_MODULE (KSPlayerViewManager, RCTViewManager) RCT_EXPORT_VIEW_PROPERTY(source, NSDictionary) RCT_EXPORT_VIEW_PROPERTY(paused, BOOL) @@ -21,6 +21,8 @@ RCT_EXPORT_VIEW_PROPERTY(allowsExternalPlayback, BOOL) RCT_EXPORT_VIEW_PROPERTY(usesExternalPlaybackWhileExternalScreenIsActive, BOOL) RCT_EXPORT_VIEW_PROPERTY(subtitleBottomOffset, NSNumber) RCT_EXPORT_VIEW_PROPERTY(subtitleFontSize, NSNumber) +RCT_EXPORT_VIEW_PROPERTY(subtitleTextColor, NSString) +RCT_EXPORT_VIEW_PROPERTY(subtitleBackgroundColor, NSString) RCT_EXPORT_VIEW_PROPERTY(resizeMode, NSString) // Event properties @@ -31,25 +33,37 @@ RCT_EXPORT_VIEW_PROPERTY(onEnd, RCTDirectEventBlock) RCT_EXPORT_VIEW_PROPERTY(onError, RCTDirectEventBlock) RCT_EXPORT_VIEW_PROPERTY(onBufferingProgress, RCTDirectEventBlock) -RCT_EXTERN_METHOD(seek:(nonnull NSNumber *)node toTime:(nonnull NSNumber *)time) -RCT_EXTERN_METHOD(setSource:(nonnull NSNumber *)node source:(nonnull NSDictionary *)source) -RCT_EXTERN_METHOD(setPaused:(nonnull NSNumber *)node paused:(BOOL)paused) -RCT_EXTERN_METHOD(setVolume:(nonnull NSNumber *)node volume:(nonnull NSNumber *)volume) -RCT_EXTERN_METHOD(setPlaybackRate:(nonnull NSNumber *)node rate:(nonnull NSNumber *)rate) -RCT_EXTERN_METHOD(setAudioTrack:(nonnull NSNumber *)node trackId:(nonnull NSNumber *)trackId) -RCT_EXTERN_METHOD(setTextTrack:(nonnull NSNumber *)node trackId:(nonnull NSNumber *)trackId) -RCT_EXTERN_METHOD(getTracks:(nonnull NSNumber *)node resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) -RCT_EXTERN_METHOD(setAllowsExternalPlayback:(nonnull NSNumber *)node allows:(BOOL)allows) -RCT_EXTERN_METHOD(setUsesExternalPlaybackWhileExternalScreenIsActive:(nonnull NSNumber *)node uses:(BOOL)uses) -RCT_EXTERN_METHOD(getAirPlayState:(nonnull NSNumber *)node resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) -RCT_EXTERN_METHOD(showAirPlayPicker:(nonnull NSNumber *)node) +RCT_EXTERN_METHOD(seek : (nonnull NSNumber *)node toTime : (nonnull NSNumber *) + time) +RCT_EXTERN_METHOD(setSource : (nonnull NSNumber *) + node source : (nonnull NSDictionary *)source) +RCT_EXTERN_METHOD(setPaused : (nonnull NSNumber *)node paused : (BOOL)paused) +RCT_EXTERN_METHOD(setVolume : (nonnull NSNumber *) + node volume : (nonnull NSNumber *)volume) +RCT_EXTERN_METHOD(setPlaybackRate : (nonnull NSNumber *) + node rate : (nonnull NSNumber *)rate) +RCT_EXTERN_METHOD(setAudioTrack : (nonnull NSNumber *) + node trackId : (nonnull NSNumber *)trackId) +RCT_EXTERN_METHOD(setTextTrack : (nonnull NSNumber *) + node trackId : (nonnull NSNumber *)trackId) +RCT_EXTERN_METHOD(getTracks : (nonnull NSNumber *)node resolve : ( + RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject) +RCT_EXTERN_METHOD(setAllowsExternalPlayback : (nonnull NSNumber *) + node allows : (BOOL)allows) +RCT_EXTERN_METHOD(setUsesExternalPlaybackWhileExternalScreenIsActive : ( + nonnull NSNumber *)node uses : (BOOL)uses) +RCT_EXTERN_METHOD(getAirPlayState : (nonnull NSNumber *)node resolve : ( + RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject) +RCT_EXTERN_METHOD(showAirPlayPicker : (nonnull NSNumber *)node) @end -@interface RCT_EXTERN_MODULE(KSPlayerModule, RCTEventEmitter) +@interface RCT_EXTERN_MODULE (KSPlayerModule, RCTEventEmitter) -RCT_EXTERN_METHOD(getTracks:(NSNumber *)nodeTag resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) -RCT_EXTERN_METHOD(getAirPlayState:(NSNumber *)nodeTag resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject) -RCT_EXTERN_METHOD(showAirPlayPicker:(NSNumber *)nodeTag) +RCT_EXTERN_METHOD(getTracks : (NSNumber *)nodeTag resolve : ( + RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject) +RCT_EXTERN_METHOD(getAirPlayState : (NSNumber *)nodeTag resolve : ( + RCTPromiseResolveBlock)resolve reject : (RCTPromiseRejectBlock)reject) +RCT_EXTERN_METHOD(showAirPlayPicker : (NSNumber *)nodeTag) @end diff --git a/ios/KSPlayerView.swift b/ios/KSPlayerView.swift index 7fe8b98..7adb103 100644 --- a/ios/KSPlayerView.swift +++ b/ios/KSPlayerView.swift @@ -9,6 +9,7 @@ import Foundation import KSPlayer import React import AVKit +import SwiftUI @objc(KSPlayerView) class KSPlayerView: UIView { @@ -98,6 +99,20 @@ class KSPlayerView: UIView { } } + @objc var subtitleTextColor: NSString = "#FFFFFF" { + didSet { + print("KSPlayerView: [PROP SETTER] subtitleTextColor setter called with value: \(subtitleTextColor)") + updateSubtitleColors() + } + } + + @objc var subtitleBackgroundColor: NSString = "rgba(0,0,0,0.7)" { + didSet { + print("KSPlayerView: [PROP SETTER] subtitleBackgroundColor setter called with value: \(subtitleBackgroundColor)") + updateSubtitleColors() + } + } + @objc var resizeMode: NSString = "contain" { didSet { print("KSPlayerView: [PROP SETTER] resizeMode setter called with value: \(resizeMode)") @@ -269,6 +284,99 @@ class KSPlayerView: UIView { } print("KSPlayerView: [FONT UPDATE] Applied subtitle font size: \(size)") } + + private func updateSubtitleColors() { + DispatchQueue.main.async { [weak self] in + guard let self = self else { return } + + // Parse and apply text color + let textColor = self.parseColor(self.subtitleTextColor as String) ?? .white + self.playerView.subtitleLabel.textColor = textColor + SubtitleModel.textColor = SwiftUI.Color(textColor) + + // Parse and apply background color + let bgColor = self.parseColor(self.subtitleBackgroundColor as String) ?? UIColor.black.withAlphaComponent(0.7) + self.playerView.subtitleBackView.backgroundColor = bgColor + SubtitleModel.textBackgroundColor = SwiftUI.Color(bgColor) + + print("KSPlayerView: [COLOR UPDATE] Applied textColor: \(self.subtitleTextColor), bgColor: \(self.subtitleBackgroundColor)") + } + } + + private func parseColor(_ colorString: String) -> UIColor? { + let trimmed = colorString.trimmingCharacters(in: .whitespaces) + + // Handle hex colors (#RGB, #RRGGBB, #RRGGBBAA) + if trimmed.hasPrefix("#") { + return parseHexColor(trimmed) + } + + // Handle rgba(r, g, b, a) format + if trimmed.lowercased().hasPrefix("rgba") { + return parseRgbaColor(trimmed) + } + + // Handle rgb(r, g, b) format + if trimmed.lowercased().hasPrefix("rgb") { + return parseRgbColor(trimmed) + } + + return nil + } + + private func parseHexColor(_ hex: String) -> UIColor? { + var hexString = hex.trimmingCharacters(in: .whitespaces).uppercased() + if hexString.hasPrefix("#") { + hexString.remove(at: hexString.startIndex) + } + + var rgbValue: UInt64 = 0 + Scanner(string: hexString).scanHexInt64(&rgbValue) + + switch hexString.count { + case 3: // RGB (12-bit) + let r = CGFloat((rgbValue & 0xF00) >> 8) / 15.0 + let g = CGFloat((rgbValue & 0x0F0) >> 4) / 15.0 + let b = CGFloat(rgbValue & 0x00F) / 15.0 + return UIColor(red: r, green: g, blue: b, alpha: 1.0) + case 6: // RRGGBB (24-bit) + let r = CGFloat((rgbValue & 0xFF0000) >> 16) / 255.0 + let g = CGFloat((rgbValue & 0x00FF00) >> 8) / 255.0 + let b = CGFloat(rgbValue & 0x0000FF) / 255.0 + return UIColor(red: r, green: g, blue: b, alpha: 1.0) + case 8: // RRGGBBAA (32-bit) + let r = CGFloat((rgbValue & 0xFF000000) >> 24) / 255.0 + let g = CGFloat((rgbValue & 0x00FF0000) >> 16) / 255.0 + let b = CGFloat((rgbValue & 0x0000FF00) >> 8) / 255.0 + let a = CGFloat(rgbValue & 0x000000FF) / 255.0 + return UIColor(red: r, green: g, blue: b, alpha: a) + default: + return nil + } + } + + private func parseRgbaColor(_ rgba: String) -> UIColor? { + let pattern = "rgba?\\s*\\(\\s*([0-9.]+)\\s*,\\s*([0-9.]+)\\s*,\\s*([0-9.]+)\\s*(?:,\\s*([0-9.]+))?\\s*\\)" + guard let regex = try? NSRegularExpression(pattern: pattern, options: .caseInsensitive), + let match = regex.firstMatch(in: rgba, range: NSRange(rgba.startIndex..., in: rgba)), + match.numberOfRanges >= 4 else { + return nil + } + + let r = CGFloat((Double((rgba as NSString).substring(with: match.range(at: 1))) ?? 0) / 255.0) + let g = CGFloat((Double((rgba as NSString).substring(with: match.range(at: 2))) ?? 0) / 255.0) + let b = CGFloat((Double((rgba as NSString).substring(with: match.range(at: 3))) ?? 0) / 255.0) + var a: CGFloat = 1.0 + if match.numberOfRanges >= 5, match.range(at: 4).location != NSNotFound { + a = CGFloat(Double((rgba as NSString).substring(with: match.range(at: 4))) ?? 1.0) + } + + return UIColor(red: r, green: g, blue: b, alpha: a) + } + + private func parseRgbColor(_ rgb: String) -> UIColor? { + return parseRgbaColor(rgb) // Same parsing works for rgb + } func setSource(_ source: NSDictionary) { currentSource = source @@ -883,10 +991,13 @@ extension KSPlayerView: KSPlayerLayerDelegate { print("KSPlayerView: [READY TO PLAY] ERROR: No subtitle data source available") } - // Determine player backend type - let uriString = currentSource?["uri"] as? String - let isMKV = uriString?.lowercased().contains(".mkv") ?? false - let playerBackend = isMKV ? "KSMEPlayer" : "KSAVPlayer" + // Determine player backend type from actual player instance + let playerBackend: String + if let _ = layer.player as? KSMEPlayer { + playerBackend = "KSMEPlayer" + } else { + playerBackend = "KSAVPlayer" + } // Send onLoad event to React Native with track information let p = layer.player diff --git a/ios/Podfile.lock b/ios/Podfile.lock index b0ab03c..284c15b 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -11,7 +11,7 @@ PODS: - ExpoModulesCore - EXNotifications (0.32.15): - ExpoModulesCore - - Expo (54.0.29): + - Expo (54.0.30): - ExpoModulesCore - hermes-engine - RCTRequired @@ -207,7 +207,7 @@ PODS: - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - - ExpoAsset (12.0.11): + - ExpoAsset (12.0.12): - ExpoModulesCore - ExpoBlur (15.0.8): - ExpoModulesCore @@ -233,7 +233,7 @@ PODS: - ExpoModulesCore - ExpoLinearGradient (15.0.8): - ExpoModulesCore - - ExpoLinking (8.0.10): + - ExpoLinking (8.0.11): - ExpoModulesCore - ExpoLocalization (17.0.8): - ExpoModulesCore @@ -322,15 +322,15 @@ PODS: - Yoga - EXUpdatesInterface (2.0.0): - ExpoModulesCore - - FBLazyVector (0.81.4) + - FBLazyVector (0.81.5-1) - FFmpegKit (6.1.0): - FFmpegKit/FFmpegKit (= 6.1.0) - FFmpegKit/FFmpegKit (6.1.0): - Libass - google-cast-sdk (4.8.4) - - hermes-engine (0.81.4): - - hermes-engine/Pre-built (= 0.81.4) - - hermes-engine/Pre-built (0.81.4) + - hermes-engine (0.81.5): + - hermes-engine/Pre-built (= 0.81.5) + - hermes-engine/Pre-built (0.81.5) - ImageColors (2.5.1): - ExpoModulesCore - KSPlayer (1.1.0): @@ -454,32 +454,31 @@ PODS: - ReactNativeDependencies - Yoga - PromisesObjC (2.4.0) - - RCTDeprecation (0.81.4) - - RCTRequired (0.81.4) - - RCTTypeSafety (0.81.4): - - FBLazyVector (= 0.81.4) - - RCTRequired (= 0.81.4) - - React-Core (= 0.81.4) + - RCTDeprecation (0.81.5-1) + - RCTRequired (0.81.5-1) + - RCTTypeSafety (0.81.5-1): + - FBLazyVector (= 0.81.5-1) + - RCTRequired (= 0.81.5-1) + - React-Core (= 0.81.5-1) - ReachabilitySwift (5.2.4) - - React (0.81.4): - - React-Core (= 0.81.4) - - React-Core/DevSupport (= 0.81.4) - - React-Core/RCTWebSocket (= 0.81.4) - - React-RCTActionSheet (= 0.81.4) - - React-RCTAnimation (= 0.81.4) - - React-RCTBlob (= 0.81.4) - - React-RCTImage (= 0.81.4) - - React-RCTLinking (= 0.81.4) - - React-RCTNetwork (= 0.81.4) - - React-RCTSettings (= 0.81.4) - - React-RCTText (= 0.81.4) - - React-RCTVibration (= 0.81.4) - - React-callinvoker (0.81.4) - - React-Core (0.81.4): + - React (0.81.5-1): + - React-Core (= 0.81.5-1) + - React-Core/DevSupport (= 0.81.5-1) + - React-Core/RCTWebSocket (= 0.81.5-1) + - React-RCTActionSheet (= 0.81.5-1) + - React-RCTAnimation (= 0.81.5-1) + - React-RCTBlob (= 0.81.5-1) + - React-RCTImage (= 0.81.5-1) + - React-RCTLinking (= 0.81.5-1) + - React-RCTNetwork (= 0.81.5-1) + - React-RCTSettings (= 0.81.5-1) + - React-RCTText (= 0.81.5-1) + - React-callinvoker (0.81.5-1) + - React-Core (0.81.5-1): - hermes-engine - RCTDeprecation - React-Core-prebuilt - - React-Core/Default (= 0.81.4) + - React-Core/Default (= 0.81.5-1) - React-cxxreact - React-featureflags - React-hermes @@ -494,9 +493,9 @@ PODS: - React-utils - ReactNativeDependencies - Yoga - - React-Core-prebuilt (0.81.4): + - React-Core-prebuilt (0.81.5-1): - ReactNativeDependencies - - React-Core/CoreModulesHeaders (0.81.4): + - React-Core/CoreModulesHeaders (0.81.5-1): - hermes-engine - RCTDeprecation - React-Core-prebuilt @@ -515,7 +514,7 @@ PODS: - React-utils - ReactNativeDependencies - Yoga - - React-Core/Default (0.81.4): + - React-Core/Default (0.81.5-1): - hermes-engine - RCTDeprecation - React-Core-prebuilt @@ -533,12 +532,12 @@ PODS: - React-utils - ReactNativeDependencies - Yoga - - React-Core/DevSupport (0.81.4): + - React-Core/DevSupport (0.81.5-1): - hermes-engine - RCTDeprecation - React-Core-prebuilt - - React-Core/Default (= 0.81.4) - - React-Core/RCTWebSocket (= 0.81.4) + - React-Core/Default (= 0.81.5-1) + - React-Core/RCTWebSocket (= 0.81.5-1) - React-cxxreact - React-featureflags - React-hermes @@ -553,7 +552,7 @@ PODS: - React-utils - ReactNativeDependencies - Yoga - - React-Core/RCTActionSheetHeaders (0.81.4): + - React-Core/RCTActionSheetHeaders (0.81.5-1): - hermes-engine - RCTDeprecation - React-Core-prebuilt @@ -572,7 +571,7 @@ PODS: - React-utils - ReactNativeDependencies - Yoga - - React-Core/RCTAnimationHeaders (0.81.4): + - React-Core/RCTAnimationHeaders (0.81.5-1): - hermes-engine - RCTDeprecation - React-Core-prebuilt @@ -591,7 +590,7 @@ PODS: - React-utils - ReactNativeDependencies - Yoga - - React-Core/RCTBlobHeaders (0.81.4): + - React-Core/RCTBlobHeaders (0.81.5-1): - hermes-engine - RCTDeprecation - React-Core-prebuilt @@ -610,7 +609,7 @@ PODS: - React-utils - ReactNativeDependencies - Yoga - - React-Core/RCTImageHeaders (0.81.4): + - React-Core/RCTImageHeaders (0.81.5-1): - hermes-engine - RCTDeprecation - React-Core-prebuilt @@ -629,7 +628,7 @@ PODS: - React-utils - ReactNativeDependencies - Yoga - - React-Core/RCTLinkingHeaders (0.81.4): + - React-Core/RCTLinkingHeaders (0.81.5-1): - hermes-engine - RCTDeprecation - React-Core-prebuilt @@ -648,7 +647,7 @@ PODS: - React-utils - ReactNativeDependencies - Yoga - - React-Core/RCTNetworkHeaders (0.81.4): + - React-Core/RCTNetworkHeaders (0.81.5-1): - hermes-engine - RCTDeprecation - React-Core-prebuilt @@ -667,7 +666,7 @@ PODS: - React-utils - ReactNativeDependencies - Yoga - - React-Core/RCTSettingsHeaders (0.81.4): + - React-Core/RCTSettingsHeaders (0.81.5-1): - hermes-engine - RCTDeprecation - React-Core-prebuilt @@ -686,7 +685,7 @@ PODS: - React-utils - ReactNativeDependencies - Yoga - - React-Core/RCTTextHeaders (0.81.4): + - React-Core/RCTTextHeaders (0.81.5-1): - hermes-engine - RCTDeprecation - React-Core-prebuilt @@ -705,7 +704,7 @@ PODS: - React-utils - ReactNativeDependencies - Yoga - - React-Core/RCTVibrationHeaders (0.81.4): + - React-Core/RCTVibrationHeaders (0.81.5-1): - hermes-engine - RCTDeprecation - React-Core-prebuilt @@ -724,11 +723,11 @@ PODS: - React-utils - ReactNativeDependencies - Yoga - - React-Core/RCTWebSocket (0.81.4): + - React-Core/RCTWebSocket (0.81.5-1): - hermes-engine - RCTDeprecation - React-Core-prebuilt - - React-Core/Default (= 0.81.4) + - React-Core/Default (= 0.81.5-1) - React-cxxreact - React-featureflags - React-hermes @@ -743,37 +742,37 @@ PODS: - React-utils - ReactNativeDependencies - Yoga - - React-CoreModules (0.81.4): - - RCTTypeSafety (= 0.81.4) + - React-CoreModules (0.81.5-1): + - RCTTypeSafety (= 0.81.5-1) - React-Core-prebuilt - - React-Core/CoreModulesHeaders (= 0.81.4) - - React-jsi (= 0.81.4) + - React-Core/CoreModulesHeaders (= 0.81.5-1) + - React-jsi (= 0.81.5-1) - React-jsinspector - React-jsinspectorcdp - React-jsinspectortracing - React-NativeModulesApple - React-RCTBlob - React-RCTFBReactNativeSpec - - React-RCTImage (= 0.81.4) + - React-RCTImage (= 0.81.5-1) - React-runtimeexecutor - ReactCommon - ReactNativeDependencies - - React-cxxreact (0.81.4): + - React-cxxreact (0.81.5-1): - hermes-engine - - React-callinvoker (= 0.81.4) + - React-callinvoker (= 0.81.5-1) - React-Core-prebuilt - - React-debug (= 0.81.4) - - React-jsi (= 0.81.4) + - React-debug (= 0.81.5-1) + - React-jsi (= 0.81.5-1) - React-jsinspector - React-jsinspectorcdp - React-jsinspectortracing - - React-logger (= 0.81.4) - - React-perflogger (= 0.81.4) + - React-logger (= 0.81.5-1) + - React-perflogger (= 0.81.5-1) - React-runtimeexecutor - - React-timing (= 0.81.4) + - React-timing (= 0.81.5-1) - ReactNativeDependencies - - React-debug (0.81.4) - - React-defaultsnativemodule (0.81.4): + - React-debug (0.81.5-1) + - React-defaultsnativemodule (0.81.5-1): - hermes-engine - React-Core-prebuilt - React-domnativemodule @@ -784,7 +783,7 @@ PODS: - React-microtasksnativemodule - React-RCTFBReactNativeSpec - ReactNativeDependencies - - React-domnativemodule (0.81.4): + - React-domnativemodule (0.81.5-1): - hermes-engine - React-Core-prebuilt - React-Fabric @@ -798,7 +797,7 @@ PODS: - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - - React-Fabric (0.81.4): + - React-Fabric (0.81.5-1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -806,23 +805,23 @@ PODS: - React-Core-prebuilt - React-cxxreact - React-debug - - React-Fabric/animations (= 0.81.4) - - React-Fabric/attributedstring (= 0.81.4) - - React-Fabric/bridging (= 0.81.4) - - React-Fabric/componentregistry (= 0.81.4) - - React-Fabric/componentregistrynative (= 0.81.4) - - React-Fabric/components (= 0.81.4) - - React-Fabric/consistency (= 0.81.4) - - React-Fabric/core (= 0.81.4) - - React-Fabric/dom (= 0.81.4) - - React-Fabric/imagemanager (= 0.81.4) - - React-Fabric/leakchecker (= 0.81.4) - - React-Fabric/mounting (= 0.81.4) - - React-Fabric/observers (= 0.81.4) - - React-Fabric/scheduler (= 0.81.4) - - React-Fabric/telemetry (= 0.81.4) - - React-Fabric/templateprocessor (= 0.81.4) - - React-Fabric/uimanager (= 0.81.4) + - React-Fabric/animations (= 0.81.5-1) + - React-Fabric/attributedstring (= 0.81.5-1) + - React-Fabric/bridging (= 0.81.5-1) + - React-Fabric/componentregistry (= 0.81.5-1) + - React-Fabric/componentregistrynative (= 0.81.5-1) + - React-Fabric/components (= 0.81.5-1) + - React-Fabric/consistency (= 0.81.5-1) + - React-Fabric/core (= 0.81.5-1) + - React-Fabric/dom (= 0.81.5-1) + - React-Fabric/imagemanager (= 0.81.5-1) + - React-Fabric/leakchecker (= 0.81.5-1) + - React-Fabric/mounting (= 0.81.5-1) + - React-Fabric/observers (= 0.81.5-1) + - React-Fabric/scheduler (= 0.81.5-1) + - React-Fabric/telemetry (= 0.81.5-1) + - React-Fabric/templateprocessor (= 0.81.5-1) + - React-Fabric/uimanager (= 0.81.5-1) - React-featureflags - React-graphics - React-jsi @@ -834,7 +833,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-Fabric/animations (0.81.4): + - React-Fabric/animations (0.81.5-1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -853,7 +852,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-Fabric/attributedstring (0.81.4): + - React-Fabric/attributedstring (0.81.5-1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -872,7 +871,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-Fabric/bridging (0.81.4): + - React-Fabric/bridging (0.81.5-1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -891,7 +890,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-Fabric/componentregistry (0.81.4): + - React-Fabric/componentregistry (0.81.5-1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -910,7 +909,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-Fabric/componentregistrynative (0.81.4): + - React-Fabric/componentregistrynative (0.81.5-1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -929,7 +928,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-Fabric/components (0.81.4): + - React-Fabric/components (0.81.5-1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -937,10 +936,10 @@ PODS: - React-Core-prebuilt - React-cxxreact - React-debug - - React-Fabric/components/legacyviewmanagerinterop (= 0.81.4) - - React-Fabric/components/root (= 0.81.4) - - React-Fabric/components/scrollview (= 0.81.4) - - React-Fabric/components/view (= 0.81.4) + - React-Fabric/components/legacyviewmanagerinterop (= 0.81.5-1) + - React-Fabric/components/root (= 0.81.5-1) + - React-Fabric/components/scrollview (= 0.81.5-1) + - React-Fabric/components/view (= 0.81.5-1) - React-featureflags - React-graphics - React-jsi @@ -952,7 +951,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-Fabric/components/legacyviewmanagerinterop (0.81.4): + - React-Fabric/components/legacyviewmanagerinterop (0.81.5-1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -971,7 +970,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-Fabric/components/root (0.81.4): + - React-Fabric/components/root (0.81.5-1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -990,7 +989,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-Fabric/components/scrollview (0.81.4): + - React-Fabric/components/scrollview (0.81.5-1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -1009,7 +1008,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-Fabric/components/view (0.81.4): + - React-Fabric/components/view (0.81.5-1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -1030,7 +1029,7 @@ PODS: - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - - React-Fabric/consistency (0.81.4): + - React-Fabric/consistency (0.81.5-1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -1049,7 +1048,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-Fabric/core (0.81.4): + - React-Fabric/core (0.81.5-1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -1068,7 +1067,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-Fabric/dom (0.81.4): + - React-Fabric/dom (0.81.5-1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -1087,7 +1086,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-Fabric/imagemanager (0.81.4): + - React-Fabric/imagemanager (0.81.5-1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -1106,7 +1105,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-Fabric/leakchecker (0.81.4): + - React-Fabric/leakchecker (0.81.5-1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -1125,7 +1124,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-Fabric/mounting (0.81.4): + - React-Fabric/mounting (0.81.5-1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -1144,7 +1143,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-Fabric/observers (0.81.4): + - React-Fabric/observers (0.81.5-1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -1152,7 +1151,7 @@ PODS: - React-Core-prebuilt - React-cxxreact - React-debug - - React-Fabric/observers/events (= 0.81.4) + - React-Fabric/observers/events (= 0.81.5-1) - React-featureflags - React-graphics - React-jsi @@ -1164,7 +1163,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-Fabric/observers/events (0.81.4): + - React-Fabric/observers/events (0.81.5-1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -1183,7 +1182,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-Fabric/scheduler (0.81.4): + - React-Fabric/scheduler (0.81.5-1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -1204,7 +1203,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-Fabric/telemetry (0.81.4): + - React-Fabric/telemetry (0.81.5-1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -1223,7 +1222,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-Fabric/templateprocessor (0.81.4): + - React-Fabric/templateprocessor (0.81.5-1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -1242,7 +1241,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-Fabric/uimanager (0.81.4): + - React-Fabric/uimanager (0.81.5-1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -1250,7 +1249,7 @@ PODS: - React-Core-prebuilt - React-cxxreact - React-debug - - React-Fabric/uimanager/consistency (= 0.81.4) + - React-Fabric/uimanager/consistency (= 0.81.5-1) - React-featureflags - React-graphics - React-jsi @@ -1263,7 +1262,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-Fabric/uimanager/consistency (0.81.4): + - React-Fabric/uimanager/consistency (0.81.5-1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -1283,7 +1282,7 @@ PODS: - React-utils - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-FabricComponents (0.81.4): + - React-FabricComponents (0.81.5-1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -1292,8 +1291,8 @@ PODS: - React-cxxreact - React-debug - React-Fabric - - React-FabricComponents/components (= 0.81.4) - - React-FabricComponents/textlayoutmanager (= 0.81.4) + - React-FabricComponents/components (= 0.81.5-1) + - React-FabricComponents/textlayoutmanager (= 0.81.5-1) - React-featureflags - React-graphics - React-jsi @@ -1306,7 +1305,7 @@ PODS: - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - - React-FabricComponents/components (0.81.4): + - React-FabricComponents/components (0.81.5-1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -1315,17 +1314,17 @@ PODS: - React-cxxreact - React-debug - React-Fabric - - React-FabricComponents/components/inputaccessory (= 0.81.4) - - React-FabricComponents/components/iostextinput (= 0.81.4) - - React-FabricComponents/components/modal (= 0.81.4) - - React-FabricComponents/components/rncore (= 0.81.4) - - React-FabricComponents/components/safeareaview (= 0.81.4) - - React-FabricComponents/components/scrollview (= 0.81.4) - - React-FabricComponents/components/switch (= 0.81.4) - - React-FabricComponents/components/text (= 0.81.4) - - React-FabricComponents/components/textinput (= 0.81.4) - - React-FabricComponents/components/unimplementedview (= 0.81.4) - - React-FabricComponents/components/virtualview (= 0.81.4) + - React-FabricComponents/components/inputaccessory (= 0.81.5-1) + - React-FabricComponents/components/iostextinput (= 0.81.5-1) + - React-FabricComponents/components/modal (= 0.81.5-1) + - React-FabricComponents/components/rncore (= 0.81.5-1) + - React-FabricComponents/components/safeareaview (= 0.81.5-1) + - React-FabricComponents/components/scrollview (= 0.81.5-1) + - React-FabricComponents/components/switch (= 0.81.5-1) + - React-FabricComponents/components/text (= 0.81.5-1) + - React-FabricComponents/components/textinput (= 0.81.5-1) + - React-FabricComponents/components/unimplementedview (= 0.81.5-1) + - React-FabricComponents/components/virtualview (= 0.81.5-1) - React-featureflags - React-graphics - React-jsi @@ -1338,7 +1337,7 @@ PODS: - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - - React-FabricComponents/components/inputaccessory (0.81.4): + - React-FabricComponents/components/inputaccessory (0.81.5-1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -1359,7 +1358,7 @@ PODS: - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - - React-FabricComponents/components/iostextinput (0.81.4): + - React-FabricComponents/components/iostextinput (0.81.5-1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -1380,7 +1379,7 @@ PODS: - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - - React-FabricComponents/components/modal (0.81.4): + - React-FabricComponents/components/modal (0.81.5-1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -1401,7 +1400,7 @@ PODS: - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - - React-FabricComponents/components/rncore (0.81.4): + - React-FabricComponents/components/rncore (0.81.5-1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -1422,7 +1421,7 @@ PODS: - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - - React-FabricComponents/components/safeareaview (0.81.4): + - React-FabricComponents/components/safeareaview (0.81.5-1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -1443,7 +1442,7 @@ PODS: - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - - React-FabricComponents/components/scrollview (0.81.4): + - React-FabricComponents/components/scrollview (0.81.5-1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -1464,7 +1463,7 @@ PODS: - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - - React-FabricComponents/components/switch (0.81.4): + - React-FabricComponents/components/switch (0.81.5-1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -1485,7 +1484,7 @@ PODS: - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - - React-FabricComponents/components/text (0.81.4): + - React-FabricComponents/components/text (0.81.5-1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -1506,7 +1505,7 @@ PODS: - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - - React-FabricComponents/components/textinput (0.81.4): + - React-FabricComponents/components/textinput (0.81.5-1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -1527,7 +1526,7 @@ PODS: - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - - React-FabricComponents/components/unimplementedview (0.81.4): + - React-FabricComponents/components/unimplementedview (0.81.5-1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -1548,7 +1547,7 @@ PODS: - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - - React-FabricComponents/components/virtualview (0.81.4): + - React-FabricComponents/components/virtualview (0.81.5-1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -1569,7 +1568,7 @@ PODS: - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - - React-FabricComponents/textlayoutmanager (0.81.4): + - React-FabricComponents/textlayoutmanager (0.81.5-1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -1590,27 +1589,27 @@ PODS: - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - - React-FabricImage (0.81.4): + - React-FabricImage (0.81.5-1): - hermes-engine - - RCTRequired (= 0.81.4) - - RCTTypeSafety (= 0.81.4) + - RCTRequired (= 0.81.5-1) + - RCTTypeSafety (= 0.81.5-1) - React-Core-prebuilt - React-Fabric - React-featureflags - React-graphics - React-ImageManager - React-jsi - - React-jsiexecutor (= 0.81.4) + - React-jsiexecutor (= 0.81.5-1) - React-logger - React-rendererdebug - React-utils - ReactCommon - ReactNativeDependencies - Yoga - - React-featureflags (0.81.4): + - React-featureflags (0.81.5-1): - React-Core-prebuilt - ReactNativeDependencies - - React-featureflagsnativemodule (0.81.4): + - React-featureflagsnativemodule (0.81.5-1): - hermes-engine - React-Core-prebuilt - React-featureflags @@ -1619,26 +1618,26 @@ PODS: - React-RCTFBReactNativeSpec - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-graphics (0.81.4): + - React-graphics (0.81.5-1): - hermes-engine - React-Core-prebuilt - React-jsi - React-jsiexecutor - React-utils - ReactNativeDependencies - - React-hermes (0.81.4): + - React-hermes (0.81.5-1): - hermes-engine - React-Core-prebuilt - - React-cxxreact (= 0.81.4) + - React-cxxreact (= 0.81.5-1) - React-jsi - - React-jsiexecutor (= 0.81.4) + - React-jsiexecutor (= 0.81.5-1) - React-jsinspector - React-jsinspectorcdp - React-jsinspectortracing - - React-perflogger (= 0.81.4) + - React-perflogger (= 0.81.5-1) - React-runtimeexecutor - ReactNativeDependencies - - React-idlecallbacksnativemodule (0.81.4): + - React-idlecallbacksnativemodule (0.81.5-1): - hermes-engine - React-Core-prebuilt - React-jsi @@ -1648,7 +1647,7 @@ PODS: - React-runtimescheduler - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-ImageManager (0.81.4): + - React-ImageManager (0.81.5-1): - React-Core-prebuilt - React-Core/Default - React-debug @@ -1657,7 +1656,7 @@ PODS: - React-rendererdebug - React-utils - ReactNativeDependencies - - React-jserrorhandler (0.81.4): + - React-jserrorhandler (0.81.5-1): - hermes-engine - React-Core-prebuilt - React-cxxreact @@ -1666,22 +1665,22 @@ PODS: - React-jsi - ReactCommon/turbomodule/bridging - ReactNativeDependencies - - React-jsi (0.81.4): + - React-jsi (0.81.5-1): - hermes-engine - React-Core-prebuilt - ReactNativeDependencies - - React-jsiexecutor (0.81.4): + - React-jsiexecutor (0.81.5-1): - hermes-engine - React-Core-prebuilt - - React-cxxreact (= 0.81.4) - - React-jsi (= 0.81.4) + - React-cxxreact (= 0.81.5-1) + - React-jsi (= 0.81.5-1) - React-jsinspector - React-jsinspectorcdp - React-jsinspectortracing - - React-perflogger (= 0.81.4) + - React-perflogger (= 0.81.5-1) - React-runtimeexecutor - ReactNativeDependencies - - React-jsinspector (0.81.4): + - React-jsinspector (0.81.5-1): - hermes-engine - React-Core-prebuilt - React-featureflags @@ -1690,43 +1689,43 @@ PODS: - React-jsinspectornetwork - React-jsinspectortracing - React-oscompat - - React-perflogger (= 0.81.4) + - React-perflogger (= 0.81.5-1) - React-runtimeexecutor - ReactNativeDependencies - - React-jsinspectorcdp (0.81.4): + - React-jsinspectorcdp (0.81.5-1): - React-Core-prebuilt - ReactNativeDependencies - - React-jsinspectornetwork (0.81.4): + - React-jsinspectornetwork (0.81.5-1): - React-Core-prebuilt - React-featureflags - React-jsinspectorcdp - React-performancetimeline - React-timing - ReactNativeDependencies - - React-jsinspectortracing (0.81.4): + - React-jsinspectortracing (0.81.5-1): - React-Core-prebuilt - React-oscompat - React-timing - ReactNativeDependencies - - React-jsitooling (0.81.4): + - React-jsitooling (0.81.5-1): - React-Core-prebuilt - - React-cxxreact (= 0.81.4) - - React-jsi (= 0.81.4) + - React-cxxreact (= 0.81.5-1) + - React-jsi (= 0.81.5-1) - React-jsinspector - React-jsinspectorcdp - React-jsinspectortracing - React-runtimeexecutor - ReactNativeDependencies - - React-jsitracing (0.81.4): + - React-jsitracing (0.81.5-1): - React-jsi - - React-logger (0.81.4): + - React-logger (0.81.5-1): - React-Core-prebuilt - ReactNativeDependencies - - React-Mapbuffer (0.81.4): + - React-Mapbuffer (0.81.5-1): - React-Core-prebuilt - React-debug - ReactNativeDependencies - - React-microtasksnativemodule (0.81.4): + - React-microtasksnativemodule (0.81.5-1): - hermes-engine - React-Core-prebuilt - React-jsi @@ -2015,7 +2014,7 @@ PODS: - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - - React-NativeModulesApple (0.81.4): + - React-NativeModulesApple (0.81.5-1): - hermes-engine - React-callinvoker - React-Core @@ -2029,20 +2028,20 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - ReactNativeDependencies - - React-oscompat (0.81.4) - - React-perflogger (0.81.4): + - React-oscompat (0.81.5-1) + - React-perflogger (0.81.5-1): - React-Core-prebuilt - ReactNativeDependencies - - React-performancetimeline (0.81.4): + - React-performancetimeline (0.81.5-1): - React-Core-prebuilt - React-featureflags - React-jsinspectortracing - React-perflogger - React-timing - ReactNativeDependencies - - React-RCTActionSheet (0.81.4): - - React-Core/RCTActionSheetHeaders (= 0.81.4) - - React-RCTAnimation (0.81.4): + - React-RCTActionSheet (0.81.5-1): + - React-Core/RCTActionSheetHeaders (= 0.81.5-1) + - React-RCTAnimation (0.81.5-1): - RCTTypeSafety - React-Core-prebuilt - React-Core/RCTAnimationHeaders @@ -2052,7 +2051,7 @@ PODS: - React-RCTFBReactNativeSpec - ReactCommon - ReactNativeDependencies - - React-RCTAppDelegate (0.81.4): + - React-RCTAppDelegate (0.81.5-1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -2080,7 +2079,7 @@ PODS: - React-utils - ReactCommon - ReactNativeDependencies - - React-RCTBlob (0.81.4): + - React-RCTBlob (0.81.5-1): - hermes-engine - React-Core-prebuilt - React-Core/RCTBlobHeaders @@ -2093,7 +2092,7 @@ PODS: - React-RCTNetwork - ReactCommon - ReactNativeDependencies - - React-RCTFabric (0.81.4): + - React-RCTFabric (0.81.5-1): - hermes-engine - React-Core - React-Core-prebuilt @@ -2122,7 +2121,7 @@ PODS: - React-utils - ReactNativeDependencies - Yoga - - React-RCTFBReactNativeSpec (0.81.4): + - React-RCTFBReactNativeSpec (0.81.5-1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -2130,10 +2129,10 @@ PODS: - React-Core-prebuilt - React-jsi - React-NativeModulesApple - - React-RCTFBReactNativeSpec/components (= 0.81.4) + - React-RCTFBReactNativeSpec/components (= 0.81.5-1) - ReactCommon - ReactNativeDependencies - - React-RCTFBReactNativeSpec/components (0.81.4): + - React-RCTFBReactNativeSpec/components (0.81.5-1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -2150,7 +2149,7 @@ PODS: - ReactCommon - ReactNativeDependencies - Yoga - - React-RCTImage (0.81.4): + - React-RCTImage (0.81.5-1): - RCTTypeSafety - React-Core-prebuilt - React-Core/RCTImageHeaders @@ -2160,14 +2159,14 @@ PODS: - React-RCTNetwork - ReactCommon - ReactNativeDependencies - - React-RCTLinking (0.81.4): - - React-Core/RCTLinkingHeaders (= 0.81.4) - - React-jsi (= 0.81.4) + - React-RCTLinking (0.81.5-1): + - React-Core/RCTLinkingHeaders (= 0.81.5-1) + - React-jsi (= 0.81.5-1) - React-NativeModulesApple - React-RCTFBReactNativeSpec - ReactCommon - - ReactCommon/turbomodule/core (= 0.81.4) - - React-RCTNetwork (0.81.4): + - ReactCommon/turbomodule/core (= 0.81.5-1) + - React-RCTNetwork (0.81.5-1): - RCTTypeSafety - React-Core-prebuilt - React-Core/RCTNetworkHeaders @@ -2179,7 +2178,7 @@ PODS: - React-RCTFBReactNativeSpec - ReactCommon - ReactNativeDependencies - - React-RCTRuntime (0.81.4): + - React-RCTRuntime (0.81.5-1): - hermes-engine - React-Core - React-Core-prebuilt @@ -2193,7 +2192,7 @@ PODS: - React-runtimeexecutor - React-RuntimeHermes - ReactNativeDependencies - - React-RCTSettings (0.81.4): + - React-RCTSettings (0.81.5-1): - RCTTypeSafety - React-Core-prebuilt - React-Core/RCTSettingsHeaders @@ -2202,10 +2201,10 @@ PODS: - React-RCTFBReactNativeSpec - ReactCommon - ReactNativeDependencies - - React-RCTText (0.81.4): - - React-Core/RCTTextHeaders (= 0.81.4) + - React-RCTText (0.81.5-1): + - React-Core/RCTTextHeaders (= 0.81.5-1) - Yoga - - React-RCTVibration (0.81.4): + - React-RCTVibration (0.81.5-1): - React-Core-prebuilt - React-Core/RCTVibrationHeaders - React-jsi @@ -2213,15 +2212,15 @@ PODS: - React-RCTFBReactNativeSpec - ReactCommon - ReactNativeDependencies - - React-rendererconsistency (0.81.4) - - React-renderercss (0.81.4): + - React-rendererconsistency (0.81.5-1) + - React-renderercss (0.81.5-1): - React-debug - React-utils - - React-rendererdebug (0.81.4): + - React-rendererdebug (0.81.5-1): - React-Core-prebuilt - React-debug - ReactNativeDependencies - - React-RuntimeApple (0.81.4): + - React-RuntimeApple (0.81.5-1): - hermes-engine - React-callinvoker - React-Core-prebuilt @@ -2244,7 +2243,7 @@ PODS: - React-runtimescheduler - React-utils - ReactNativeDependencies - - React-RuntimeCore (0.81.4): + - React-RuntimeCore (0.81.5-1): - hermes-engine - React-Core-prebuilt - React-cxxreact @@ -2260,14 +2259,14 @@ PODS: - React-runtimescheduler - React-utils - ReactNativeDependencies - - React-runtimeexecutor (0.81.4): + - React-runtimeexecutor (0.81.5-1): - React-Core-prebuilt - React-debug - React-featureflags - - React-jsi (= 0.81.4) + - React-jsi (= 0.81.5-1) - React-utils - ReactNativeDependencies - - React-RuntimeHermes (0.81.4): + - React-RuntimeHermes (0.81.5-1): - hermes-engine - React-Core-prebuilt - React-featureflags @@ -2282,7 +2281,7 @@ PODS: - React-runtimeexecutor - React-utils - ReactNativeDependencies - - React-runtimescheduler (0.81.4): + - React-runtimescheduler (0.81.5-1): - hermes-engine - React-callinvoker - React-Core-prebuilt @@ -2298,17 +2297,17 @@ PODS: - React-timing - React-utils - ReactNativeDependencies - - React-timing (0.81.4): + - React-timing (0.81.5-1): - React-debug - - React-utils (0.81.4): + - React-utils (0.81.5-1): - hermes-engine - React-Core-prebuilt - React-debug - - React-jsi (= 0.81.4) + - React-jsi (= 0.81.5-1) - ReactNativeDependencies - - ReactAppDependencyProvider (0.81.4): + - ReactAppDependencyProvider (0.81.5-1): - ReactCodegen - - ReactCodegen (0.81.4): + - ReactCodegen (0.81.5-1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -2328,43 +2327,43 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - ReactNativeDependencies - - ReactCommon (0.81.4): + - ReactCommon (0.81.5-1): - React-Core-prebuilt - - ReactCommon/turbomodule (= 0.81.4) + - ReactCommon/turbomodule (= 0.81.5-1) - ReactNativeDependencies - - ReactCommon/turbomodule (0.81.4): + - ReactCommon/turbomodule (0.81.5-1): - hermes-engine - - React-callinvoker (= 0.81.4) + - React-callinvoker (= 0.81.5-1) - React-Core-prebuilt - - React-cxxreact (= 0.81.4) - - React-jsi (= 0.81.4) - - React-logger (= 0.81.4) - - React-perflogger (= 0.81.4) - - ReactCommon/turbomodule/bridging (= 0.81.4) - - ReactCommon/turbomodule/core (= 0.81.4) + - React-cxxreact (= 0.81.5-1) + - React-jsi (= 0.81.5-1) + - React-logger (= 0.81.5-1) + - React-perflogger (= 0.81.5-1) + - ReactCommon/turbomodule/bridging (= 0.81.5-1) + - ReactCommon/turbomodule/core (= 0.81.5-1) - ReactNativeDependencies - - ReactCommon/turbomodule/bridging (0.81.4): + - ReactCommon/turbomodule/bridging (0.81.5-1): - hermes-engine - - React-callinvoker (= 0.81.4) + - React-callinvoker (= 0.81.5-1) - React-Core-prebuilt - - React-cxxreact (= 0.81.4) - - React-jsi (= 0.81.4) - - React-logger (= 0.81.4) - - React-perflogger (= 0.81.4) + - React-cxxreact (= 0.81.5-1) + - React-jsi (= 0.81.5-1) + - React-logger (= 0.81.5-1) + - React-perflogger (= 0.81.5-1) - ReactNativeDependencies - - ReactCommon/turbomodule/core (0.81.4): + - ReactCommon/turbomodule/core (0.81.5-1): - hermes-engine - - React-callinvoker (= 0.81.4) + - React-callinvoker (= 0.81.5-1) - React-Core-prebuilt - - React-cxxreact (= 0.81.4) - - React-debug (= 0.81.4) - - React-featureflags (= 0.81.4) - - React-jsi (= 0.81.4) - - React-logger (= 0.81.4) - - React-perflogger (= 0.81.4) - - React-utils (= 0.81.4) + - React-cxxreact (= 0.81.5-1) + - React-debug (= 0.81.5-1) + - React-featureflags (= 0.81.5-1) + - React-jsi (= 0.81.5-1) + - React-logger (= 0.81.5-1) + - React-perflogger (= 0.81.5-1) + - React-utils (= 0.81.5-1) - ReactNativeDependencies - - ReactNativeDependencies (0.81.4) + - ReactNativeDependencies (0.81.5) - RNCPicker (2.11.4): - hermes-engine - RCTRequired @@ -2415,7 +2414,7 @@ PODS: - SDWebImageSVGCoder (~> 1.7.0) - SDWebImageWebPCoder (~> 0.14) - Yoga - - RNGestureHandler (2.29.1): + - RNGestureHandler (2.30.0): - hermes-engine - RCTRequired - RCTTypeSafety @@ -2437,7 +2436,7 @@ PODS: - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - - RNReanimated (4.2.0): + - RNReanimated (4.2.1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -2447,7 +2446,6 @@ PODS: - React-Fabric - React-featureflags - React-graphics - - React-hermes - React-ImageManager - React-jsi - React-NativeModulesApple @@ -2459,10 +2457,10 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - ReactNativeDependencies - - RNReanimated/reanimated (= 4.2.0) + - RNReanimated/reanimated (= 4.2.1) - RNWorklets - Yoga - - RNReanimated/reanimated (4.2.0): + - RNReanimated/reanimated (4.2.1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -2472,7 +2470,6 @@ PODS: - React-Fabric - React-featureflags - React-graphics - - React-hermes - React-ImageManager - React-jsi - React-NativeModulesApple @@ -2484,10 +2481,10 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - ReactNativeDependencies - - RNReanimated/reanimated/apple (= 4.2.0) + - RNReanimated/reanimated/apple (= 4.2.1) - RNWorklets - Yoga - - RNReanimated/reanimated/apple (4.2.0): + - RNReanimated/reanimated/apple (4.2.1): - hermes-engine - RCTRequired - RCTTypeSafety @@ -2497,7 +2494,6 @@ PODS: - React-Fabric - React-featureflags - React-graphics - - React-hermes - React-ImageManager - React-jsi - React-NativeModulesApple @@ -2511,7 +2507,7 @@ PODS: - ReactNativeDependencies - RNWorklets - Yoga - - RNScreens (4.18.0): + - RNScreens (4.19.0): - hermes-engine - RCTRequired - RCTTypeSafety @@ -2533,9 +2529,9 @@ PODS: - ReactCommon/turbomodule/bridging - ReactCommon/turbomodule/core - ReactNativeDependencies - - RNScreens/common (= 4.18.0) + - RNScreens/common (= 4.19.0) - Yoga - - RNScreens/common (4.18.0): + - RNScreens/common (4.19.0): - hermes-engine - RCTRequired - RCTTypeSafety @@ -2558,7 +2554,7 @@ PODS: - ReactCommon/turbomodule/core - ReactNativeDependencies - Yoga - - RNSentry (7.7.0): + - RNSentry (7.8.0): - hermes-engine - RCTRequired - RCTTypeSafety @@ -2659,7 +2655,6 @@ PODS: - React-Fabric - React-featureflags - React-graphics - - React-hermes - React-ImageManager - React-jsi - React-NativeModulesApple @@ -2683,7 +2678,6 @@ PODS: - React-Fabric - React-featureflags - React-graphics - - React-hermes - React-ImageManager - React-jsi - React-NativeModulesApple @@ -2707,7 +2701,6 @@ PODS: - React-Fabric - React-featureflags - React-graphics - - React-hermes - React-ImageManager - React-jsi - React-NativeModulesApple @@ -3168,12 +3161,12 @@ SPEC CHECKSUMS: EXJSONUtils: 1d3e4590438c3ee593684186007028a14b3686cd EXManifests: a8d97683e5c7a3b026ffbd58559c64dc655b747b EXNotifications: 983f04ad4ad879b181179e326bf220541e478386 - Expo: 8fa2204bf8483fe546b4ec87c90d3ca189afc8db + Expo: 60c21ba34593688a2a6e8445c1f8b44abb0e3fae expo-dev-client: 425ee077d6754a98cfe3a2e2410d29b440b24c9d expo-dev-launcher: a4f4cdef064ab1fb8621e5b8c7c457cd6e9568c3 expo-dev-menu: 05b18812110c175814c6af0d09dd658abcc5e00d expo-dev-menu-interface: 600df12ea01efecdd822daaf13cc0ac091775533 - ExpoAsset: 23a958e97d3d340919fe6774db35d563241e6c03 + ExpoAsset: f867e55ceb428aab99e1e8c082b5aee7c159ea18 ExpoBlur: b90747a3f22a8b6ceffd9cb0dc41a4184efdc656 ExpoBrightness: 46c980463e8a54b9ce77f923c4bff0bb0c9526e0 ExpoClipboard: b36b287d8356887844bb08ed5c84b5979bb4dd1e @@ -3186,7 +3179,7 @@ SPEC CHECKSUMS: ExpoHaptics: d3a6375d8dcc3a1083d003bc2298ff654fafb536 ExpoKeepAwake: 55f75eca6499bb9e4231ebad6f3e9cb8f99c0296 ExpoLinearGradient: 809102bdb979f590083af49f7fa4805cd931bd58 - ExpoLinking: f4c4a351523da72a6bfa7e1f4ca92aee1043a3ca + ExpoLinking: 8f0aaf69aa56f832913030503b6263dc6f647f37 ExpoLocalization: d9168d5300a5b03e5e78b986124d11fb6ec3ebbd ExpoModulesCore: f3da4f1ab5a8375d0beafab763739dbee8446583 ExpoRandom: d1444df65007bdd4070009efd5dab18e20bf0f00 @@ -3197,10 +3190,10 @@ SPEC CHECKSUMS: EXStructuredHeaders: c951e77f2d936f88637421e9588c976da5827368 EXUpdates: f20abbc8a9f4e150656fe88126d52f52d4e7793f EXUpdatesInterface: 5adf50cb41e079c861da6d9b4b954c3db9a50734 - FBLazyVector: 9e0cd874afd81d9a4d36679daca991b58b260d42 + FBLazyVector: e3bd9d62dabc43965f6154992a1d056114598ffc FFmpegKit: 3885085fbbc320745838ee4c8a1f9c5e5953dab2 google-cast-sdk: 32f65af50d164e3c475e79ad123db3cc26fbcd37 - hermes-engine: 35c763d57c9832d0eef764316ca1c4d043581394 + hermes-engine: 9f4dfe93326146a1c99eb535b1cb0b857a3cd172 ImageColors: e12eb73e29bc1feaa3c228db8c174a1b25acb59d KSPlayer: f163ac6195f240b6fa5b8225aeb39ec811a70c62 Libass: e88af2324e1217e3a4c8bdc675f6f23a9dfc7677 @@ -3213,40 +3206,40 @@ SPEC CHECKSUMS: NitroMmkv: 4af10c70043b4c3cded3f16547627c7d9d8e3b8b NitroModules: a71a5ab2911caf79e45170e6e12475b5260a12d0 PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47 - RCTDeprecation: 7487d6dda857ccd4cb3dd6ecfccdc3170e85dcbc - RCTRequired: 54128b7df8be566881d48c7234724a78cb9b6157 - RCTTypeSafety: d2b07797a79e45d7b19e1cd2f53c79ab419fe217 + RCTDeprecation: c97d552eb1217b0853cda55c6d69178fccec2a9f + RCTRequired: ef590f878066e34a61c2c7b733afd1adb1524911 + RCTTypeSafety: d3ac73632a897ff5082036cc11a774d1db801e32 ReachabilitySwift: 32793e867593cfc1177f5d16491e3a197d2fccda - React: 2073376f47c71b7e9a0af7535986a77522ce1049 - React-callinvoker: 00fa0972a70df7408a4f088144b67207b157e386 - React-Core: d375dd308561785c739a621a21802e5e7e047dee - React-Core-prebuilt: dde79b89f8863efebb1d532a3335f472927da669 - React-CoreModules: 3eb9b1410a317987c557afc683cc50099562c91d - React-cxxreact: 724210b64158d97f150d8d254a7319e73ef77ee7 - React-debug: c01d176522cf57cdc4a4a66d1974968fcf497f32 - React-defaultsnativemodule: 3953ff49013fa997e72586628e1d218fdaf3abdb - React-domnativemodule: 540b9c7a8f31b6f4ed449aafd3a272e1f1107089 - React-Fabric: 00b792be016edad758a63c4ebac15e01d35f6355 - React-FabricComponents: 16ebdb9245d91ec27985a038d0a6460f499db54e - React-FabricImage: 2a967b5f0293c1c49ec883babfd4992d161e3583 - React-featureflags: 4150b4ddac8210b1e3c538cfb455050b5ee05d8d - React-featureflagsnativemodule: ff977040205b96818ac1f884846493cb8a2aca28 - React-graphics: ec689ac1c13a9ddb1af83baf195264676ecdbeb6 - React-hermes: ff60a3407f27f3fc82f661774a7ab6559a24ab69 - React-idlecallbacksnativemodule: 5f5ce3c424941f77da4ac3adba681149e68b1221 - React-ImageManager: 8d87296a86f9ee290c1d32c68c7be1be63492467 - React-jserrorhandler: 072756f12136284c86e96c33cdfece4d7286a99f - React-jsi: b507852b42a9125dffbf6ae7a33792fb521b29a2 - React-jsiexecutor: f970eed6debb91fe5d5d6cb5734d39cf86c59896 - React-jsinspector: 766e113e9482b22971b30236d10c04d8af38269e - React-jsinspectorcdp: 5b60350e29fe2566d9ed9799858c04b8e6095a3e - React-jsinspectornetwork: b3cc9a20c6b270f792eaaaa14313019a031b327d - React-jsinspectortracing: d99120fcf0864209c45cefbc9fc4605c8189c0ef - React-jsitooling: 9e41724cc47feadefbede31ca91d70f6ff079656 - React-jsitracing: ca020d934502de8e02cccf451501434a5e584027 - React-logger: 7b234de35acb469ce76d6bbb0457f664d6f32f62 - React-Mapbuffer: fbe1da882a187e5898bdf125e1cc6e603d27ecae - React-microtasksnativemodule: 76905804171d8ccbe69329fc84c57eb7934add7f + React: 92a1446f809fa7c7bcdda41c1a54ad89e0017a44 + React-callinvoker: 39c0d5ac818d6eadf404eee4e62f75d0025c2c10 + React-Core: feadd8d8e6729d0f0dafa3a42a2a2af946aabb12 + React-Core-prebuilt: 445601bbdad4f61b04e6700a5f9ac1339008f2f3 + React-CoreModules: 294e561dc71bf74afa51fae93b8f591524ad0286 + React-cxxreact: 87ad5e669e7f7c7e227a3501c84649fda90d3497 + React-debug: 1c38c8d6502c275c2f8d839f696b9805e244371f + React-defaultsnativemodule: a9d7ac5678a517b38099d933cd58eff87c25dee9 + React-domnativemodule: 48cf1b4a93f7874a237adb209f7e6b8e98186bc6 + React-Fabric: f2268e0235110ad04d1b744981638fe7829060b6 + React-FabricComponents: 01c5551cb67c951339c9433460ed8261f3dd57a1 + React-FabricImage: 2289ba230c7a02d695fe6edbf5275b91a75a8079 + React-featureflags: e02e58bc2ef9cf80446cb2fafc8d055d60c8868e + React-featureflagsnativemodule: bfb06b3d4432463854631d3077bf4ec29247e5a9 + React-graphics: 87c7828c015376735e22559633dee466fe5ec45d + React-hermes: 74af9967b7e42328dd38c609d01992490ba3d887 + React-idlecallbacksnativemodule: 2679e8974ba51bc56cc4afa4825705d8912b93bc + React-ImageManager: 5d94df8edcf911ee7b8efedb84538e77b4d70f13 + React-jserrorhandler: bf142b4e67fa2d97521995c4828e72a0fce6dbfa + React-jsi: 730e883e5ce7a121bc6348468588e3836dd38a71 + React-jsiexecutor: 62a889ae9ed65e935c4240f51d91524da9a21f2e + React-jsinspector: 6ee33caa2480cedd27b25360d6db857f16af856b + React-jsinspectorcdp: 7c8999d4da83202e08ea10db15cd25959f761cd3 + React-jsinspectornetwork: 4398b49075d4f739c552625f99198e2737c2f739 + React-jsinspectortracing: 717aae03a53ee69a1adbece868ca7d76d999089b + React-jsitooling: fd4f06933579dc7007bc1055d8195d619b94adfb + React-jsitracing: 2c5d821c00e06b98cb9c90d37eb67d2daaec368d + React-logger: dbca0908736a33fe644a2c9386ad8d1beb0b8ef7 + React-Mapbuffer: d220434732585e8248b6a372d7a42c8de9977a0c + React-microtasksnativemodule: 440bf89a912112f3167e979cf1ff97a95a8d816d react-native-blur: 1b00ef07fe0efdc0c40b37139a5268ccad73c72d react-native-bottom-tabs: bcb70e4fae95fc9da0da875f7414acda26dfc551 react-native-device-brightness: 1a997350d060c3df9f303b1df84a4f7c5cbeb924 @@ -3256,53 +3249,53 @@ SPEC CHECKSUMS: react-native-safe-area-context: 37e680fc4cace3c0030ee46e8987d24f5d3bdab2 react-native-slider: f954578344106f0a732a4358ce3a3e11015eb6e1 react-native-video: f5982e21efab0dc356d92541a8a9e19581307f58 - React-NativeModulesApple: a9464983ccc0f66f45e93558671f60fc7536e438 - React-oscompat: 73db7dbc80edef36a9d6ed3c6c4e1724ead4236d - React-perflogger: 123272debf907cc423962adafcf4513320e43757 - React-performancetimeline: 095146e4dc8fa4568e44d7a9debc134f27e103f9 - React-RCTActionSheet: 9fc2a0901af63cefe09c8df95a08c2cf8bb7797b - React-RCTAnimation: 785e743e489bc7aec14415dbc15f4f275b2c0276 - React-RCTAppDelegate: 0602c9e13130edcde4661ea66d11122a3a66f11a - React-RCTBlob: ae53b7508a5ced43378de2a88816f63423df1f24 - React-RCTFabric: 687a0cfb5726adea7fac63560b04410c86d97134 - React-RCTFBReactNativeSpec: 7c55cf4fb4d2baad32ce3850b8504a6ee22e11ce - React-RCTImage: f45474c75cdf1526114f75b27e86d004aa171b90 - React-RCTLinking: 56622ff97570e15e01dd9b5a657010c756a9e2d8 - React-RCTNetwork: 3fffa1ab5d6981f839e7679d56f8cb731ba92c07 - React-RCTRuntime: f38c04f744596fc8e1b4c5f6a57fc05c26955257 - React-RCTSettings: f4a8e1bd36f58ec8273c73d3deefdcf90143ac6a - React-RCTText: da852a51dd1d169b38136a4f4d1eaed35376556b - React-RCTVibration: ff92ef336e32e18efff0fa83c798a2dbbebe09bd - React-rendererconsistency: b83b300e607f4e30478a5c3365e260a760232b04 - React-renderercss: aa6a3cdd4fa4e3726123c42b49ba4dd978f81688 - React-rendererdebug: 6b12a782caf2e7e2f730434264357b7b6aed1781 - React-RuntimeApple: 8934aab108dcab957a87208fef4b6f1b3a04973a - React-RuntimeCore: 1d4345561ecc402e9e88b38e1d9b059a7a13b113 - React-runtimeexecutor: a9a059f222e4d78f45a4e92cada48a5fde989fb8 - React-RuntimeHermes: 05b955709a75038d282a9420342d7bea5857768a - React-runtimescheduler: 4ce23c9157b51101092537d4171ea4de48a5b863 - React-timing: 62441edf291b91ab5b96ab8f2f8fb648c063ce6f - React-utils: 485abe7eaefa04b20e0ef442593e022563a1419b - ReactAppDependencyProvider: 433ddfb4536948630aadd5bd925aff8a632d2fe3 - ReactCodegen: a15ad48730e9fb2a51a4c9f61fe1ed253dfcf10f - ReactCommon: 149b6c05126f2e99f2ed0d3c63539369546f8cae - ReactNativeDependencies: ed6d1e64802b150399f04f1d5728ec16b437251e + React-NativeModulesApple: 4cfc966da0aa742a2fef4245f71e0c0b1e046156 + React-oscompat: ef6373c7b79c55f1a5c29ac5806083a07fa1bef2 + React-perflogger: 6b34dac43be92bc246da12992783f826ba90a11a + React-performancetimeline: 29f28d73ec84f33a53fe31b306a5b973abf64113 + React-RCTActionSheet: c304388754cc4982cc6055d15fafd17dda6e11fd + React-RCTAnimation: afe48cba05f5947cf9e7dbf6d9b388a6b1675dd0 + React-RCTAppDelegate: 4cb62a4521ea986fc89d4d9c7a2012b1913ecddb + React-RCTBlob: 09ad0556a2263040cbcd861daa40aaec46d72bcf + React-RCTFabric: 5d9599eb6bb906fa8f395bb5cf67f7cecd507b3d + React-RCTFBReactNativeSpec: 9d2d68ec1d7cd3bcbf55485f8e968b7f306d6a97 + React-RCTImage: 206c3cef265c4341f0c5721b1b3e127b7925c703 + React-RCTLinking: 8e2e281f537d59c2af8dcbda660c0dc31f2875a7 + React-RCTNetwork: 6f99734c8eb27963aa0087c96e2e2f5f879c65bc + React-RCTRuntime: 8c1526af8537d5757d432f8c2767d9159e600577 + React-RCTSettings: 557882c7e1d9f2f58abe876438b103455a8c4346 + React-RCTText: a191ac4e046c706fb4d8edc1f15c390e2236ce32 + React-RCTVibration: b2c1f5f8d88dabb90f63bb7577df128d18ebabea + React-rendererconsistency: 9cc22d4c6697faf3be280158cab5b0ad10027695 + React-renderercss: 4ff2251ad2ad9d82bb4e6297837e7a16c446a7d4 + React-rendererdebug: 21050913b10ae9e409ae2caf517fe720a1af7c38 + React-RuntimeApple: a7198151b2edcaa66be6d2c8ee99882b309432b2 + React-RuntimeCore: 814fbe3df2c48c6507975611c1ae553dca087341 + React-runtimeexecutor: 591ab9d6dd40127c36f41bd909aef3a94bb0e9ff + React-RuntimeHermes: 135878258380eb30413dec9e85be0f4dddac3af3 + React-runtimescheduler: 794dfc2ebeca17b7210cc196cb2642a457d6c6d0 + React-timing: 5cedf36662a0cb18fa3626960a9aba8026e51d1d + React-utils: e8442537c170153fdeec6aa7c2eea20f586ba4ed + ReactAppDependencyProvider: 6ff94ffb10200bcd4bb1b10fc19ea6233ddd1a19 + ReactCodegen: e38db9908bcbec927d2972f4c4d41adbb762f604 + ReactCommon: 261e5c547e5493dfcefe7bd1b42d5138a0d2109f + ReactNativeDependencies: 850e320d56efc7ebca2afc5c158d7d2a6bd0ced4 RNCPicker: c8a3584b74133464ee926224463fcc54dfdaebca RNFastImage: 2d36f4cfed9b2342f94f8591c8be69dd047ac67c - RNGestureHandler: 723f29dac55e25f109d263ed65cecc4b9c4bd46a - RNReanimated: e1c71e6e693a66b203ae98773347b625d3cc85ee - RNScreens: 61c18865ab074f4d995ac8d7cf5060522a649d05 - RNSentry: 1d7b9fdae7a01ad8f9053335b5d44e75c39a955e + RNGestureHandler: e0d0bce5599f6120b7adf90c38d2805e2935795f + RNReanimated: fba6c32ffc3756f19cc69a16ce15774483678675 + RNScreens: 6f7a6128b0d33ce66e60309b6c998a2235abe1f3 + RNSentry: d32cbfc5b5a7cbefbcf51daa5bf00587d1298049 RNSVG: cf9ae78f2edf2988242c71a6392d15ff7dd62522 RNVectorIcons: 4351544f100d4f12cac156a7c13399e60bab3e26 - RNWorklets: 9eb6d567fa43984e96b6924a6df504b8a15980cd + RNWorklets: fec716511182211b2d1ddd0815c4c513a237ada2 SDWebImage: e9c98383c7572d713c1a0d7dd2783b10599b9838 SDWebImageAVIFCoder: afe194a084e851f70228e4be35ef651df0fc5c57 SDWebImageSVGCoder: 15a300a97ec1c8ac958f009c02220ac0402e936c SDWebImageWebPCoder: 0e06e365080397465cc73a7a9b472d8a3bd0f377 Sentry: c643eb180df401dd8c734c5036ddd9dd9218daa6 SwiftUIIntrospect: fee9aa07293ee280373a591e1824e8ddc869ba5d - Yoga: 051f086b5ccf465ff2ed38a2cf5a558ae01aaaa1 + Yoga: 5b6d2edfffe99b1a19b8ea468a7fd6125f1d004c PODFILE CHECKSUM: 7c74c9cd2c7f3df7ab68b4284d9f324282e54542 diff --git a/src/components/metadata/RatingsSection.tsx b/src/components/metadata/RatingsSection.tsx index 354f56f..1ff2c6b 100644 --- a/src/components/metadata/RatingsSection.tsx +++ b/src/components/metadata/RatingsSection.tsx @@ -204,15 +204,15 @@ export const RatingsSection: React.FC = ({ imdbId, type }) // Priority: IMDB, TMDB, Tomatoes, Metacritic const priorityOrder = ['imdb', 'tmdb', 'tomatoes', 'metacritic', 'trakt', 'letterboxd', 'audience']; const displayRatings = priorityOrder - .filter(source => - source in ratings && + .filter(source => + source in ratings && ratings[source as keyof typeof ratings] !== undefined && (enabledProviders[source] ?? true) // Show by default if setting not found ) .map(source => [source, ratings[source as keyof typeof ratings]!]); return ( - = ({ imdbId, type }) {displayRatings.map(([source, value]) => { const config = ratingConfig[source as keyof typeof ratingConfig]; const displayValue = config.transform(parseFloat(value as string)); - + return ( {config.isImage ? ( - void; onProgress?: (data: any) => void; @@ -56,6 +58,8 @@ export interface KSPlayerProps { usesExternalPlaybackWhileExternalScreenIsActive?: boolean; subtitleBottomOffset?: number; subtitleFontSize?: number; + subtitleTextColor?: string; + subtitleBackgroundColor?: string; resizeMode?: 'contain' | 'cover' | 'stretch'; onLoad?: (data: any) => void; onProgress?: (data: any) => void; @@ -204,6 +208,8 @@ const KSPlayer = forwardRef((props, ref) => { usesExternalPlaybackWhileExternalScreenIsActive={props.usesExternalPlaybackWhileExternalScreenIsActive} subtitleBottomOffset={props.subtitleBottomOffset} subtitleFontSize={props.subtitleFontSize} + subtitleTextColor={props.subtitleTextColor} + subtitleBackgroundColor={props.subtitleBackgroundColor} resizeMode={props.resizeMode} onLoad={(e: any) => props.onLoad?.(e?.nativeEvent ?? e)} onProgress={(e: any) => props.onProgress?.(e?.nativeEvent ?? e)} diff --git a/src/components/player/KSPlayerCore.tsx b/src/components/player/KSPlayerCore.tsx index af8a017..fb7a83e 100644 --- a/src/components/player/KSPlayerCore.tsx +++ b/src/components/player/KSPlayerCore.tsx @@ -546,6 +546,10 @@ const KSPlayerCore: React.FC = () => { screenWidth={screenDimensions.width} screenHeight={screenDimensions.height} customVideoStyles={{ width: '100%', height: '100%' }} + subtitleTextColor={customSubs.subtitleTextColor} + subtitleBackgroundColor={customSubs.subtitleBackground ? `rgba(0,0,0,${customSubs.subtitleBgOpacity})` : 'transparent'} + subtitleFontSize={customSubs.subtitleSize} + subtitleBottomOffset={customSubs.subtitleBottomOffset} /> {/* Custom Subtitles Overlay */} diff --git a/src/components/player/ios/components/KSPlayerSurface.tsx b/src/components/player/ios/components/KSPlayerSurface.tsx index 4af5ab5..52bf7f9 100644 --- a/src/components/player/ios/components/KSPlayerSurface.tsx +++ b/src/components/player/ios/components/KSPlayerSurface.tsx @@ -36,6 +36,12 @@ interface KSPlayerSurfaceProps { screenWidth: number; screenHeight: number; customVideoStyles: any; + + // Subtitle styling + subtitleTextColor?: string; + subtitleBackgroundColor?: string; + subtitleFontSize?: number; + subtitleBottomOffset?: number; } export const KSPlayerSurface: React.FC = ({ @@ -64,7 +70,11 @@ export const KSPlayerSurface: React.FC = ({ onPlaybackResume, screenWidth, screenHeight, - customVideoStyles + customVideoStyles, + subtitleTextColor, + subtitleBackgroundColor, + subtitleFontSize, + subtitleBottomOffset }) => { const pinchRef = useRef(null); @@ -132,6 +142,10 @@ export const KSPlayerSurface: React.FC = ({ resizeMode={resizeMode} audioTrack={audioTrack} textTrack={textTrack} + subtitleTextColor={subtitleTextColor} + subtitleBackgroundColor={subtitleBackgroundColor} + subtitleFontSize={subtitleFontSize} + subtitleBottomOffset={subtitleBottomOffset} onLoad={handleLoad} onProgress={onProgress} onBuffering={handleBuffering} diff --git a/src/components/player/modals/SubtitleModals.tsx b/src/components/player/modals/SubtitleModals.tsx index a1d1a70..cc2539d 100644 --- a/src/components/player/modals/SubtitleModals.tsx +++ b/src/components/player/modals/SubtitleModals.tsx @@ -94,6 +94,8 @@ export const SubtitleModals: React.FC = ({ const [activeTab, setActiveTab] = React.useState<'built-in' | 'addon' | 'appearance'>('built-in'); const isCompact = width < 360 || height < 640; + // Internal subtitle is active when a built-in track is selected AND not using custom/addon subtitles + const isUsingInternalSubtitle = selectedTextTrack >= 0 && !useCustomSubtitles; const sectionPad = isCompact ? 12 : 16; const chipPadH = isCompact ? 8 : 12; const chipPadV = isCompact ? 6 : 8; @@ -363,64 +365,72 @@ export const SubtitleModals: React.FC = ({ - - Text Shadow - setSubtitleTextShadow(!subtitleTextShadow)} style={{ paddingHorizontal: 10, paddingVertical: 8, borderRadius: 10, backgroundColor: subtitleTextShadow ? 'rgba(255,255,255,0.18)' : 'rgba(255,255,255,0.08)', borderWidth: 1, borderColor: 'rgba(255,255,255,0.15)', alignItems: 'center' }}> - {subtitleTextShadow ? 'On' : 'Off'} - - - - Outline Color - - {['#000000', '#FFFFFF', '#00E5FF', '#FF5C5C'].map(c => ( - setSubtitleOutlineColor(c)} style={{ width: 22, height: 22, borderRadius: 11, backgroundColor: c, borderWidth: 2, borderColor: subtitleOutlineColor === c ? '#fff' : 'rgba(255,255,255,0.3)' }} /> - ))} - - - - Outline Width - - setSubtitleOutlineWidth(Math.max(0, subtitleOutlineWidth - 1))} style={{ width: controlBtn.size, height: controlBtn.size, borderRadius: controlBtn.radius, backgroundColor: 'rgba(255,255,255,0.18)', alignItems: 'center', justifyContent: 'center' }}> - - - - {subtitleOutlineWidth} - - setSubtitleOutlineWidth(subtitleOutlineWidth + 1)} style={{ width: controlBtn.size, height: controlBtn.size, borderRadius: controlBtn.radius, backgroundColor: 'rgba(255,255,255,0.18)', alignItems: 'center', justifyContent: 'center' }}> - + {!isUsingInternalSubtitle && ( + + Text Shadow + setSubtitleTextShadow(!subtitleTextShadow)} style={{ paddingHorizontal: 10, paddingVertical: 8, borderRadius: 10, backgroundColor: subtitleTextShadow ? 'rgba(255,255,255,0.18)' : 'rgba(255,255,255,0.08)', borderWidth: 1, borderColor: 'rgba(255,255,255,0.15)', alignItems: 'center' }}> + {subtitleTextShadow ? 'On' : 'Off'} - - - - Letter Spacing - - setSubtitleLetterSpacing(Math.max(0, +(subtitleLetterSpacing - 0.5).toFixed(1)))} style={{ width: controlBtn.size, height: controlBtn.size, borderRadius: controlBtn.radius, backgroundColor: 'rgba(255,255,255,0.18)', alignItems: 'center', justifyContent: 'center' }}> - - - - {subtitleLetterSpacing.toFixed(1)} + )} + {!isUsingInternalSubtitle && ( + <> + + Outline Color + + {['#000000', '#FFFFFF', '#00E5FF', '#FF5C5C'].map(c => ( + setSubtitleOutlineColor(c)} style={{ width: 22, height: 22, borderRadius: 11, backgroundColor: c, borderWidth: 2, borderColor: subtitleOutlineColor === c ? '#fff' : 'rgba(255,255,255,0.3)' }} /> + ))} + + + + Outline Width + + setSubtitleOutlineWidth(Math.max(0, subtitleOutlineWidth - 1))} style={{ width: controlBtn.size, height: controlBtn.size, borderRadius: controlBtn.radius, backgroundColor: 'rgba(255,255,255,0.18)', alignItems: 'center', justifyContent: 'center' }}> + + + + {subtitleOutlineWidth} + + setSubtitleOutlineWidth(subtitleOutlineWidth + 1)} style={{ width: controlBtn.size, height: controlBtn.size, borderRadius: controlBtn.radius, backgroundColor: 'rgba(255,255,255,0.18)', alignItems: 'center', justifyContent: 'center' }}> + + + + + + )} + {!isUsingInternalSubtitle && ( + + + Letter Spacing + + setSubtitleLetterSpacing(Math.max(0, +(subtitleLetterSpacing - 0.5).toFixed(1)))} style={{ width: controlBtn.size, height: controlBtn.size, borderRadius: controlBtn.radius, backgroundColor: 'rgba(255,255,255,0.18)', alignItems: 'center', justifyContent: 'center' }}> + + + + {subtitleLetterSpacing.toFixed(1)} + + setSubtitleLetterSpacing(+(subtitleLetterSpacing + 0.5).toFixed(1))} style={{ width: controlBtn.size, height: controlBtn.size, borderRadius: controlBtn.radius, backgroundColor: 'rgba(255,255,255,0.18)', alignItems: 'center', justifyContent: 'center' }}> + + + + + + Line Height + + setSubtitleLineHeightMultiplier(Math.max(1, +(subtitleLineHeightMultiplier - 0.1).toFixed(1)))} style={{ width: controlBtn.size, height: controlBtn.size, borderRadius: controlBtn.radius, backgroundColor: 'rgba(255,255,255,0.18)', alignItems: 'center', justifyContent: 'center' }}> + + + + {subtitleLineHeightMultiplier.toFixed(1)} + + setSubtitleLineHeightMultiplier(+(subtitleLineHeightMultiplier + 0.1).toFixed(1))} style={{ width: controlBtn.size, height: controlBtn.size, borderRadius: controlBtn.radius, backgroundColor: 'rgba(255,255,255,0.18)', alignItems: 'center', justifyContent: 'center' }}> + + - setSubtitleLetterSpacing(+(subtitleLetterSpacing + 0.5).toFixed(1))} style={{ width: controlBtn.size, height: controlBtn.size, borderRadius: controlBtn.radius, backgroundColor: 'rgba(255,255,255,0.18)', alignItems: 'center', justifyContent: 'center' }}> - - - - Line Height - - setSubtitleLineHeightMultiplier(Math.max(1, +(subtitleLineHeightMultiplier - 0.1).toFixed(1)))} style={{ width: controlBtn.size, height: controlBtn.size, borderRadius: controlBtn.radius, backgroundColor: 'rgba(255,255,255,0.18)', alignItems: 'center', justifyContent: 'center' }}> - - - - {subtitleLineHeightMultiplier.toFixed(1)} - - setSubtitleLineHeightMultiplier(+(subtitleLineHeightMultiplier + 0.1).toFixed(1))} style={{ width: controlBtn.size, height: controlBtn.size, borderRadius: controlBtn.radius, backgroundColor: 'rgba(255,255,255,0.18)', alignItems: 'center', justifyContent: 'center' }}> - - - - - + )} Timing Offset (s)