Фикс спама уведомлениями при печати #12

Merged
Royce59 merged 1 commits from dev into main 2026-02-25 21:29:32 +00:00
2 changed files with 25 additions and 4 deletions
Showing only changes of commit 70fb6b5876 - Show all commits

View File

@@ -7,7 +7,7 @@ on:
jobs: jobs:
build: build:
runs-on: macos runs-on: java-builders
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@v6 uses: actions/checkout@v6

View File

@@ -7,6 +7,7 @@ import im.rosetta.client.tags.ECIAuthentificate;
import im.rosetta.database.repository.BufferRepository; import im.rosetta.database.repository.BufferRepository;
import im.rosetta.database.repository.GroupRepository; import im.rosetta.database.repository.GroupRepository;
import im.rosetta.packet.Packet11Typeing; import im.rosetta.packet.Packet11Typeing;
import im.rosetta.packet.Packet7Read;
import im.rosetta.packet.base.PacketBaseDialog; import im.rosetta.packet.base.PacketBaseDialog;
import im.rosetta.service.services.BufferService; import im.rosetta.service.services.BufferService;
@@ -85,15 +86,21 @@ public class MessageDispatcher {
* Отправляем сообщение всем, кто в беседе * Отправляем сообщение всем, кто в беседе
*/ */
this.clientManager.sendPacketToAuthorizedPK(groupMembersPublicKeys, packet); this.clientManager.sendPacketToAuthorizedPK(groupMembersPublicKeys, packet);
/**
* Отправляем PUSH уведомление
*/
if(packet instanceof Packet11Typeing){ if(packet instanceof Packet11Typeing){
/** /**
* Если это пакет печати, то не отправляем пуш уведомление, так как это может привести к спаму пушами при наборе текста * Если это пакет печати, то не отправляем пуш уведомление, так как это может привести к спаму пушами при наборе текста
*/ */
return; return;
} }
if(packet instanceof Packet7Read){
/**
* Если это пакет прочтения, то не отправляем пуш уведомление, так как это может привести к спаму пушами при чтении сообщений
*/
return;
}
/**
* Отправляем PUSH уведомление
*/
this.firebaseDispatcher.sendPushNotification(groupMembersPublicKeys, "Rosetta", "New message in group"); this.firebaseDispatcher.sendPushNotification(groupMembersPublicKeys, "Rosetta", "New message in group");
} }
@@ -130,6 +137,20 @@ public class MessageDispatcher {
* Сохраняем сообщение в буфер на случай если получатель офлайн, или нам нужна будет синхронизация сообщений для получателя * Сохраняем сообщение в буфер на случай если получатель офлайн, или нам нужна будет синхронизация сообщений для получателя
*/ */
this.bufferService.pushPacketToBuffer(fromPublicKey, toPublicKey, packet); this.bufferService.pushPacketToBuffer(fromPublicKey, toPublicKey, packet);
if(packet instanceof Packet11Typeing){
/**
* Если это пакет печати, то не отправляем пуш уведомление,
* так как это может привести к спаму пушами при наборе текста
*/
return;
}
if(packet instanceof Packet7Read){
/**
* Если это пакет прочтения, то не отправляем пуш уведомление,
* так как это может привести к спаму пушами при чтении сообщений
*/
return;
}
/** /**
* Отправляем PUSH уведомление получателю * Отправляем PUSH уведомление получателю
*/ */