Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
78 commits
Select commit Hold shift + click to select a range
e513545
- Cleanup editorconfig file, remove old settings, add description for…
glennawatson Dec 21, 2025
6bb3530
Merge remote-tracking branch 'origin/main' into glennawatson/editorco…
glennawatson Dec 21, 2025
4c34c7d
Move tests around to allow for more separation and parallisation
glennawatson Dec 21, 2025
a5ced21
Update src/tests/ReactiveUI.Tests.Core/AwaiterTest.cs
glennawatson Dec 21, 2025
688b0b0
Update src/tests/ReactiveUI.Tests.Core/Commands/ReactiveCommandTest.cs
glennawatson Dec 21, 2025
0d990b6
Update src/tests/ReactiveUI.Tests.Core/MessageBusTest.cs
glennawatson Dec 21, 2025
4d33dd9
Update src/tests/ReactiveUI.Tests.Core/RandomTests.cs
glennawatson Dec 21, 2025
794092a
Update src/tests/ReactiveUI.Tests.Core/Resolvers/PocoObservableForPro…
glennawatson Dec 21, 2025
ec6c150
Update src/tests/ReactiveUI.Tests.Core/RxAppTest.cs
glennawatson Dec 21, 2025
5727d19
Refactor test files to remove NUnit references and improve structure;…
glennawatson Dec 21, 2025
f712830
Update tests to use MTP instead of VSTest
glennawatson Dec 21, 2025
02067fc
Fix IsTestProject to always evaluate to boolean for Unix compatibility
glennawatson Dec 21, 2025
8885ad6
Fix ReactiveUI.Testing duplicate package reference by explicitly sett…
glennawatson Dec 21, 2025
4623012
Rename ReactiveUI.LeakTests to ReactiveUI.Leak.Tests for naming conve…
glennawatson Dec 21, 2025
6558474
Remove unused ReactiveUI.Leak.Tests project and fix MSB3277 dependenc…
glennawatson Dec 21, 2025
e8219d6
Migrate to Microsoft Testing Platform with native JSON configuration
glennawatson Dec 21, 2025
2986059
WIP: EditorConfig update and test formatting changes
glennawatson Dec 21, 2025
f4491d5
Merge remote-tracking branch 'origin/main' into glennawatson/editorco…
glennawatson Dec 21, 2025
9c3d5d7
Update package references, refactor namespaces, and enhance tests for…
glennawatson Dec 22, 2025
e477e49
Convert tunit
glennawatson Dec 22, 2025
15f17a0
Convert to TUnit
glennawatson Dec 24, 2025
c0be149
more
glennawatson Dec 24, 2025
7521942
more
glennawatson Dec 24, 2025
0a47581
more
glennawatson Dec 24, 2025
8814f3b
more
glennawatson Dec 24, 2025
a88b22c
more
glennawatson Dec 24, 2025
d057353
More to parallel tests
glennawatson Dec 24, 2025
0dd8b12
Add a timeout
glennawatson Dec 24, 2025
b7a3d20
add timeouts for all test suits
glennawatson Dec 24, 2025
caeefdb
Update test configurations and improve command execution handling
glennawatson Dec 24, 2025
c136bc3
Remove obsolete nuget.config file to prevent local cache issues
glennawatson Dec 24, 2025
846b29b
Move non-parallel mobile tests for Android and iOS platforms to their…
glennawatson Dec 25, 2025
0f91ad8
Remove temporarily windows based targets to see if it passes the test…
glennawatson Dec 25, 2025
38eb9e4
Add assembly-level hooks for diagnostics and test execution tracking …
glennawatson Dec 26, 2025
d0d4904
Fix AssemblyHooks build errors: add using System and make classes static
glennawatson Dec 26, 2025
648f6d5
Fix mac thread issues
glennawatson Dec 26, 2025
d21c427
Add thread naming and improve WPF fixture disposal to fix CI test hangs
glennawatson Dec 26, 2025
f2ecb9b
Add ManagedThreadTracker to display named test threads in assembly ho…
glennawatson Dec 26, 2025
7a44f83
Fix mac thread issues
glennawatson Dec 27, 2025
21d1097
Refactor WPF tests to remove dispatcher dependencies and eliminate te…
glennawatson Dec 27, 2025
6c72c7a
Fix Windows CI hang by replacing AutoResetEvent with SemaphoreSlim to…
glennawatson Dec 27, 2025
8e736a4
Fix test hangs and threading issues in SchedulerExtensions and TestSe…
glennawatson Dec 27, 2025
ecd1993
Fix thread leak in MessageBusTest and remove unused ManagedThreadTracker
glennawatson Dec 27, 2025
90c4023
Fix mac thread issues
glennawatson Dec 27, 2025
6ccf10b
Remove maui windows targets
glennawatson Dec 27, 2025
67b6ffa
Add back in windows targets in general except for the maui targets
glennawatson Dec 27, 2025
d7837e1
Remove the need for a dispatcher on some of the maui tests
glennawatson Dec 27, 2025
9be8de6
Fix MAUI Windows test hangs and remove diagnostic logging
glennawatson Dec 27, 2025
b652caa
Fix compilation errors in test AssemblyHooks
glennawatson Dec 27, 2025
99f326e
Add Splat using to ReactiveUI.Testing.Tests
glennawatson Dec 27, 2025
ab9c3e1
Make WinUIMauiMainThreadScheduler lazy to prevent early DispatcherQue…
glennawatson Dec 27, 2025
5aad84d
Fix StyleCop SA1201: Move field before properties
glennawatson Dec 27, 2025
e8714d1
Remove unused InDesignMode method from AlwaysTrueModeDetector
glennawatson Dec 27, 2025
a89e137
Use a IBuilder extension
glennawatson Dec 27, 2025
c8a7ff0
Merge remote-tracking branch 'origin/main' into glennawatson/editorco…
glennawatson Dec 27, 2025
fdcb51d
Turn off warnings on the extensions
glennawatson Dec 28, 2025
4f6ba51
Remove windows targets for maui tests
glennawatson Dec 28, 2025
182a624
build: exclude test projects from code coverage
glennawatson Dec 28, 2025
ca51b79
Remove timeouts to the tests
glennawatson Dec 28, 2025
07e9b68
test: improve coverage for CommandBinding, TypeConverters and Interac…
glennawatson Dec 28, 2025
5de4400
Remove legacy from code coverage
glennawatson Dec 28, 2025
312881e
test: add Blazor component tests and fix unnecessary double render on…
glennawatson Dec 28, 2025
5eadd30
test: improve unit test coverage for ReactiveRecord, ReactiveProperty…
glennawatson Dec 28, 2025
038a2c8
test: add comprehensive unit tests for type converters, command bindi…
glennawatson Dec 28, 2025
1e53b00
Remove claude files
glennawatson Dec 28, 2025
8e09d27
test: add comprehensive unit tests for CanActivateViewFetcher
glennawatson Dec 28, 2025
f5db729
test: add comprehensive unit tests for ExpressionRewriter
glennawatson Dec 28, 2025
1c9eb44
test: add comprehensive unit tests for Reflection class
glennawatson Dec 28, 2025
d6a9f34
fix: add missing using statement for System.Linq.Expressions in Rando…
glennawatson Dec 28, 2025
7b96907
test: improve converter coverage to 100%
glennawatson Dec 28, 2025
5f47800
Further unit tests
glennawatson Dec 28, 2025
0604a11
test: add comprehensive coverage for BuilderMixins WithInstance methods
glennawatson Dec 28, 2025
20ffada
test: add comprehensive coverage for ExpressionMixins methods
glennawatson Dec 28, 2025
9538a28
test: add coverage for ExpressionRewriter edge cases
glennawatson Dec 28, 2025
00c2c30
fix: resolve timing issues and corrupted assertions in test suite
glennawatson Dec 28, 2025
7572a30
test: improve branch coverage to 100% for 10 files
glennawatson Dec 28, 2025
ce2894d
test: improve coverage for WinForms, DefaultViewLocator, and related …
glennawatson Dec 28, 2025
cf491f2
remove the claude files
glennawatson Dec 28, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
924 changes: 558 additions & 366 deletions .editorconfig

Large diffs are not rendered by default.

6 changes: 6 additions & 0 deletions codecov.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
ignore:
- src/tests
- integrationtests
- benchmarks
- "**/Tests/"
- "**/*.Tests/"
12 changes: 0 additions & 12 deletions nuget.config

This file was deleted.

7 changes: 1 addition & 6 deletions src/Benchmarks/AutoPersistBenchmark.cs
Original file line number Diff line number Diff line change
Expand Up @@ -48,12 +48,7 @@ public void Setup()
public void AutoPersistCollection()
{
var disposable = _collection?.AutoPersistCollection(
_ => Observable.Create<Unit>(
_ =>
{
Console.WriteLine("Done stuff");
return Disposable.Empty;
}).Select(_ => Unit.Default),
_ => Observable.Return(Unit.Default),
TimeSpan.FromMilliseconds(200));

for (int i = 0; i < 5; ++i)
Expand Down
2 changes: 1 addition & 1 deletion src/Benchmarks/RoutableViewModelMixinsBenchmarks.cs
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ public void IterationSetup()
[Benchmark]
public void WhenNavigatedToObservable()
{
using (_mockViewModel!().WhenNavigatedToObservable().Subscribe(x => Console.WriteLine("Observed")))
using (_mockViewModel!().WhenNavigatedToObservable().Subscribe(_ => { }))
using (_router!.Navigate.Execute(_mockViewModel()).Subscribe())
{
}
Expand Down
54 changes: 38 additions & 16 deletions src/Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
<PropertyGroup>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<Platform>AnyCPU</Platform>
<IsTestProject>$(MSBuildProjectName.Contains('Tests'))</IsTestProject>
<DebugType>embedded</DebugType>
<Authors>.NET Foundation and Contributors</Authors>
<Copyright>Copyright (c) .NET Foundation and Contributors</Copyright>
Expand All @@ -18,6 +17,7 @@
<RepositoryUrl>https://github.com/reactiveui/reactiveui</RepositoryUrl>
<RepositoryType>git</RepositoryType>
<NoWarn>$(NoWarn);IDE0060;IDE1006;IDE0130;VSSpell001;CA1510</NoWarn>

<!-- Publish the repository URL in the built .nupkg (in the NuSpec <Repository> element) -->

<PublishRepositoryUrl>true</PublishRepositoryUrl>
Expand All @@ -30,21 +30,28 @@
<LangVersion>preview</LangVersion>
<EnableNETAnalyzers>True</EnableNETAnalyzers>
<AnalysisLevel>latest</AnalysisLevel>
<WarningsAsErrors>nullable</WarningsAsErrors>
<WarningsAsErrors>nullable;CS4014</WarningsAsErrors>
<EmbedUntrackedSources>true</EmbedUntrackedSources>
<IncludePackageReferencesDuringMarkupCompilation>true</IncludePackageReferencesDuringMarkupCompilation>
<PublishRepositoryUrl>true</PublishRepositoryUrl>

<!-- Enable building Windows-specific targets on non-Windows platforms -->
<EnableWindowsTargeting>true</EnableWindowsTargeting>
<IsTestProject>$(MSBuildProjectName.Contains('.Test'))</IsTestProject>
</PropertyGroup>

<PropertyGroup Condition="'$(IsTestProject)' == 'true'">
<TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>
<TUnitImplicitUsings>false</TUnitImplicitUsings>
<TUnitAssertionsImplicitUsings>false</TUnitAssertionsImplicitUsings>
</PropertyGroup>

<PropertyGroup>
<!-- Granular Target Framework definitions for cross-platform builds -->
<ReactiveUICoreTargets>net8.0;net9.0;net10.0</ReactiveUICoreTargets>

<!-- Platform-specific targets - always defined but only used on supported platforms -->
<ReactiveUIFrameworkTargets Condition="$([MSBuild]::IsOsPlatform('Windows'))">net462;net472</ReactiveUIFrameworkTargets>
<ReactiveUIFrameworkTargets Condition="$([MSBuild]::IsOsPlatform('Windows'))">net462;net472;net481</ReactiveUIFrameworkTargets>
<ReactiveUIMauiWindowsTargets>net9.0-windows10.0.19041.0;net10.0-windows10.0.19041.0</ReactiveUIMauiWindowsTargets>
<ReactiveUIWindowsTargets>net8.0-windows10.0.19041.0;net9.0-windows10.0.19041.0;net10.0-windows10.0.19041.0</ReactiveUIWindowsTargets>
<ReactiveUIWinUITargets>net8.0-windows10.0.19041.0;net9.0-windows10.0.19041.0;net10.0-windows10.0.19041.0</ReactiveUIWinUITargets>
Expand All @@ -58,7 +65,7 @@
<ReactiveUITestTargets>net8.0;net9.0;net10.0</ReactiveUITestTargets>
<ReactiveUITestTargets Condition="$([MSBuild]::IsOsPlatform('Windows'))">net8.0-windows10.0.19041.0;net9.0-windows10.0.19041.0;net10.0-windows10.0.19041.0</ReactiveUITestTargets>

<ReactiveUIMauiTestTargets Condition="$([MSBuild]::IsOsPlatform('Windows'))">$(ReactiveUIMauiWindowsTargets)</ReactiveUIMauiTestTargets>
<!-- <ReactiveUIMauiTestTargets Condition="$([MSBuild]::IsOsPlatform('Windows'))">$(ReactiveUIMauiWindowsTargets)</ReactiveUIMauiTestTargets>-->
<ReactiveUIMauiTestTargets>$(ReactiveUIMauiTestTargets);net9.0;net10.0</ReactiveUIMauiTestTargets>

<ReactiveMauiTargets Condition="$([MSBuild]::IsOsPlatform('Windows'))">$(ReactiveUIMauiWindowsTargets)</ReactiveMauiTargets>
Expand All @@ -68,11 +75,15 @@
<!-- Modern targets for tests and benchmarks (no netstandard) -->
<ReactiveUIModernTargets>net8.0;net9.0;net10.0</ReactiveUIModernTargets>

<ReactiveUITestingTargets>netstandard2.0;$(ReactiveUIModernTargets)</ReactiveUITestingTargets>
<ReactiveUITestingTargets Condition="$([MSBuild]::IsOsPlatform('Windows'))">$(ReactiveUITestingTargets);net462;net472</ReactiveUITestingTargets>
<!-- Testing target frameworks for non-platform tests (core .NET + .NET Framework) -->
<ReactiveUITestingTargets>net8.0;net9.0;net10.0</ReactiveUITestingTargets>

<!-- Testing target frameworks for UI platform tests (.NET Framework + Windows-specific TFMs) -->
<ReactiveUITestingUITargets>$(ReactiveUITestingTargets)</ReactiveUITestingUITargets>
<ReactiveUITestingUITargets Condition="$([MSBuild]::IsOsPlatform('Windows'))">net8.0-windows10.0.19041.0;net9.0-windows10.0.19041.0;net10.0-windows10.0.19041.0</ReactiveUITestingUITargets>

<!-- Start with core targets available on all platforms -->
<ReactiveUIFinalTargetFrameworks>netstandard2.0;$(ReactiveUICoreTargets)</ReactiveUIFinalTargetFrameworks>
<ReactiveUIFinalTargetFrameworks>$(ReactiveUICoreTargets)</ReactiveUIFinalTargetFrameworks>

<!-- Add Android targets (available on all platforms with Android SDK) -->
<ReactiveUIFinalTargetFrameworks>$(ReactiveUIFinalTargetFrameworks);$(ReactiveUIAndroidTargets)</ReactiveUIFinalTargetFrameworks>
Expand All @@ -88,28 +99,39 @@
<ReactiveUIFinalModernTargetFrameworks Condition="$([MSBuild]::IsOsPlatform('Windows'))">$(ReactiveUIFinalModernTargetFrameworks);$(ReactiveUIFrameworkTargets);$(ReactiveUIWindowsTargets)</ReactiveUIFinalModernTargetFrameworks>
</PropertyGroup>

<PropertyGroup>
<!-- Ensure all test runs use our runsettings to control cross-assembly parallelism -->
<RunSettingsFilePath>$(MSBuildThisFileDirectory)tests.runsettings</RunSettingsFilePath>
</PropertyGroup>
<!-- MTP Native JSON Configuration -->
<ItemGroup Condition="'$(IsTestProject)' == 'true'">
<!-- Copy testconfig.json to each test project's output directory for MTP auto-discovery -->
<None Include="$(MSBuildThisFileDirectory)testconfig.json">
<Link>testconfig.json</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>

<!-- AOT Compatibility Settings for non-test, non-WPF projects on modern .NET -->
<PropertyGroup Condition="$(MSBuildProjectName.Contains('WPF')) != 'true' and '$(IsTestProject)' != 'true' and ($(TargetFramework.StartsWith('net8.0')) or $(TargetFramework.StartsWith('net9.0')) or $(TargetFramework.StartsWith('net10.0')))">
<!-- Mark this library as AOT-compatible -->
<IsAotCompatible>true</IsAotCompatible>

<!-- Enable trim analyzers to verify library is trim-safe -->
<EnableTrimAnalyzer>true</EnableTrimAnalyzer>
<EnableSingleFileAnalyzer>true</EnableSingleFileAnalyzer>

<!-- Treat trimming warnings as errors during build -->
<ILLinkTreatWarningsAsErrors>true</ILLinkTreatWarningsAsErrors>
</PropertyGroup>

<PropertyGroup Condition="'$(GITHUB_ACTIONS)' == 'true'">
<ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>
</PropertyGroup>

<ItemGroup Condition="$(IsTestProject)">
<PackageReference Include="NUnit"/>
<PackageReference Include="NUnit3TestAdapter"/>
<PackageReference Include="NUnit.Analyzers"/>
<PackageReference Include="TUnit"/>
<PackageReference Include="Microsoft.NET.Test.Sdk"/>
<PackageReference Include="Microsoft.Testing.Extensions.CodeCoverage"/>
<PackageReference Include="Microsoft.Reactive.Testing"/>
<PackageReference Include="PublicApiGenerator"/>
<PackageReference Include="coverlet.msbuild" PrivateAssets="All"/>
<PackageReference Include="Verify.NUnit"/>
<PackageReference Include="Verify.TUnit"/>
</ItemGroup>

<ItemGroup Condition="'$(IsTestProject)' != 'true'">
Expand Down
19 changes: 10 additions & 9 deletions src/Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -4,28 +4,28 @@
<CentralPackageTransitivePinningEnabled>true</CentralPackageTransitivePinningEnabled>
</PropertyGroup>
<PropertyGroup>
<SplatVersion>17.1.1</SplatVersion>
<SplatVersion>18.1.1</SplatVersion>
<XamarinAndroidXCoreVersion>1.17.0</XamarinAndroidXCoreVersion>
<XamarinAndroidXLifecycleLiveDataVersion>2.9.2.1</XamarinAndroidXLifecycleLiveDataVersion>
<MauiVersion Condition="$(TargetFramework.StartsWith('net10'))">10.0.0</MauiVersion>
<MauiVersion Condition="$(TargetFramework.StartsWith('net9'))">9.0.110</MauiVersion>
<AspNetVersion Condition="$(TargetFramework.StartsWith('net10'))">10.0.0-rc.1.25451.107</AspNetVersion>
<AspNetVersion Condition="$(TargetFramework.StartsWith('net9'))">9.0.9</AspNetVersion>
<AspNetVersion Condition="$(TargetFramework.StartsWith('net8'))">8.0.20</AspNetVersion>
<AspNetVersion Condition="$(TargetFramework.StartsWith('net10'))">10.0.0</AspNetVersion>
<AspNetVersion Condition="$(TargetFramework.StartsWith('net9'))">9.0.11</AspNetVersion>
<AspNetVersion Condition="$(TargetFramework.StartsWith('net8'))">8.0.22</AspNetVersion>
<AspNetVersion Condition="$(TargetFramework.StartsWith('netstandard'))">3.1.32</AspNetVersion>
</PropertyGroup>
<ItemGroup>
<PackageVersion Include="Akavache.Sqlite3" Version="11.5.1" />
<PackageVersion Include="Akavache.SystemTextJson" Version="11.5.1" />
<PackageVersion Include="coverlet.msbuild" Version="6.0.4" />
<PackageVersion Include="bunit" Version="2.4.2" />
<PackageVersion Include="DynamicData" Version="9.4.1" />
<PackageVersion Include="JetBrains.DotMemoryUnit" Version="3.2.20220510" />
<PackageVersion Include="Microsoft.CodeAnalysis.Analyzers" Version="3.11.0" />
<PackageVersion Include="Microsoft.CodeAnalysis.CSharp.Workspaces" Version="5.0.0" />
<PackageVersion Include="Microsoft.Extensions.DependencyModel" Version="8.0.2" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="18.0.1" />
<PackageVersion Include="NUnit" Version="4.4.0" />
<PackageVersion Include="NUnit3TestAdapter" Version="5.2.0" />
<PackageVersion Include="NUnit.Analyzers" Version="4.11.2" />
<PackageVersion Include="Microsoft.Testing.Extensions.CodeCoverage" Version="18.1.0" />
<PackageVersion Include="Microsoft.Testing.Platform.MSBuild" Version="2.0.2" />
<PackageVersion Include="Microsoft.Reactive.Testing" Version="6.1.0" />
<PackageVersion Include="System.Reactive" Version="6.1.0" />
<PackageVersion Include="Microsoft.SourceLink.GitHub" Version="8.0.0" />
Expand All @@ -46,7 +46,8 @@
<PackageVersion Include="System.IO.FileSystem.Primitives" Version="4.3.0" />
<PackageVersion Include="System.Runtime.Serialization.Primitives" Version="4.3.0" />
<PackageVersion Include="System.Text.Json" Version="10.0.1" />
<PackageVersion Include="Verify.NUnit" Version="31.9.0" />
<PackageVersion Include="TUnit" Version="1.6.28" />
<PackageVersion Include="Verify.TUnit" Version="31.9.0" />
<PackageVersion Include="Microsoft.Windows.CsWinRT" Version="2.3.0-prerelease.251115.2" />
<PackageVersion Include="Microsoft.AspNetCore.Components" Version="$(AspNetVersion)" />
<PackageVersion Include="Microsoft.Maui.Controls" Version="$(MauiVersion)" />
Expand Down
7 changes: 0 additions & 7 deletions src/ReactiveUI.AOTTests/AssemblyInfo.Parallel.cs

This file was deleted.

15 changes: 0 additions & 15 deletions src/ReactiveUI.AOTTests/GlobalUsings.cs

This file was deleted.

19 changes: 0 additions & 19 deletions src/ReactiveUI.AOTTests/ReactiveUI.AOT.Tests.csproj

This file was deleted.

2 changes: 1 addition & 1 deletion src/ReactiveUI.AndroidX/ControlFetcherMixin.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ public static class ControlFetcherMixin
#endif
public static void WireUpControls(this Fragment fragment, View inflatedView, ResolveStrategy resolveMembers = ResolveStrategy.Implicit)
{
ArgumentNullException.ThrowIfNull(fragment);
ArgumentExceptionHelper.ThrowIfNull(fragment);

foreach (var member in fragment.GetWireUpMembers(resolveMembers))
{
Expand Down
16 changes: 0 additions & 16 deletions src/ReactiveUI.AndroidX/GlobalUsings.cs

This file was deleted.

1 change: 1 addition & 0 deletions src/ReactiveUI.AndroidX/ReactiveAppCompatActivity.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
using Android.App;
using Android.Content;
using Android.Runtime;

using AndroidX.AppCompat.App;

namespace ReactiveUI.AndroidX;
Expand Down
2 changes: 1 addition & 1 deletion src/ReactiveUI.AndroidX/ReactiveFragmentActivity.cs
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ protected override void OnResume()
/// <inheritdoc/>
protected override void OnActivityResult(int requestCode, Result resultCode, Intent? data)
{
ArgumentNullException.ThrowIfNull(data);
ArgumentExceptionHelper.ThrowIfNull(data);

base.OnActivityResult(requestCode, resultCode, data);
_activityResult.OnNext((requestCode, resultCode, data));
Expand Down
6 changes: 3 additions & 3 deletions src/ReactiveUI.AndroidX/ReactivePagerAdapter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ public ReactivePagerAdapter(
/// <inheritdoc/>
public override Object InstantiateItem(ViewGroup container, int position)
{
ArgumentNullException.ThrowIfNull(container);
ArgumentExceptionHelper.ThrowIfNull(container);

var data = _list.Items[position];

Expand All @@ -74,9 +74,9 @@ public override Object InstantiateItem(ViewGroup container, int position)
/// <inheritdoc/>
public override void DestroyItem(ViewGroup container, int position, Object @object)
{
ArgumentNullException.ThrowIfNull(container);
ArgumentExceptionHelper.ThrowIfNull(container);

ArgumentNullException.ThrowIfNull(@object);
ArgumentExceptionHelper.ThrowIfNull(@object);

if (@object is not View view)
{
Expand Down
1 change: 1 addition & 0 deletions src/ReactiveUI.AndroidX/ReactivePreferenceFragment.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
// See the LICENSE file in the project root for full license information.

using Android.Runtime;

using AndroidX.Preference;

namespace ReactiveUI.AndroidX;
Expand Down
3 changes: 2 additions & 1 deletion src/ReactiveUI.AndroidX/ReactiveRecyclerViewAdapter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
// See the LICENSE file in the project root for full license information.

using AndroidX.RecyclerView.Widget;

using DynamicData;

namespace ReactiveUI.AndroidX;
Expand Down Expand Up @@ -51,7 +52,7 @@ protected ReactiveRecyclerViewAdapter(IObservable<IChangeSet<TViewModel>> backin
/// <inheritdoc/>
public override void OnBindViewHolder(RecyclerView.ViewHolder holder, int position)
{
ArgumentNullException.ThrowIfNull(holder);
ArgumentExceptionHelper.ThrowIfNull(holder);

if (holder is not IViewFor viewForHolder)
{
Expand Down
4 changes: 3 additions & 1 deletion src/ReactiveUI.AndroidX/ReactiveRecyclerViewViewHolder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@
using System.Reflection;
using System.Runtime.Serialization;
using System.Text.Json.Serialization;

using Android.Views;

using AndroidX.RecyclerView.Widget;

namespace ReactiveUI.AndroidX;
Expand Down Expand Up @@ -45,7 +47,7 @@ protected ReactiveRecyclerViewViewHolder(View view)
: base(view)
{
SetupRxObj();
ArgumentNullException.ThrowIfNull(view);
ArgumentExceptionHelper.ThrowIfNull(view);

view.ViewAttachedToWindow += OnViewAttachedToWindow;
view.ViewDetachedFromWindow += OnViewDetachedFromWindow;
Expand Down
14 changes: 14 additions & 0 deletions src/ReactiveUI.AndroidX/ReactiveUI.AndroidX.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,20 @@
<PackageTags>mvvm;reactiveui;rx;reactive extensions;observable;LINQ;events;frp;androidx;android;net;</PackageTags>
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'android'">34.0</SupportedOSPlatformVersion>
</PropertyGroup>
<ItemGroup>
<Using Include="System" />
<Using Include="System.Collections.Generic" />
<Using Include="System.ComponentModel" />
<Using Include="System.Diagnostics.CodeAnalysis" />
<Using Include="System.Linq" />
<Using Include="System.Reactive" />
<Using Include="System.Reactive.Linq" />
<Using Include="System.Reactive.Subjects" />
<Using Include="System.Reactive.Threading.Tasks" />
<Using Include="System.Threading.Tasks" />
<Using Include="ReactiveUI.Helpers" />
<Using Include="Splat" />
</ItemGroup>
<ItemGroup>
<!-- Modern .NET 9 Android approach for AndroidX libraries -->
<!-- Core AndroidX (AppCompat, RecyclerView, Fragment) available implicitly through .NET Android SDK -->
Expand Down
Loading
Loading