Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Inject IOptions<T>
  • Loading branch information
jamescrosswell committed Sep 2, 2025
commit 4953592bc076bb8aedd95d69cc78022aafec24e5
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,11 @@ internal class MauiSessionReplayMaskControlsOfTypeBinder : IMauiElementEventBind

internal bool IsEnabled { get; }

public MauiSessionReplayMaskControlsOfTypeBinder(SentryMauiOptions options)
public MauiSessionReplayMaskControlsOfTypeBinder(IOptions<SentryMauiOptions> options)
{
_options = options;
_options = options.Value;
#if __ANDROID__
var replayOptions = options.Native.ExperimentalOptions.SessionReplay;
var replayOptions = _options.Native.ExperimentalOptions.SessionReplay;
IsEnabled = replayOptions is { IsSessionReplayEnabled: true, IsTypeMaskingUsed: true };
#else
IsEnabled = false;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,8 @@ public Fixture()
var logger = Substitute.For<IDiagnosticLogger>();
logger.IsEnabled(Arg.Any<SentryLevel>()).Returns(true);
Options.DiagnosticLogger = logger;
ControlsOfTypeBinder = new MauiSessionReplayMaskControlsOfTypeBinder(Options);
var options = Microsoft.Extensions.Options.Options.Create(Options);
ControlsOfTypeBinder = new MauiSessionReplayMaskControlsOfTypeBinder(options);
}
}

Expand Down Expand Up @@ -72,7 +73,8 @@ public void SessionReplayEnabled_IsEnabled(
options.Native.ExperimentalOptions.SessionReplay.OnErrorSampleRate = onErrorSampleRate;

// Act
var binder = new MauiSessionReplayMaskControlsOfTypeBinder(options);
var iOptions = Microsoft.Extensions.Options.Options.Create(options);
var binder = new MauiSessionReplayMaskControlsOfTypeBinder(iOptions);

// Assert
binder.IsEnabled.Should().Be(true);
Expand All @@ -88,7 +90,8 @@ public void SessionReplayDisabled_IsNotEnabled()
// No sessionSampleRate or onErrorSampleRate set... so should be disabled

// Act
var binder = new MauiSessionReplayMaskControlsOfTypeBinder(options);
var iOptions = Microsoft.Extensions.Options.Options.Create(options);
var binder = new MauiSessionReplayMaskControlsOfTypeBinder(iOptions);

// Assert
binder.IsEnabled.Should().Be(false);
Expand All @@ -105,7 +108,8 @@ public void UseSentry_NoMaskedControls_DoesNotRegisterMauiVisualElementEventsBin
options.Native.ExperimentalOptions.SessionReplay.MaskedControls.Clear();

// Act
var binder = new MauiSessionReplayMaskControlsOfTypeBinder(options);
var iOptions = Microsoft.Extensions.Options.Options.Create(options);
var binder = new MauiSessionReplayMaskControlsOfTypeBinder(iOptions);

// Assert
binder.IsEnabled.Should().Be(false);
Expand Down
6 changes: 4 additions & 2 deletions test/Sentry.Maui.Tests/MauiEventsBinderTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -46,14 +46,16 @@ public void ElementEventBinders_EnabledOnly()
options1.Native.ExperimentalOptions.SessionReplay.SessionSampleRate = 1.0;
options1.Native.ExperimentalOptions.SessionReplay.OnErrorSampleRate = 1.0;
#endif
var enabledBinder = new MauiSessionReplayMaskControlsOfTypeBinder(options1);
var iOptions1 = Microsoft.Extensions.Options.Options.Create(options1);
var enabledBinder = new MauiSessionReplayMaskControlsOfTypeBinder(iOptions1);

var options2 = new SentryMauiOptions { Dsn = ValidDsn };
#if __ANDROID__
options2.Native.ExperimentalOptions.SessionReplay.SessionSampleRate = 0.0;
options2.Native.ExperimentalOptions.SessionReplay.OnErrorSampleRate = 0.0;
#endif
var disabledBinder = new MauiSessionReplayMaskControlsOfTypeBinder(options2);
var iOptions2 = Microsoft.Extensions.Options.Options.Create(options2);
var disabledBinder = new MauiSessionReplayMaskControlsOfTypeBinder(iOptions2);

var buttonEventBinder = new MauiButtonEventsBinder();

Expand Down
Loading