-
-
Notifications
You must be signed in to change notification settings - Fork 230
Expand file tree
/
Copy pathBindableNativeSentryOptions.cs
More file actions
103 lines (95 loc) · 5.77 KB
/
BindableNativeSentryOptions.cs
File metadata and controls
103 lines (95 loc) · 5.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
using Sentry.Android;
// ReSharper disable once CheckNamespace
namespace Sentry;
internal partial class BindableSentryOptions
{
public NativeOptions Native { get; } = new NativeOptions();
/// <summary>
/// Provides additional options for the Android platform.
/// </summary>
public class NativeOptions
{
public bool? AnrEnabled { get; set; }
public bool? AnrReportInDebug { get; set; }
public TimeSpan? AnrTimeoutInterval { get; set; }
public bool? AttachScreenshot { get; set; }
public bool? EnableActivityLifecycleBreadcrumbs { get; set; }
public bool? EnableAppComponentBreadcrumbs { get; set; }
public bool? EnableAppLifecycleBreadcrumbs { get; set; }
public bool? EnableRootCheck { get; set; }
public bool? EnableNetworkEventBreadcrumbs { get; set; }
public bool? EnableSystemEventBreadcrumbs { get; set; }
public bool? EnableUserInteractionBreadcrumbs { get; set; }
public bool? EnableAutoActivityLifecycleTracing { get; set; }
public bool? EnableActivityLifecycleTracingAutoFinish { get; set; }
public bool? EnableUserInteractionTracing { get; set; }
public bool? AttachThreads { get; set; }
public TimeSpan? ConnectionTimeout { get; set; }
public bool? EnableNdk { get; set; }
public bool? EnableShutdownHook { get; set; }
public bool? EnableUncaughtExceptionHandler { get; set; }
public bool? PrintUncaughtStackTrace { get; set; }
public double? ProfilesSampleRate { get; set; }
public TimeSpan? ReadTimeout { get; set; }
public bool? EnableTracing { get; set; }
public bool? EnableBeforeSend { get; set; }
public NativeExperimentalOptions ExperimentalOptions { get; set; } = new();
internal class NativeExperimentalOptions
{
public NativeSentryReplayOptions SessionReplay { get; set; } = new();
public SignalHandlerStrategy? SignalHandlerStrategy { get; set; }
}
internal class NativeSentryReplayOptions
{
public double? OnErrorSampleRate { get; set; }
public double? SessionSampleRate { get; set; }
public bool RedactAllImages { get; set; }
public bool RedactAllText { get; set; }
}
public void ApplyTo(SentryOptions.NativeOptions options)
{
options.AnrEnabled = AnrEnabled ?? options.AnrEnabled;
options.AnrReportInDebug = AnrReportInDebug ?? options.AnrReportInDebug;
options.AnrTimeoutInterval = AnrTimeoutInterval ?? options.AnrTimeoutInterval;
options.AttachScreenshot = AttachScreenshot ?? options.AttachScreenshot;
options.EnableActivityLifecycleBreadcrumbs = EnableActivityLifecycleBreadcrumbs ?? options.EnableActivityLifecycleBreadcrumbs;
options.EnableAppComponentBreadcrumbs = EnableAppComponentBreadcrumbs ?? options.EnableAppComponentBreadcrumbs;
options.EnableAppLifecycleBreadcrumbs = EnableAppLifecycleBreadcrumbs ?? options.EnableAppLifecycleBreadcrumbs;
options.EnableRootCheck = EnableRootCheck ?? options.EnableRootCheck;
options.EnableNetworkEventBreadcrumbs = EnableNetworkEventBreadcrumbs ?? options.EnableNetworkEventBreadcrumbs;
options.EnableSystemEventBreadcrumbs = EnableSystemEventBreadcrumbs ?? options.EnableSystemEventBreadcrumbs;
options.EnableUserInteractionBreadcrumbs = EnableUserInteractionBreadcrumbs ?? options.EnableUserInteractionBreadcrumbs;
options.EnableAutoActivityLifecycleTracing = EnableAutoActivityLifecycleTracing ?? options.EnableAutoActivityLifecycleTracing;
options.EnableActivityLifecycleTracingAutoFinish = EnableActivityLifecycleTracingAutoFinish ?? options.EnableActivityLifecycleTracingAutoFinish;
options.EnableUserInteractionTracing = EnableUserInteractionTracing ?? options.EnableUserInteractionTracing;
options.AttachThreads = AttachThreads ?? options.AttachThreads;
options.ConnectionTimeout = ConnectionTimeout ?? options.ConnectionTimeout;
options.EnableNdk = EnableNdk ?? options.EnableNdk;
options.EnableShutdownHook = EnableShutdownHook ?? options.EnableShutdownHook;
options.EnableUncaughtExceptionHandler = EnableUncaughtExceptionHandler ?? options.EnableUncaughtExceptionHandler;
options.PrintUncaughtStackTrace = PrintUncaughtStackTrace ?? options.PrintUncaughtStackTrace;
options.ProfilesSampleRate = ProfilesSampleRate ?? options.ProfilesSampleRate;
options.ReadTimeout = ReadTimeout ?? options.ReadTimeout;
options.EnableTracing = EnableTracing ?? options.EnableTracing;
options.EnableBeforeSend = EnableBeforeSend ?? options.EnableBeforeSend;
if (ExperimentalOptions.SessionReplay.OnErrorSampleRate is { } errorSampleRate)
{
#pragma warning disable CA1422
options.ExperimentalOptions.SessionReplay.OnErrorSampleRate = errorSampleRate;
#pragma warning restore CA1422
}
if (ExperimentalOptions.SessionReplay.SessionSampleRate is { } sessionSampleRate)
{
#pragma warning disable CA1422
options.ExperimentalOptions.SessionReplay.SessionSampleRate = sessionSampleRate;
#pragma warning restore CA1422
}
ExperimentalOptions.SessionReplay.RedactAllText = options.ExperimentalOptions.SessionReplay.MaskAllText;
ExperimentalOptions.SessionReplay.RedactAllImages = options.ExperimentalOptions.SessionReplay.MaskAllImages;
if (ExperimentalOptions.SignalHandlerStrategy is { } signalHandlerStrategy)
{
options.ExperimentalOptions.SignalHandlerStrategy = signalHandlerStrategy;
}
}
}
}