@@ -16,7 +16,7 @@ import FirebaseABTesting
1616import Foundation
1717
1818/// Handles experiment information update and persistence.
19- /* @objc(RCNConfigExperiment)*/ open class ConfigExperiment : NSObject {
19+ @objc ( RCNConfigExperiment) public class ConfigExperiment : NSObject {
2020 private static let experimentMetadataKeyLastStartTime = " last_experiment_start_time "
2121 private static let serviceOrigin = " frc "
2222
@@ -28,19 +28,17 @@ import Foundation
2828 private let experimentStartTimeDateFormatter : DateFormatter
2929
3030 /// Designated initializer;
31- public init ( DBManager: ConfigDBManager ? ,
32- experimentController controller: ExperimentController ? ) {
31+ @ objc public init ( DBManager: ConfigDBManager ? ,
32+ experimentController controller: ExperimentController ? ) {
3333 experimentPayloads = [ ]
3434 experimentMetadata = [ : ]
3535 activeExperimentPayloads = [ ]
3636 experimentStartTimeDateFormatter = {
3737 let dateFormatter = DateFormatter ( )
3838 dateFormatter. dateFormat = " yyyy-MM-dd'T'HH:mm:ss.SSS'Z' "
39- dateFormatter. timeZone = TimeZone ( secondsFromGMT: 0 )
4039 // Locale needs to be hardcoded. See
4140 // https://developer.apple.com/library/ios/#qa/qa1480/_index.html for more details.
4241 dateFormatter. locale = Locale ( identifier: " en_US_POSIX " )
43- // TODO(ncooke3): Trace back and see why timeZone is set twice.
4442 dateFormatter. timeZone = TimeZone ( abbreviation: " UTC " )
4543 return dateFormatter
4644 } ( )
@@ -98,7 +96,7 @@ import Foundation
9896 }
9997
10098 /// Update/Persist experiment information from config fetch response.
101- open func updateExperiments( withResponse response: [ [ String : Any ] ] ? ) {
99+ @ objc public func updateExperiments( withResponse response: [ [ String : Any ] ] ? ) {
102100 // Cache fetched experiment payloads.
103101 experimentPayloads. removeAll ( )
104102 dbManager? . deleteExperimentTable ( forKey: ConfigConstants . experimentTableKeyPayload)
@@ -121,7 +119,7 @@ import Foundation
121119 }
122120
123121 /// Update experiments to Firebase Analytics when `activateWithCompletion:` happens.
124- open func updateExperiments( handler: ( ( ( any Error ) ? ) -> Void ) ? = nil ) {
122+ @ objc public func updateExperiments( handler: ( ( ( any Error ) ? ) -> Void ) ? = nil ) {
125123 let lifecycleEvent = LifecycleEvents ( )
126124
127125 // Get the last experiment start time prior to the latest payload.
@@ -134,7 +132,7 @@ import Foundation
134132 withServiceOrigin: Self . serviceOrigin,
135133 events: lifecycleEvent,
136134 policy: . discardOldest,
137- lastStartTime: lastStartTime,
135+ lastStartTime: lastStartTime ?? 0 ,
138136 payloads: experimentPayloads,
139137 completionHandler: handler
140138 )
0 commit comments