~aleteoryx/muditaos

f609ab9dce0118f73a5ee0e3c1ce6edae63738ef — Alek Rudnik 5 years ago d32dde0
[EGD-5295] Fixes in Calllog app

Fixed some Calllog UI issues:
Fixed lack of calllog entry after call aborting
M image/assets/lang/English.json => image/assets/lang/English.json +4 -4
@@ 161,10 161,10 @@
  "app_calllog_back": "BACK",
  "app_calllog_type": "Call",
  "app_calllog_duration": "Duration",
  "app_calllog_incoming_call": "incoming call",
  "app_calllog_outgoing_call": "outgoing call",
  "app_calllog_missed_call": "missed call",
  "app_calllog_rejected_call": "rejected call",
  "app_calllog_incoming_call": "Incoming call",
  "app_calllog_outgoing_call": "Outgoing call",
  "app_calllog_missed_call": "Missed call",
  "app_calllog_rejected_call": "Rejected call",
  "app_calllog_date": "Date",
  "app_calllog_options_title": "Options",
  "app_calllog_options_delete_call": "Delete call",

M image/assets/lang/Polski.json => image/assets/lang/Polski.json +3 -3
@@ 54,9 54,9 @@
  "app_calllog_back": "WRÓĆ",
  "app_calllog_type": "Połączenie",
  "app_calllog_duration": "Czas trwania",
  "app_calllog_incoming_call": "połączenie przychodzące",
  "app_calllog_outgoing_call": "połączenie wychodzące",
  "app_calllog_missed_call": "połączenie nieodebrane",
  "app_calllog_incoming_call": "Połączenie przychodzące",
  "app_calllog_outgoing_call": "Połączenie wychodzące",
  "app_calllog_missed_call": "Połączenie nieodebrane",
  "app_calllog_date": "Data",
  "app_calllog_options_title": "Opcje",
  "app_calllog_options_contact_details": "Szczegóły kontaktu",

M module-apps/application-calllog/widgets/CalllogItem.cpp => module-apps/application-calllog/widgets/CalllogItem.cpp +25 -19
@@ 1,4 1,4 @@
// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved.
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include "CalllogItem.hpp"


@@ 17,21 17,17 @@ namespace gui
    {
        setMargins(Margins(0, style::margins::big, 0, 0));
        setMinimumSize(clItemStyle::w, clItemStyle::h);
        setMaximumSize(clItemStyle::w, clItemStyle::h);

        setRadius(0);
        setEdges(RectangleEdge::Bottom | RectangleEdge::Top);

        setPenFocusWidth(style::window::default_border_focus_w);
        setPenWidth(style::window::default_border_no_focus_w);

        timestamp = new gui::Label(this, 0, 0, 0, 0);
        style::window::decorate(timestamp);
        timestamp->setFont(style::window::font::big);
        timestamp->setAlignment(gui::Alignment{gui::Alignment::Horizontal::Right, gui::Alignment::Vertical::Center});
        hBox = new gui::HBox(this, 0, 0, 0, 0);
        hBox->setEdges(gui::RectangleEdge::None);
        hBox->setPenFocusWidth(style::window::default_border_focus_w);
        hBox->setPenWidth(style::window::default_border_rect_no_focus);

        auto newImg = [=](const UTF8 imageName) -> gui::Image * {
            auto img = new gui::Image(this, clItemStyle::img::x, clItemStyle::img::y, 0, 0, imageName);
            auto img = new gui::Image(hBox, imageName);
            img->setAlignment(gui::Alignment{gui::Alignment::Horizontal::Center, gui::Alignment::Vertical::Center});
            img->setMargins(Margins(clItemStyle::left_right_margin, 0, clItemStyle::left_right_margin, 0));
            img->setVisible(false);
            return img;
        };


@@ 39,19 35,28 @@ namespace gui
        imageCallType[calllog::CallLogCallType::OUT]    = newImg("calllog_arrow_out");
        imageCallType[calllog::CallLogCallType::MISSED] = newImg("calllog_arrow_den");

        text = new gui::Label(this, 0, 0, 0, 0);
        style::window::decorate(text);
        text = new gui::Label(hBox, 0, 0, 0, 0);
        text->setMinimumHeight(clItemStyle::h);
        text->setMaximumWidth(clItemStyle::w);
        text->setEdges(gui::RectangleEdge::None);
        text->setAlignment(gui::Alignment{gui::Alignment::Horizontal::Left, gui::Alignment::Vertical::Center});
        text->setFont(style::window::font::big);
        text->setEllipsis(Ellipsis::Right);

        timestamp = new gui::Label(hBox, 0, 0, 0, 0);
        timestamp->setMargins(Margins(0, 0, clItemStyle::left_right_margin, 0));
        timestamp->setMinimumHeight(clItemStyle::h);
        timestamp->setMinimumWidth(clItemStyle::timestamp::min_w);
        timestamp->setEdges(gui::RectangleEdge::None);
        timestamp->setFont(style::window::font::small);
        timestamp->setAlignment(gui::Alignment{gui::Alignment::Horizontal::Right, gui::Alignment::Vertical::Center});
    }

    bool CalllogItem::onDimensionChanged(const BoundingBox &oldDim, const BoundingBox &newDim)
    {
        text->setPosition(clItemStyle::text::x, 0);
        text->setSize(newDim.w, newDim.h);
        hBox->setPosition(0, 0);
        hBox->setSize(newDim.w, newDim.h);

        timestamp->setPosition(newDim.w - clItemStyle::timestamp::w, 0);
        timestamp->setSize(clItemStyle::timestamp::w, newDim.h);
        return true;
    }



@@ 61,8 66,9 @@ namespace gui
        text->setText(call->name);

        auto callType = calllog::toCallLogCallType(call->type);
        if (callType == calllog::CallLogCallType::MISSED)
        if (callType == calllog::CallLogCallType::MISSED) {
            text->setFont(style::window::font::bigbold);
        }

        imageCallType[static_cast<uint32_t>(callType)]->setVisible(true);


M module-apps/application-calllog/widgets/CalllogItem.hpp => module-apps/application-calllog/widgets/CalllogItem.hpp +10 -16
@@ 1,8 1,9 @@
// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved.
// 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 <BoxLayout.hpp>
#include "Label.hpp"
#include "Image.hpp"
#include "ListItem.hpp"


@@ 14,21 15,13 @@ namespace gui

    namespace clItemStyle
    {
        constexpr uint32_t w = style::window::default_body_width;
        constexpr uint32_t h = style::window::label::big_h;
        namespace img
        {
            constexpr uint32_t x = 11; // TODO: alek:: change to good values
            constexpr uint32_t y = 22;
        } // namespace img
        namespace text
        {
            constexpr uint32_t x = 37;
            constexpr uint32_t w = 280;
        } // namespace text
        inline constexpr auto w                 = style::window::default_body_width;
        inline constexpr auto h                 = style::window::label::big_h;
        inline constexpr auto left_right_margin = 10;

        namespace timestamp
        {
            constexpr uint32_t w = 115;
            inline constexpr auto min_w = 120;
        }
    } // namespace clItemStyle



@@ 40,6 33,7 @@ namespace gui
        CalllogModel *model = nullptr;
        // pointer to the calls record
        std::shared_ptr<CalllogRecord> call = nullptr;
        gui::HBox *hBox                     = nullptr;
        // this is timestamp in the mode defined in settings
        gui::Label *timestamp                                                  = nullptr;
        gui::Image *imageCallType[calllog::CallLogCallType::NUM_OF_CALL_TYPES] = {nullptr, nullptr, nullptr};


@@ 52,9 46,9 @@ namespace gui
        virtual ~CalllogItem() = default;
        // sets copy of alarm's
        void setCall(std::shared_ptr<CalllogRecord> &);
        CalllogRecord getCall() const
        [[nodiscard]] auto getCall() const -> CalllogRecord
        {
            return *call;
            return call != nullptr ? *call : CalllogRecord();
        };

        // virtual methods from Item

M module-cellular/at/Commands.hpp => module-cellular/at/Commands.hpp +1 -1
@@ 174,7 174,7 @@ namespace at
            {AT::CNUM, {"AT+CNUM"}},
            {AT::CIMI, {"AT+CIMI"}},
            {AT::QCMGR, {"AT+QCMGR=", 2000ms}},
            {AT::ATH, {"ATH"}},
            {AT::ATH, {"ATH", 90000ms}},
            {AT::ATA, {"ATA", 90000ms}},
            {AT::ATD, {"ATD"}},
            {AT::IPR, {"AT+IPR="}},

M module-gui/gui/widgets/Image.cpp => module-gui/gui/widgets/Image.cpp +5 -5
@@ 1,13 1,13 @@
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md

#include "../core/DrawCommand.hpp"
#include "../core/PixMap.hpp"
#include "BoundingBox.hpp"
#include "Image.hpp"
#include "DrawCommand.hpp"
#include "PixMap.hpp"
#include "BoundingBox.hpp"
#include "ImageManager.hpp"

#include "../core/ImageManager.hpp"
#include "utf8/UTF8.hpp"
#include <utf8/UTF8.hpp>

namespace gui
{