data-only пуши
All checks were successful
Build rosetta-wss / build (push) Successful in 1m48s

This commit is contained in:
RoyceDa
2026-03-29 17:51:12 +02:00
parent 5f679df5cf
commit 0a38409de4
2 changed files with 59 additions and 74 deletions

View File

@@ -1,5 +1,6 @@
package im.rosetta.service.dispatch;
import java.util.HashMap;
import java.util.List;
import im.rosetta.client.ClientManager;
@@ -98,14 +99,26 @@ public class MessageDispatcher {
}
if(packet instanceof Packet7Read){
/**
* Если это пакет прочтения, то не отправляем пуш уведомление, так как это может привести к спаму пушами при чтении сообщений
* Если это пакет прочтения, то отправляем тихий пуш, что диалог прочитан, отправляем тому, кто читает диалог, чтобы
* клиент мог очистить пуши для этого диалога
*/
this.firebaseDispatcher.sendPushNotification(fromPublicKey, new HashMap<>(){
{
put("type", "read");
put("dialog", toPublicKey);
}
});
return;
}
/**
* Отправляем PUSH уведомление
*/
this.firebaseDispatcher.sendPushNotification(groupMembersPublicKeys, "Rosetta", "New message in group", toPublicKey.replace("#group:", ""));
this.firebaseDispatcher.sendPushNotification(groupMembersPublicKeys, new HashMap<>(){
{
put("type", "group_message");
put("from", toPublicKey.replace("#group:", ""));
}
});
}
/**
@@ -156,15 +169,26 @@ public class MessageDispatcher {
}
if(packet instanceof Packet7Read){
/**
* Если это пакет прочтения, то не отправляем пуш уведомление,
* так как это может привести к спаму пушами при чтении сообщений
* Если это пакет прочтения, то отправляем тихий пуш, что диалог прочитан, отправляем тому, кто читает диалог, чтобы
* клиент мог очистить пуши для этого диалога
*/
this.firebaseDispatcher.sendPushNotification(fromPublicKey, new HashMap<>(){
{
put("type", "read");
put("dialog", toPublicKey);
}
});
return;
}
/**
* Отправляем PUSH уведомление получателю
*/
this.firebaseDispatcher.sendPushNotification(toPublicKey, user.getTitle(), "New message", fromPublicKey);
this.firebaseDispatcher.sendPushNotification(toPublicKey, new HashMap<>(){
{
put("type", "personal_message");
put("from", fromPublicKey);
}
});
}
/**