diff --git a/tools/chatgui-android/app/src/main/res/values-ru/strings.xml b/tools/chatgui-android/app/src/main/res/values-ru/strings.xml index f47b8047..fd0ba2a4 100644 --- a/tools/chatgui-android/app/src/main/res/values-ru/strings.xml +++ b/tools/chatgui-android/app/src/main/res/values-ru/strings.xml @@ -541,4 +541,22 @@ Разрешить получать приглашения из локальной сети Разрешить отправлять широковещательные объявления Приём приглашений запрещён. Разрешите его в настройках устройства получателя. + Показывать, что я разговариваю + Публиковать статус звонка для других участников + Предупреждать при входящем вызове + Сообщать, что я разговариваю, и предлагать всё равно позвонить или завершить + Нужно разрешение на состояние телефона; статус неизвестен + Абонент разговаривает по телефону + Занят звонком + Телефон свободен + Статус телефона неизвестен + Всё равно позвонить + Завершить + Рация абонента уже включена в этом канале + Отклонять вызовы, когда я разговариваю + Отклонять телефонные вызовы и приглашения в рацию вместо предложения позвонить + Отклонять все телефонные вызовы + Отклонять входящие звонки vibechat без рингтона + Отклонять все вызовы по рации + Отклонять приглашения; включённая рация продолжит работать diff --git a/tools/chatgui-android/app/src/main/res/values/strings.xml b/tools/chatgui-android/app/src/main/res/values/strings.xml index e4e8699a..5a2f6dfe 100644 --- a/tools/chatgui-android/app/src/main/res/values/strings.xml +++ b/tools/chatgui-android/app/src/main/res/values/strings.xml @@ -540,4 +540,22 @@ Receive invitations from the local network Broadcast presence on the local network Receiving invitations is forbidden. Enable it in the recipient device\'s settings. + Show when I am on a call + Share my call status with other members + Warn callers when I am on a call + Let callers choose whether to call anyway before my phone rings + Phone permission is required; status is unknown + The subscriber is on a phone call + Busy on a call + Phone is free + Phone status unknown + Call anyway + End + The subscriber’s radio is already on in this channel + Reject calls when I am on a phone call + Reject telephone and radio invitations instead of offering to call anyway + Reject all telephone calls + Reject incoming vibechat calls without ringing + Reject all radio calls + Reject radio invitations; the channel radio keeps working diff --git a/tools/chatgui/tests/test_invite_links.cpp b/tools/chatgui/tests/test_invite_links.cpp index a3a6c197..1ab90fbd 100644 --- a/tools/chatgui/tests/test_invite_links.cpp +++ b/tools/chatgui/tests/test_invite_links.cpp @@ -459,6 +459,30 @@ private slots: if (!preview.isEmpty()) QVERIFY(view.grab().save(preview)); } + void phoneButtonReflectsBusyFreeUnknownAndOffline() { + QStandardItemModel model; + auto* peer = new QStandardItem("peer"); model.appendRow(peer); + peer->setData(false, Qt::UserRole + 2); peer->setData(true, MemberListModel::OnlineRole); + AccountDelegate delegate; + QStyleOptionViewItem option; option.rect = QRect(0, 0, 280, 52); + auto pixels = [&](int flags, bool online, const QColor& color) { + peer->setData(flags, Qt::UserRole + 3); peer->setData(online, MemberListModel::OnlineRole); + QImage image(option.rect.size(), QImage::Format_RGB32); image.fill(Qt::white); + QPainter painter(&image); delegate.paint(&painter, option, model.index(0, 0)); painter.end(); + int count = 0; + for (int y = 0; y < image.height(); ++y) + for (int x = image.width() - 31; x < image.width(); ++x) count += image.pixelColor(x, y) == color; + return count; + }; + const int known = CHAT_MEMBER_FLAG_PHONE_KNOWN, busy = CHAT_MEMBER_FLAG_PHONE_BUSY; + QVERIFY(pixels(known | busy, true, QColor("#E53935")) > 0); + QVERIFY(pixels(known, true, QColor("#4CAF50")) > 0); + QCOMPARE(pixels(0, true, QColor("#4CAF50")), 0); + QCOMPARE(pixels(busy, true, QColor("#E53935")), 0); + QCOMPARE(pixels(known | busy, false, QColor("#E53935")), 0); + QCOMPARE(pixels(known | busy, true, QColor("#4CAF50")), 0); + } + void radioMuteButtonTargetsMemberAndChangesColor() { QStandardItemModel model; auto* other = new QStandardItem("other"); other->setData(false, Qt::UserRole + 2); model.appendRow(other);