void GaduFileTransferService::fileTransferReceived(Contact peer, QString downloadId, QString fileName)
{
	auto transfer = FileTransfer::create();
	transfer.setPeer(peer);
	transfer.setTransferDirection(FileTransferDirection::Incoming);
	transfer.setTransferType(FileTransferType::Url);
	transfer.setTransferStatus(FileTransferStatus::ReadyToDownload);
	transfer.setRemoteFileName(QUrl::fromPercentEncoding(fileName.toUtf8()));
	transfer.setFileSize(0); // we don't know file size yet
	transfer.addProperty("gg:downloadId", downloadId, CustomProperties::Storable);
	transfer.addProperty("gg:remoteFileName", fileName, CustomProperties::Storable);

	emit incomingFileTransfer(transfer);
}
void JabberFileTransferService::fileReceived(QXmppTransferJob *transferJob)
{
    auto jid = Jid::parse(transferJob->jid());
    auto peer = m_contactManager->byId(m_account, jid.bare(), ActionCreateAndAdd);

    auto transfer = m_fileTransferStorage->create();
    transfer.setPeer(peer);
    transfer.setTransferDirection(FileTransferDirection::Incoming);
    transfer.setTransferType(FileTransferType::Stream);
    transfer.setTransferStatus(FileTransferStatus::WaitingForAccept);
    transfer.setRemoteFileName(transferJob->fileName());
    transfer.setFileSize(transferJob->fileSize());

    if (!m_fileTransferHandlerManager->ensureHandler(transfer))
        return;

    auto handler = qobject_cast<JabberStreamIncomingFileTransferHandler *>(transfer.handler());
    if (handler)
        handler->setTransferJob(transferJob);

    emit incomingFileTransfer(transfer);
}