// SPDX-FileCopyrightText: Copyright (C) 2019 swift Project Community / Contributors // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1 #include "core/fsd/textmessage.h" #include "misc/logmessage.h" namespace swift::core::fsd { TextMessage::TextMessage(const QString &sender, const QString &receiver, const QString &message) : MessageBase(sender, receiver), m_message(message) { if (receiver.startsWith('@')) { m_type = RadioMessage; const QStringList frequencyStrings = receiver.split('&'); if (!frequencyStrings.isEmpty()) { for (QString frequencyString : frequencyStrings) { frequencyString.remove(0, 1); int frequency = frequencyString.toInt() + 100000; m_frequencies.push_back(frequency); } } } } QStringList TextMessage::toTokens() const { QStringList tokens; tokens.push_back(m_sender); tokens.push_back(m_receiver); tokens.push_back(m_message); return tokens; } TextMessage TextMessage::fromTokens(const QStringList &tokens) { if (tokens.size() < 3) { swift::misc::CLogMessage(static_cast(nullptr)).warning(u"Wrong number of arguments."); return {}; }; QStringList messageTokens = tokens.mid(2); return { tokens[0], tokens[1], messageTokens.join(":") }; } } // namespace swift::core::fsd