~aleteoryx/muditaos

fc3e4f73d7db965210b7343f4e66cee59332e2c0 — Wojtek Rzepecki 4 years ago e147ff1
[EGD-6956] Add offline calls notifications

Changed calls notifications for offline mode
M module-apps/apps-common/notifications/NotificationsHandler.cpp => module-apps/apps-common/notifications/NotificationsHandler.cpp +1 -1
@@ 61,7 61,7 @@ void NotificationsHandler::callerIdHandler(sys::Message *request)
        playbackCallRingtone();
    }
    else {
        CellularServiceAPI::DismissCall(parentService);
        CellularServiceAPI::DismissCall(parentService, currentCallPolicy.isDismissedCallNotificationAllowed());
    }
}


M module-apps/apps-common/notifications/policies/CallNotificationPolicy.cpp => module-apps/apps-common/notifications/policies/CallNotificationPolicy.cpp +8 -0
@@ 10,6 10,7 @@ void CallNotificationPolicy::updateCurrentCall(sys::phone_modes::PhoneMode phone
    popupOn           = false;
    ringtoneOn        = false;
    numberCheckNeeded = false;
    dismissedCallNotification = false;

    switch (phoneMode) {
    case sys::phone_modes::PhoneMode::Connected:


@@ 17,9 18,11 @@ void CallNotificationPolicy::updateCurrentCall(sys::phone_modes::PhoneMode phone
        ringtoneOn = true;
        break;
    case sys::phone_modes::PhoneMode::DoNotDisturb:
        dismissedCallNotification = true;
        numberCheckNeeded = true;
        break;
    case sys::phone_modes::PhoneMode::Offline:
        dismissedCallNotification = false;
        break;
    }
}


@@ 34,6 37,11 @@ bool CallNotificationPolicy::isRingtoneAllowed() const noexcept
    return ringtoneOn;
}

bool CallNotificationPolicy::isDismissedCallNotificationAllowed() const noexcept
{
    return dismissedCallNotification;
}

bool CallNotificationPolicy::isNumberCheckRequired() const noexcept
{
    return numberCheckNeeded;

M module-apps/apps-common/notifications/policies/CallNotificationPolicy.hpp => module-apps/apps-common/notifications/policies/CallNotificationPolicy.hpp +2 -0
@@ 14,12 14,14 @@ namespace notifications
        void updateCurrentCall(sys::phone_modes::PhoneMode phoneMode);
        bool isPopupAllowed() const noexcept;
        bool isRingtoneAllowed() const noexcept;
        bool isDismissedCallNotificationAllowed() const noexcept;
        bool isNumberCheckRequired() const noexcept;
        void numberCheck(bool callsFromFavouritesSetting, bool isNumberInFavourites);

      private:
        bool popupOn;
        bool ringtoneOn;
        bool dismissedCallNotification;
        bool numberCheckNeeded;
    };
} // namespace notifications

M module-apps/tests/test-PhoneModesPolicies.cpp => module-apps/tests/test-PhoneModesPolicies.cpp +12 -0
@@ 64,6 64,7 @@ TEST_CASE("DoNotDisturb Mode notifications  - calls policy test")
    REQUIRE(!callPolicy.isPopupAllowed());
    REQUIRE(!callPolicy.isRingtoneAllowed());
    REQUIRE(callPolicy.isNumberCheckRequired());
    REQUIRE(callPolicy.isDismissedCallNotificationAllowed());

    SECTION("Number in/not in Favourites")
    {


@@ 137,3 138,14 @@ TEST_CASE("Offline Mode notifications - sms policy test")
    callPolicy.updateCurrentSMS(sys::phone_modes::PhoneMode::Offline);
    REQUIRE(callPolicy.isRingtoneAllowed());
}

TEST_CASE("Offline Mode notifications - calls policy test")
{
    CallNotificationPolicy callPolicy;

    callPolicy.updateCurrentCall(sys::phone_modes::PhoneMode::Offline);
    REQUIRE(!callPolicy.isPopupAllowed());
    REQUIRE(!callPolicy.isRingtoneAllowed());
    REQUIRE(!callPolicy.isNumberCheckRequired());
    REQUIRE(!callPolicy.isDismissedCallNotificationAllowed());
}

M module-services/service-cellular/CellularServiceAPI.cpp => module-services/service-cellular/CellularServiceAPI.cpp +2 -2
@@ 47,9 47,9 @@ bool CellularServiceAPI::HangupCall(sys::Service *serv)
    return true;
}

bool CellularServiceAPI::DismissCall(sys::Service *serv)
bool CellularServiceAPI::DismissCall(sys::Service *serv, bool addNotificationToDB)
{
    auto msg = std::make_shared<CellularDismissCallMessage>();
    auto msg = std::make_shared<CellularDismissCallMessage>(addNotificationToDB);
    return serv->bus.sendUnicast(msg, ServiceCellular::serviceName);
}


M module-services/service-cellular/ServiceCellular.cpp => module-services/service-cellular/ServiceCellular.cpp +4 -1
@@ 1934,8 1934,11 @@ void ServiceCellular::handleCellularHangupCallMessage(CellularHangupCallMessage 

void ServiceCellular::handleCellularDismissCallMessage(sys::Message *msg)
{
    auto message = static_cast<CellularDismissCallMessage *>(msg);
    hangUpCall();
    handleCallAbortedNotification(msg);
    if (message->addNotificationRequired()) {
        handleCallAbortedNotification(msg);
    }
}

auto ServiceCellular::handleDBQueryResponseMessage(db::QueryResponse *msg) -> std::shared_ptr<sys::ResponseMessage>

M module-services/service-cellular/service-cellular/CellularMessage.hpp => module-services/service-cellular/service-cellular/CellularMessage.hpp +10 -1
@@ 589,8 589,17 @@ class CellularHangupCallMessage : public CellularMessage, public app::manager::a
class CellularDismissCallMessage : public CellularMessage
{
  public:
    CellularDismissCallMessage() : CellularMessage(Type::DismissCall)
    CellularDismissCallMessage(bool addNotificationToDB)
        : CellularMessage(Type::DismissCall), addNotificationToDB{addNotificationToDB}
    {}

    auto addNotificationRequired() const noexcept -> bool
    {
        return addNotificationToDB;
    }

  private:
    const bool addNotificationToDB;
};

class CellularListCallsMessage : public CellularMessage

M module-services/service-cellular/service-cellular/CellularServiceAPI.hpp => module-services/service-cellular/service-cellular/CellularServiceAPI.hpp +1 -1
@@ 27,7 27,7 @@ namespace CellularServiceAPI

    bool AnswerIncomingCall(sys::Service *serv);
    bool HangupCall(sys::Service *serv);
    bool DismissCall(sys::Service *serv);
    bool DismissCall(sys::Service *serv, bool addNotificationToDB);
    /*
     * @brief Its calls sercive-cellular for selected SIM IMSI number.
     * @param serv pointer to caller service.