1// Copyright 2015-present 650 Industries. All rights reserved. 2 3#import "EXDevSettings.h" 4#import "EXDevSettingsDataSource.h" 5 6// redefined from RCTDevMenu.mm 7NSString *const kRCTDevSettingShakeToShowDevMenu = @"shakeToShow"; 8NSString *const kRCTDevSettingLiveReloadEnabled = @"liveReloadEnabled"; 9NSString *const kRCTDevSettingHotLoadingEnabled = @"hotLoadingEnabled"; 10 11@implementation EXDevSettings 12 13+ (NSString *)moduleName { return @"RCTDevSettings"; } 14 15- (instancetype)initWithScopeKey:(NSString *)scopeKey isDevelopment:(BOOL)isDevelopment 16{ 17 NSDictionary *defaultValues = @{ 18 kRCTDevSettingShakeToShowDevMenu: @YES, 19 kRCTDevSettingHotLoadingEnabled: @YES, 20 kRCTDevSettingLiveReloadEnabled: @NO, 21 }; 22 EXDevSettingsDataSource *dataSource = [[EXDevSettingsDataSource alloc] initWithDefaultValues:defaultValues 23 forScopeKey:scopeKey 24 isDevelopment:isDevelopment]; 25 return [super initWithDataSource:dataSource]; 26} 27 28- (NSArray<NSString *> *)supportedEvents 29{ 30 return [super supportedEvents]; 31} 32 33- (BOOL)isRemoteDebuggingAvailable 34{ 35 NSString *bridgeDescription = [self.bridge valueForKey:@"_bridgeDescription"]; 36 BOOL isHermesRuntime = [bridgeDescription containsString:@"HermesRuntime"]; 37 if (isHermesRuntime) { 38 // Disable remote debugging when running on Hermes 39 return NO; 40 } 41 return [super isRemoteDebuggingAvailable]; 42} 43 44@end 45