diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml index df25938..e4c9f4e 100644 --- a/.gitea/workflows/build.yaml +++ b/.gitea/workflows/build.yaml @@ -7,7 +7,7 @@ on: jobs: build: - runs-on: macos + runs-on: java-builders steps: - name: Checkout code uses: actions/checkout@v6 diff --git a/src/main/java/im/rosetta/service/dispatch/MessageDispatcher.java b/src/main/java/im/rosetta/service/dispatch/MessageDispatcher.java index 4dae297..f646872 100644 --- a/src/main/java/im/rosetta/service/dispatch/MessageDispatcher.java +++ b/src/main/java/im/rosetta/service/dispatch/MessageDispatcher.java @@ -7,6 +7,7 @@ import im.rosetta.client.tags.ECIAuthentificate; import im.rosetta.database.repository.BufferRepository; import im.rosetta.database.repository.GroupRepository; import im.rosetta.packet.Packet11Typeing; +import im.rosetta.packet.Packet7Read; import im.rosetta.packet.base.PacketBaseDialog; import im.rosetta.service.services.BufferService; @@ -85,15 +86,21 @@ public class MessageDispatcher { * Отправляем сообщение всем, кто в беседе */ this.clientManager.sendPacketToAuthorizedPK(groupMembersPublicKeys, packet); - /** - * Отправляем PUSH уведомление - */ if(packet instanceof Packet11Typeing){ /** * Если это пакет печати, то не отправляем пуш уведомление, так как это может привести к спаму пушами при наборе текста */ return; } + if(packet instanceof Packet7Read){ + /** + * Если это пакет прочтения, то не отправляем пуш уведомление, так как это может привести к спаму пушами при чтении сообщений + */ + return; + } + /** + * Отправляем PUSH уведомление + */ this.firebaseDispatcher.sendPushNotification(groupMembersPublicKeys, "Rosetta", "New message in group"); } @@ -130,6 +137,20 @@ public class MessageDispatcher { * Сохраняем сообщение в буфер на случай если получатель офлайн, или нам нужна будет синхронизация сообщений для получателя */ this.bufferService.pushPacketToBuffer(fromPublicKey, toPublicKey, packet); + if(packet instanceof Packet11Typeing){ + /** + * Если это пакет печати, то не отправляем пуш уведомление, + * так как это может привести к спаму пушами при наборе текста + */ + return; + } + if(packet instanceof Packet7Read){ + /** + * Если это пакет прочтения, то не отправляем пуш уведомление, + * так как это может привести к спаму пушами при чтении сообщений + */ + return; + } /** * Отправляем PUSH уведомление получателю */