Browse Source

Fix #1320 Handle properly displayed events and clear the related counter

pull/1326/head
Timothée Jaussoin 1 year ago
parent
commit
56e68d662a
  1. 10
      app/widgets/Rooms/Rooms.php
  2. 8
      src/Moxl/Xec/Payload/Displayed.php

10
app/widgets/Rooms/Rooms.php

@ -28,6 +28,7 @@ class Rooms extends Base
$this->registerEvent('chatstate', 'onChatState', 'chat');
$this->registerEvent('message', 'onMessage');
$this->registerEvent('displayed', 'onDisplayed', 'chat');
$this->registerEvent('presence_unavailable_handle', 'onDisconnected', 'chat');
$this->registerEvent('presence_muc_handle', 'onConnected'/*, 'chat'*/);
@ -70,6 +71,15 @@ class Rooms extends Base
}
}
public function onDisplayed($packet)
{
$message = $packet->content;
if ($message->isMuc() && $message->jidto == $this->user->id) {
$this->onPresence($message->jidfrom);
}
}
public function onDestroyed($packet)
{
$this->ajaxHttpGet();

8
src/Moxl/Xec/Payload/Displayed.php

@ -23,9 +23,15 @@ class Displayed extends Payload
if ($message && $message->displayed == null) {
$message->displayed = gmdate('Y-m-d H:i:s');
$message->seen = true;
$message->save();
if ($message->jidto == $message->user_id) {
\App\User::me()->messages()
->where('jidfrom', $message->jidfrom)
->where('seen', false)
->update(['seen' => true]);
}
$this->pack($message);
$this->deliver();
}

Loading…
Cancel
Save