@@ -25,7 +25,8 @@ import Foundation
2525class SessionStartEvent : NSObject , GDTCOREventDataObject {
2626 var proto : firebase_appquality_sessions_SessionEvent
2727
28- init ( identifiers: IdentifierProvider , time: TimeProvider = Time ( ) ) {
28+ init ( identifiers: IdentifierProvider , appInfo: ApplicationInfoProtocol ,
29+ time: TimeProvider = Time ( ) ) {
2930 proto = firebase_appquality_sessions_SessionEvent ( )
3031
3132 super. init ( )
@@ -34,16 +35,23 @@ class SessionStartEvent: NSObject, GDTCOREventDataObject {
3435 proto. session_data. session_id = makeProtoString ( identifiers. sessionID)
3536 proto. session_data. previous_session_id = makeProtoString ( identifiers. previousSessionID)
3637 proto. session_data. event_timestamp_us = time. timestampUS
38+
39+ proto. application_info. app_id = makeProtoString ( appInfo. appID)
40+ proto. application_info. session_sdk_version = makeProtoString ( appInfo. sdkVersion)
41+ // proto.application_info.device_model = makeProtoString(appInfo.deviceModel)
42+ // proto.application_info.development_platform_name;
43+ // proto.application_info.development_platform_version;
44+
45+ proto. application_info. apple_app_info. bundle_short_version = makeProtoString ( appInfo. bundleID)
46+ // proto.application_info.apple_app_info.network_connection_info
47+ proto. application_info. apple_app_info. os_name = convertOSName ( osName: appInfo. osName)
48+ proto. application_info. apple_app_info. mcc_mnc = makeProtoString ( appInfo. mccMNC)
3749 }
3850
3951 func setInstallationID( identifiers: IdentifierProvider ) {
4052 proto. session_data. firebase_installation_id = makeProtoString ( identifiers. installationID)
4153 }
4254
43- private func makeProtoString( _ string: String ) -> UnsafeMutablePointer < pb_bytes_array_t > ? {
44- return FIRSESEncodeString ( string)
45- }
46-
4755 // MARK: - GDTCOREventDataObject
4856
4957 func transportBytes( ) -> Data {
@@ -59,4 +67,32 @@ class SessionStartEvent: NSObject, GDTCOREventDataObject {
5967 }
6068 return data
6169 }
70+
71+ // MARK: - Data Conversion
72+
73+ private func makeProtoString( _ string: String ) -> UnsafeMutablePointer < pb_bytes_array_t > ? {
74+ return FIRSESEncodeString ( string)
75+ }
76+
77+ private func convertOSName( osName: String ) -> firebase_appquality_sessions_OsName {
78+ switch osName. lowercased ( ) {
79+ case " macos " :
80+ return firebase_appquality_sessions_OsName_MACOS
81+ case " maccatalyst " :
82+ return firebase_appquality_sessions_OsName_MACCATALYST
83+ case " ios_on_mac " :
84+ return firebase_appquality_sessions_OsName_IOS_ON_MAC
85+ case " ios " :
86+ return firebase_appquality_sessions_OsName_IOS
87+ case " tvos " :
88+ return firebase_appquality_sessions_OsName_TVOS
89+ case " watchos " :
90+ return firebase_appquality_sessions_OsName_WATCHOS
91+ case " ipados " :
92+ return firebase_appquality_sessions_OsName_IPADOS
93+ default :
94+ Logger . logWarning ( " Found unknown OSName: \" \( osName) \" while converting. " )
95+ return firebase_appquality_sessions_OsName_UNKNOWN_OSNAME
96+ }
97+ }
6298}
0 commit comments