pair request cleanup with refactoring
This commit is contained in:
@@ -108,6 +108,7 @@ public record EnableBroadcastMessage(string HashedCid, bool Enabled) : MessageBa
|
||||
public record BroadcastStatusChangedMessage(bool Enabled, TimeSpan? Ttl) : MessageBase;
|
||||
public record SyncshellBroadcastsUpdatedMessage : MessageBase;
|
||||
public record PairRequestsUpdatedMessage : MessageBase;
|
||||
public record PairRequestReceivedMessage(string SenderName, string SenderId) : MessageBase;
|
||||
public record BroadcastExpiredMessage : MessageBase;
|
||||
public record VisibilityChange : MessageBase;
|
||||
#pragma warning restore S2094
|
||||
|
||||
@@ -49,6 +49,7 @@ public class NotificationService : DisposableMediatorSubscriberBase, IHostedServ
|
||||
{
|
||||
Mediator.Subscribe<NotificationMessage>(this, HandleNotificationMessage);
|
||||
Mediator.Subscribe<PairRequestsUpdatedMessage>(this, HandlePairRequestsUpdated);
|
||||
Mediator.Subscribe<PairRequestReceivedMessage>(this, HandlePairRequestReceived);
|
||||
Mediator.Subscribe<PerformanceNotificationMessage>(this, HandlePerformanceNotification);
|
||||
Mediator.Subscribe<BroadcastExpiredMessage>(this, HandleBroadcastExpired);
|
||||
return Task.CompletedTask;
|
||||
@@ -585,6 +586,16 @@ public class NotificationService : DisposableMediatorSubscriberBase, IHostedServ
|
||||
_chatGui.Print(se.BuiltString);
|
||||
}
|
||||
|
||||
private void HandlePairRequestReceived(PairRequestReceivedMessage msg)
|
||||
{
|
||||
ShowPairRequestNotification(
|
||||
msg.SenderName,
|
||||
msg.SenderId,
|
||||
() => _pairRequestService.AcceptPairRequest(msg.SenderId, msg.SenderName),
|
||||
() => _pairRequestService.DeclinePairRequest(msg.SenderId)
|
||||
);
|
||||
}
|
||||
|
||||
private void HandlePairRequestsUpdated(PairRequestsUpdatedMessage _)
|
||||
{
|
||||
var activeRequests = _pairRequestService.GetActiveRequests();
|
||||
@@ -602,16 +613,10 @@ public class NotificationService : DisposableMediatorSubscriberBase, IHostedServ
|
||||
_shownPairRequestNotifications.Remove(hashedCid);
|
||||
}
|
||||
|
||||
// Show/update notifications for all active requests
|
||||
// Track active requests
|
||||
foreach (var request in activeRequests)
|
||||
{
|
||||
_shownPairRequestNotifications.Add(request.HashedCid);
|
||||
ShowPairRequestNotification(
|
||||
request.DisplayName,
|
||||
request.HashedCid,
|
||||
() => _pairRequestService.AcceptPairRequest(request.HashedCid, request.DisplayName),
|
||||
() => _pairRequestService.DeclinePairRequest(request.HashedCid)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -70,6 +70,10 @@ public sealed class PairRequestService : DisposableMediatorSubscriberBase
|
||||
: _dalamudUtil.RunOnFrameworkThread(() => ToDisplay(entry)).GetAwaiter().GetResult();
|
||||
|
||||
Mediator.Publish(new PairRequestsUpdatedMessage());
|
||||
|
||||
var senderName = string.IsNullOrEmpty(display.DisplayName) ? "Unknown User" : display.DisplayName;
|
||||
Mediator.Publish(new PairRequestReceivedMessage(senderName, display.HashedCid));
|
||||
|
||||
return display;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user