Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ Prefix your items with `(Template)` if the change is about the template and not
- Set MtouchUseLlvm to false for iOS release build to fix build time issue.
- Changed the way that iOS app icons are added to the project.
- Updated external dependencies packages versions.
- Added [Bindable(true)] to all properties in the presentation layer that are used in bindings to remove runtime errors.

## 3.11.X
- Added API Client tests project.
Expand Down
4 changes: 2 additions & 2 deletions Directory.Build.props
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
<Project>
<ItemGroup>
<PackageReference Include="StyleCop.Analyzers" Version="1.2.0-beta.507">
<PackageReference Include="StyleCop.Analyzers" Version="1.2.0-beta.556">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.NetAnalyzers" Version="10.0.101">
<PackageReference Include="Microsoft.CodeAnalysis.NetAnalyzers" Version="10.0.102">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
Expand Down
4 changes: 2 additions & 2 deletions build/steps-build-ios.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,11 @@ steps:
installAppleWorkload: true

- task: Bash@3
displayName: Select Xcode 26.0
displayName: Select Xcode 26.1
inputs:
targetType: inline
script: |
sudo xcode-select -s "/Applications/Xcode_26.0.1.app/Contents/Developer"
sudo xcode-select -s "/Applications/Xcode_26.1.1.app/Contents/Developer"

#-if false
- download: current
Expand Down
2 changes: 1 addition & 1 deletion build/templates/dotnet-install.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

- name: UnoCheck_Manifest
type: string
default: 'https://raw.githubusercontent.com/unoplatform/uno.check/3bd81468f842eb34fe4760d1694baf8e4ba6edba/manifests/uno.ui.manifest.json'
default: 'https://raw.githubusercontent.com/unoplatform/uno.check/d80cfb2e37941bfbb8d9d7bd9cc6599567382cff/manifests/uno.ui.manifest.json'

# Whether the Android workload should be installed.
- name: installAndroidWorkload
Expand Down
2 changes: 1 addition & 1 deletion build/variables.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@
macOSHostedAgentImage: 'macOS-15'

# SDK versions
DotNetVersion: '10.0.100'
DotNetVersion: '10.0.101'

# Name of the folder where the artefacts will be placed. Variable used in build and release phases.
# We make seperate folders so that releases can each download only the folder they need.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,13 @@

<ItemGroup>
<PackageReference Include="DynamicData" Version="9.4.1" />
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="10.0.1" />
<PackageReference Include="Microsoft.Extensions.Http" Version="10.0.1" />
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.1" />
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="10.0.1" />
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="10.0.2" />
<PackageReference Include="Microsoft.Extensions.Http" Version="10.0.2" />
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="10.0.2" />
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="10.0.2" />
<PackageReference Include="Reactive.Annex" Version="2.0.1" />
<PackageReference Include="Refit" Version="9.0.2" />
<PackageReference Include="ReviewService.Abstractions" Version="1.0.0" />
<PackageReference Include="ReviewService.Abstractions" Version="4.0.0" />
<PackageReference Include="MallardMessageHandlers" Version="2.0.0" />
<PackageReference Include="Nventive.Persistence.Reactive" Version="0.5.0" />
<PackageReference Include="Nventive.Persistence" Version="0.5.0" />
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
using ApplicationTemplate.DataAccess;

namespace ApplicationTemplate.Business;

[Bindable(true)]
public record DadJokesQuote
{
public DadJokesQuote(DadJokeContentData data, bool isFavorite)
Expand Down
2 changes: 2 additions & 0 deletions src/app/ApplicationTemplate.Business/Posts/Post.cs
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
using ApplicationTemplate.DataAccess;

namespace ApplicationTemplate.Business;

[Bindable(true)]
public record Post
{
public long Id { get; init; }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,27 +16,27 @@
<TrimMode>partial</TrimMode>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Chinook.BackButtonManager.Uno.WinUI" Version="3.0.1" />
<PackageReference Include="Chinook.DataLoader.Uno.WinUI" Version="3.0.1" />
<PackageReference Include="Chinook.DynamicMvvm.Uno.WinUI" Version="3.0.1" />
<PackageReference Include="Chinook.SectionsNavigation.Uno.WinUI" Version="4.0.1" />
<PackageReference Include="ExtendedSplashScreen.Uno.WinUI" Version="2.0.1" />
<PackageReference Include="MessageDialogService.Uno.WinUI" Version="2.0.0" />
<PackageReference Include="Microsoft.Maui.Essentials" Version="10.0.20" />
<PackageReference Include="Nventive.Persistence.Uno.WinUI" Version="0.5.1-dev.57" />
<PackageReference Include="Nventive.View.Uno.WinUI" Version="0.7.0-dev.88" />
<PackageReference Include="Reactive.Annex.Uno.WinUI" Version="2.0.1" />
<PackageReference Include="ReviewService.NativePrompters" Version="1.0.0" />
<PackageReference Include="Chinook.BackButtonManager.Uno.WinUI" Version="4.0.0" />
<PackageReference Include="Chinook.DataLoader.Uno.WinUI" Version="4.0.0" />
<PackageReference Include="Chinook.DynamicMvvm.Uno.WinUI" Version="4.0.0" />
<PackageReference Include="Chinook.SectionsNavigation.Uno.WinUI" Version="5.0.0" />
<PackageReference Include="ExtendedSplashScreen.Uno.WinUI" Version="3.0.0" />
<PackageReference Include="MessageDialogService.Uno.WinUI" Version="3.0.0" />
<PackageReference Include="Microsoft.Maui.Essentials" Version="10.0.30" />
<PackageReference Include="Nventive.Persistence.Uno.WinUI" Version="0.7.0-dev.61" />
<PackageReference Include="Nventive.View.Uno.WinUI" Version="0.8.0-dev.90" />
<PackageReference Include="Reactive.Annex.Uno.WinUI" Version="3.0.0" />
<PackageReference Include="ReviewService.NativePrompters" Version="4.0.0" />
<PackageReference Include="Uno.CommunityToolkit.WinUI" Version="7.1.204" />
<PackageReference Include="Uno.Material.WinUI" Version="5.4.0" />
<PackageReference Include="Uno.Microsoft.Xaml.Behaviors.Interactivity.WinUI" Version="2.4.2" />
<PackageReference Include="Uno.Material.WinUI" Version="6.2.0-dev.7" />
<PackageReference Include="Uno.Microsoft.Xaml.Behaviors.Interactivity.WinUI" Version="3.0.3" />
<PackageReference Include="Uno.Microsoft.Xaml.Behaviors.WinUI.Managed" Version="2.4.2" />
<PackageReference Include="Uno.Toolkit.WinUI.Material" Version="6.4.3" />
<PackageReference Include="Uno.WinUI" Version="5.6.81" />
<PackageReference Include="Uno.WinUI.DevServer" Version="5.6.81" Condition="'$(Configuration)'=='Debug'" />
<PackageReference Include="Uno.WinUI.Lottie" Version="5.6.81" />
<PackageReference Include="Uno.UI.Adapter.Microsoft.Extensions.Logging" Version="5.6.81" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="10.0.1" />
<PackageReference Include="Uno.Toolkit.WinUI.Material" Version="8.5.0-dev.24" />
<PackageReference Include="Uno.WinUI" Version="6.6.0-dev.153" />
<PackageReference Include="Uno.WinUI.DevServer" Version="6.6.0-dev.153" Condition="'$(Configuration)'=='Debug'" />
<PackageReference Include="Uno.WinUI.Lottie" Version="6.6.0-dev.153" />
<PackageReference Include="Uno.UI.Adapter.Microsoft.Extensions.Logging" Version="6.6.0-dev.153" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="10.0.2" />
<PackageReference Include="Serilog.Sinks.Xamarin" Version="1.0.0" />
<PackageReference Include="Serilog.Sinks.File" Version="7.0.0" />

Expand Down Expand Up @@ -105,9 +105,6 @@
<PackageReference Include="Uno.UniversalImageLoader" Version="1.9.37" />
<PackageReference Include="Mono.AotProfiler.Android" Version="10.0.0-preview1" />
<PackageReference Include="Xamarin.Kotlin.StdLib.Jdk8" Version="2.0.21.2" />

<!-- Required with the last version of Uno otherwise an exception is thrown in the main activity. -->
<PackageReference Include="Xamarin.AndroidX.AppCompat" Version="1.7.0.5" />
</ItemGroup>
<ItemGroup>
<AndroidAotProfile Include="custom.aprof" />
Expand Down Expand Up @@ -224,7 +221,7 @@
</When>
</Choose>
<ItemGroup>
<PackageReference Include="Uno.Extensions.Logging.OSLog" Version="1.7.0" />
<PackageReference Include="Uno.Extensions.Logging.OSLog" Version="1.9.0-dev.2" />
</ItemGroup>
<ItemGroup>
<TrimmerRootDescriptor Include="iOS\LinkerExclusions.xml" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,24 +17,24 @@

<ItemGroup>
<PackageReference Include="ByteSize" Version="2.1.2" />
<PackageReference Include="Microsoft.Extensions.Hosting" Version="10.0.1" />
<PackageReference Include="Microsoft.Extensions.Localization.Abstractions" Version="10.0.1" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="10.0.1" />
<PackageReference Include="ReviewService" Version="1.0.0" />
<PackageReference Include="Microsoft.Extensions.Hosting" Version="10.0.2" />
<PackageReference Include="Microsoft.Extensions.Localization.Abstractions" Version="10.0.2" />
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="10.0.2" />
<PackageReference Include="ReviewService" Version="4.0.0" />
<PackageReference Include="Serilog.Extensions.Hosting" Version="10.0.0" />
<PackageReference Include="Serilog.Settings.Configuration" Version="10.0.0" />
<PackageReference Include="Serilog.Sinks.Debug" Version="3.0.0" />
<PackageReference Include="FluentValidation.DependencyInjectionExtensions" Version="9.5.4" />
<PackageReference Include="Chinook.DynamicMvvm" Version="3.0.1" />
<PackageReference Include="Chinook.DynamicMvvm.Reactive" Version="3.0.1" />
<PackageReference Include="Chinook.DynamicMvvm.FluentValidation" Version="3.0.1" />
<PackageReference Include="Chinook.DynamicMvvm.CollectionTracking" Version="3.0.1" />
<PackageReference Include="Chinook.DataLoader" Version="3.0.1" />
<PackageReference Include="Chinook.DataLoader.DynamicMvvm" Version="3.0.1" />
<PackageReference Include="Chinook.BackButtonManager" Version="3.0.1" />
<PackageReference Include="Chinook.SectionsNavigation" Version="4.0.1" />
<PackageReference Include="Chinook.SectionsNavigation.Reactive" Version="4.0.1" />
<PackageReference Include="MessageDialogService" Version="2.0.0" />
<PackageReference Include="Chinook.DynamicMvvm" Version="4.0.0" />
<PackageReference Include="Chinook.DynamicMvvm.Reactive" Version="4.0.0" />
<PackageReference Include="Chinook.DynamicMvvm.FluentValidation" Version="4.0.0" />
<PackageReference Include="Chinook.DynamicMvvm.CollectionTracking" Version="4.0.0" />
<PackageReference Include="Chinook.DataLoader" Version="4.0.0" />
<PackageReference Include="Chinook.DataLoader.DynamicMvvm" Version="4.0.0" />
<PackageReference Include="Chinook.BackButtonManager" Version="4.0.0" />
<PackageReference Include="Chinook.SectionsNavigation" Version="5.0.0" />
<PackageReference Include="Chinook.SectionsNavigation.Reactive" Version="5.0.0" />
<PackageReference Include="MessageDialogService" Version="3.0.0" />
</ItemGroup>

<ItemGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ public ReviewServiceAdapter(IReviewService<ReviewSettings> reviewService)

public Task<bool> GetAreConditionsSatisfied(CancellationToken ct) => _reviewService.GetAreConditionsSatisfied(ct);

public Task TryRequestReview(CancellationToken ct) => _reviewService.TryRequestReview(ct);
public Task<ReviewRequestResult> TryRequestReview(CancellationToken ct) => _reviewService.TryRequestReview(ct);

public Task UpdateReviewSettings(CancellationToken ct, Func<ReviewSettings, ReviewSettings> updateFunction) => _reviewService.UpdateReviewSettings(ct, updateFunction);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
using System;
using System.ComponentModel;
using Chinook.DynamicMvvm;
using FluentValidation;
using Microsoft.Extensions.Localization;
using Uno.Extensions;

namespace ApplicationTemplate.Presentation;

[Bindable(true)]
public sealed class CreateAccountFormViewModel : ViewModel
{
public CreateAccountFormViewModel()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using System;
using System.ComponentModel;
using System.Threading;
using System.Threading.Tasks;
using ApplicationTemplate.Business;
Expand All @@ -8,6 +9,7 @@

namespace ApplicationTemplate.Presentation;

[Bindable(true)]
public class CreateAccountPageViewModel : ViewModel
{
public CreateAccountFormViewModel Form => this.GetChild(() => new CreateAccountFormViewModel());
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
using Chinook.DynamicMvvm;
using FluentValidation;
Expand All @@ -8,6 +9,7 @@

namespace ApplicationTemplate.Presentation;

[Bindable(true)]
public class ForgotPasswordFormViewModel : ViewModel
{
public ForgotPasswordFormViewModel()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using System;
using System.ComponentModel;
using System.Threading;
using System.Threading.Tasks;
using ApplicationTemplate.Business;
Expand All @@ -8,6 +9,7 @@

namespace ApplicationTemplate.Presentation;

[Bindable(true)]
public class ForgotPasswordPageViewModel : ViewModel
{
public ForgotPasswordFormViewModel Form => this.GetChild(() => new ForgotPasswordFormViewModel());
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
using Chinook.DynamicMvvm;
using FluentValidation;
Expand All @@ -8,6 +9,7 @@

namespace ApplicationTemplate.Presentation;

[Bindable(true)]
public class LoginFormViewModel : ViewModel
{
public string Email
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using System;
using System.ComponentModel;
using System.Threading;
using System.Threading.Tasks;
using ApplicationTemplate.Business;
Expand All @@ -10,6 +11,7 @@

namespace ApplicationTemplate.Presentation;

[Bindable(true)]
public class LoginPageViewModel : ViewModel
{
public LoginPageViewModel(bool isFirstLogin)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Reactive.Linq;
using System.Text;
Expand All @@ -8,6 +9,7 @@

namespace ApplicationTemplate.Presentation;

[Bindable(true)]
public class PasswordFormViewModel : ViewModel
{
public string Password
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Reactive.Linq;
using System.Text;
Expand All @@ -10,6 +11,7 @@

namespace ApplicationTemplate.Presentation;

[Bindable(true)]
public class ResetPasswordPageViewModel : ViewModel
{
public PasswordFormViewModel PasswordForm => this.GetChild(() => new PasswordFormViewModel());
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;

namespace ApplicationTemplate.Presentation;

[Bindable(true)]
public class SentEmailConfirmationPageViewModel : ViewModel
{
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
using System;
using System.ComponentModel;
using System.Reactive.Linq;
using ApplicationTemplate.Business;
using Chinook.DynamicMvvm;
using Chinook.SectionsNavigation;

namespace ApplicationTemplate.Presentation;

[Bindable(true)]
public sealed class DadJokesFiltersPageViewModel : ViewModel
{
public IDynamicCommand HandleCheck => this.GetCommand((string pt) =>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Text;
using ApplicationTemplate.Business;
using Chinook.DynamicMvvm;

namespace ApplicationTemplate.Presentation;

[Bindable(true)]
public class DadJokesItemViewModel : ViewModel
{
public DadJokesItemViewModel(IViewModel parent, DadJokesQuote quote)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
using System;
using System.ComponentModel;
using System.Linq;
using System.Reactive.Linq;
using System.Threading;
Expand All @@ -16,6 +17,7 @@

namespace ApplicationTemplate.Presentation;

[Bindable(true)]
public sealed class DadJokesPageViewModel : ViewModel
{
private readonly IDadJokesService _dadJokesService;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Reactive.Disposables;
using System.Reflection;
Expand All @@ -14,6 +15,7 @@

namespace ApplicationTemplate.Presentation;

[Bindable(true)]
public sealed class ConfigurationDebuggerViewModel : TabViewModel
{
private static readonly JsonSerializerOptions _jsonOptions = new JsonSerializerOptions
Expand Down
Loading