diff --git a/src/mobile/lib/main.dart b/src/mobile/lib/main.dart index 25c69b1036..9f01cf9c46 100644 --- a/src/mobile/lib/main.dart +++ b/src/mobile/lib/main.dart @@ -71,7 +71,7 @@ void main() async { final postHogConfig = PostHogConfig(postHogApiKey); postHogConfig.host = postHogHost; postHogConfig.debug = !kReleaseMode; - postHogConfig.captureApplicationLifecycleEvents = true; + postHogConfig.captureApplicationLifecycleEvents = false; postHogConfig.personProfiles = PostHogPersonProfiles.always; try { await Posthog().setup(postHogConfig); diff --git a/src/mobile/lib/src/app/auth/bloc/auth_bloc.dart b/src/mobile/lib/src/app/auth/bloc/auth_bloc.dart index ee788eaf82..749f5329b2 100644 --- a/src/mobile/lib/src/app/auth/bloc/auth_bloc.dart +++ b/src/mobile/lib/src/app/auth/bloc/auth_bloc.dart @@ -88,7 +88,6 @@ class AuthBloc extends Bloc with UiLoggy { await authRepository.loginWithEmailAndPassword( event.username, event.password); - await AnalyticsService().trackUserLoggedIn(); final userId = await AuthHelper.getCurrentUserId(suppressGuestWarning: true); if (userId != null) { @@ -97,6 +96,7 @@ class AuthBloc extends Bloc with UiLoggy { userProperties: {'email': event.username}, ); } + await AnalyticsService().trackUserLoggedIn(); GlobalAuthManager.instance.resetSessionExpiredGuard(); emit(AuthLoaded(AuthPurpose.login)); } catch (e) { @@ -119,7 +119,6 @@ class AuthBloc extends Bloc with UiLoggy { emit(AuthLoading()); try { await authRepository.registerWithEmailAndPassword(event.model); - await AnalyticsService().trackUserRegistered(); final userId = await AuthHelper.getCurrentUserId(suppressGuestWarning: true); if (userId != null) { @@ -128,6 +127,7 @@ class AuthBloc extends Bloc with UiLoggy { userProperties: {'email': event.model.email ?? ''}, ); } + await AnalyticsService().trackUserRegistered(); GlobalAuthManager.instance.resetSessionExpiredGuard(); emit(AuthLoaded(AuthPurpose.register)); } catch (e) { @@ -198,12 +198,12 @@ class AuthBloc extends Bloc with UiLoggy { emit(AuthLoading()); try { await socialAuthRepository.loginWithProvider(event.provider); - await AnalyticsService().trackUserLoggedIn(method: event.provider); final userId = await AuthHelper.getCurrentUserId(suppressGuestWarning: true); if (userId != null) { await AnalyticsService().setUserIdentity(userId: userId); } + await AnalyticsService().trackUserLoggedIn(method: event.provider); GlobalAuthManager.instance.resetSessionExpiredGuard(); loggy.info('OAuth login successful via ${event.provider}'); emit(AuthLoaded(AuthPurpose.login)); diff --git a/src/mobile/lib/src/app/shared/services/analytics_service.dart b/src/mobile/lib/src/app/shared/services/analytics_service.dart index dd4dff7cab..f60cab41e0 100644 --- a/src/mobile/lib/src/app/shared/services/analytics_service.dart +++ b/src/mobile/lib/src/app/shared/services/analytics_service.dart @@ -12,6 +12,10 @@ class AnalyticsService with UiLoggy { String eventName, { Map? properties, }) async { + if (!FeatureFlagService.instance.isAnalyticsEnabled) { + return; + } + try { await Posthog().capture( eventName: eventName, diff --git a/src/mobile/lib/src/app/shared/services/feature_flag_service.dart b/src/mobile/lib/src/app/shared/services/feature_flag_service.dart index 51c37b4b5f..74a37430e4 100644 --- a/src/mobile/lib/src/app/shared/services/feature_flag_service.dart +++ b/src/mobile/lib/src/app/shared/services/feature_flag_service.dart @@ -23,6 +23,8 @@ class FeatureFlagService with UiLoggy { bool isEnabled(AppFeatureFlag flag) => _flags[flag] ?? false; + bool get isAnalyticsEnabled => isEnabled(AppFeatureFlag.researchMode); + Future reloadFlags() async { try { await Posthog().reloadFeatureFlags();