~aleteoryx/muditaos

09950fa6b9b7e74fe066de83b8ac1593f43911cc — tomaszkrosnowski 4 years ago a63976d
[EGD-4384] Status bar roaming indicator

Added indicator to let know the user if he is in roaming mode.
29 files changed, 48 insertions(+), 36 deletions(-)

A art/phone/application_desktop/topbar/signal/signal0.png
A art/phone/application_desktop/topbar/signal/signal0_roaming.png
A art/phone/application_desktop/topbar/signal/signal1.png
A art/phone/application_desktop/topbar/signal/signal1_roaming.png
A art/phone/application_desktop/topbar/signal/signal2.png
A art/phone/application_desktop/topbar/signal/signal2_roaming.png
A art/phone/application_desktop/topbar/signal/signal3.png
A art/phone/application_desktop/topbar/signal/signal3_roaming.png
A art/phone/application_desktop/topbar/signal/signal4.png
A art/phone/application_desktop/topbar/signal/signal4_roaming.png
A art/phone/application_desktop/topbar/signal/signal_noconn.png
M image/assets/images/signal0.vpi
A image/assets/images/signal0_roaming.vpi
M image/assets/images/signal1.vpi
A image/assets/images/signal1_roaming.vpi
M image/assets/images/signal2.vpi
A image/assets/images/signal2_roaming.vpi
M image/assets/images/signal3.vpi
A image/assets/images/signal3_roaming.vpi
M image/assets/images/signal4.vpi
A image/assets/images/signal4_roaming.vpi
A image/assets/images/signal_noconn.vpi
M module-gui/gui/widgets/StatusBar.cpp
M module-gui/gui/widgets/status-bar/SignalStrengthBar.cpp
M module-gui/gui/widgets/status-bar/SignalStrengthBar.hpp
M module-gui/gui/widgets/status-bar/SignalStrengthBase.cpp
M module-gui/gui/widgets/status-bar/SignalStrengthBase.hpp
M module-gui/gui/widgets/status-bar/SignalStrengthText.cpp
M module-gui/gui/widgets/status-bar/SignalStrengthText.hpp
A art/phone/application_desktop/topbar/signal/signal0.png => art/phone/application_desktop/topbar/signal/signal0.png +0 -0
A art/phone/application_desktop/topbar/signal/signal0_roaming.png => art/phone/application_desktop/topbar/signal/signal0_roaming.png +0 -0
A art/phone/application_desktop/topbar/signal/signal1.png => art/phone/application_desktop/topbar/signal/signal1.png +0 -0
A art/phone/application_desktop/topbar/signal/signal1_roaming.png => art/phone/application_desktop/topbar/signal/signal1_roaming.png +0 -0
A art/phone/application_desktop/topbar/signal/signal2.png => art/phone/application_desktop/topbar/signal/signal2.png +0 -0
A art/phone/application_desktop/topbar/signal/signal2_roaming.png => art/phone/application_desktop/topbar/signal/signal2_roaming.png +0 -0
A art/phone/application_desktop/topbar/signal/signal3.png => art/phone/application_desktop/topbar/signal/signal3.png +0 -0
A art/phone/application_desktop/topbar/signal/signal3_roaming.png => art/phone/application_desktop/topbar/signal/signal3_roaming.png +0 -0
A art/phone/application_desktop/topbar/signal/signal4.png => art/phone/application_desktop/topbar/signal/signal4.png +0 -0
A art/phone/application_desktop/topbar/signal/signal4_roaming.png => art/phone/application_desktop/topbar/signal/signal4_roaming.png +0 -0
A art/phone/application_desktop/topbar/signal/signal_noconn.png => art/phone/application_desktop/topbar/signal/signal_noconn.png +0 -0
M image/assets/images/signal0.vpi => image/assets/images/signal0.vpi +0 -0
A image/assets/images/signal0_roaming.vpi => image/assets/images/signal0_roaming.vpi +0 -0
M image/assets/images/signal1.vpi => image/assets/images/signal1.vpi +0 -0
A image/assets/images/signal1_roaming.vpi => image/assets/images/signal1_roaming.vpi +0 -0
M image/assets/images/signal2.vpi => image/assets/images/signal2.vpi +0 -0
A image/assets/images/signal2_roaming.vpi => image/assets/images/signal2_roaming.vpi +0 -0
M image/assets/images/signal3.vpi => image/assets/images/signal3.vpi +0 -0
A image/assets/images/signal3_roaming.vpi => image/assets/images/signal3_roaming.vpi +0 -0
M image/assets/images/signal4.vpi => image/assets/images/signal4.vpi +0 -0
A image/assets/images/signal4_roaming.vpi => image/assets/images/signal4_roaming.vpi +0 -0
A image/assets/images/signal_noconn.vpi => image/assets/images/signal_noconn.vpi +0 -0
M module-gui/gui/widgets/StatusBar.cpp => module-gui/gui/widgets/StatusBar.cpp +3 -2
@@ 245,8 245,9 @@ namespace gui::status_bar

    void StatusBar::showSignalStrength(bool enabled)
    {
        auto signalStrength = Store::GSM::get()->getSignalStrength();
        signal->update(signalStrength);
        const auto signalStrength = Store::GSM::get()->getSignalStrength();
        const auto networkStatus  = Store::GSM::get()->getNetwork().status;
        signal->update(signalStrength, networkStatus);
        enabled ? signal->show() : signal->hide();
    }


M module-gui/gui/widgets/status-bar/SignalStrengthBar.cpp => module-gui/gui/widgets/status-bar/SignalStrengthBar.cpp +31 -10
@@ 10,32 10,53 @@ namespace gui::status_bar
{
    namespace
    {
        constexpr auto signal_none = "signal_noconn";

        constexpr auto signal0 = "signal0";
        constexpr auto signal1 = "signal1";
        constexpr auto signal2 = "signal2";
        constexpr auto signal3 = "signal3";
        constexpr auto signal4 = "signal4";
        constexpr auto signal5 = "signal5";

        constexpr auto signal0_roaming = "signal0_roaming";
        constexpr auto signal1_roaming = "signal1_roaming";
        constexpr auto signal2_roaming = "signal2_roaming";
        constexpr auto signal3_roaming = "signal3_roaming";
        constexpr auto signal4_roaming = "signal4_roaming";

        using SignalMap           = std::unordered_map<Store::RssiBar, std::string>;
        const SignalMap signalMap = {{Store::RssiBar::zero, signal0},
                                     {Store::RssiBar::one, signal1},
                                     {Store::RssiBar::two, signal2},
                                     {Store::RssiBar::three, signal3},
                                     {Store::RssiBar::four, signal4},
                                     {Store::RssiBar::five, signal5}};

        const SignalMap signalMapHomeCon = {{Store::RssiBar::zero, signal0},
                                            {Store::RssiBar::one, signal1},
                                            {Store::RssiBar::two, signal2},
                                            {Store::RssiBar::three, signal3},
                                            {Store::RssiBar::four, signal4}};

        const SignalMap signalMapRoaming = {{Store::RssiBar::zero, signal0_roaming},
                                            {Store::RssiBar::one, signal1_roaming},
                                            {Store::RssiBar::two, signal2_roaming},
                                            {Store::RssiBar::three, signal3_roaming},
                                            {Store::RssiBar::four, signal4_roaming}};
    } // namespace

    SignalStrengthBar::SignalStrengthBar(Item *parent, uint32_t x, uint32_t y, uint32_t w, uint32_t h)
        : SignalStrengthBase(parent, x, y, w, h)
    {
        img = new Image(this, signalMap.at(Store::RssiBar::zero));
        img = new Image(this, signal_none);
        setMinimumSize(img->getWidth(), style::header::status_bar::height);
    }

    void SignalStrengthBar::update()
    void SignalStrengthBar::update(const Store::SignalStrength &signal, const Store::Network::Status &status)
    {
        img->set(signalMap.at(signalStrength.rssiBar));
        if (status == Store::Network::Status::RegisteredRoaming) {
            img->set(signalMapRoaming.at(signal.rssiBar));
        }
        else if (status == Store::Network::Status::RegisteredHomeNetwork) {
            img->set(signalMapHomeCon.at(signal.rssiBar));
        }
        else {
            img->set(signal_none);
        }
    }

} // namespace gui::status_bar

M module-gui/gui/widgets/status-bar/SignalStrengthBar.hpp => module-gui/gui/widgets/status-bar/SignalStrengthBar.hpp +4 -5
@@ 13,12 13,11 @@ namespace gui::status_bar
{
    class SignalStrengthBar : public SignalStrengthBase
    {
        Image *img = nullptr;

      protected:
        void update() override;

      public:
        SignalStrengthBar(Item *parent, uint32_t x, uint32_t y, uint32_t w, uint32_t h);
        void update(const Store::SignalStrength &signal, const Store::Network::Status &status) override;

      private:
        Image *img = nullptr;
    };
} // namespace gui::status_bar

M module-gui/gui/widgets/status-bar/SignalStrengthBase.cpp => module-gui/gui/widgets/status-bar/SignalStrengthBase.cpp +0 -6
@@ 11,10 11,4 @@ namespace gui::status_bar
        setEdges(RectangleEdge::None);
        setAlignment(Alignment(Alignment::Horizontal::Left, Alignment::Vertical::Bottom));
    }

    void SignalStrengthBase::update(const Store::SignalStrength &data)
    {
        signalStrength = data;
        update();
    }
} // namespace gui::status_bar

M module-gui/gui/widgets/status-bar/SignalStrengthBase.hpp => module-gui/gui/widgets/status-bar/SignalStrengthBase.hpp +1 -5
@@ 11,12 11,8 @@ namespace gui::status_bar
{
    class SignalStrengthBase : public StatusBarWidgetBase<HBox>
    {
      protected:
        Store::SignalStrength signalStrength;
        virtual void update() = 0;

      public:
        SignalStrengthBase(Item *parent, uint32_t x, uint32_t y, uint32_t w, uint32_t h);
        void update(const Store::SignalStrength &data);
        virtual void update(const Store::SignalStrength &signal, const Store::Network::Status &status) = 0;
    };
} // namespace gui::status_bar

M module-gui/gui/widgets/status-bar/SignalStrengthText.cpp => module-gui/gui/widgets/status-bar/SignalStrengthText.cpp +3 -2
@@ 22,9 22,10 @@ namespace gui::status_bar
        label->setMaximumSize(style::header::status_bar::signal::maxX, style::header::status_bar::height);
    }

    void SignalStrengthText::update()
    void SignalStrengthText::update(const Store::SignalStrength &signal,
                                    [[maybe_unused]] const Store::Network::Status &status)
    {
        label->setText(utils::to_string(signalStrength.rssidBm) + " dBm");
        label->setText(utils::to_string(signal.rssidBm) + " dBm");
    }

} // namespace gui::status_bar

M module-gui/gui/widgets/status-bar/SignalStrengthText.hpp => module-gui/gui/widgets/status-bar/SignalStrengthText.hpp +6 -6
@@ 9,17 9,17 @@ namespace gui
{
    class Label;
}

namespace gui::status_bar
{
    class SignalStrengthText : public SignalStrengthBase
    {
      private:
        Label *label = nullptr;

      protected:
        void update() override;

      public:
        SignalStrengthText(Item *parent, uint32_t x, uint32_t y, uint32_t w, uint32_t h);
        void update(const Store::SignalStrength &signal,
                    [[maybe_unused]] const Store::Network::Status &status) override;

      private:
        Label *label = nullptr;
    };
} // namespace gui::status_bar