From f609ab9dce0118f73a5ee0e3c1ce6edae63738ef Mon Sep 17 00:00:00 2001 From: Alek Rudnik Date: Thu, 4 Feb 2021 21:51:56 +0100 Subject: [PATCH] [EGD-5295] Fixes in Calllog app Fixed some Calllog UI issues: Fixed lack of calllog entry after call aborting --- image/assets/lang/English.json | 8 ++-- image/assets/lang/Polski.json | 6 +-- .../widgets/CalllogItem.cpp | 44 +++++++++++-------- .../widgets/CalllogItem.hpp | 26 +++++------ module-cellular/at/Commands.hpp | 2 +- module-gui/gui/widgets/Image.cpp | 10 ++--- 6 files changed, 48 insertions(+), 48 deletions(-) diff --git a/image/assets/lang/English.json b/image/assets/lang/English.json index 75ab6b5fcedfee5f65f0d91c9a00f38bf4112445..51d6c1e955bfce4360d69c23ca95f01099b5e55c 100644 --- a/image/assets/lang/English.json +++ b/image/assets/lang/English.json @@ -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", diff --git a/image/assets/lang/Polski.json b/image/assets/lang/Polski.json index c2539876d5123d807a92833157f338f13f81c900..4936072c9bdb911055d5004b02c5c0cbf817bfdf 100644 --- a/image/assets/lang/Polski.json +++ b/image/assets/lang/Polski.json @@ -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", diff --git a/module-apps/application-calllog/widgets/CalllogItem.cpp b/module-apps/application-calllog/widgets/CalllogItem.cpp index ce1fb917d062773da92e741ab4906966b8b5273c..3dcc707dd69460d4faf0da9c2f20b939a9e7d538 100644 --- a/module-apps/application-calllog/widgets/CalllogItem.cpp +++ b/module-apps/application-calllog/widgets/CalllogItem.cpp @@ -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(callType)]->setVisible(true); diff --git a/module-apps/application-calllog/widgets/CalllogItem.hpp b/module-apps/application-calllog/widgets/CalllogItem.hpp index 146ab5b9232183f19cf1fb8a58a0b0f58cb11495..bff1b0eeafa752019c8d25f920f07fce3da657e1 100644 --- a/module-apps/application-calllog/widgets/CalllogItem.hpp +++ b/module-apps/application-calllog/widgets/CalllogItem.hpp @@ -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 #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 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 getCall() const + [[nodiscard]] auto getCall() const -> CalllogRecord { - return *call; + return call != nullptr ? *call : CalllogRecord(); }; // virtual methods from Item diff --git a/module-cellular/at/Commands.hpp b/module-cellular/at/Commands.hpp index fa3ab2bd3b46117126d4ef3a082ce77727b84ddb..17057253ba92d76eb206124f67538ed311f752e9 100644 --- a/module-cellular/at/Commands.hpp +++ b/module-cellular/at/Commands.hpp @@ -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="}}, diff --git a/module-gui/gui/widgets/Image.cpp b/module-gui/gui/widgets/Image.cpp index 4916978ae52cba9b2261235b2b1abb561241b749..86aebd3d0e59167cde7de97ef4651f5e4de87c85 100644 --- a/module-gui/gui/widgets/Image.cpp +++ b/module-gui/gui/widgets/Image.cpp @@ -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 namespace gui {