| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 | 
							- #import "RNNEventEmitter.h"
 - 
 - @implementation RNNEventEmitter {
 -   NSInteger _appLaunchedListenerCount;
 -   BOOL _appLaunchedEventDeferred;
 - }
 - 
 - RCT_EXPORT_MODULE();
 - 
 - static NSString* const onAppLaunched	= @"RNN.appLaunched";
 - static NSString* const componentDidAppear	= @"RNN.componentDidAppear";
 - static NSString* const componentDidDisappear	= @"RNN.componentDidDisappear";
 - static NSString* const onNavigationButtonPressed	= @"RNN.navigationButtonPressed";
 - static NSString* const navigationCommands	= @"RNN.navigationCommands";
 - static NSString* const componentLifecycle	= @"RNN.componentLifecycle";
 - 
 - -(NSArray<NSString *> *)supportedEvents {
 - 	return @[onAppLaunched, componentDidAppear, componentDidDisappear, onNavigationButtonPressed, navigationCommands, componentLifecycle];
 - }
 - 
 - # pragma mark public
 - 
 - -(void)sendOnAppLaunched {
 - 	if (_appLaunchedListenerCount > 0) {
 - 		[self send:onAppLaunched body:nil];
 - 	} else {
 - 		_appLaunchedEventDeferred = TRUE;
 - 	}
 - }
 - 
 - -(void)sendNavigationEvent:(RNNNavigationEvent *)navigationEvent {
 - 	[self send:navigationCommands body:navigationEvent.body];
 - }
 - 
 - -(void)sendLifecycleEvent:(RNNComponentLifecycleEvent *)navigationEvent {
 - 	[self send:componentLifecycle body:navigationEvent.body];
 - }
 - 
 - -(void)sendComponentDidAppear:(NSString *)componentId {
 - 	[self send:componentDidAppear body:componentId];
 - }
 - 
 - -(void)sendComponentDidDisappear:(NSString *)componentId {
 - 	[self send:componentDidDisappear body:componentId];
 - }
 - 
 - -(void)sendOnNavigationButtonPressed:(NSString *)componentId buttonId:(NSString*)buttonId {
 - 	[self send:onNavigationButtonPressed body:@{@"componentId":componentId , @"buttonId": buttonId }];
 - }
 - 
 - - (void)addListener:(NSString *)eventName {
 - 	[super addListener:eventName];
 - 	if ([eventName isEqualToString:onAppLaunched]) {
 - 		_appLaunchedListenerCount++;
 - 		if (_appLaunchedEventDeferred) {
 - 			_appLaunchedEventDeferred = FALSE;
 - 			[self sendOnAppLaunched];
 - 		}
 - 	}
 - }
 - 
 - # pragma mark private
 - 
 - -(void)send:(NSString *)eventName body:(id)body {
 - 	[self sendEventWithName:eventName body:body];
 - }
 - 
 - @end
 
 
  |