1 // Copyright 2015-present 650 Industries. All rights reserved. 2 3 4 import Foundation 5 6 class EXDevMenuDevSettings: NSObject { 7 8 public static func getDevSettings() -> [String: Bool] { 9 var devSettings: [String: Bool] = [:]; 10 11 devSettings["isDebuggingRemotely"] = false 12 devSettings["isElementInspectorShown"] = false; 13 devSettings["isHotLoadingEnabled"] = false; 14 devSettings["isPerfMonitorShown"] = false; 15 16 devSettings["isRemoteDebuggingAvailable"] = false; 17 devSettings["isElementInspectorAvailable"] = false; 18 devSettings["isHotLoadingAvailable"] = false; 19 devSettings["isPerfMonitorAvailable"] = false; 20 21 let manager = DevMenuManager.shared 22 23 if let bridge = manager.currentBridge, 24 let bridgeSettings = bridge.module(forName: "DevSettings") as? RCTDevSettings { 25 26 27 let perfMonitor = bridge.module(forName: "PerfMonitor") 28 let isPerfMonitorAvailable = perfMonitor != nil 29 30 devSettings["isDebuggingRemotely"] = bridgeSettings.isDebuggingRemotely; 31 devSettings["isElementInspectorShown"] = bridgeSettings.isElementInspectorShown; 32 devSettings["isHotLoadingEnabled"] = bridgeSettings.isHotLoadingEnabled; 33 devSettings["isPerfMonitorShown"] = bridgeSettings.isPerfMonitorShown; 34 devSettings["isRemoteDebuggingAvailable"] = bridgeSettings.isRemoteDebuggingAvailable 35 devSettings["isHotLoadingAvailable"] = bridgeSettings.isHotLoadingAvailable 36 devSettings["isPerfMonitorAvailable"] = isPerfMonitorAvailable 37 38 let isElementInspectorAvailable = manager.currentManifest?.isDevelopmentMode() 39 devSettings["isElementInspectorAvailable"] = isElementInspectorAvailable 40 } 41 42 return devSettings 43 } 44 45 } 46