diff --git a/android/src/main/java/com/expofp/ExpofpViewManager.kt b/android/src/main/java/com/expofp/ExpofpViewManager.kt index 6b13651..fcc5645 100644 --- a/android/src/main/java/com/expofp/ExpofpViewManager.kt +++ b/android/src/main/java/com/expofp/ExpofpViewManager.kt @@ -35,30 +35,35 @@ class ExpofpViewManager : SimpleViewManager() { @ReactProp(name = "settings") fun setSettings(view: FplanView, settingsMap: ReadableMap?) { - val context = reactContext?.applicationContext ?: return - val application = context as? Application ?: return - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { - val activity = reactContext?.currentActivity - if (activity != null) { - ActivityCompat.requestPermissions( - activity, - arrayOf(Manifest.permission.BLUETOOTH_SCAN, Manifest.permission.BLUETOOTH_CONNECT), - 2 + settingsMap?.let { + var appKey = settingsMap.getString("appKey") + val token = settingsMap.getString("token") + val secret = settingsMap.getString("secret") + if (appKey != null && token != null && secret != null) { + val context = reactContext?.applicationContext ?: return + val application = context as? Application ?: return + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { + val activity = reactContext?.currentActivity + if (activity != null) { + ActivityCompat.requestPermissions( + activity, + arrayOf(Manifest.permission.BLUETOOTH_SCAN, Manifest.permission.BLUETOOTH_CONNECT), + 2 + ) + } + } + val lpSettings = com.expofp.crowdconnected.Settings( + settingsMap.getString("appKey") ?: "", + settingsMap.getString("token") ?: "", + settingsMap.getString("secret") ?: "", + Mode.IPS_AND_GPS ) + lpSettings.setServiceNotificationInfo("Knowledge - ServiceNow is running", R.drawable.common_google_signin_btn_icon_dark); + lpSettings.setAlias("onesignal_user_id", it.getString("oneSignalUserId") ?: ""); + val locationProvider = CrowdConnectedProvider(application, lpSettings) + GlobalLocationProvider.init(locationProvider) + GlobalLocationProvider.start() } - } - settingsMap?.let { - val lpSettings = com.expofp.crowdconnected.Settings( - settingsMap.getString("appKey") ?: "", - settingsMap.getString("token") ?: "", - settingsMap.getString("secret") ?: "", - Mode.IPS_AND_GPS - ) - lpSettings.setServiceNotificationInfo("Knowledge - ServiceNow is running", R.drawable.common_google_signin_btn_icon_dark); - lpSettings.setAlias("onesignal_user_id", it.getString("oneSignalUserId") ?: ""); - val locationProvider = CrowdConnectedProvider(application, lpSettings) - GlobalLocationProvider.init(locationProvider) - GlobalLocationProvider.start() view.init(it.getString("url") ?: "", com.expofp.fplan.models.Settings().withGlobalLocationProvider()); } } diff --git a/ios/ExpofpViewManager.swift b/ios/ExpofpViewManager.swift index e44e0b6..323ad0e 100644 --- a/ios/ExpofpViewManager.swift +++ b/ios/ExpofpViewManager.swift @@ -39,23 +39,26 @@ class ExpoFPViewProxy: UIView { @objc var settings: NSDictionary = [:] { didSet { - if let url = settings["url"] as? NSString, - let appKey = settings["appKey"] as? String, - let token = settings["token"] as? String, - let secret = settings["secret"] as? String { - let ccSettings = Settings( - appKey, - token, - secret, - Mode.IPS_AND_GPS - ); - if let onesignalUserId = settings["oneSignalUserId"] as? String { - ccSettings.addAlias("onesignal_user_id", onesignalUserId) + if let url = settings["url"] as? NSString { + if let appKey = settings["appKey"] as? String, + let token = settings["token"] as? String, + let secret = settings["secret"] as? String { + let ccSettings = Settings( + appKey, + token, + secret, + Mode.IPS_AND_GPS + ); + if let onesignalUserId = settings["oneSignalUserId"] as? String { + ccSettings.addAlias("onesignal_user_id", onesignalUserId) + } + let locationProvider: LocationProvider = CrowdConnectedProvider(ccSettings); + GlobalLocationProvider.initialize(locationProvider) + GlobalLocationProvider.start() + dataStore.url = url + } else { + dataStore.url = url } - let locationProvider: LocationProvider = CrowdConnectedProvider(ccSettings); - GlobalLocationProvider.initialize(locationProvider) - GlobalLocationProvider.start() - dataStore.url = url } } }