Moved App::formatPhone to td_ui.

This commit is contained in:
23rd
2021-07-26 09:32:16 +03:00
parent a14f2144e1
commit 024bb5e54f
22 changed files with 81 additions and 70 deletions
@@ -8,7 +8,9 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
#include "ui/text/format_values.h"
#include "lang/lang_keys.h"
#include "numbers.h" // phoneNumberParse
#include <QRegularExpression>
#include <QtCore/QLocale>
#include <locale>
#include <sstream>
@@ -369,4 +371,45 @@ QString FormatImageSizeText(const QSize &size) {
+ QString::number(size.height());
}
QString FormatPhone(QString phone) {
if (phone.isEmpty()) {
return QString();
}
if (phone.at(0) == '0') {
return phone;
}
auto number = phone;
{
const auto *ch = phone.constData();
const auto *e = ch + phone.size();
const auto regExp = QRegularExpression(u"[^\\d]"_q);
for (; ch != e; ++ch) {
if (ch->unicode() < '0' || ch->unicode() > '9') {
number = phone.replace(regExp, QString());
}
}
}
const auto groups = phoneNumberParse(number);
if (groups.isEmpty()) {
return '+' + number;
}
QString result;
result.reserve(number.size() + groups.size() + 1);
result.append('+');
int32 sum = 0;
for (const auto &group : groups) {
result.append(number.midRef(sum, group));
sum += group;
if (sum < number.size()) {
result.append(' ');
}
}
if (sum < number.size()) {
result.append(number.midRef(sum));
}
return result;
}
} // namespace Ui