File tree Expand file tree Collapse file tree 3 files changed +6
-5
lines changed
OneSignalOutcomes/Source/OutcomeEvents Expand file tree Collapse file tree 3 files changed +6
-5
lines changed Original file line number Diff line number Diff line change 3838
3939+ (OSSessionManager*)sharedSessionManager ;
4040
41- @property (nonatomic ) id <SessionStatusDelegate> _Nonnull delegate;
41+ @property (nonatomic ) id <SessionStatusDelegate> _Nullable delegate;
4242
43- - (instancetype _Nonnull)init : (Class <SessionStatusDelegate> _Nonnull )delegate withTrackerFactory : (OSTrackerFactory *_Nonnull)trackerFactory ;
43+ - (instancetype _Nonnull)init : (Class <SessionStatusDelegate> _Nullable )delegate withTrackerFactory : (OSTrackerFactory *_Nonnull)trackerFactory ;
4444
4545- (NSArray <OSInfluence *> *_Nonnull)getInfluences ;
4646- (NSArray <OSInfluence *> *_Nonnull)getSessionInfluences ;
Original file line number Diff line number Diff line change @@ -41,7 +41,7 @@ @implementation OSSessionManager
4141static OSSessionManager *_sessionManager;
4242+ (OSSessionManager*)sharedSessionManager {
4343 if (!_sessionManager)
44- _sessionManager = [[OSSessionManager alloc ] init: self withTrackerFactory: [OSTrackerFactory sharedTrackerFactory ]];
44+ _sessionManager = [[OSSessionManager alloc ] init: nil withTrackerFactory: [OSTrackerFactory sharedTrackerFactory ]];
4545 return _sessionManager;
4646}
4747
@@ -255,7 +255,7 @@ - (BOOL)willChangeSessionForChannel:(OSChannelTracker *)channelTracker withInflu
255255- (void )sendSessionEndingWithInfluences : (NSArray <OSInfluence *> *)endingInfluences {
256256 [OneSignalLog onesignalLog: ONE_S_LL_DEBUG message: [NSString stringWithFormat: @" OneSignal SessionManager sendSessionEndingWithInfluences with influences: %@ " , endingInfluences.description]];
257257 // Only end session if there are influences available to end
258- if (endingInfluences.count > 0 && _delegate)
258+ if (endingInfluences.count > 0 && _delegate && [_delegate respondsToSelector: @selector ( onSessionEnding: )] )
259259 [_delegate onSessionEnding: endingInfluences];
260260}
261261
Original file line number Diff line number Diff line change @@ -695,6 +695,8 @@ + (void)setInAppMessageLifecycleHandler:(NSObject<OSInAppMessageLifecycleHandler
695695 */
696696+ (void )init {
697697 [[OSMigrationController new ] migrate ];
698+ // using classes as delegates is not best practice. We should consider using a shared instance of a class instead
699+ [OSSessionManager sharedSessionManager ].delegate = (id <SessionStatusDelegate>)self;
698700 if ([self requiresUserPrivacyConsent ]) {
699701 [OneSignalLog onesignalLog: ONE_S_LL_VERBOSE message: @" Delayed initialization of the OneSignal SDK until the user provides privacy consent using the consentGranted() method" ];
700702 delayedInitializationForPrivacyConsent = true ;
@@ -1788,7 +1790,6 @@ + (void)registerUserInternal {
17881790 return ;
17891791
17901792 [_outcomeEventsController clearOutcomes ];
1791- [OSSessionManager sharedSessionManager ].delegate = self;
17921793 [[OSSessionManager sharedSessionManager ] restartSessionIfNeeded: _appEntryState];
17931794
17941795 [OneSignalTrackFirebaseAnalytics trackInfluenceOpenEvent ];
You can’t perform that action at this time.
0 commit comments