Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
145a0a9
fix: C# 8 Nullibility Warnings
RLittlesII Dec 18, 2019
db7bdde
fixed more warnings
RLittlesII Dec 25, 2019
ec3a4a0
fixed more warnings
RLittlesII Jan 5, 2020
4aea742
more warnings
RLittlesII Jan 5, 2020
f9207fe
more analyzer warnings
RLittlesII Jan 15, 2020
75edcfd
more fixes
RLittlesII Jan 16, 2020
d17127b
more edits
RLittlesII Jan 16, 2020
afc7cc7
Merge branch 'master' into feature/nullable
RLittlesII May 2, 2020
49abde9
cleaning up more nullability errors
RLittlesII May 6, 2020
58128d0
Merge branch 'master' into feature/nullable
RLittlesII May 24, 2020
96c69ac
more nullability
RLittlesII May 24, 2020
b7e6e79
nulled PropertyChangedEvenHandler
RLittlesII May 24, 2020
3db5652
more nullability
RLittlesII May 31, 2020
83d6f41
started Windows based projects
RLittlesII Jun 3, 2020
2582a5f
Merge remote-tracking branch 'origin/main' into feature/nullable
RLittlesII Jun 9, 2020
da04b7b
Added additional warnings as errors
RLittlesII Jun 9, 2020
3f5eedb
fixing more nullability errors
RLittlesII Jun 9, 2020
04be09e
Merge remote-tracking branch 'origin/main' into feature/nullable
RLittlesII Jun 9, 2020
8c310da
cleaned up more warnings
RLittlesII Jun 30, 2020
4b63813
cleaned up more errors
RLittlesII Jul 5, 2020
a52fb3b
Merge branch 'main' into feature/nullable
RLittlesII Jul 5, 2020
801d314
cleaned up more errors
RLittlesII Jul 5, 2020
72193f3
Merge branch 'main' into feature/nullable
RLittlesII Jul 19, 2020
402fbc0
C# 8 nullability almost over
RLittlesII Jul 19, 2020
9baf2b0
fixing property binder implementation
RLittlesII Jul 19, 2020
6a08b4e
everything but the RoutedViewHost
RLittlesII Jul 19, 2020
eee9a01
no more local warnings
RLittlesII Jul 21, 2020
c05c0ea
adding more android resources to git ignore
RLittlesII Jul 21, 2020
b4a5ebd
new fixes
RLittlesII Jul 25, 2020
4947880
fixing view model nullability
RLittlesII Jul 25, 2020
595e2d8
last of the errors
RLittlesII Jul 25, 2020
7664500
everything good but the tests
RLittlesII Jul 25, 2020
51e6a53
Merge branch 'main' into feature/nullable
RLittlesII Jul 25, 2020
b166669
disable nullability to Test Project
RLittlesII Jul 25, 2020
b65ba51
fixing api approval tests
RLittlesII Jul 25, 2020
ded2866
fixing unit tests
RLittlesII Jul 27, 2020
c7d61f2
fixing PR comments
RLittlesII Jul 27, 2020
bcbea57
Merge remote-tracking branch 'origin/main' into feature/nullable
RLittlesII Jul 27, 2020
0bba9eb
fixed rxapp
RLittlesII Jul 28, 2020
8cb4b5b
Merge branch 'main' into feature/nullable
glennawatson Jul 28, 2020
52c587d
Further null fixing
glennawatson Jul 28, 2020
509c893
Merge branch 'main' into feature/nullable
glennawatson Jul 28, 2020
436d160
Further progress to getting null working
glennawatson Jul 28, 2020
55f658c
Fix failing tests
glennawatson Jul 28, 2020
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
  •  
  •  
  •  
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -365,4 +365,5 @@ src/Tools/
**/*.Android/**/[Rr]esource.[Dd]esigner.cs
**/*.Droid/**/[Rr]esource.[Dd]esigner.cs
**/Android/**/[Rr]esource.[Dd]esigner.cs
**/Droid/**/[Rr]esource.[Dd]esigner.cs
**/Droid/**/[Rr]esource.[Dd]esigner.cs
**/[Rr]esources/[Rr]esource.[Dd]esigner.cs
3 changes: 3 additions & 0 deletions src/Directory.build.props
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,9 @@
<EmbedUntrackedSources>true</EmbedUntrackedSources>
<!-- Include PDB in the built .nupkg -->
<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>
<Nullable>enable</Nullable>
<LangVersion>latest</LangVersion>
<WarningsAsErrors>CS8600;CS8602;CS8603;CS8604;CS8605;CS8606;CS8607;CS8608;CS8609;CS8610;CS8611;CS8612;CS8613;CS8614;CS8615;CS8616;CS8617;CS8618;CS8619;CS8620;CS8621;CS8622;CS8623;CS8624;CS8625;CS8626;CS8627;CS8628;CS8629;CS8630;CS8634;CS8766;CS8767</WarningsAsErrors>
</PropertyGroup>

<!-- MonoAndroid doesn't seem to want to allow debugging for maintainers -->
Expand Down
12 changes: 6 additions & 6 deletions src/ReactiveUI.AndroidSupport/ReactiveAppCompatActivity.cs
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ namespace ReactiveUI.AndroidSupport
public class ReactiveAppCompatActivity<TViewModel> : ReactiveAppCompatActivity, IViewFor<TViewModel>, ICanActivate
where TViewModel : class
{
private TViewModel _viewModel;
private TViewModel? _viewModel;

/// <summary>
/// Initializes a new instance of the <see cref="ReactiveAppCompatActivity{TViewModel}"/> class.
Expand All @@ -37,17 +37,17 @@ protected ReactiveAppCompatActivity()
}

/// <inheritdoc/>
public TViewModel ViewModel
public TViewModel? ViewModel
{
get => _viewModel;
set => this.RaiseAndSetIfChanged(ref _viewModel, value);
}

/// <inheritdoc/>
object IViewFor.ViewModel
object? IViewFor.ViewModel
{
get => _viewModel;
set => _viewModel = (TViewModel)value;
set => _viewModel = (TViewModel?)value;
}
}

Expand Down Expand Up @@ -80,10 +80,10 @@ protected ReactiveAppCompatActivity(IntPtr handle, JniHandleOwnership ownership)
}

/// <inheritdoc/>
public event PropertyChangingEventHandler PropertyChanging;
public event PropertyChangingEventHandler? PropertyChanging;

/// <inheritdoc/>
public event PropertyChangedEventHandler PropertyChanged;
public event PropertyChangedEventHandler? PropertyChanged;

/// <inheritdoc/>
public IObservable<IReactivePropertyChangedEventArgs<ReactiveAppCompatActivity>> Changing => this.GetChangingObservable();
Expand Down
12 changes: 6 additions & 6 deletions src/ReactiveUI.AndroidSupport/ReactiveDialogFragment.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ namespace ReactiveUI.AndroidSupport
public class ReactiveDialogFragment<TViewModel> : ReactiveDialogFragment, IViewFor<TViewModel>, ICanActivate
where TViewModel : class
{
private TViewModel _viewModel;
private TViewModel? _viewModel;

/// <summary>
/// Initializes a new instance of the <see cref="ReactiveDialogFragment{TViewModel}"/> class.
Expand All @@ -31,17 +31,17 @@ protected ReactiveDialogFragment()
}

/// <inheritdoc/>
public TViewModel ViewModel
public TViewModel? ViewModel
{
get => _viewModel;
set => this.RaiseAndSetIfChanged(ref _viewModel, value);
}

/// <inheritdoc/>
object IViewFor.ViewModel
object? IViewFor.ViewModel
{
get => _viewModel;
set => _viewModel = (TViewModel)value;
set => _viewModel = (TViewModel?)value;
}
}

Expand All @@ -63,10 +63,10 @@ protected ReactiveDialogFragment()
}

/// <inheritdoc/>
public event PropertyChangingEventHandler PropertyChanging;
public event PropertyChangingEventHandler? PropertyChanging;

/// <inheritdoc/>
public event PropertyChangedEventHandler PropertyChanged;
public event PropertyChangedEventHandler? PropertyChanged;

/// <inheritdoc/>
public IObservable<Exception> ThrownExceptions => this.GetThrownExceptionsObservable();
Expand Down
12 changes: 6 additions & 6 deletions src/ReactiveUI.AndroidSupport/ReactiveFragment.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ namespace ReactiveUI.AndroidSupport
public class ReactiveFragment<TViewModel> : ReactiveFragment, IViewFor<TViewModel>, ICanActivate
where TViewModel : class
{
private TViewModel _viewModel;
private TViewModel? _viewModel;

/// <summary>
/// Initializes a new instance of the <see cref="ReactiveFragment{TViewModel}"/> class.
Expand All @@ -31,17 +31,17 @@ protected ReactiveFragment()
}

/// <inheritdoc/>
public TViewModel ViewModel
public TViewModel? ViewModel
{
get => _viewModel;
set => this.RaiseAndSetIfChanged(ref _viewModel, value);
}

/// <inheritdoc/>
object IViewFor.ViewModel
object? IViewFor.ViewModel
{
get => _viewModel;
set => _viewModel = (TViewModel)value;
set => _viewModel = (TViewModel?)value;
}
}

Expand All @@ -63,10 +63,10 @@ protected ReactiveFragment()
}

/// <inheritdoc/>
public event PropertyChangingEventHandler PropertyChanging;
public event PropertyChangingEventHandler? PropertyChanging;

/// <inheritdoc/>
public event PropertyChangedEventHandler PropertyChanged;
public event PropertyChangedEventHandler? PropertyChanged;

/// <inheritdoc/>
public IObservable<Exception> ThrownExceptions => this.GetThrownExceptionsObservable();
Expand Down
14 changes: 7 additions & 7 deletions src/ReactiveUI.AndroidSupport/ReactiveFragmentActivity.cs
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ namespace ReactiveUI.AndroidSupport
public class ReactiveFragmentActivity<TViewModel> : ReactiveFragmentActivity, IViewFor<TViewModel>, ICanActivate
where TViewModel : class
{
private TViewModel _viewModel;
private TViewModel? _viewModel;

/// <summary>
/// Initializes a new instance of the <see cref="ReactiveFragmentActivity{TViewModel}"/> class.
Expand All @@ -37,17 +37,17 @@ protected ReactiveFragmentActivity()
}

/// <inheritdoc/>
public TViewModel ViewModel
public TViewModel? ViewModel
{
get => _viewModel;
set => this.RaiseAndSetIfChanged(ref _viewModel, value);
}

/// <inheritdoc/>
object IViewFor.ViewModel
object? IViewFor.ViewModel
{
get => _viewModel;
set => _viewModel = (TViewModel)value;
set => _viewModel = (TViewModel?)value;
}
}

Expand All @@ -63,10 +63,10 @@ public class ReactiveFragmentActivity : FragmentActivity, IReactiveObject, IReac
private readonly Subject<(int requestCode, Result result, Intent intent)> _activityResult = new Subject<(int requestCode, Result result, Intent intent)>();

/// <inheritdoc/>
public event PropertyChangingEventHandler PropertyChanging;
public event PropertyChangingEventHandler? PropertyChanging;

/// <inheritdoc/>
public event PropertyChangedEventHandler PropertyChanged;
public event PropertyChangedEventHandler? PropertyChanged;

/// <inheritdoc />
public IObservable<IReactivePropertyChangedEventArgs<ReactiveFragmentActivity>> Changing => this.GetChangingObservable();
Expand All @@ -78,7 +78,7 @@ public class ReactiveFragmentActivity : FragmentActivity, IReactiveObject, IReac
public IObservable<Exception> ThrownExceptions => this.GetThrownExceptionsObservable();

/// <summary>
/// Gets a singal when the activity fragment is activated.
/// Gets a signal when the activity fragment is activated.
/// </summary>
public IObservable<Unit> Activated => _activated.AsObservable();

Expand Down
6 changes: 3 additions & 3 deletions src/ReactiveUI.AndroidSupport/ReactivePagerAdapter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ public class ReactivePagerAdapter<TViewModel> : PagerAdapter, IEnableLogger
{
private readonly SourceList<TViewModel> _list;
private readonly Func<TViewModel, ViewGroup, View> _viewCreator;
private readonly Action<TViewModel, View> _viewInitializer;
private readonly Action<TViewModel, View>? _viewInitializer;
private readonly IDisposable _inner;

/// <summary>
Expand All @@ -40,7 +40,7 @@ public class ReactivePagerAdapter<TViewModel> : PagerAdapter, IEnableLogger
public ReactivePagerAdapter(
IObservable<IChangeSet<TViewModel>> changeSet,
Func<TViewModel, ViewGroup, View> viewCreator,
Action<TViewModel, View> viewInitializer = null)
Action<TViewModel, View>? viewInitializer = null)
{
_list = new SourceList<TViewModel>(changeSet);
_viewCreator = viewCreator;
Expand Down Expand Up @@ -132,7 +132,7 @@ public class ReactivePagerAdapter<TViewModel, TCollection> : ReactivePagerAdapte
public ReactivePagerAdapter(
TCollection collection,
Func<TViewModel, ViewGroup, View> viewCreator,
Action<TViewModel, View> viewInitializer = null)
Action<TViewModel, View>? viewInitializer = null)
: base(collection.ToObservableChangeSet<TCollection, TViewModel>(), viewCreator, viewInitializer)
{
}
Expand Down
12 changes: 6 additions & 6 deletions src/ReactiveUI.AndroidSupport/ReactivePreferenceFragment.cs
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ namespace ReactiveUI.AndroidSupport
public abstract class ReactivePreferenceFragment<TViewModel> : ReactivePreferenceFragment, IViewFor<TViewModel>, ICanActivate
where TViewModel : class
{
private TViewModel _viewModel;
private TViewModel? _viewModel;

/// <summary>
/// Initializes a new instance of the <see cref="ReactivePreferenceFragment{TViewModel}"/> class.
Expand All @@ -43,17 +43,17 @@ protected ReactivePreferenceFragment(IntPtr handle, JniHandleOwnership ownership
}

/// <inheritdoc/>
public TViewModel ViewModel
public TViewModel? ViewModel
{
get => _viewModel;
set => this.RaiseAndSetIfChanged(ref _viewModel, value);
}

/// <inheritdoc/>
object IViewFor.ViewModel
object? IViewFor.ViewModel
{
get => _viewModel;
set => _viewModel = (TViewModel)value;
set => _viewModel = (TViewModel?)value;
}
}

Expand Down Expand Up @@ -85,10 +85,10 @@ protected ReactivePreferenceFragment(IntPtr handle, JniHandleOwnership ownership
}

/// <inheritdoc/>
public event PropertyChangingEventHandler PropertyChanging;
public event PropertyChangingEventHandler? PropertyChanging;

/// <inheritdoc/>
public event PropertyChangedEventHandler PropertyChanged;
public event PropertyChangedEventHandler? PropertyChanged;

/// <inheritdoc />
public IObservable<IReactivePropertyChangedEventArgs<ReactivePreferenceFragment>> Changing => this.GetChangingObservable();
Expand Down
4 changes: 2 additions & 2 deletions src/ReactiveUI.AndroidSupport/ReactiveRecyclerViewAdapter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ public override int GetItemViewType(int position)
/// <param name="position">The position of the current view in the list.</param>
/// <param name="viewModel">The ViewModel associated with the current View.</param>
/// <returns>An ID to be used in OnCreateViewHolder.</returns>
public virtual int GetItemViewType(int position, TViewModel viewModel)
public virtual int GetItemViewType(int position, TViewModel? viewModel)
{
return base.GetItemViewType(position);
}
Expand Down Expand Up @@ -93,7 +93,7 @@ protected override void Dispose(bool disposing)
base.Dispose(disposing);
}

private TViewModel GetViewModelByPosition(int position)
private TViewModel? GetViewModelByPosition(int position)
{
return position >= _list.Count ? null : _list.Items.ElementAt(position);
}
Expand Down
22 changes: 11 additions & 11 deletions src/ReactiveUI.AndroidSupport/ReactiveRecyclerViewViewHolder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@ public class ReactiveRecyclerViewViewHolder<TViewModel> : RecyclerView.ViewHolde
[SuppressMessage("Design", "CA1051: Do not declare visible instance fields", Justification = "Legacy reasons")]
[SuppressMessage("StyleCop.CSharp.MaintainabilityRules", "SA1306: Field should start with a lower case letter", Justification = "Legacy reasons")]
[IgnoreDataMember]
protected Lazy<PropertyInfo[]> AllPublicProperties;
protected Lazy<PropertyInfo[]> AllPublicProperties = null!;

private TViewModel _viewModel;
private TViewModel? _viewModel;

/// <summary>
/// Initializes a new instance of the <see cref="ReactiveRecyclerViewViewHolder{TViewModel}"/> class.
Expand Down Expand Up @@ -60,7 +60,7 @@ protected ReactiveRecyclerViewViewHolder(View view)
h => view.LongClick += h,
h => view.LongClick -= h);

SelectedWithViewModel = Observable.FromEvent<EventHandler, TViewModel>(
SelectedWithViewModel = Observable.FromEvent<EventHandler, TViewModel?>(
eventHandler =>
{
void Handler(object sender, EventArgs e) => eventHandler(ViewModel);
Expand All @@ -69,7 +69,7 @@ protected ReactiveRecyclerViewViewHolder(View view)
h => view.Click += h,
h => view.Click -= h);

LongClickedWithViewModel = Observable.FromEvent<EventHandler<View.LongClickEventArgs>, TViewModel>(
LongClickedWithViewModel = Observable.FromEvent<EventHandler<View.LongClickEventArgs>, TViewModel?>(
eventHandler =>
{
void Handler(object sender, View.LongClickEventArgs e) => eventHandler(ViewModel);
Expand All @@ -80,10 +80,10 @@ protected ReactiveRecyclerViewViewHolder(View view)
}

/// <inheritdoc/>
public event PropertyChangingEventHandler PropertyChanging;
public event PropertyChangingEventHandler PropertyChanging = null!;

/// <inheritdoc/>
public event PropertyChangedEventHandler PropertyChanged;
public event PropertyChangedEventHandler PropertyChanged = null!;

/// <summary>
/// Gets an observable that signals that this ViewHolder has been selected.
Expand All @@ -98,7 +98,7 @@ protected ReactiveRecyclerViewViewHolder(View view)
///
/// The <see cref="IObservable{TViewModel}"/> is the ViewModel of this ViewHolder in the <see cref="RecyclerView"/>.
/// </summary>
public IObservable<TViewModel> SelectedWithViewModel { get; }
public IObservable<TViewModel?> SelectedWithViewModel { get; }

/// <summary>
/// Gets an observable that signals that this ViewHolder has been long-clicked.
Expand All @@ -113,15 +113,15 @@ protected ReactiveRecyclerViewViewHolder(View view)
///
/// The <see cref="IObservable{TViewModel}"/> is the ViewModel of this ViewHolder in the <see cref="RecyclerView"/>.
/// </summary>
public IObservable<TViewModel> LongClickedWithViewModel { get; }
public IObservable<TViewModel?> LongClickedWithViewModel { get; }

/// <summary>
/// Gets the current view being shown.
/// </summary>
public View View => ItemView;

/// <inheritdoc/>
public TViewModel ViewModel
public TViewModel? ViewModel
{
get => _viewModel;
set => this.RaiseAndSetIfChanged(ref _viewModel, value);
Expand All @@ -134,10 +134,10 @@ public TViewModel ViewModel
public IObservable<Exception> ThrownExceptions => this.GetThrownExceptionsObservable();

/// <inheritdoc/>
object IViewFor.ViewModel
object? IViewFor.ViewModel
{
get => ViewModel;
set => ViewModel = (TViewModel)value;
set => ViewModel = (TViewModel?)value;
}

/// <inheritdoc/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
<TargetFrameworks>MonoAndroid90</TargetFrameworks>
<PackageDescription>Provides ReactiveUI extensions for the Android Support Library</PackageDescription>
<PackageId>ReactiveUI.AndroidSupport</PackageId>
<Nullable>enable</Nullable>
<LangVersion>latest</LangVersion>
<PackageTags>mvvm;reactiveui;rx;reactive extensions;observable;LINQ;events;frp;xamarin;android;forms;monodroid;monotouch;xamarin.android;net;</PackageTags>
</PropertyGroup>
Expand Down
Loading