Skip to content

Commit 8a9e0c8

Browse files
[SL-9275] Replace MessagingCenter with Messenger (from Community Toolkit) (#44)
[SL-9275] Replace MessagingCenter with Messenger (from Community Toolkit) [SL-9275]: https://clientportal.atlassian.net/browse/SL-9275?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
1 parent 0351dd7 commit 8a9e0c8

5 files changed

Lines changed: 44 additions & 20 deletions

File tree

Float.Core/Analytics/AnalyticsMessageType.cs

Lines changed: 0 additions & 14 deletions
This file was deleted.

Float.Core/Analytics/AnalyticsService.cs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
using System;
22
using System.Collections.Generic;
3+
using CommunityToolkit.Mvvm.Messaging;
4+
using Float.Core.Messages;
35
#if NETSTANDARD
46
using Xamarin.Forms;
57
#else
@@ -23,7 +25,7 @@ public abstract class AnalyticsService
2325
/// </summary>
2426
protected AnalyticsService()
2527
{
26-
MessagingCenter.Subscribe<UI.BaseContentPage, string>(this, AnalyticsMessageType.PageView, HandlePageView);
28+
WeakReferenceMessenger.Default.Register<PageViewMessage>(this, HandlePageView);
2729
}
2830

2931
/// <summary>
@@ -161,11 +163,11 @@ protected virtual bool ShouldTrackUsage()
161163
/// <summary>
162164
/// Handler for when a page view occurs.
163165
/// </summary>
164-
/// <param name="page">The page that appeared.</param>
165-
/// <param name="name">The page name.</param>
166-
void HandlePageView(UI.BaseContentPage page, string name)
166+
/// <param name="sender">The page that appeared.</param>
167+
/// <param name="message">The page name.</param>
168+
void HandlePageView(object sender, PageViewMessage message)
167169
{
168-
TrackPageView(name, page);
170+
TrackPageView(message.Value, message.Page);
169171
}
170172
}
171173
}

Float.Core/Float.Core.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
<PrivateAssets>all</PrivateAssets>
3939
</PackageReference>
4040
<PackageReference Include="Newtonsoft.Json" Version="[12.0.1,]" />
41+
<PackageReference Include="CommunityToolkit.Mvvm" Version="[8.2.2,9)" />
4142
</ItemGroup>
4243
<ItemGroup Condition="$(TargetFramework.StartsWith('netstandard'))">
4344
<PackageReference Include="Xamarin.Forms" Version="[5.0.0.1874,6)" />
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
using CommunityToolkit.Mvvm.Messaging.Messages;
2+
#if NETSTANDARD
3+
using Xamarin.Forms;
4+
#else
5+
using Microsoft.Maui.Controls;
6+
#endif
7+
8+
namespace Float.Core.Messages
9+
{
10+
/// <summary>
11+
/// The page view message class definition.
12+
/// </summary>
13+
public class PageViewMessage : ValueChangedMessage<string>
14+
{
15+
/// <summary>
16+
/// Initializes a new instance of the <see cref="PageViewMessage"/> class.
17+
/// </summary>
18+
/// <param name="eventName">The event name.</param>
19+
/// <param name="page">The page displayed.</param>
20+
public PageViewMessage(string eventName, Page page) : base(eventName)
21+
{
22+
Page = page;
23+
}
24+
25+
/// <summary>
26+
/// Gets the page displayed.
27+
/// </summary>
28+
/// <value>
29+
/// The page displayed.
30+
/// </value>
31+
public Page Page { get; }
32+
}
33+
}

Float.Core/UI/BaseContentPage.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
using System;
2+
using CommunityToolkit.Mvvm.Messaging;
23
using Float.Core.Extensions;
4+
using Float.Core.Messages;
35
#if NETSTANDARD
46
using Xamarin.Forms;
57
#else
@@ -62,7 +64,7 @@ protected override void OnBindingContextChanged()
6264
/// <param name="name">The page name.</param>
6365
protected void TrackPageView(string name)
6466
{
65-
MessagingCenter.Send(this, Analytics.AnalyticsMessageType.PageView, name);
67+
WeakReferenceMessenger.Default.Send(new PageViewMessage(name, this));
6668
}
6769

6870
/// <inheritdoc />

0 commit comments

Comments
 (0)