internal static bool RegisterNativeIntegrations(this SentryXamarinOptions options)
        {
            if (options.NativeIntegrationEnabled)
            {
#if NATIVE_PROCESSOR
                var nativeintegration = new NativeIntegration(options);
                options.AddIntegration(nativeintegration);
                return(true);
#else
                options.DiagnosticLogger?.Log(SentryLevel.Debug, "No NativeIntegration found for the given target.");
#endif
            }
            return(false);
        }
예제 #2
0
        /// <summary>
        /// Add the Sentry Xamarin Forms integration to Sentry.Xamarin SDK.
        /// </summary>
        /// <param name="options">The Sentry Xamarion Options.</param>
        public static void AddXamarinFormsIntegration(this SentryXamarinOptions options)
        {
            var applicationListener = new FormsApplicationListener(options);

            var formsIntegration = new SentryXamarinFormsIntegration(options);

            options.AddIntegration(formsIntegration);
            applicationListener.AddListener(formsIntegration.RegisterRequestThemeChange);

            if (options.PageTracker is null)
            {
                var navigationIntegration = new FormsNavigationIntegration();
                options.AddPageNavigationTrackerIntegration(navigationIntegration);
                applicationListener.AddListener(navigationIntegration.ApplySentryNavigationEvents);
            }

            options.ProtocolPackageName = ProtocolPackageName;

            applicationListener.Invoke();
        }
 /// <summary>
 /// Unregister the previous navigation tracker and adds the registers the new Navigation Tracker to SentryXamarinOptions.
 /// </summary>
 /// <param name="options"></param>
 /// <param name="tracker">The IPageNavigationTracker.</param>
 internal static void AddPageNavigationTrackerIntegration(this SentryXamarinOptions options, IPageNavigationTracker tracker)
 {
     options.AddIntegration(tracker);
     options.PageTracker?.Unregister();
     options.PageTracker = tracker;
 }