~aleteoryx/muditaos

831184c850bcb329c243465bbbefafffbfc6a61a — Przemyslaw Brudny 4 years ago 0887d73 + 55da243
Merge remote-tracking branch 'origin/stable'
M image/assets/lang/English.json => image/assets/lang/English.json +2 -2
@@ 284,8 284,8 @@
  "app_call_speaker_on": "SPEAKER ON",
  "app_call_bluetooth": "BLUETOOTH",
  "app_call_no_sim": "No SIM.\n\nTo make a call,\nplease insert a SIM card.",
  "app_call_offline": "You're offline.\n\nTo make a call\n switch to the Connected mode.",
  "app_sms_offline": "You're offline.\n\nTo send a SMS\n switch to the Connected mode.",
  "app_call_offline": "You're Offline.\n\nTo make a call,\n switch the mode.",
  "app_sms_offline": "You're Offline.\n\nTo send message,\n switch the mode.",
  "app_call_emergency_text": "Emergency call",
  "app_call_wrong_emergency": "Can't make a call.\n$NUMBER is not an emergency number.",
  "app_messages_title_main": "Messages",

M image/assets/lang/Francais.json => image/assets/lang/Francais.json +2 -2
@@ 276,7 276,7 @@
  "app_call_call_ended": "appel terminé",
  "app_call_call_rejected": "appel rejeté",
  "app_call_contact": "CONTACT",
  "app_call_mute": "METTRE EN SOURDINE",
  "app_call_mute": "MUET",
  "app_call_muted": "SILENCIEUX",
  "app_call_speaker": "HAUT-PARLEUR",
  "app_call_speaker_on": "HAUT-PARLEUR ACTIVÉ",


@@ 504,7 504,7 @@
  "app_phonebook_options_delete_notification": "Ce contact a été supprimé\navec succès.",
  "app_phonebook_options_forward_namecard": "Transférer la carte de visite",
  "app_phonebook_options_send_sms": "Envoyer via SMS",
  "app_phonebook_new_contact_first_name": "Pénom",
  "app_phonebook_new_contact_first_name": "Prénom",
  "app_phonebook_new_contact_last_name": "Nom",
  "app_phonebook_new_contact_number": "Numéro",
  "app_phonebook_new_contact_second_number": "Second numéro",

M image/user/db/settings_bell_002.sql => image/user/db/settings_bell_002.sql +1 -1
@@ 35,7 35,7 @@ INSERT OR IGNORE INTO settings_tab (path, value) VALUES
    ('snooze_length','10'),
    ('snooze_interval','1'),
    ('snooze_tone','Gentle Chime'),
    ('snooze_volume','10'),
    ('snooze_volume','5'),
    ('prewake_up_duration', '10'),
    ('prewake_up_tone','Joyful Awakening'),
    ('prewake_up_volume','5'),

M module-apps/application-music-player/windows/MusicPlayerMainWindow.cpp => module-apps/application-music-player/windows/MusicPlayerMainWindow.cpp +2 -2
@@ 343,7 343,7 @@ namespace gui
        descriptionText->setAlignment(Alignment(Alignment::Horizontal::Left, Alignment::Vertical::Center));
        descriptionText->setTextType(TextType::SingleLine);
        descriptionText->setEditMode(EditMode::Browse);
        descriptionText->setFont(style::window::font::verysmall);
        descriptionText->setFont(style::window::font::small);
    }

    void MusicPlayerMainWindow::destroyInterface()


@@ 519,7 519,7 @@ namespace gui
        }

        auto secsToStr = [&](int secs) {
            if (secs < 3600) {
            if (secs < utils::time::secondsInHour) {
                snprintf(timeToDisplay,
                         maxTimeToDisplaySize,
                         "%d:%02d",

M module-db/Interface/ContactRecord.cpp => module-db/Interface/ContactRecord.cpp +5 -5
@@ 170,7 170,7 @@ auto ContactRecordInterface::Update(const ContactRecord &rec) -> bool
    bool ret          = false;
    bool recordExists = [&]() {
        auto record = contactDB->contacts.getById(contact.ID);
        return record.ID != DB_ID_NONE;
        return record.isValid();
    }();
    if (recordExists) {
        ret = contactDB->contacts.update(row);


@@ 651,10 651,13 @@ auto ContactRecordInterface::splitNumberIDs(const std::string &numberIDs) -> con

auto ContactRecordInterface::joinNumberIDs(const std::vector<std::uint32_t> &numberIDs) -> std::string
{
    if (numberIDs.empty()) {
        return {};
    }

    std::ostringstream outStream;
    std::ostream_iterator<std::uint32_t> outIterator(outStream, " ");
    std::copy(std::begin(numberIDs), std::end(numberIDs), outIterator);

    return outStream.str();
}



@@ 678,9 681,6 @@ auto ContactRecordInterface::unbindNumber(std::uint32_t contactId, std::uint32_t
    // unbind number from contact
    auto numberIDs = splitNumberIDs(contactRecord.numbersID);
    numberIDs.erase(std::remove(std::begin(numberIDs), std::end(numberIDs), numberId), std::end(numberIDs));
    if (numberIDs.empty()) {
        return contactDB->contacts.removeById(contactId);
    }
    contactRecord.numbersID = joinNumberIDs(numberIDs);
    return contactDB->contacts.update(contactRecord);
}

M module-db/tests/ContactsRecord_tests.cpp => module-db/tests/ContactsRecord_tests.cpp +11 -7
@@ 380,20 380,24 @@ TEST_CASE("Contact record numbers update")
        REQUIRE(contactDB.number.count() == 4);

        auto validationRecord = records.GetByIdWithTemporary(1);
        REQUIRE(validationRecord.ID == DB_ID_NONE);
        REQUIRE(validationRecord.ID != DB_ID_NONE);
        REQUIRE(validationRecord.numbers[0].number.getEntered() == numbers[2]);
        REQUIRE(validationRecord.numbers[1].number.getEntered() == numbers[3]);

        validationRecord = records.GetByIdWithTemporary(2);
        REQUIRE(validationRecord.ID != DB_ID_NONE);
        REQUIRE(validationRecord.numbers[0].number.getEntered() == numbers[0]);
        // numbers[3] was previously assigned to it, but it's re-assigned to recordID=2 above.
        REQUIRE(validationRecord.numbers.empty());

        // A temporary contact for number[0] (which was previously assigned to recordID=1) has been created.
        validationRecord = records.GetByIdWithTemporary(3);
        REQUIRE(validationRecord.ID != DB_ID_NONE);
        REQUIRE(validationRecord.numbers[0].number.getEntered() == numbers[1]);
        REQUIRE(validationRecord.numbers[0].number.getEntered() == numbers[0]);

        validationRecord = records.GetByID(4);
        REQUIRE(validationRecord.numbers.size() == 2);
        REQUIRE(validationRecord.numbers[0].number.getEntered() == numbers[2]);
        REQUIRE(validationRecord.numbers[1].number.getEntered() == numbers[3]);
        // A temporary contact for number[1] (which was previously assigned to recordID=1) has been created.
        validationRecord = records.GetByIdWithTemporary(4);
        REQUIRE(validationRecord.ID != DB_ID_NONE);
        REQUIRE(validationRecord.numbers[0].number.getEntered() == numbers[1]);
    }

    Database::deinitialize();

M module-gui/gui/widgets/NavBar.cpp => module-gui/gui/widgets/NavBar.cpp +2 -2
@@ 49,7 49,7 @@ namespace gui::nav_bar
        left->setEdges(RectangleEdge::None);

        center = new Label(centerBox);
        center->setAlignment(Alignment(gui::Alignment::Horizontal::Center, gui::Alignment::Vertical::Center));
        center->setAlignment(Alignment(gui::Alignment::Horizontal::Center, gui::Alignment::Vertical::Bottom));
        center->setPadding({0, 0, 0, style::nav_bar::bottom_padding});
        center->setMinimumHeight(widgetArea.h);
        center->setMaximumWidth(widgetArea.w);


@@ 59,7 59,7 @@ namespace gui::nav_bar
        center->setEdges(RectangleEdge::None);

        right = new Label(lastBox);
        right->setAlignment(Alignment(Alignment::Horizontal::Right, gui::Alignment::Vertical::Center));
        right->setAlignment(Alignment(Alignment::Horizontal::Right, gui::Alignment::Vertical::Bottom));
        right->setPadding({0, 0, 0, style::nav_bar::bottom_padding});
        right->setMinimumHeight(widgetArea.h);
        right->setFont(style::nav_bar::font::medium);

M module-services/service-desktop/ServiceDesktop.cpp => module-services/service-desktop/ServiceDesktop.cpp +1 -0
@@ 228,6 228,7 @@ sys::ReturnCodes ServiceDesktop::DeinitHandler()
    if (initialized) {
        settings->deinit();
        desktopWorker->deinit();
        initialized = false;
    }
    return sys::ReturnCodes::Success;
}

M products/BellHybrid/services/appmgr/include/appmgr/IdleHandler.hpp => products/BellHybrid/services/appmgr/include/appmgr/IdleHandler.hpp +1 -1
@@ 11,7 11,7 @@

namespace app::manager
{
    constexpr auto idleReturnTimeout = std::chrono::seconds{30};
    constexpr auto idleReturnTimeout = std::chrono::minutes{3};
    using connectFunction            = std::function<bool(const std::type_info &, sys::MessageHandler)>;

    class IdleHandler