M image/assets/lang/English.json => image/assets/lang/English.json +1 -0
@@ 393,6 393,7 @@
"app_settings_sar": "SAR",
"app_settings_about": "About Mudita Pure",
"app_settings_title_languages": "Language selection",
+ "app_settings_network_sim_cards": "Sim cards",
"app_settings_network_active_card": "Active card",
"app_settings_network_operator_auto_select": "Operator auto-select",
"app_settings_network_all_operators": "All operators",
M module-apps/application-settings/ApplicationSettings.cpp => module-apps/application-settings/ApplicationSettings.cpp +22 -17
@@ 14,8 14,11 @@
#include <application-settings/windows/bluetooth/AllDevicesWindow.hpp>
#include <application-settings/windows/bluetooth/PhoneNameWindow.hpp>
#include <application-settings/windows/bluetooth/BluetoothCheckPasskeyWindow.hpp>
-#include <application-settings/windows/ApnSettingsWindow.hpp>
-#include <application-settings/windows/ApnOptionsWindow.hpp>
+#include <application-settings/windows/network/NetworkWindow.hpp>
+#include <application-settings/windows/network/SimCardsWindow.hpp>
+#include <application-settings/windows/network/NewApnWindow.hpp>
+#include <application-settings/windows/network/ApnSettingsWindow.hpp>
+#include <application-settings/windows/network/ApnOptionsWindow.hpp>
#include <application-settings/windows/DisplayAndKeypadWindow.hpp>
#include <application-settings/windows/InputLanguageWindow.hpp>
#include <application-settings/windows/LockedScreenWindow.hpp>
@@ 24,7 27,6 @@
#include <application-settings/windows/KeypadLightWindow.hpp>
#include <application-settings/windows/AppsAndToolsWindow.hpp>
#include <application-settings/windows/NightshiftWindow.hpp>
-#include <application-settings/windows/NetworkWindow.hpp>
#include <application-settings/windows/PhoneWindow.hpp>
#include <application-settings/windows/MessagesWindow.hpp>
#include <application-settings/windows/AlarmClockWindow.hpp>
@@ 40,7 42,6 @@
#include <application-settings/windows/QuotesOptionsWindow.hpp>
#include <application-settings/windows/SARInfoWindow.hpp>
#include <application-settings/windows/SystemMainWindow.hpp>
-#include <application-settings/windows/NewApnWindow.hpp>
#include <application-settings/windows/LanguagesWindow.hpp>
#include <application-settings/windows/DateAndTimeMainWindow.hpp>
#include <application-settings/windows/ChangeTimeZone.hpp>
@@ 154,8 155,8 @@ namespace app
selectedSim = Store::GSM::get()->selected;
CellularServiceAPI::RequestForOwnNumber(this);
auto currentWindow = getCurrentWindow();
- if (gui::window::name::network == currentWindow->getName()) {
- updateWindow(gui::window::name::network, nullptr);
+ if (gui::window::name::sim_cards == currentWindow->getName()) {
+ updateWindow(gui::window::name::sim_cards, nullptr);
}
return sys::MessageNone{};
});
@@ 362,6 363,19 @@ namespace app
windowsFactory.attach(gui::window::name::all_devices, [](Application *app, const std::string &name) {
return std::make_unique<gui::AllDevicesWindow>(app);
});
+ windowsFactory.attach(gui::window::name::phone_name, [](Application *app, const std::string &name) {
+ return std::make_unique<gui::PhoneNameWindow>(app);
+ });
+ windowsFactory.attach(gui::window::name::bluetooth_check_passkey,
+ [](Application *app, const std::string &name) {
+ return std::make_unique<gui::BluetoothCheckPasskeyWindow>(app);
+ });
+ windowsFactory.attach(gui::window::name::network, [](Application *app, const std::string &name) {
+ return std::make_unique<gui::NetworkWindow>(app, static_cast<ApplicationSettings *>(app));
+ });
+ windowsFactory.attach(gui::window::name::sim_cards, [](Application *app, const std::string &name) {
+ return std::make_unique<gui::SimCardsWindow>(app, static_cast<ApplicationSettings *>(app));
+ });
windowsFactory.attach(gui::window::name::dialog_settings, [](Application *app, const std::string &name) {
return std::make_unique<gui::Dialog>(app, name);
});
@@ 389,10 403,7 @@ namespace app
windowsFactory.attach(gui::window::name::nightshift, [](Application *app, const std::string &name) {
return std::make_unique<gui::NightshiftWindow>(app);
});
- windowsFactory.attach(gui::window::name::network, [](Application *app, const std::string &name) {
- return std::make_unique<gui::NetworkWindow>(
- app, static_cast<ApplicationSettings *>(app), static_cast<ApplicationSettings *>(app));
- });
+
windowsFactory.attach(gui::window::name::apn_settings, [](Application *app, const std::string &name) {
return std::make_unique<gui::ApnSettingsWindow>(app);
});
@@ 417,9 428,7 @@ namespace app
windowsFactory.attach(gui::window::name::sound_select, [](Application *app, const std::string &name) {
return std::make_unique<gui::SoundSelectWindow>(app, name);
});
- windowsFactory.attach(gui::window::name::phone_name, [](Application *app, const std::string &name) {
- return std::make_unique<gui::PhoneNameWindow>(app);
- });
+
windowsFactory.attach(gui::window::name::autolock, [](Application *app, const std::string &name) {
return std::make_unique<gui::AutolockWindow>(app, static_cast<ApplicationSettings *>(app));
});
@@ 509,10 518,6 @@ namespace app
windowsFactory.attach(gui::window::name::connection_frequency, [](Application *app, const std::string &name) {
return std::make_unique<gui::ConnectionFrequencyWindow>(app, static_cast<ApplicationSettings *>(app));
});
- windowsFactory.attach(gui::window::name::bluetooth_check_passkey,
- [](Application *app, const std::string &name) {
- return std::make_unique<gui::BluetoothCheckPasskeyWindow>(app);
- });
attachPopups({gui::popup::ID::Volume,
gui::popup::ID::Tethering,
M module-apps/application-settings/ApplicationSettings.hpp => module-apps/application-settings/ApplicationSettings.hpp +6 -4
@@ 24,9 24,12 @@ namespace gui::window::name
inline constexpr auto add_device = "AddDevice";
inline constexpr auto bluetooth_check_passkey = "BluetoothCheckPasskey";
- inline constexpr auto network = "Network";
- inline constexpr auto apn_settings = "APNSettings";
- inline constexpr auto apn_options = "APNOptions";
+ inline constexpr auto network = "Network";
+ inline constexpr auto sim_cards = "SimCards";
+ inline constexpr auto all_operators = "AllOperators";
+ inline constexpr auto apn_settings = "APNSettings";
+ inline constexpr auto apn_options = "APNOptions";
+
inline constexpr auto phone_modes = "PhoneModes";
inline constexpr auto apps_and_tools = "AppsAndTools";
inline constexpr auto security = "Security";
@@ 59,7 62,6 @@ namespace gui::window::name
inline constexpr auto display_and_keypad = "DisplayAndKeypad";
inline constexpr auto change_settings = "ChangeSettings";
- inline constexpr auto all_operators = "AllOperators";
inline constexpr auto pin_settings = "PINSettings";
inline constexpr auto import_contacts = "ImportContacts";
inline constexpr auto dialog_settings = "DialogSettings";
M module-apps/application-settings/CMakeLists.txt => module-apps/application-settings/CMakeLists.txt +11 -9
@@ 17,8 17,8 @@ target_sources( ${PROJECT_NAME}
ApplicationSettings.cpp
models/advanced/ColorTestModel.cpp
models/bluetooth/BluetoothSettingsModel.cpp
- models/ApnSettingsModel.cpp
- models/NewApnModel.cpp
+ models/network/ApnSettingsModel.cpp
+ models/network/NewApnModel.cpp
models/DateAndTimeModel.cpp
models/FromTimeToTimeModel.cpp
models/QuotesModel.cpp
@@ 31,9 31,9 @@ target_sources( ${PROJECT_NAME}
presenter/TechnicalWindowPresenter.cpp
widgets/advanced/ColorTestListItem.cpp
widgets/advanced/ColorTestListView.cpp
+ widgets/network/ApnInputWidget.cpp
widgets/QuoteWidget.cpp
widgets/CategoryWidget.cpp
- widgets/ApnInputWidget.cpp
widgets/SettingsDateItem.cpp
widgets/SettingsTimeItem.cpp
widgets/SettingsSoundItem.cpp
@@ 48,8 48,10 @@ target_sources( ${PROJECT_NAME}
windows/bluetooth/BluetoothWindow.cpp
windows/bluetooth/PhoneNameWindow.cpp
windows/bluetooth/BluetoothCheckPasskeyWindow.cpp
- windows/ApnSettingsWindow.cpp
- windows/ApnOptionsWindow.cpp
+ windows/network/NetworkWindow.cpp
+ windows/network/SimCardsWindow.cpp
+ windows/network/ApnSettingsWindow.cpp
+ windows/network/ApnOptionsWindow.cpp
windows/BaseSettingsWindow.cpp
windows/FontSizeWindow.cpp
windows/InputLanguageWindow.cpp
@@ 58,7 60,6 @@ target_sources( ${PROJECT_NAME}
windows/LockedScreenWindow.cpp
windows/DisplayAndKeypadWindow.cpp
windows/AppsAndToolsWindow.cpp
- windows/NetworkWindow.cpp
windows/NightshiftWindow.cpp
windows/OptionsWidgetMaker.cpp
windows/PhoneWindow.cpp
@@ 73,7 74,7 @@ target_sources( ${PROJECT_NAME}
windows/QuotesOptionsWindow.cpp
windows/SARInfoWindow.cpp
windows/SecurityMainWindow.cpp
- windows/NewApnWindow.cpp
+ windows/network/NewApnWindow.cpp
widgets/SpinBox.cpp
widgets/SpinBoxOptionSettings.cpp
windows/SystemMainWindow.cpp
@@ 98,15 99,16 @@ target_sources( ${PROJECT_NAME}
widgets/advanced/ColorTestListItem.hpp
widgets/advanced/ColorTestListItem.hpp
widgets/advanced/ColorTestListStyle.hpp
- widgets/ApnInputWidget.hpp
+ widgets/network/ApnInputWidget.hpp
widgets/CategoryWidget.hpp
- windows/NewApnWindow.hpp
windows/SettingsMainWindow.hpp
windows/advanced/AdvancedOptionsWindow.hpp
windows/advanced/InformationWindow.hpp
windows/advanced/UITestWindow.hpp
windows/advanced/EinkModeWindow.hpp
windows/advanced/ColorTestWindow.hpp
+ windows/network/SimCardsWindow.hpp
+ windows/network/NewApnWindow.hpp
windows/BaseSettingsWindow.hpp
windows/FontSizeWindow.hpp
windows/InputLanguageWindow.hpp
R module-apps/application-settings/models/ApnSettingsModel.cpp => module-apps/application-settings/models/network/ApnSettingsModel.cpp +0 -0
R module-apps/application-settings/models/ApnSettingsModel.hpp => module-apps/application-settings/models/network/ApnSettingsModel.hpp +0 -0
R module-apps/application-settings/models/NewApnModel.cpp => module-apps/application-settings/models/network/NewApnModel.cpp +3 -3
@@ 3,11 3,11 @@
#include "NewApnModel.hpp"
-#include "application-settings/widgets/ApnInputWidget.hpp"
+#include <application-settings/data/SettingsItemData.hpp>
+#include <application-settings/widgets/SettingsStyle.hpp>
+#include <application-settings/widgets/network/ApnInputWidget.hpp>
#include <ListView.hpp>
-#include <time/ScopedTime.hpp>
-#include <BottomBar.hpp>
NewApnModel::NewApnModel(app::Application *app) : application(app)
{}
R module-apps/application-settings/models/NewApnModel.hpp => module-apps/application-settings/models/network/NewApnModel.hpp +3 -5
@@ 3,12 3,10 @@
#pragma once
-#include "application-settings/data/SettingsItemData.hpp"
-#include "application-settings/widgets/ApnListItem.hpp"
-#include "application-settings/widgets/SettingsStyle.hpp"
-#include "InternalModel.hpp"
-#include "Application.hpp"
+#include <application-settings/widgets/network/ApnListItem.hpp>
+#include <InternalModel.hpp>
+#include <Application.hpp>
#include <ListItemProvider.hpp>
class NewApnModel : public app::InternalModel<gui::ApnListItem *>, public gui::ListItemProvider
R module-apps/application-settings/widgets/ApnInputWidget.cpp => module-apps/application-settings/widgets/network/ApnInputWidget.cpp +2 -4
@@ 2,10 2,9 @@
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#include "ApnInputWidget.hpp"
-#include <Span.hpp>
-#include "application-settings/widgets/SettingsStyle.hpp"
+
+#include <application-settings/widgets/SettingsStyle.hpp>
#include <i18n/i18n.hpp>
-#include <utility>
namespace gui
{
@@ 17,7 16,6 @@ namespace gui
unsigned int lines)
: listItemName(listItemName), checkTextContent(std::move(contentChanged))
{
-
setMinimumSize(style::settings::widget::apnInputWidget::w,
style::settings::widget::apnInputWidget::title_label_h +
style::settings::widget::apnInputWidget::span_size +
R module-apps/application-settings/widgets/ApnInputWidget.hpp => module-apps/application-settings/widgets/network/ApnInputWidget.hpp +2 -4
@@ 3,11 3,9 @@
#pragma once
-#include "application-settings/data/SettingsInternals.hpp"
-#include "application-settings//widgets/ApnListItem.hpp"
+#include "ApnListItem.hpp"
-#include <ListItem.hpp>
-#include <Text.hpp>
+#include <application-settings/data/SettingsInternals.hpp>
#include <TextFixedSize.hpp>
namespace gui
R module-apps/application-settings/widgets/ApnListItem.hpp => module-apps/application-settings/widgets/network/ApnListItem.hpp +1 -1
@@ 3,7 3,7 @@
#pragma once
-#include "application-settings/data/SettingsItemData.hpp"
+#include <application-settings/data/SettingsItemData.hpp>
namespace gui
{
M module-apps/application-settings/windows/OfflineWindow.cpp => module-apps/application-settings/windows/OfflineWindow.cpp +1 -1
@@ 54,7 54,7 @@ namespace gui
false,
utils::translate(isFlightMode ? "app_settings_no_network_connection_flight_mode"
: "app_settings_messages_only"),
- false));
+ true));
if (!isFlightMode) {
optList.emplace_back(std::make_unique<gui::option::OptionSettings>(
R module-apps/application-settings/windows/ApnOptionsWindow.cpp => module-apps/application-settings/windows/network/ApnOptionsWindow.cpp +3 -4
@@ 3,10 3,9 @@
#include "ApnOptionsWindow.hpp"
-#include "application-settings/ApplicationSettings.hpp"
-#include "application-settings/data/SettingsItemData.hpp"
-#include "application-settings/models/ApnSettingsModel.hpp"
-#include "OptionSetting.hpp"
+#include <application-settings/ApplicationSettings.hpp>
+#include <application-settings/data/SettingsItemData.hpp>
+#include <OptionSetting.hpp>
namespace gui
{
R module-apps/application-settings/windows/ApnOptionsWindow.hpp => module-apps/application-settings/windows/network/ApnOptionsWindow.hpp +2 -2
@@ 3,8 3,8 @@
#pragma once
-#include "application-settings/models/ApnSettingsModel.hpp"
-#include "BaseSettingsWindow.hpp"
+#include <application-settings/models/network/ApnSettingsModel.hpp>
+#include <application-settings/windows/BaseSettingsWindow.hpp>
#include <service-cellular/PacketDataTypes.hpp>
R module-apps/application-settings/windows/ApnSettingsWindow.cpp => module-apps/application-settings/windows/network/ApnSettingsWindow.cpp +6 -5
@@ 2,11 2,12 @@
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#include "ApnSettingsWindow.hpp"
-#include "application-settings/ApplicationSettings.hpp"
-#include "application-settings/data/ApnListData.hpp"
-#include "application-settings/widgets/SettingsStyle.hpp"
-#include "application-settings/data/SettingsItemData.hpp"
-#include "OptionSetting.hpp"
+
+#include <application-settings/ApplicationSettings.hpp>
+#include <application-settings/data/ApnListData.hpp>
+#include <application-settings/widgets/SettingsStyle.hpp>
+#include <application-settings/data/SettingsItemData.hpp>
+#include <OptionSetting.hpp>
#include <header/AddElementAction.hpp>
#include <InputEvent.hpp>
R module-apps/application-settings/windows/ApnSettingsWindow.hpp => module-apps/application-settings/windows/network/ApnSettingsWindow.hpp +2 -2
@@ 3,8 3,8 @@
#pragma once
-#include "OptionWindow.hpp"
-#include "application-settings/models/ApnSettingsModel.hpp"
+#include <OptionWindow.hpp>
+#include <application-settings/models/network/ApnSettingsModel.hpp>
#include <Icon.hpp>
#include <service-cellular/PacketDataTypes.hpp>
R module-apps/application-settings/windows/NetworkWindow.cpp => module-apps/application-settings/windows/network/NetworkWindow.cpp +16 -67
@@ 2,73 2,41 @@
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#include "NetworkWindow.hpp"
-#include "application-settings/ApplicationSettings.hpp"
-#include "application-settings/data/PINSettingsSimData.hpp"
-#include "OptionSetting.hpp"
+#include <application-settings/ApplicationSettings.hpp>
+#include <application-settings/data/PINSettingsSimData.hpp>
+#include <OptionSetting.hpp>
#include <i18n/i18n.hpp>
namespace gui
{
- NetworkWindow::NetworkWindow(app::Application *app,
- app::settingsInterface::SimParams *simParams,
- app::settingsInterface::OperatorsSettings *operatorsSettings)
- : BaseSettingsWindow(app, gui::window::name::network), simParams(simParams),
- operatorsSettings(operatorsSettings)
+ NetworkWindow::NetworkWindow(app::Application *app, app::settingsInterface::OperatorsSettings *operatorsSettings)
+ : BaseSettingsWindow(app, gui::window::name::network), operatorsSettings(operatorsSettings)
{}
void NetworkWindow::onBeforeShow(ShowMode mode, SwitchData *data)
{
- simParams->updateSim();
BaseSettingsWindow::onBeforeShow(mode, data);
}
auto NetworkWindow::buildOptionsList() -> std::list<gui::Option>
{
std::list<gui::Option> optList;
- std::string simStr;
- auto phoneNumber = simParams->getNumber();
- auto sim = simParams->getSim();
- switch (sim) {
- case Store::GSM::SIM::SIM1:
- simStr = utils::translate("app_settings_network_sim1");
- break;
- case Store::GSM::SIM::SIM2:
- simStr = utils::translate("app_settings_network_sim2");
- break;
- case Store::GSM::SIM::NONE:
- case Store::GSM::SIM::SIM_FAIL:
- case Store::GSM::SIM::SIM_UNKNOWN:
- simStr = utils::translate("app_settings_network_sim_none");
- phoneNumber = {};
- break;
- }
- auto operatorsOn = operatorsSettings->getOperatorsOn();
optList.emplace_back(std::make_unique<gui::option::OptionSettings>(
- utils::translate("app_settings_network_active_card") + ":" + simStr + " / " + phoneNumber,
+ utils::translate("app_settings_network_sim_cards"),
[=](gui::Item &item) {
- if (Store::GSM::SIM::SIM1 == sim) {
- simParams->setSim(Store::GSM::SIM::SIM2);
- }
- else {
- simParams->setSim(Store::GSM::SIM::SIM1);
- }
-
+ this->application->switchWindow(gui::window::name::sim_cards, nullptr);
return true;
},
- [=](gui::Item &item) {
- if (item.focus) {
- this->setBottomBarText(utils::translate(style::strings::common::Switch), BottomBar::Side::CENTER);
- }
- else {
- this->setBottomBarText(utils::translate(style::strings::common::select), BottomBar::Side::CENTER);
- }
- return true;
- },
- this));
+ nullptr,
+ nullptr,
+ gui::option::SettingRightItem::ArrowWhite,
+ false));
+#if DISABLED_SETTINGS_OPTIONS == 1
+ auto operatorsOn = operatorsSettings->getOperatorsOn();
optList.emplace_back(std::make_unique<gui::option::OptionSettings>(
utils::translate("app_settings_network_operator_auto_select"),
[=](gui::Item &item) {
@@ 91,27 59,7 @@ namespace gui
gui::option::SettingRightItem::ArrowWhite,
false));
}
-
- optList.emplace_back(std::make_unique<gui::option::OptionSettings>(
- utils::translate("app_settings_network_pin_settings") + " (" + simStr + ")",
- [=](gui::Item &item) {
- auto pinSettingsData = std::make_unique<gui::PINSettingsSimData>(simStr);
- this->application->switchWindow(gui::window::name::pin_settings, std::move(pinSettingsData));
- return true;
- },
- nullptr,
- nullptr,
- gui::option::SettingRightItem::ArrowWhite,
- false));
-
- optList.emplace_back(std::make_unique<gui::option::OptionSettings>(
- utils::translate("app_settings_network_import_contacts_from_sim_card"),
- [=](gui::Item &item) {
- this->application->switchWindow(gui::window::name::import_contacts, nullptr);
- return true;
- },
- nullptr,
- nullptr));
+#endif // DISABLED_SETTINGS_OPTIONS
#if ENABLE_VOLTE == 1
auto voLteOn = operatorsSettings->getVoLTEOn();
@@ 126,6 74,7 @@ namespace gui
nullptr,
voLteOn ? gui::option::SettingRightItem::On : gui::option::SettingRightItem::Off));
#endif // ENABLE_VOLTE
+
optList.emplace_back(std::make_unique<gui::option::OptionSettings>(
utils::translate("app_settings_network_apn_settings"),
[=](gui::Item &item) {
@@ 135,7 84,7 @@ namespace gui
nullptr,
nullptr,
gui::option::SettingRightItem::ArrowWhite,
- true));
+ false));
bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::select));
R module-apps/application-settings/windows/NetworkWindow.hpp => module-apps/application-settings/windows/network/NetworkWindow.hpp +2 -13
@@ 3,34 3,23 @@
#pragma once
-#include "BaseSettingsWindow.hpp"
-#include "Application.hpp"
+#include <application-settings/windows/BaseSettingsWindow.hpp>
namespace app::settingsInterface
{
- class SimParams;
class OperatorsSettings;
}; // namespace app::settingsInterface
namespace gui
{
-
- namespace window
- {
- inline constexpr auto network_window = "Network";
- };
-
class NetworkWindow : public BaseSettingsWindow
{
private:
auto buildOptionsList() -> std::list<Option> override;
- app::settingsInterface::SimParams *simParams;
app::settingsInterface::OperatorsSettings *operatorsSettings;
public:
- NetworkWindow(app::Application *app,
- app::settingsInterface::SimParams *simParams,
- app::settingsInterface::OperatorsSettings *operatorsSettings);
+ NetworkWindow(app::Application *app, app::settingsInterface::OperatorsSettings *operatorsSettings);
void onBeforeShow(ShowMode mode, SwitchData *data) override;
};
R module-apps/application-settings/windows/NewApnWindow.cpp => module-apps/application-settings/windows/network/NewApnWindow.cpp +2 -3
@@ 2,10 2,9 @@
// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
#include "NewApnWindow.hpp"
-#include "application-settings/ApplicationSettings.hpp"
-#include <Dialog.hpp>
-#include <messages/DialogMetadataMessage.hpp>
+#include <application-settings/ApplicationSettings.hpp>
+#include <application-settings/widgets/SettingsStyle.hpp>
namespace gui
{
R module-apps/application-settings/windows/NewApnWindow.hpp => module-apps/application-settings/windows/network/NewApnWindow.hpp +2 -2
@@ 3,8 3,8 @@
#pragma once
-#include "application-settings/models/ApnSettingsModel.hpp"
-#include "application-settings/models/NewApnModel.hpp"
+#include <application-settings/models/network/ApnSettingsModel.hpp>
+#include <application-settings/models/network/NewApnModel.hpp>
#include <AppWindow.hpp>
#include <ListView.hpp>
A module-apps/application-settings/windows/network/SimCardsWindow.cpp => module-apps/application-settings/windows/network/SimCardsWindow.cpp +100 -0
@@ 0,0 1,100 @@
+// Copyright (c) 2017-2021, Mudita Sp. z.o.o. All rights reserved.
+// For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md
+
+#include "SimCardsWindow.hpp"
+
+#include <application-settings/ApplicationSettings.hpp>
+#include <application-settings/data/PINSettingsSimData.hpp>
+#include <OptionSetting.hpp>
+
+#include <i18n/i18n.hpp>
+
+namespace gui
+{
+ SimCardsWindow::SimCardsWindow(app::Application *app, app::settingsInterface::SimParams *simParams)
+ : BaseSettingsWindow(app, gui::window::name::sim_cards), simParams(simParams)
+ {}
+
+ void SimCardsWindow::onBeforeShow(ShowMode mode, SwitchData *data)
+ {
+ setTitle(utils::translate("app_settings_network_sim_cards"));
+ simParams->updateSim();
+ BaseSettingsWindow::onBeforeShow(mode, data);
+ }
+
+ auto SimCardsWindow::buildOptionsList() -> std::list<gui::Option>
+ {
+ std::list<gui::Option> optList;
+ std::string simStr;
+ auto phoneNumber = simParams->getNumber();
+ auto sim = simParams->getSim();
+ switch (sim) {
+ case Store::GSM::SIM::SIM1:
+ simStr = utils::translate("app_settings_network_sim1");
+ break;
+ case Store::GSM::SIM::SIM2:
+ simStr = utils::translate("app_settings_network_sim2");
+ break;
+ case Store::GSM::SIM::NONE:
+ case Store::GSM::SIM::SIM_FAIL:
+ case Store::GSM::SIM::SIM_UNKNOWN:
+ simStr = utils::translate("app_settings_network_sim_none");
+ phoneNumber = {};
+ break;
+ }
+
+ optList.emplace_back(std::make_unique<gui::option::OptionSettings>(
+ utils::translate("app_settings_network_active_card"),
+ [=](gui::Item &item) {
+ if (Store::GSM::SIM::SIM1 == sim) {
+ simParams->setSim(Store::GSM::SIM::SIM2);
+ }
+ else {
+ simParams->setSim(Store::GSM::SIM::SIM1);
+ }
+
+ return true;
+ },
+ [=](gui::Item &item) {
+ if (item.focus) {
+ this->setBottomBarText(utils::translate(style::strings::common::Switch), BottomBar::Side::CENTER);
+ }
+ else {
+ this->setBottomBarText(utils::translate(style::strings::common::select), BottomBar::Side::CENTER);
+ }
+ return true;
+ },
+ this,
+ gui::option::SettingRightItem::Text,
+ false,
+ simStr + " / " + phoneNumber,
+ true));
+
+ optList.emplace_back(std::make_unique<gui::option::OptionSettings>(
+ utils::translate("app_settings_network_pin_settings"),
+ [=](gui::Item &item) {
+ auto pinSettingsData = std::make_unique<gui::PINSettingsSimData>(simStr);
+ this->application->switchWindow(gui::window::name::pin_settings, std::move(pinSettingsData));
+ return true;
+ },
+ nullptr,
+ nullptr,
+ gui::option::SettingRightItem::ArrowWhite,
+ false));
+
+#if DISABLED_SETTINGS_OPTIONS == 1
+ optList.emplace_back(std::make_unique<gui::option::OptionSettings>(
+ utils::translate("app_settings_network_import_contacts_from_sim_card"),
+ [=](gui::Item &item) {
+ this->application->switchWindow(gui::window::name::import_contacts, nullptr);
+ return true;
+ },
+ nullptr,
+ nullptr));
+#endif // DISABLED_SETTINGS_OPTIONS
+
+ bottomBar->setText(BottomBar::Side::CENTER, utils::translate(style::strings::common::select));
+
+ return optList;
+ }
+} // namespace gui
A module-apps/application-settings/windows/network/SimCardsWindow.hpp => module-apps/application-settings/windows/network/SimCardsWindow.hpp +26 -0
@@ 0,0 1,26 @@
+// 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/windows/BaseSettingsWindow.hpp>
+
+namespace app::settingsInterface
+{
+ class SimParams;
+}; // namespace app::settingsInterface
+
+namespace gui
+{
+ class SimCardsWindow : public BaseSettingsWindow
+ {
+ private:
+ auto buildOptionsList() -> std::list<Option> override;
+ app::settingsInterface::SimParams *simParams;
+
+ public:
+ SimCardsWindow(app::Application *app, app::settingsInterface::SimParams *simParams);
+
+ void onBeforeShow(ShowMode mode, SwitchData *data) override;
+ };
+} // namespace gui
M module-apps/apps-common/options/OptionStyle.hpp => module-apps/apps-common/options/OptionStyle.hpp +0 -2
@@ 40,8 40,6 @@ namespace gui::option
inline constexpr gui::Length option_left_margin = 10;
inline constexpr gui::Length option_right_margin = 10;
inline constexpr gui::Length option_bottom_margin = style::margins::big;
- inline constexpr gui::Length option_right_min_size = 150;
- inline constexpr gui::Length option_rightbig_min_size = 350;
inline constexpr uint32_t optionsListTopMargin = 10U;
inline constexpr uint32_t optionsListX = style::window::default_left_margin;
inline constexpr uint32_t optionsListY = style::window::default_vertical_pos + optionsListTopMargin;
M module-apps/apps-common/options/type/OptionSetting.cpp => module-apps/apps-common/options/type/OptionSetting.cpp +4 -5
@@ 65,14 65,13 @@ namespace gui::option
case SettingRightItem::Text: {
auto optionTextRight = new TextFixedSize(optionBodyHBox, 0, 0, 0, 0);
optionTextRight->setUnderline(false);
- optionTextRight->setMinimumSize((textOnRightIsSmall) ? gui::option::window::option_right_min_size
- : gui::option::window::option_rightbig_min_size,
- style::window::label::big_h);
+ optionTextRight->setFont((textOnRightIsSmall) ? style::window::font::verysmall
+ : style::window::font::medium);
+ optionTextRight->setMinimumWidthToFitText(textOnRight);
+ optionTextRight->setMinimumHeight(style::window::label::big_h);
optionTextRight->setAlignment(
gui::Alignment(gui::Alignment::Horizontal::Right, gui::Alignment::Vertical::Center));
optionTextRight->setMargins(Margins(0, 0, window::option_right_margin, 0));
- optionTextRight->setFont((textOnRightIsSmall) ? style::window::font::medium
- : style::window::font::verysmall);
optionTextRight->setRichText(textOnRight);
break;
}
M module-gui/gui/widgets/Text.cpp => module-gui/gui/widgets/Text.cpp +5 -0
@@ 220,6 220,11 @@ namespace gui
buildCursor();
}
+ void Text::setMinimumWidthToFitText(const UTF8 &text)
+ {
+ setMinimumWidth(format.getFont()->getPixelWidth(text) + TextCursor::defaultWidth);
+ }
+
auto Text::setCursorStartPosition(CursorStartPosition val) -> void
{
// As we destroy cursors starting position information need to be stored in both places
M module-gui/gui/widgets/Text.hpp => module-gui/gui/widgets/Text.hpp +1 -0
@@ 158,6 158,7 @@ namespace gui
virtual bool saveText(UTF8 path);
void setFont(const UTF8 &fontName);
void setFont(RawFont *font);
+ void setMinimumWidthToFitText(const UTF8 &text);
// virtual methods from Item
bool onInput(const InputEvent &inputEvent) override;