From 44567f99cb00c93135a059afa9262bdb35ff7da5 Mon Sep 17 00:00:00 2001 From: Stephen Paul Weber Date: Sun, 2 Apr 2017 15:55:02 -0500 Subject: [PATCH] Fetch and store the gateway prompts --- app/widgets/Roster/Roster.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/app/widgets/Roster/Roster.php b/app/widgets/Roster/Roster.php index 832fb5929..d4225e15a 100644 --- a/app/widgets/Roster/Roster.php +++ b/app/widgets/Roster/Roster.php @@ -5,6 +5,7 @@ use Moxl\Xec\Action\Roster\RemoveItem; use Moxl\Xec\Action\Presence\Subscribe; use Moxl\Xec\Action\Presence\Unsubscribe; +use Moxl\Xec\Action\IqGateway; class Roster extends \Movim\Widget\Base { @@ -16,6 +17,7 @@ function load() $this->registerEvent('roster_additem_handle', 'onAdd'); $this->registerEvent('roster_removeitem_handle', 'onDelete'); $this->registerEvent('roster_updateitem_handle', 'onUpdate'); + $this->registerEvent('iqgateway_get_handle', 'onIqGatewayGet'); $this->registerEvent('roster', 'onChange'); $this->registerEvent('presence', 'onPresence', 'contacts'); } @@ -64,6 +66,15 @@ function onRoster() $this->onUpdate(); } + function onIqGatewayGet($packet) + { + if(!isset($this->_iqGateway)) { + $this->_iqGateway = array(); + } + + $this->_iqGateway[$packet->from] = $packet->content; + } + /** * @brief Force the roster refresh * @returns @@ -103,6 +114,11 @@ function ajaxDisplaySearch($jid = null) if($jid === null) { $gateways = $this->gateways(); $view->assign('gateways', $gateways); + + foreach($gateways as $gateway => $caps) { + $get = new IqGateway\Get(); + $get->setTo($gateway)->request(); + } } Dialog::fill($view->draw('_roster_search', true));