Skip to content

Commit 1b1e91b

Browse files
committed
v5 updates
1 parent 372c30a commit 1b1e91b

2 files changed

Lines changed: 20 additions & 6 deletions

File tree

Shiny.Push.FirebaseMessaging/Platforms/iOS/FirebasePushProvider.cs

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,22 @@
22
using System.Collections.Generic;
33
using System.Linq;
44
using System.Threading.Tasks;
5+
using Microsoft.Extensions.DependencyInjection;
6+
using Shiny.Extensions.Stores;
57
using Shiny.Firebase.Analytics.iOS.Binding;
68
using Shiny.Firebase.Messaging.iOS.Binding;
79
using Foundation;
810

911
namespace Shiny.Push;
1012

1113

12-
public class FirebasePushProvider(FirebaseConfiguration config) : NotifyPropertyChanged, IPushProvider, IPushTagSupport
14+
public class FirebasePushProvider(
15+
FirebaseConfiguration config,
16+
[FromKeyedServices(StoreKeys.Default)] IKeyValueStore store
17+
) : IPushProvider, IPushTagSupport
1318
{
19+
static string Key(string prop) => $"Shiny.Push.FirebasePushProvider.{prop}";
20+
1421

1522
public async Task<string> Register(NSData nativeToken)
1623
{
@@ -30,11 +37,18 @@ public Task UnRegister()
3037
}
3138

3239

33-
string[]? registeredTags;
40+
string[]? registeredTags = store.Get<string[]>(Key(nameof(RegisteredTags)));
3441
public string[]? RegisteredTags
3542
{
3643
get => this.registeredTags;
37-
set => this.Set(ref this.registeredTags, value);
44+
set
45+
{
46+
if (this.registeredTags != value)
47+
{
48+
this.registeredTags = value;
49+
store.SetOrRemove(Key(nameof(RegisteredTags)), value);
50+
}
51+
}
3852
}
3953

4054

Shiny.Push.FirebaseMessaging/Platforms/Shared/ServiceCollectionExtensions.cs renamed to Shiny.Push.FirebaseMessaging/ServiceCollectionExtensions.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44
namespace Shiny;
55

66

7-
public static class ServiceCollectionExtensions
7+
public static class FirebaseServiceCollectionExtensions
88
{
99
public static IServiceCollection AddPushFirebaseMessaging(this IServiceCollection services, FirebaseConfiguration? config = null)
1010
{
1111
#if IOS
1212
services.AddSingleton(config ?? new(true));
13-
services.AddShinyService<FirebasePushProvider>();
13+
services.AddSingletonAsImplementedInterfaces<FirebasePushProvider>();
1414
services.AddPush();
1515
#endif
1616
#if ANDROID
@@ -38,7 +38,7 @@ public static IServiceCollection AddPushFirebaseMessaging(this IServiceCollectio
3838
public static IServiceCollection AddPushFirebaseMessaging<TPushDelegate>(this IServiceCollection services, FirebaseConfiguration? config = null)
3939
where TPushDelegate : class, IPushDelegate
4040
{
41-
services.AddShinyService<TPushDelegate>();
41+
services.AddSingletonAsImplementedInterfaces<TPushDelegate>();
4242
services.AddPushFirebaseMessaging(config);
4343
return services;
4444
}

0 commit comments

Comments
 (0)