M image/assets/lang/Deutsch.json => image/assets/lang/Deutsch.json +2 -2
@@ 491,8 491,8 @@
"app_phonebook_contact_no_name": "Kein Name",
"app_phonebook_contact_information": "Information",
"app_phonebook_ice_contacts_title": "ICE-Kontakte",
- "app_phonebook_duplicate_numbers": "Die Nummer $CONTACT_SPEED_DIAL$ wurde \n $CONTACT_NAME$ zugewiesen. Ersetzen?",
- "app_phonebook_duplicate_speed_dial_title": "Kurzwahltaste ($CONTACT_SPEED_DIAL$)",
+ "app_phonebook_duplicate_speed_dial": "<text>Die Nummer <token>$CONTACT_SPEED_DIAL$</token> wurde \n <token>$CONTACT_FORMATTED_NAME$</token>zugewiesen. Ersetzen?</text>",
+ "app_phonebook_duplicate_speed_dial_title": "<text>Kurzwahltaste (<token>$CONTACT_SPEED_DIAL$</token>)</text>",
"app_phonebook_options_edit": "Kontakte ändern",
"app_phonebook_options_block": "Blockieren",
"app_phonebook_options_block_confirm": "Diesen Kontakt blockieren?",
M image/assets/lang/English.json => image/assets/lang/English.json +3 -6
@@ 109,7 109,6 @@
"app_alarm_clock_repeat_week_days": "Weekdays",
"app_alarm_clock_repeat_custom": "Custom",
"app_alarm_clock_no_alarms_information": "<text align='center' color='9'>No alarms yet.<p>Press <b>left arrow</b> to add new.</p></text>",
- "app_alarm_clock_options_title": "Options",
"app_alarm_clock_options_edit": "Edit",
"app_alarm_clock_options_delete": "Delete",
"app_alarm_clock_options_turn_off_all_alarms": "Turn off all alarms",
@@ 341,7 340,6 @@
"app_settings_display_wallpaper_clock": "Clock",
"app_settings_display_wallpaper_quotes": "Quotes",
"app_settings_display_wallpaper_edit_quotes": "Edit quotes",
- "app_settings_display_wallpaper_quotes_options": "Options",
"app_settings_display_wallpaper_quotes_edit": "Edit quote",
"app_settings_display_wallpaper_quotes_delete": "Delete quote",
"app_settings_display_wallpaper_quotes_new": "New quote",
@@ 453,7 451,6 @@
"phone_lock_configure": "Configure passcode",
"app_settings_security_usb_passcode": "USB security",
"app_settings_apn_settings_no_apns": "<text align='center' color='9'>No APNs yet.<p>Press <b>left arrow</b> to add new.</p></text>",
- "app_settings_apn_options": "Options",
"app_settings_apn_options_delete": "Delete",
"app_settings_apn_options_edit": "Edit",
"app_settings_apn_options_set_as_default": "Set as default",
@@ 495,9 492,9 @@
"app_phonebook_contact_information": "Information",
"app_phonebook_ice_contacts_title": "Emergency Contacts",
"app_phonebook_favourite_contacts_title": "Favourite Contacts",
- "app_phonebook_duplicate_numbers": "Number $CONTACT_SPEED_DIAL$ is assigned to \n $CONTACT_NAME$. Replace it?",
- "app_phonebook_duplicate_speed_dial_title": "Speed dial key ($CONTACT_SPEED_DIAL$)",
- "app_phonebook_options_title": "Options",
+ "app_phonebook_duplicate_numbers": "<text>This number is assigned to \n <token>$CONTACT_FORMATTED_NAME$</token>. Replace it?</text>",
+ "app_phonebook_duplicate_speed_dial": "<text>Number <token>$CONTACT_SPEED_DIAL$</token> is assigned to \n <token>$CONTACT_FORMATTED_NAME$</token>. Replace it?</text>",
+ "app_phonebook_duplicate_speed_dial_title": "<text>Speed dial key (<token>$CONTACT_SPEED_DIAL$</token>)</text>",
"app_phonebook_options_edit": "Edit contact",
"app_phonebook_options_block": "Block",
"app_phonebook_options_block_confirm": "Block this contact?",
M image/assets/lang/Espanol.json => image/assets/lang/Espanol.json +2 -2
@@ 491,8 491,8 @@
"app_phonebook_contact_no_name": "sin nombre",
"app_phonebook_contact_information": "Información",
"app_phonebook_ice_contacts_title": "Contactos de emergencia",
- "app_phonebook_duplicate_numbers": "El número $CONTACT_SPEED_DIAL$ está asignado a \n $CONTACT_NAME$. ¿Reemplazarlo?",
- "app_phonebook_duplicate_speed_dial_title": "Tecla de marcación rápida ($CONTACT_SPEED_DIAL$)",
+ "app_phonebook_duplicate_speed_dial": "<text>El número <token>$CONTACT_SPEED_DIAL$</token> está asignado a \n <token>$CONTACT_FORMATTED_NAME$</token>. ¿Reemplazarlo?</text>",
+ "app_phonebook_duplicate_speed_dial_title": "<text>Tecla de marcación rápida (<token>$CONTACT_SPEED_DIAL$</token>)</text>",
"app_phonebook_options_edit": "Editar contacto",
"app_phonebook_options_block": "Bloquear",
"app_phonebook_options_block_confirm": "¿Bloquear este contacto?",
M image/assets/lang/Francais.json => image/assets/lang/Francais.json +2 -2
@@ 460,8 460,8 @@
"app_phonebook_contact_no_name": "pas de nom",
"app_phonebook_contact_information": "Information",
"app_phonebook_ice_contacts_title": "Contacts d'urgence",
- "app_phonebook_duplicate_numbers": "Ces numéros appartiennent à\n$CONTACT_NAME$. Voulez-vous\ncréer un nouveau contact?",
- "app_phonebook_duplicate_speed_dial_title": "Touche de numérotation rapide ($CONTACT_SPEED_DIAL$)",
+ "app_phonebook_duplicate_numbers": "<text>Ces numéros appartiennent à \n <token>$CONTACT_FORMATTED_NAME$</token>. Voulez-vous\ncréer un nouveau contact</text>",
+ "app_phonebook_duplicate_speed_dial_title": "<text>Touche de numérotation rapide (<token>$CONTACT_SPEED_DIAL$</token>)</text>",
"app_phonebook_options_edit": "Modifier le contact",
"app_phonebook_options_block": "Bloquer",
"app_phonebook_options_block_confirm": "Voulez-vous vraiment\nbloquer ce contact?",
M image/assets/lang/Polski.json => image/assets/lang/Polski.json +3 -2
@@ 506,8 506,9 @@
"app_phonebook_contact_information": "Informacje",
"app_phonebook_ice_contacts_title": "Kontakty ICE",
"app_phonebook_favourite_contacts_title": "Ulubione Kontakty",
- "app_phonebook_duplicate_numbers": "Numer $CONTACT_SPEED_DIAL$ jest przypisany do: \n $CONTACT_NAME$. Zastąpić?",
- "app_phonebook_duplicate_speed_dial_title": "Klawisz szybkiego wybierania ($CONTACT_SPEED_DIAL$)",
+ "app_phonebook_duplicate_numbers": "<text>Ten numer jest przypisany do \n <token>$CONTACT_FORMATTED_NAME$</token>. Zastąpić?</text>",
+ "app_phonebook_duplicate_speed_dial": "<text>Numer <token>$CONTACT_SPEED_DIAL$</token> jest przypisany do \n <token>$CONTACT_FORMATTED_NAME$</token>. Zastąpić?</text>",
+ "app_phonebook_duplicate_speed_dial_title": "<text>Klawisz szybkiego wybierania (<token>$CONTACT_SPEED_DIAL$</token>)</text>",
"app_phonebook_options_edit": "Edytuj kontakt",
"app_phonebook_new_add_to_fav": "Dodaj do ulubionych",
"app_phonebook_options_block": "Blokuj",
M image/assets/lang/Svenska.json => image/assets/lang/Svenska.json +2 -2
@@ 377,8 377,8 @@
"app_phonebook_contact_no_name": "inget namn",
"app_phonebook_contact_information": "Information",
"app_phonebook_ice_contacts_title": "ICE-kontakter vid olycka",
- "app_phonebook_duplicate_numbers": "Nummer $CONTACT_SPEED_DIAL$ är inställt att ringa \n $CONTACT_NAME$. Vill du ändra det?",
- "app_phonebook_duplicate_speed_dial_title": "Förvalsnummer ($CONTACT_SPEED_DIAL$)",
+ "app_phonebook_duplicate_speed_dial": "<text>Nummer <token>$CONTACT_SPEED_DIAL$</token> är inställt att ringa \n <token>$CONTACT_FORMATTED_NAME$</token>. Vill du ändra det?</text>",
+ "app_phonebook_duplicate_speed_dial_title": "<text>Förvalsnummer (<token>$CONTACT_SPEED_DIAL$</token>)</text>",
"app_phonebook_options_edit": "Redigera kontakt",
"app_phonebook_options_block": "Blockera",
"app_phonebook_options_block_confirm": "Blockera den här kontakten?",
M module-apps/application-phonebook/CMakeLists.txt => module-apps/application-phonebook/CMakeLists.txt +0 -1
@@ 14,7 14,6 @@ target_include_directories(application-phonebook
target_sources(application-phonebook
PRIVATE
ApplicationPhonebook.cpp
- data/PhonebookUtils.cpp
models/ContactDetailsModel.cpp
models/NewContactModel.cpp
models/PhonebookModel.cpp
D module-apps/application-phonebook/data/PhonebookUtils.cpp => module-apps/application-phonebook/data/PhonebookUtils.cpp +0 -20
@@ 1,20 0,0 @@
-// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
-// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
-
-#include "PhonebookUtils.hpp"
-
-namespace phonebookUtils
-{
- void fillContactData(std::string &data, ContactRecord &contact)
- {
- utils::findAndReplaceAll(data, "$CONTACT_PRIMARY_NAME$", contact.primaryName);
- utils::findAndReplaceAll(data, "$CONTACT_ALTERNATIVE_NAME$", contact.alternativeName);
- utils::findAndReplaceAll(
- data, "$CONTACT_NAME$", contact.getFormattedName(ContactRecord::NameFormatType::Title));
- utils::findAndReplaceAll(
- data, "$CONTACT_NUMBER1$", (contact.numbers.size() == 1) ? contact.numbers[0].number.getEntered() : "");
- utils::findAndReplaceAll(
- data, "$CONTACT_NUMBER2$", (contact.numbers.size() == 2) ? contact.numbers[1].number.getEntered() : "");
- utils::findAndReplaceAll(data, "$CONTACT_SPEED_DIAL$", contact.speeddial);
- }
-} // namespace phonebookUtils
D module-apps/application-phonebook/data/PhonebookUtils.hpp => module-apps/application-phonebook/data/PhonebookUtils.hpp +0 -12
@@ 1,12 0,0 @@
-// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
-// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
-
-#pragma once
-
-#include <ContactRecord.hpp>
-#include <Utils.hpp>
-
-namespace phonebookUtils
-{
- void fillContactData(std::string &data, ContactRecord &contact);
-} // namespace phonebookUtils
M module-apps/application-phonebook/windows/PhonebookNamecardOptions.cpp => module-apps/application-phonebook/windows/PhonebookNamecardOptions.cpp +0 -1
@@ 5,7 5,6 @@
#include "PhonebookNamecardOptions.hpp"
#include "application-phonebook/ApplicationPhonebook.hpp"
#include "application-phonebook/data/PhonebookItemData.hpp"
-#include "application-phonebook/data/PhonebookUtils.hpp"
#include "application-messages/data/SMSdata.hpp"
namespace gui
M module-apps/application-phonebook/windows/PhonebookNewContact.cpp => module-apps/application-phonebook/windows/PhonebookNewContact.cpp +44 -34
@@ 5,7 5,6 @@
#include "DialogMetadata.hpp"
#include "application-phonebook/ApplicationPhonebook.hpp"
-#include "application-phonebook/data/PhonebookUtils.hpp"
#include <Dialog.hpp>
#include <service-db/DBServiceAPI.hpp>
@@ 199,21 198,27 @@ namespace gui
auto matchedContact = DBServiceAPI::MatchContactByPhoneNumber(application, duplicatedNumber);
auto oldContactRecord = (matchedContact != nullptr) ? *matchedContact : ContactRecord{};
- std::string duplicatedNumberPhrase = utils::translate("app_phonebook_duplicate_numbers");
- phonebookUtils::fillContactData(duplicatedNumberPhrase, oldContactRecord);
-
- auto metaData = std::make_unique<gui::DialogMetadataMessage>(gui::DialogMetadata{
- duplicatedNumber.getFormatted(), "info_big_circle_W_G", duplicatedNumberPhrase, "", [=]() -> bool {
- if (contactAction == ContactAction::Add) {
- contact->ID = oldContactRecord.ID;
- }
- if (!DBServiceAPI::ContactUpdate(application, *contact)) {
- LOG_ERROR("Contact id=%" PRIu32 " update failed", contact->ID);
- return false;
- }
- application->switchWindow(gui::name::window::main_window);
- return true;
- }});
+ auto metaData = std::make_unique<gui::DialogMetadataMessage>(
+ gui::DialogMetadata{duplicatedNumber.getFormatted(),
+ "info_big_circle_W_G",
+ text::RichTextParser()
+ .parse(utils::translate("app_phonebook_duplicate_numbers"),
+ nullptr,
+ gui::text::RichTextParser::TokenMap(
+ {{"$CONTACT_FORMATTED_NAME$", oldContactRecord.getFormattedName()}}))
+ ->getText(),
+ "",
+ [=]() -> bool {
+ if (contactAction == ContactAction::Add) {
+ contact->ID = oldContactRecord.ID;
+ }
+ if (!DBServiceAPI::ContactUpdate(application, *contact)) {
+ LOG_ERROR("Contact id=%" PRIu32 " update failed", contact->ID);
+ return false;
+ }
+ application->switchWindow(gui::name::window::main_window);
+ return true;
+ }});
application->switchWindow(gui::window::name::dialog_yes_no, std::move(metaData));
}
@@ 226,24 231,29 @@ namespace gui
contact->ID = oldContactRecord.ID;
}
- std::string duplicatedSpeedDialPhrase = utils::translate("app_phonebook_duplicate_numbers");
- phonebookUtils::fillContactData(duplicatedSpeedDialPhrase, oldContactRecord);
- std::string duplicatedSpeedDialTitle = utils::translate("app_phonebook_duplicate_speed_dial_title");
- phonebookUtils::fillContactData(duplicatedSpeedDialTitle, oldContactRecord);
-
- auto metaData = std::make_unique<gui::DialogMetadataMessage>(
- gui::DialogMetadata{duplicatedSpeedDialTitle,
- "phonebook_empty_grey_circle_speed_dial",
- duplicatedSpeedDialPhrase,
- contact->speeddial,
- [=]() -> bool {
- if (!DBServiceAPI::ContactUpdate(application, *contact)) {
- LOG_ERROR("Contact id=%" PRIu32 " update failed", contact->ID);
- return false;
- }
- application->switchWindow(gui::name::window::main_window);
- return true;
- }});
+ auto metaData = std::make_unique<gui::DialogMetadataMessage>(gui::DialogMetadata{
+ text::RichTextParser()
+ .parse(utils::translate("app_phonebook_duplicate_speed_dial_title"),
+ nullptr,
+ gui::text::RichTextParser::TokenMap(
+ {{"$CONTACT_SPEED_DIAL$", oldContactRecord.speeddial},
+ {"$CONTACT_FORMATTED_NAME$", oldContactRecord.getFormattedName()}}))
+ ->getText(),
+ "phonebook_empty_grey_circle_speed_dial",
+ text::RichTextParser()
+ .parse(utils::translate("app_phonebook_duplicate_speed_dial"),
+ nullptr,
+ gui::text::RichTextParser::TokenMap({{"$CONTACT_SPEED_DIAL$", oldContactRecord.speeddial}}))
+ ->getText(),
+ contact->speeddial,
+ [=]() -> bool {
+ if (!DBServiceAPI::ContactUpdate(application, *contact)) {
+ LOG_ERROR("Contact id=%" PRIu32 " update failed", contact->ID);
+ return false;
+ }
+ application->switchWindow(gui::name::window::main_window);
+ return true;
+ }});
application->switchWindow(gui::window::name::dialog_yes_no_icon_txt, std::move(metaData));
}
M module-apps/apps-common/locks/windows/LockInputWindow.cpp => module-apps/apps-common/locks/windows/LockInputWindow.cpp +1 -2
@@ 143,8 143,7 @@ namespace gui
case TextType::Title: {
header->setTitleVisibility(true);
if (!tokens.empty()) {
- TextFormat format(FontManager::getInstance().getFont(style::window::font::medium));
- setTitle(text::RichTextParser().parse(utils::translate(value), &format, std::move(tokens))->getText());
+ setTitle(text::RichTextParser().parse(utils::translate(value), nullptr, std::move(tokens))->getText());
}
else {
setTitle(utils::translate(value));
M module-gui/gui/widgets/RichTextParser.cpp => module-gui/gui/widgets/RichTextParser.cpp +3 -3
@@ 523,13 523,13 @@ namespace gui::text
-> std::unique_ptr<TextDocument>
{
log_parser("parsing: %s", text.c_str());
- if (text.empty() || base_style == nullptr) {
- log_parser("no: %s", text.empty() ? "text" : "base style");
+ if (text.empty()) {
+ log_parser("no: %s", "text");
return nullptr;
}
pugi::xml_document doc;
- walker walker(*base_style, std::move(tokenMap));
+ walker walker(base_style == nullptr ? nullptr : *base_style, std::move(tokenMap));
doc.load_string(text.c_str());
doc.traverse(walker);