Merge pull request #85 from rnplay/rn-0.10-customevents-fix

RN 0.10 compatibility: switch to returning an array from customDirectEventTypes
This commit is contained in:
Brent Vatne 2015-08-23 20:23:03 -07:00
commit e22eae417d
3 changed files with 15 additions and 41 deletions

View File

@ -1,12 +1,5 @@
#import "RCTView.h"
extern NSString *const RNVideoEventLoaded;
extern NSString *const RNVideoEventLoading;
extern NSString *const RNVideoEventProgress;
extern NSString *const RNVideoEventSeek;
extern NSString *const RNVideoEventLoadingError;
extern NSString *const RNVideoEventEnd;
@class RCTEventDispatcher;
@interface RCTVideo : UIView

View File

@ -5,13 +5,6 @@
#import "UIView+React.h"
#import <AVFoundation/AVFoundation.h>
NSString *const RNVideoEventLoaded = @"videoLoaded";
NSString *const RNVideoEventLoading = @"videoLoading";
NSString *const RNVideoEventProgress = @"videoProgress";
NSString *const RNVideoEventSeek = @"videoSeek";
NSString *const RNVideoEventLoadingError = @"videoLoadError";
NSString *const RNVideoEventEnd = @"videoEnd";
static NSString *const statusKeyPath = @"status";
static NSString *const playbackLikelyToKeepUpKeyPath = @"playbackLikelyToKeepUp";
@ -101,7 +94,7 @@ static NSString *const playbackLikelyToKeepUpKeyPath = @"playbackLikelyToKeepUp"
}
if (_prevProgressUpdateTime == nil || (([_prevProgressUpdateTime timeIntervalSinceNow] * -1000.0) >= _progressUpdateInterval)) {
[_eventDispatcher sendInputEventWithName:RNVideoEventProgress
[_eventDispatcher sendInputEventWithName:@"onVideoProgress"
body:@{@"currentTime": [NSNumber numberWithFloat:CMTimeGetSeconds(video.currentTime)],
@"playableDuration": [self calculatePlayableDuration],
@"target": self.reactTag}];
@ -192,7 +185,7 @@ static NSString *const playbackLikelyToKeepUpKeyPath = @"playbackLikelyToKeepUp"
[self.layer addSublayer:_playerLayer];
self.layer.needsDisplayOnBoundsChange = YES;
[_eventDispatcher sendInputEventWithName:RNVideoEventLoading
[_eventDispatcher sendInputEventWithName:@"onVideoLoadStart"
body:@{@"src": @{
@"uri": [source objectForKey:@"uri"],
@"type": [source objectForKey:@"type"],
@ -232,7 +225,7 @@ static NSString *const playbackLikelyToKeepUpKeyPath = @"playbackLikelyToKeepUp"
duration = 0.0;
}
[_eventDispatcher sendInputEventWithName:RNVideoEventLoaded
[_eventDispatcher sendInputEventWithName:@"onVideoLoad"
body:@{@"duration": [NSNumber numberWithFloat:duration],
@"currentTime": [NSNumber numberWithFloat:CMTimeGetSeconds(_playerItem.currentTime)],
@"canPlayReverse": [NSNumber numberWithBool:_playerItem.canPlayReverse],
@ -247,7 +240,7 @@ static NSString *const playbackLikelyToKeepUpKeyPath = @"playbackLikelyToKeepUp"
[self attachListeners];
[self applyModifiers];
} else if(_playerItem.status == AVPlayerItemStatusFailed) {
[_eventDispatcher sendInputEventWithName:RNVideoEventLoadingError
[_eventDispatcher sendInputEventWithName:@"onVideoError"
body:@{@"error": @{
@"code": [NSNumber numberWithInteger: _playerItem.error.code],
@"domain": _playerItem.error.domain},
@ -275,7 +268,7 @@ static NSString *const playbackLikelyToKeepUpKeyPath = @"playbackLikelyToKeepUp"
- (void)playerItemDidReachEnd:(NSNotification *)notification
{
[_eventDispatcher sendInputEventWithName:RNVideoEventEnd body:@{@"target": self.reactTag}];
[_eventDispatcher sendInputEventWithName:@"onVideoEnd" body:@{@"target": self.reactTag}];
if (_repeat) {
AVPlayerItem *item = [notification object];
@ -320,7 +313,7 @@ static NSString *const playbackLikelyToKeepUpKeyPath = @"playbackLikelyToKeepUp"
if (CMTimeCompare(current, cmSeekTime) != 0) {
[_player seekToTime:cmSeekTime toleranceBefore:tolerance toleranceAfter:tolerance completionHandler:^(BOOL finished) {
[_eventDispatcher sendInputEventWithName:RNVideoEventSeek
[_eventDispatcher sendInputEventWithName:@"onVideoSeek"
body:@{@"currentTime": [NSNumber numberWithFloat:CMTimeGetSeconds(item.currentTime)],
@"seekTime": [NSNumber numberWithFloat:seekTime],
@"target": self.reactTag}];

View File

@ -16,28 +16,16 @@ RCT_EXPORT_MODULE();
/* Should support: onLoadStart, onLoad, and onError to stay consistent with Image */
- (NSDictionary *)customDirectEventTypes
- (NSArray *)customDirectEventTypes
{
return @{
RNVideoEventLoading: @{
@"registrationName": @"onVideoLoadStart"
},
RNVideoEventLoaded: @{
@"registrationName": @"onVideoLoad"
},
RNVideoEventLoadingError: @{
@"registrationName": @"onVideoError"
},
RNVideoEventProgress: @{
@"registrationName": @"onVideoProgress"
},
RNVideoEventSeek: @{
@"registrationName": @"onVideoSeek"
},
RNVideoEventEnd: @{
@"registrationName": @"onVideoEnd"
}
};
return @[
@"onVideoLoadStart",
@"onVideoLoad",
@"onVideoError",
@"onVideoProgress",
@"onVideoSeek",
@"onVideoEnd"
];
}
- (dispatch_queue_t)methodQueue