A art/phone/application_onboarding/sim1_option.png => art/phone/application_onboarding/sim1_option.png +0 -0
A art/phone/application_onboarding/sim2_option.png => art/phone/application_onboarding/sim2_option.png +0 -0
A art/phone/common/sim_card_W_G.png => art/phone/common/sim_card_W_G.png +0 -0
A image/assets/images/sim1_option.vpi => image/assets/images/sim1_option.vpi +0 -0
R image/assets/images/sim1.vpi => image/assets/images/sim1_status.vpi +0 -0
A image/assets/images/sim2_option.vpi => image/assets/images/sim2_option.vpi +0 -0
R image/assets/images/sim2.vpi => image/assets/images/sim2_status.vpi +0 -0
A image/assets/images/sim_card_W_G.vpi => image/assets/images/sim_card_W_G.vpi +0 -0
M image/assets/lang/English.json => image/assets/lang/English.json +4 -0
@@ 310,6 310,10 @@
"app_onboarding_title": "Onboarding",
"app_onboarding_start_configuration": "<text font='gt_pressura' weight='light' size='46'><p>Hello!</p></text><br></br><text font='gt_pressura' weight='regular' size='27'>Let's configure your Mudita Pure.</text>",
"app_onboarding_eula_license": "License agreement (EULA)",
+ "app_onboarding_select_sim": "Choose active SIM",
+ "app_onboarding_select_sim_description": "<text>Only one SIM can be active at a time.<br></br>You can choose it now and switch in<br></br>the Settings whenever needed.</text>",
+ "app_onboarding_no_sim_selected_title": "SIM setup",
+ "app_onboarding_no_sim_selected_description": "<text>No SIM card set up.<br></br>To connect to network, set up <br></br> SIM cards in Settings.</text>>",
"app_onboarding_title_configuration": "Configuration",
"app_onboarding_title_update_info": "MuditaOS update",
"app_onboarding_skip_confirm": "<text>Sim setup is required for network connection. Skip the setup anyway? </text>",
M module-apps/CMakeLists.txt => module-apps/CMakeLists.txt +0 -1
@@ 47,7 47,6 @@ set( SOURCES
"options/type/OptionCall.cpp"
"options/type/OptionContact.cpp"
"options/type/OptionSetting.cpp"
- "options/type/OptionChangePin.cpp"
"options/type/OptionWithActiveIcons.cpp"
"notifications/NotificationData.cpp")
M module-apps/application-onboarding/ApplicationOnBoarding.cpp => module-apps/application-onboarding/ApplicationOnBoarding.cpp +9 -1
@@ 9,6 9,8 @@
#include "windows/StartConfigurationWindow.hpp"
#include "windows/OnBoardingLanguagesWindow.hpp"
#include "windows/EULALicenseWindow.hpp"
+#include "windows/OnBoardingSimSelectWindow.hpp"
+#include "windows/NoSimSelectedDialogWindow.hpp"
#include "windows/ConfigurationSuccessfulDialogWindow.hpp"
#include "windows/NoConfigurationDialogWindow.hpp"
#include "windows/UpdateDialogWindow.hpp"
@@ 123,6 125,13 @@ namespace app
std::move(eulaRepository));
return std::make_unique<app::onBoarding::EULALicenseWindow>(app, std::move(presenter));
});
+ windowsFactory.attach(gui::window::name::onBoarding_sim_select, [](Application *app, const std::string &name) {
+ return std::make_unique<gui::OnBoardingSimSelectWindow>(app, gui::window::name::onBoarding_sim_select);
+ });
+ windowsFactory.attach(gui::window::name::onBoarding_no_sim_selected,
+ [](Application *app, const std::string &name) {
+ return std::make_unique<app::onBoarding::NoSimSelectedDialogWindow>(app);
+ });
windowsFactory.attach(gui::window::name::onBoarding_configuration_successful,
[](Application *app, const std::string &name) {
return std::make_unique<app::onBoarding::ConfigurationSuccessfulDialogWindow>(app);
@@ 134,7 143,6 @@ namespace app
windowsFactory.attach(gui::window::name::onBoarding_update, [](Application *app, const std::string &name) {
return std::make_unique<app::onBoarding::UpdateDialogWindow>(app);
});
-
windowsFactory.attach(gui::window::name::onBoarding_skip, [](Application *app, const std::string &name) {
return std::make_unique<app::onBoarding::SkipDialogWindow>(app);
});
M module-apps/application-onboarding/ApplicationOnBoarding.hpp => module-apps/application-onboarding/ApplicationOnBoarding.hpp +2 -0
@@ 16,6 16,8 @@ namespace gui::window::name
inline constexpr auto onBoarding_skip = "OnBoardingSkipConfirm";
inline constexpr auto onBoarding_date_and_time = "OnBoardingDateAndTime";
inline constexpr auto onBoarding_change_date_and_time = "OnBoardingChangeDateAndTime";
+ inline constexpr auto onBoarding_sim_select = "OnBoardingSimSelect";
+ inline constexpr auto onBoarding_no_sim_selected = "OnBoardingNoSimSelected";
} // namespace gui::window::name
namespace app
M module-apps/application-onboarding/CMakeLists.txt => module-apps/application-onboarding/CMakeLists.txt +7 -2
@@ 24,7 24,9 @@ target_sources(${PROJECT_NAME}
"${CMAKE_CURRENT_LIST_DIR}/windows/SkipDialogWindow.cpp"
"${CMAKE_CURRENT_LIST_DIR}/windows/OnBoardingDateAndTimeWindow.cpp"
"${CMAKE_CURRENT_LIST_DIR}/windows/OnBoardingChangeDateAndTimeWindow.cpp"
- PUBLIC
+ "${CMAKE_CURRENT_LIST_DIR}/windows/OnBoardingSimSelectWindow.cpp"
+ "${CMAKE_CURRENT_LIST_DIR}/windows/NoSimSelectedDialogWindow.cpp"
+ PUBLIC
"${CMAKE_CURRENT_LIST_DIR}/ApplicationOnBoarding.hpp"
"${CMAKE_CURRENT_LIST_DIR}/windows/OnBoardingMainWindow.hpp"
"${CMAKE_CURRENT_LIST_DIR}/windows/StartConfigurationWindow.hpp"
@@ 38,8 40,11 @@ target_sources(${PROJECT_NAME}
"${CMAKE_CURRENT_LIST_DIR}/windows/UpdateDialogWindow.hpp"
"${CMAKE_CURRENT_LIST_DIR}/windows/SkipDialogWindow.hpp"
"${CMAKE_CURRENT_LIST_DIR}/windows/OnBoardingDateAndTimeWindow.hpp"
-
+ "${CMAKE_CURRENT_LIST_DIR}/windows/OnBoardingSimSelectWindow.hpp"
+ "${CMAKE_CURRENT_LIST_DIR}/windows/NoSimSelectedDialogWindow.hpp"
+ "${CMAKE_CURRENT_LIST_DIR}/style/OnBoardingStyle.hpp"
)
+
target_include_directories(${PROJECT_NAME}
PRIVATE
service-db
A module-apps/application-onboarding/style/OnBoardingStyle.hpp => module-apps/application-onboarding/style/OnBoardingStyle.hpp +17 -0
@@ 0,0 1,17 @@
+// 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 "Style.hpp"
+
+namespace style::onboarding
+{
+ namespace sim_select
+ {
+ inline constexpr auto description_y = 400;
+ inline constexpr auto description_h = 150;
+ inline constexpr auto description_top_padding = 30;
+ } // namespace sim_select
+
+} // namespace style::onboarding
A module-apps/application-onboarding/windows/NoSimSelectedDialogWindow.cpp => module-apps/application-onboarding/windows/NoSimSelectedDialogWindow.cpp +29 -0
@@ 0,0 1,29 @@
+// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
+// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
+
+#include "NoSimSelectedDialogWindow.hpp"
+
+#include <application-onboarding/ApplicationOnBoarding.hpp>
+
+#include <i18n/i18n.hpp>
+#include <Style.hpp>
+
+namespace app::onBoarding
+{
+ NoSimSelectedDialogWindow::NoSimSelectedDialogWindow(app::Application *app)
+ : gui::Dialog(app, gui::window::name::onBoarding_no_sim_selected)
+ {
+ bottomBar->setText(gui::BottomBar::Side::CENTER, utils::translate(style::strings::common::ok));
+ bottomBar->setActive(gui::BottomBar::Side::RIGHT, true);
+ }
+
+ bool NoSimSelectedDialogWindow::onInput(const gui::InputEvent &inputEvent)
+ {
+ if (inputEvent.isShortRelease()) {
+ if (inputEvent.is(gui::KeyCode::KEY_ENTER)) {
+ application->getPhoneLockSubject().setPhoneLock();
+ }
+ }
+ return AppWindow::onInput(inputEvent);
+ }
+} // namespace app::onBoarding
A module-apps/application-onboarding/windows/NoSimSelectedDialogWindow.hpp => module-apps/application-onboarding/windows/NoSimSelectedDialogWindow.hpp +19 -0
@@ 0,0 1,19 @@
+// 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 <Dialog.hpp>
+
+#include <module-gui/gui/input/InputEvent.hpp>
+
+namespace app::onBoarding
+{
+ class NoSimSelectedDialogWindow : public gui::Dialog
+ {
+ public:
+ explicit NoSimSelectedDialogWindow(app::Application *app);
+
+ bool onInput(const gui::InputEvent &inputEvent) override;
+ };
+} // namespace app::onBoarding
M module-apps/application-onboarding/windows/OnBoardingChangeDateAndTimeWindow.cpp => module-apps/application-onboarding/windows/OnBoardingChangeDateAndTimeWindow.cpp +1 -1
@@ 13,7 13,7 @@ namespace gui
bool OnBoardingChangeDateAndTimeWindow::onInput(const gui::InputEvent &inputEvent)
{
- if (inputEvent.is(gui::KeyCode::KEY_ENTER)) {
+ if (inputEvent.isKeyRelease(gui::KeyCode::KEY_ENTER)) {
auto ret = ChangeDateAndTimeWindow::onInput(inputEvent);
application->returnToPreviousWindow();
return ret;
M module-apps/application-onboarding/windows/OnBoardingDateAndTimeWindow.cpp => module-apps/application-onboarding/windows/OnBoardingDateAndTimeWindow.cpp +3 -1
@@ 13,7 13,9 @@
namespace app::onBoarding
{
OnBoardingDateAndTimeWindow::OnBoardingDateAndTimeWindow(app::Application *app) : DateAndTimeMainWindow(app)
- {}
+ {
+ changeDateAndTimeWindow = gui::window::name::onBoarding_change_date_and_time;
+ }
OnBoardingDateAndTimeWindow::~OnBoardingDateAndTimeWindow()
{
A module-apps/application-onboarding/windows/OnBoardingSimSelectWindow.cpp => module-apps/application-onboarding/windows/OnBoardingSimSelectWindow.cpp +102 -0
@@ 0,0 1,102 @@
+// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
+// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
+
+#include "OnBoardingSimSelectWindow.hpp"
+
+#include <application-onboarding/ApplicationOnBoarding.hpp>
+#include <application-onboarding/style/OnBoardingStyle.hpp>
+#include <OptionSetting.hpp>
+
+#include <module-apps/messages/DialogMetadataMessage.hpp>
+
+namespace gui
+{
+ OnBoardingSimSelectWindow::OnBoardingSimSelectWindow(app::Application *app, std::string name)
+ : BaseSettingsWindow(app, std::move(name))
+ {
+ buildInterface();
+ }
+
+ void OnBoardingSimSelectWindow::buildInterface()
+ {
+ setTitle(utils::translate("app_onboarding_select_sim"));
+
+ bottomBar->setText(gui::BottomBar::Side::CENTER, utils::translate(::style::strings::common::select));
+ bottomBar->setText(gui::BottomBar::Side::RIGHT, utils::translate(::style::strings::common::back));
+ bottomBar->setText(gui::BottomBar::Side::LEFT, utils::translate(::style::strings::common::skip));
+
+ descriptionText = new gui::Text(this,
+ style::window::default_left_margin,
+ style::onboarding::sim_select::description_y,
+ style::window::default_body_width,
+ style::onboarding::sim_select::description_h);
+ descriptionText->setFont(style::window::font::medium);
+ descriptionText->setAlignment(
+ gui::Alignment{gui::Alignment::Horizontal::Center, gui::Alignment::Vertical::Top});
+ descriptionText->setEdges(RectangleEdge::Top);
+ descriptionText->setPenWidth(style::window::default_border_rect_no_focus);
+ descriptionText->setPadding(Padding(0, style::onboarding::sim_select::description_top_padding, 0, 0));
+ descriptionText->setRichText(utils::translate("app_onboarding_select_sim_description"));
+ }
+
+ void OnBoardingSimSelectWindow::onBeforeShow(ShowMode mode, SwitchData *data)
+ {
+ refreshOptionsList();
+ }
+
+ auto OnBoardingSimSelectWindow::buildOptionsList() -> std::list<gui::Option>
+ {
+ std::list<gui::Option> options;
+
+ options.emplace_back(std::make_unique<gui::option::OptionSettings>(
+ "SIM1",
+ [=](const gui::Item &item) {
+ application->getPhoneLockSubject().setPhoneLock();
+ return true;
+ },
+ nullptr,
+ this,
+ gui::option::SettingRightItem::SIM1));
+
+ options.emplace_back(std::make_unique<gui::option::OptionSettings>(
+ "SIM2",
+ [=](const gui::Item &item) {
+ application->getPhoneLockSubject().setPhoneLock();
+ return true;
+ },
+ nullptr,
+ this,
+ gui::option::SettingRightItem::SIM2));
+
+ return options;
+ }
+
+ bool OnBoardingSimSelectWindow::onInput(const gui::InputEvent &inputEvent)
+ {
+ if (inputEvent.isShortRelease(gui::KeyCode::KEY_LF)) {
+ auto metaData = std::make_unique<gui::DialogMetadataMessage>(gui::DialogMetadata{
+ utils::translate("app_onboarding_title"),
+ "info_icon_W_G",
+ utils::translate("app_onboarding_skip_confirm"),
+ "",
+ [=]() -> bool {
+ auto metaData = std::make_unique<gui::DialogMetadataMessage>(
+ gui::DialogMetadata{utils::translate("app_onboarding_no_sim_selected_title"),
+ "sim_card_W_G",
+ utils::translate("app_onboarding_no_sim_selected_description"),
+ "",
+ [=]() -> bool { return true; }});
+
+ application->switchWindow(gui::window::name::onBoarding_no_sim_selected,
+ gui::ShowMode::GUI_SHOW_INIT,
+ std::move(metaData));
+ return true;
+ }});
+
+ application->switchWindow(
+ gui::window::name::onBoarding_skip, gui::ShowMode::GUI_SHOW_INIT, std::move(metaData));
+ return true;
+ }
+ return AppWindow::onInput(inputEvent);
+ }
+} /* namespace gui */
A module-apps/application-onboarding/windows/OnBoardingSimSelectWindow.hpp => module-apps/application-onboarding/windows/OnBoardingSimSelectWindow.hpp +24 -0
@@ 0,0 1,24 @@
+// 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 <application-settings-new/windows/BaseSettingsWindow.hpp>
+#include <Text.hpp>
+
+namespace gui
+{
+ class OnBoardingSimSelectWindow : public BaseSettingsWindow
+ {
+ public:
+ explicit OnBoardingSimSelectWindow(app::Application *app, std::string name);
+ void buildInterface() override;
+
+ private:
+ gui::Text *descriptionText = nullptr;
+
+ auto buildOptionsList() -> std::list<Option> override;
+ void onBeforeShow(ShowMode mode, SwitchData *data) override;
+ bool onInput(const gui::InputEvent &inputEvent) override;
+ };
+} /* namespace gui */
M module-apps/application-onboarding/windows/StartConfigurationWindow.cpp => module-apps/application-onboarding/windows/StartConfigurationWindow.cpp +9 -11
@@ 1,18 1,17 @@
// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
-#include <i18n/i18n.hpp>
-#include <Style.hpp>
+#include "StartConfigurationWindow.hpp"
-#include <InputEvent.hpp>
+#include <application-onboarding/ApplicationOnBoarding.hpp>
+#include <application-onboarding/data/OnBoardingSwitchData.hpp>
-#include <module-apps/application-onboarding/ApplicationOnBoarding.hpp>
#include <module-apps/windows/DialogMetadata.hpp>
#include <module-apps/messages/DialogMetadataMessage.hpp>
-#include "module-apps/application-onboarding/data/OnBoardingSwitchData.hpp"
-#include "module-apps/application-onboarding/ApplicationOnBoarding.hpp"
-#include "StartConfigurationWindow.hpp"
+#include <i18n/i18n.hpp>
+#include <Style.hpp>
+#include <InputEvent.hpp>
namespace app::onBoarding
{
@@ 26,11 25,8 @@ namespace app::onBoarding
{
AppWindow::buildInterface();
- bottomBar->setActive(gui::BottomBar::Side::CENTER, true);
bottomBar->setText(gui::BottomBar::Side::CENTER, utils::translate(::style::strings::common::start));
- bottomBar->setActive(gui::BottomBar::Side::RIGHT, true);
bottomBar->setText(gui::BottomBar::Side::RIGHT, utils::translate(::style::strings::common::back));
- bottomBar->setActive(gui::BottomBar::Side::LEFT, true);
bottomBar->setText(gui::BottomBar::Side::LEFT, utils::translate(::style::strings::common::skip));
new gui::Icon(this,
@@ 51,7 47,9 @@ namespace app::onBoarding
std::make_unique<OnBoardingSwitchData>());
}
if (inputEvent.is(gui::KeyCode::KEY_ENTER)) {
- application->getPhoneLockSubject().setPhoneLock();
+ application->switchWindow(gui::window::name::onBoarding_sim_select,
+ gui::ShowMode::GUI_SHOW_INIT,
+ std::make_unique<OnBoardingSwitchData>());
}
if (inputEvent.is(gui::KeyCode::KEY_LF)) {
M module-apps/application-settings-new/windows/DateAndTimeMainWindow.cpp => module-apps/application-settings-new/windows/DateAndTimeMainWindow.cpp +3 -2
@@ 18,6 18,7 @@ namespace gui
automaticTimeZoneIsOn = utils::dateAndTimeSettings.isAutomaticTimeZoneOn();
timeFormat = utils::dateAndTimeSettings.getTimeFormat();
dateFormat = utils::dateAndTimeSettings.getDateFormat();
+ changeDateAndTimeWindow = window::name::change_date_and_time;
}
auto DateAndTimeMainWindow::buildOptionsList() -> std::list<Option>
@@ 54,8 55,8 @@ namespace gui
if (!automaticDateAndTimeIsOn) {
addOption(utils::translate("app_settings_date_and_time_change_date_and_time"), [=](Item &item) {
- LOG_INFO("switching to %s page", window::name::change_date_and_time);
- application->switchWindow(window::name::change_date_and_time, nullptr);
+ LOG_INFO("switching to %s page", changeDateAndTimeWindow.c_str());
+ application->switchWindow(changeDateAndTimeWindow, nullptr);
return true;
});
}
M module-apps/application-settings-new/windows/DateAndTimeMainWindow.hpp => module-apps/application-settings-new/windows/DateAndTimeMainWindow.hpp +2 -0
@@ 22,5 22,7 @@ namespace gui
utils::time::Locale::TimeFormat timeFormat = utils::time::Locale::defaultTimeFormat;
utils::time::Locale::DateFormat dateFormat = utils::time::Locale::defaultDateFormat;
+
+ std::string changeDateAndTimeWindow;
};
} // namespace gui
M module-apps/application-settings/ApplicationSettings.cpp => module-apps/application-settings/ApplicationSettings.cpp +0 -37
@@ 25,7 25,6 @@
#include "windows/SettingsMainWindow.hpp"
#include "windows/SimSelectWindow.hpp"
#include "windows/CellularPassthroughWindow.hpp"
-#include "OptionChangePin.hpp"
#include <i18n/i18n.hpp>
#include <service-evtmgr/EventManagerServiceAPI.hpp>
@@ 101,11 100,6 @@ namespace app
if (ret != sys::ReturnCodes::Success)
return ret;
- settings->registerValueChange(
- settings::SystemProperties::lockPassHash,
- [this](std::string value) { lockPassChanged(value); },
- settings::SettingsScope::Global);
-
createUserInterface();
return ret;
@@ 126,9 120,6 @@ namespace app
windowsFactory.attach(app::sim_select, [this](Application *app, const std::string &name) {
return std::make_unique<gui::OptionWindow>(app, name, simSelectWindow(app, this));
});
- windowsFactory.attach(app::change_setting, [this](Application *app, const std::string &name) {
- return std::make_unique<gui::OptionWindow>(app, name, settingChangePinWindow(app, this, lockPassHash));
- });
windowsFactory.attach("Languages", [](Application *app, const std::string &name) {
return std::make_unique<gui::LanguageWindow>(app);
});
@@ 176,34 167,6 @@ namespace app
CellularServiceAPI::SetSimCard(this, sim);
}
- void ApplicationSettings::setPin(unsigned int value)
- {
- settings->setValue(
- settings::SystemProperties::lockPassHash, std::to_string(value), settings::SettingsScope::Global);
- lockPassHash = value;
- }
-
- void ApplicationSettings::clearPin()
- {
- settings->setValue(settings::SystemProperties::lockPassHash, "", settings::SettingsScope::Global);
- lockPassHash = 0U;
- }
-
- void ApplicationSettings::lockPassChanged(std::string value)
- {
- auto newLockPassHash = 0U;
- if (!value.empty()) {
- newLockPassHash = utils::getNumericValue<unsigned int>(value);
- }
- if (lockPassHash != newLockPassHash) {
- lockPassHash = newLockPassHash;
- auto currentWindow = getCurrentWindow();
- if (app::change_setting == currentWindow->getName()) {
- currentWindow->rebuild();
- }
- }
- }
-
void ApplicationSettings::timeDateChanged(std::string value)
{
auto newTimeDateFormat = utils::getNumericValue<bool>(value);
M module-apps/application-settings/ApplicationSettings.hpp => module-apps/application-settings/ApplicationSettings.hpp +1 -13
@@ 13,7 13,6 @@ namespace app
inline constexpr auto name_settings = "ApplicationSettings";
inline constexpr auto sim_select = "SimSelect";
- inline constexpr auto change_setting = "ChangeSetting";
class SimSetter
{
@@ 22,15 21,7 @@ namespace app
virtual void setSim(Store::GSM::SIM sim) = 0;
};
- class PinLockSetter
- {
- public:
- virtual ~PinLockSetter() = default;
- virtual void setPin(unsigned int pin) = 0;
- virtual void clearPin() = 0;
- };
-
- class ApplicationSettings : public app::Application, public SimSetter, public PinLockSetter
+ class ApplicationSettings : public app::Application, public SimSetter
{
public:
ApplicationSettings(std::string name = name_settings,
@@ 51,9 42,6 @@ namespace app
void destroyUserInterface() override;
bsp::Board board = bsp::Board::none;
void setSim(Store::GSM::SIM sim) override;
- void setPin(unsigned int pin) override;
- void clearPin() override;
- void lockPassChanged(std::string value);
void timeDateChanged(std::string value);
private:
M module-apps/application-settings/windows/SettingsMainWindow.cpp => module-apps/application-settings/windows/SettingsMainWindow.cpp +0 -1
@@ 34,7 34,6 @@ std::list<gui::Option> mainWindowOptions(app::Application *app)
addMenu(i18("app_settings_bt"), "Bluetooth");
addMenu(i18("app_settings_language"), "Languages");
addMenu("SIM SELECT", app::sim_select);
- addMenu("Change setting", app::change_setting);
addMenu(i18("app_settings_date_and_time"), "DateTime");
if (dynamic_cast<app::ApplicationSettings *>(app)->board == bsp::Board::T4) {
addMenu(i18("app_settings_cellular_passthrough"), gui::window::cellular_passthrough::window_name);
M module-apps/options/OptionStyle.hpp => module-apps/options/OptionStyle.hpp +2 -0
@@ 30,6 30,8 @@ namespace gui::option
Off,
Bt,
Checked,
+ SIM1,
+ SIM2,
Text
};
D module-apps/options/type/OptionChangePin.cpp => module-apps/options/type/OptionChangePin.cpp +0 -86
@@ 1,86 0,0 @@
-// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
-// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
-
-#include "OptionChangePin.hpp"
-#include <widgets/Text.hpp>
-#include <widgets/TextFixedSize.hpp>
-#include <FontManager.hpp>
-#include <service-db/Settings.hpp>
-
-auto gui::option::ChangePin::build() const -> gui::ListItem *
-{
- auto optionItem = new gui::ListItem();
- optionItem->setEdges(RectangleEdge::None);
- optionItem->setMinimumSize(style::window::default_body_width, style::window::label::big_h);
- optionItem->setMargins(Margins(0, 0, 0, window::option_bottom_margin));
-
- auto optionBodyHBox = new gui::HBox(optionItem, 0, 0, 0, 0);
- auto font = FontManager::getInstance().getFont(style::window::font::medium);
- auto font_bold = FontManager::getInstance().getFont(style::window::font::mediumbold);
-
- optionBodyHBox->setEdges(RectangleEdge::None);
- optionBodyHBox->setReverseOrder(true);
-
- auto text = new TextFixedSize(nullptr, 0, 0, 0, 0);
- text->setMaximumSize(style::window::default_body_width, style::window::label::big_h);
- text->setUnderline(false);
- text->setEditMode(EditMode::Browse);
- text->setFont(font_bold);
- text->setText("Change PIN");
- text->setAlignment(Alignment(Alignment::Vertical::Center));
- text->activeItem = false;
- text->setPenWidth(0);
-
- auto pin_text = new PinChange();
-
- pin_text->setMargins(Margins(0, 0, 0, 0));
- pin_text->setMinimumSize(60, style::window::label::big_h);
- pin_text->setMaximumSize(200, style::window::label::big_h);
- pin_text->setAlignment(Alignment(Alignment::Horizontal::Center, Alignment::Vertical::Center));
- pin_text->setEditMode(EditMode::Edit);
- pin_text->setFont(font);
- pin_text->setText(std::to_string(lockHash));
- pin_text->setPenWidth(style::window::default_border_focus_w);
- pin_text->setInputMode(new InputMode(
- {InputMode::digit}, [=](const UTF8 &text) {}, [=]() {}, [=]() {}));
- pin_text->setEdges(RectangleEdge::All);
-
- optionItem->dimensionChangedCallback = [optionBodyHBox](gui::Item &, const BoundingBox &newDim) -> bool {
- optionBodyHBox->setPosition(0, 0);
- optionBodyHBox->setSize(newDim.w, newDim.h);
- return true;
- };
-
- optionItem->activatedCallback = [pin_text, this](gui::Item &item) {
- auto text = pin_text->getText();
- if (text.length() == 0) {
- LOG_DEBUG("remove pin");
- setter->clearPin();
- }
- else if (text.length() != 4) {
- pin_text->setText("bad value - needs 4 digits");
- }
- else {
- auto value = std::stoi(text);
- LOG_DEBUG("setting pin to: %d", value);
- setter->setPin(value);
- }
- return true;
- };
-
- optionItem->inputCallback = [pin_text]([[maybe_unused]] Item &item, const InputEvent &event) {
- return pin_text->onInput(event);
- };
-
- optionBodyHBox->addWidget(pin_text);
- optionBodyHBox->addWidget(text);
-
- return optionItem;
-}
-
-std::list<gui::Option> settingChangePinWindow(app::Application *app, app::PinLockSetter *setter, unsigned int lockHash)
-{
- std::list<gui::Option> list;
- list.emplace_back(std::make_unique<gui::option::ChangePin>(app, setter, lockHash));
- return list;
-}
D module-apps/options/type/OptionChangePin.hpp => module-apps/options/type/OptionChangePin.hpp +0 -45
@@ 1,45 0,0 @@
-// 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 "Option.hpp"
-#include "OptionBase.hpp"
-#include "OptionStyle.hpp"
-#include "Application.hpp"
-
-#include "Text.hpp"
-
-#include "module-apps/application-settings/ApplicationSettings.hpp"
-
-namespace gui
-{
- class PinChange : public gui::Text
- {};
-
-} // namespace gui
-
-namespace gui::option
-{
- class ChangePin : public Base
- {
- private:
- app::Application *app = nullptr;
- app::PinLockSetter *setter = nullptr;
- unsigned int lockHash = 0;
-
- public:
- ChangePin(app::Application *app, app::PinLockSetter *setter, unsigned int lockHash)
- : app(app), setter(setter), lockHash(lockHash)
- {}
-
- void setLockHash(unsigned int hash)
- {
- lockHash = hash;
- }
-
- [[nodiscard]] auto build() const -> ListItem * override;
- };
-} // namespace gui::option
-
-std::list<gui::Option> settingChangePinWindow(app::Application *app, app::PinLockSetter *setter, unsigned int lockHash);
M module-apps/options/type/OptionSetting.cpp => module-apps/options/type/OptionSetting.cpp +6 -0
@@ 56,6 56,12 @@ namespace gui::option
case SettingRightItem::Checked:
imageName = "small_tick_W_M";
break;
+ case SettingRightItem::SIM1:
+ imageName = "sim1_option";
+ break;
+ case SettingRightItem::SIM2:
+ imageName = "sim2_option";
+ break;
case SettingRightItem::Text: {
auto optionTextRight = new TextFixedSize(optionBodyHBox, 0, 0, 0, 0);
optionTextRight->setUnderline(false);
M module-gui/gui/widgets/TopBar/SIM.cpp => module-gui/gui/widgets/TopBar/SIM.cpp +4 -4
@@ 7,10 7,10 @@ namespace gui::top_bar
{
using namespace Store;
- constexpr auto sim1 = "sim1"; // sim 1 indicator
- constexpr auto sim2 = "sim2"; // sim 2 indicator
- constexpr auto simunknown = "simunknown"; // sim - unknown sim state indicator (i.e. no initialization was done)
- constexpr auto simfailed = "simfail"; // sim - notification for sim failure
+ constexpr auto sim1 = "sim1_status"; // sim 1 indicator
+ constexpr auto sim2 = "sim2_status"; // sim 2 indicator
+ constexpr auto simunknown = "simunknown"; // sim - unknown sim state indicator (i.e. no initialization was done)
+ constexpr auto simfailed = "simfail"; // sim - notification for sim failure
SIM::SIM(Item *parent, uint32_t x, uint32_t y) : StatusBarWidgetBase(parent, x, y, 0, 0)
{