/** * (non-PHPdoc) * @see ActiveSync_Frontend_Abstract::updateEntry() */ public function updateEntry($folderId, $serverId, Syncroton_Model_IEntry $entry) { $folderBackend = Syncroton_Registry::get(Syncroton_Registry::FOLDERBACKEND); $folder = $folderBackend->getFolder($this->_device, $folderId); $bigContentId = $this->getBigContentId($folder->id, $serverId); if (Tinebase_Core::isLogLevel(Zend_Log::INFO)) { Tinebase_Core::getLogger()->info(__METHOD__ . '::' . __LINE__ . " CollectionId: {$folderId} Id: {$serverId}"); } try { $message = $this->_contentController->get($bigContentId); } catch (Tinebase_Exception_NotFound $tenf) { if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) { Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . ' ' . $tenf); } throw new Syncroton_Exception_NotFound($tenf->getMessage()); } if (isset($entry->read)) { if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) { Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . " CollectionId: {$folderId} Id: {$bigContentId} set read flag: {$entry->read}"); } if ($entry->read == 1) { Expressomail_Controller_Message_Flags::getInstance()->addFlags($bigContentId, Zend_Mail_Storage::FLAG_SEEN); } else { Expressomail_Controller_Message_Flags::getInstance()->clearFlags($bigContentId, Zend_Mail_Storage::FLAG_SEEN); } } if (isset($entry->flag)) { if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) { Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . " CollectionId: {$folderId} Id: {$bigContentId} set flagged flag: {$entry->flag->status}"); } if ($entry->flag->status == Syncroton_Model_EmailFlag::STATUS_ACTIVE) { Expressomail_Controller_Message_Flags::getInstance()->addFlags($bigContentId, Zend_Mail_Storage::FLAG_FLAGGED); } else { Expressomail_Controller_Message_Flags::getInstance()->clearFlags($bigContentId, Zend_Mail_Storage::FLAG_FLAGGED); } } $message->timestamp = $this->_syncTimeStamp; $this->_contentController->update($message); return; }