@@ -241,36 +241,27 @@ open class RemoteConfig: NSObject, NSFastEnumeration {
241241 }
242242
243243 /// Last successful fetch completion time.
244- @objc public var lastFetchTime : Date ? {
245- var fetchTime : Date ?
244+ @objc public var lastFetchTime : Date {
246245 queue. sync {
247246 let lastFetchTimeInterval = self . settings. lastFetchTimeInterval
248- if lastFetchTimeInterval > 0 {
249- fetchTime = Date ( timeIntervalSince1970: lastFetchTimeInterval)
250- }
247+ return Date ( timeIntervalSince1970: lastFetchTimeInterval)
251248 }
252- return fetchTime
253249 }
254250
255251 /// Last fetch status. The status can be any enumerated value from `RemoteConfigFetchStatus`.
256252 @objc public var lastFetchStatus : RemoteConfigFetchStatus {
257- var currentStatus : RemoteConfigFetchStatus = . noFetchYet
258253 queue. sync {
259- currentStatus = self . configFetch. settings. lastFetchStatus
254+ self . configFetch. settings. lastFetchStatus
260255 }
261- return currentStatus
262256 }
263257
264258 /// Config settings are custom settings.
265259 @objc public var configSettings : RemoteConfigSettings {
266260 get {
267261 // These properties *must* be accessed and returned on the lock queue
268262 // to ensure thread safety.
269- var minimumFetchInterval : TimeInterval = ConfigConstants . defaultMinimumFetchInterval
270- var fetchTimeout : TimeInterval = ConfigConstants . httpDefaultConnectionTimeout
271- queue. sync {
272- minimumFetchInterval = self . settings. minimumFetchInterval
273- fetchTimeout = self . settings. fetchTimeout
263+ let ( minimumFetchInterval, fetchTimeout) = queue. sync {
264+ ( self . settings. minimumFetchInterval, self . settings. fetchTimeout)
274265 }
275266
276267 RCLog . debug ( " I-RCN000066 " ,
@@ -279,16 +270,18 @@ open class RemoteConfig: NSObject, NSFastEnumeration {
279270 let settings = RemoteConfigSettings ( )
280271 settings. minimumFetchInterval = minimumFetchInterval
281272 settings. fetchTimeout = fetchTimeout
273+
274+ /// The NSURLSession needs to be recreated whenever the fetch timeout may be updated.
275+ configFetch. recreateNetworkSession ( )
282276 RCLog . debug ( " I-RCN987366 " ,
283277 " Successfully read configSettings. Minimum Fetch Interval: " +
284278 " \( minimumFetchInterval) , Fetch timeout: \( fetchTimeout) " )
285279 return settings
286280 }
287281 set {
288282 queue. async {
289- let configSettings = newValue
290- self . settings. minimumFetchInterval = configSettings. minimumFetchInterval
291- self . settings. fetchTimeout = configSettings. fetchTimeout
283+ self . settings. minimumFetchInterval = newValue. minimumFetchInterval
284+ self . settings. fetchTimeout = newValue. fetchTimeout
292285
293286 /// The NSURLSession needs to be recreated whenever the fetch timeout may be updated.
294287 self . configFetch. recreateNetworkSession ( )
@@ -413,7 +406,7 @@ open class RemoteConfig: NSObject, NSFastEnumeration {
413406 /// - Parameter completionHandler: Initialization complete callback with error parameter.
414407 @objc public func ensureInitialized( completionHandler: @escaping ( Error ? ) -> Void ) {
415408 DispatchQueue . global ( qos: . utility) . async { [ weak self] in
416- guard let self = self else { return }
409+ guard let self else { return }
417410 let initializationSuccess = self . configContent. initializationSuccessful ( )
418411 let error = initializationSuccess ? nil :
419412 NSError (
@@ -435,7 +428,7 @@ open class RemoteConfig: NSObject, NSFastEnumeration {
435428
436429 private func callListeners( key: String , config: [ String : RemoteConfigValue ] ) {
437430 queue. async { [ weak self] in
438- guard let self = self else { return }
431+ guard let self else { return }
439432 for listener in self . listeners {
440433 listener ( key, config)
441434 }
@@ -564,7 +557,7 @@ open class RemoteConfig: NSObject, NSFastEnumeration {
564557 ( ( RemoteConfigFetchAndActivateStatus , Error ? ) -> Void ) ? =
565558 nil ) {
566559 fetch { [ weak self] fetchStatus, error in
567- guard let self = self else { return }
560+ guard let self else { return }
568561 // Fetch completed. We are being called on the main queue.
569562 // If fetch is successful, try to activate the fetched config
570563 if fetchStatus == . success, error == nil {
@@ -611,7 +604,7 @@ open class RemoteConfig: NSObject, NSFastEnumeration {
611604 /// - Parameter completion Activate operation callback with changed and error parameters.
612605 @objc public func activate( completion: ( ( Bool , Error ? ) -> Void ) ? = nil ) {
613606 queue. async { [ weak self] in
614- guard let self = self else {
607+ guard let self else {
615608 let error = NSError (
616609 domain: ConfigConstants . remoteConfigErrorDomain,
617610 code: RemoteConfigError . internalError. rawValue,
@@ -816,7 +809,7 @@ open class RemoteConfig: NSObject, NSFastEnumeration {
816809 let defaults = defaults ?? [ String: Any] ( )
817810 let fullyQualifiedNamespace = self . fullyQualifiedNamespace ( FIRNamespace)
818811 queue. async { [ weak self] in
819- guard let self = self else { return }
812+ guard let self else { return }
820813
821814 self . configContent. copy ( fromDictionary: [ fullyQualifiedNamespace: defaults] ,
822815 toSource: . default,
0 commit comments