// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #include "NumberWithIconsWidget.hpp" #include "application-phonebook/data/PhonebookStyle.hpp" #include #include #include #include namespace gui { NumberWithIconsWidget::NumberWithIconsWidget(app::Application *app, const utils::PhoneNumber::View &number, const std::string &font, Item *parent) : HBox(parent, 0, 0, 0, 0) { setReverseOrder(true); setMinimumSize(phonebookStyle::informationWidget::w, phonebookStyle::numbersWithIconsWidget::h); setEdges(gui::RectangleEdge::None); setAlignment(Alignment(gui::Alignment::Horizontal::Right, gui::Alignment::Vertical::Center)); smsImage = new ImageBox(this, 0, 0, phonebookStyle::numbersWithIconsWidget::sms_image_w, phonebookStyle::numbersWithIconsWidget::sms_image_h, new Image("mail")); smsImage->inputCallback = [=](Item &item, const InputEvent &input) { if (input.keyCode == KeyCode::KEY_ENTER && input.state == InputEvent::State::keyReleasedShort) { LOG_INFO("SMS operation started"); auto data = std::make_unique(number, std::string{}); data->ignoreCurrentWindowOnStack = true; return app::manager::Controller::sendAction(app, app::manager::actions::CreateSms, std::move(data), app::manager::OnSwitchBehaviour::RunInBackground); } return false; }; phoneImage = new ImageBox(this, 0, 0, phonebookStyle::numbersWithIconsWidget::phone_image_w, phonebookStyle::numbersWithIconsWidget::phone_image_h, new Image("phonebook_phone_ringing")); phoneImage->setMargins(Margins(phonebookStyle::numbersWithIconsWidget::phone_image_margin_left, 0, phonebookStyle::numbersWithIconsWidget::phone_image_margin_right, 0)); phoneImage->inputCallback = [=](Item &item, const InputEvent &input) { if (input.keyCode == KeyCode::KEY_ENTER && input.state == InputEvent::State::keyReleasedShort) { app::manager::Controller::sendAction(app, app::manager::actions::Dial, std::make_unique(number), app::manager::OnSwitchBehaviour::RunInBackground); LOG_INFO("Call operation started"); } return false; }; numberText = new TextFixedSize(this, 0, 0, 0, 0); numberText->setUnderline(false); numberText->setMaximumSize(phonebookStyle::informationWidget::w, phonebookStyle::numbersWithIconsWidget::number_text_h); numberText->setFont(font); numberText->setEdges(gui::RectangleEdge::None); numberText->setEditMode(EditMode::Browse); numberText->setAlignment(Alignment(gui::Alignment::Horizontal::Left, gui::Alignment::Vertical::Center)); numberText->setText(number.getFormatted()); numberText->activeItem = false; focusChangedCallback = [&](Item &item) { setFocusItem(focus ? phoneImage : nullptr); return true; }; phoneImage->focusChangedCallback = [&, app](Item &item) { if (phoneImage->focus) { phoneImage->setEdges(RectangleEdge::Bottom | RectangleEdge::Top); app->getCurrentWindow()->bottomBarTemporaryMode( utils::localize.get(style::strings::common::call), BottomBar::Side::CENTER, false); } else { phoneImage->setEdges(RectangleEdge::None); } return true; }; smsImage->focusChangedCallback = [&, app](Item &item) { if (smsImage->focus) { smsImage->setEdges(RectangleEdge::Bottom | RectangleEdge::Top); app->getCurrentWindow()->bottomBarTemporaryMode( utils::localize.get(style::strings::common::send), BottomBar::Side::CENTER, false); } else { smsImage->setEdges(RectangleEdge::None); } return true; }; } } /* namespace gui */