From fffcadf384a23832c867e7b4a2d1515deb3bfaf0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89milie=20Feral?= Date: Thu, 6 Feb 2020 12:21:48 +0100 Subject: [PATCH] [apps/settings] Display a caution message in the 'about' page in non-official software versions --- apps/settings/Makefile | 2 ++ apps/settings/sub_menu/about_controller.h | 1 + .../sub_menu/about_controller_non_official.cpp | 12 ++++++++++++ apps/settings/sub_menu/about_controller_official.cpp | 9 +++++++++ .../sub_menu/selectable_view_with_messages.cpp | 8 ++++++-- .../sub_menu/selectable_view_with_messages.h | 2 +- 6 files changed, 31 insertions(+), 3 deletions(-) create mode 100644 apps/settings/sub_menu/about_controller_non_official.cpp create mode 100644 apps/settings/sub_menu/about_controller_official.cpp diff --git a/apps/settings/Makefile b/apps/settings/Makefile index b211d34bd..70714ce03 100644 --- a/apps/settings/Makefile +++ b/apps/settings/Makefile @@ -22,10 +22,12 @@ apps_prompt_beta_src += apps/settings/main_controller_prompt_beta.cpp apps_prompt_update_src += apps/settings/main_controller_prompt_update.cpp apps_settings_official += $(addprefix apps/settings/,\ + sub_menu/about_controller_official.cpp \ sub_menu/exam_mode_controller_official.cpp \ ) apps_settings_non_official += $(addprefix apps/settings/,\ + sub_menu/about_controller_non_official.cpp \ sub_menu/exam_mode_controller_non_official.cpp \ ) diff --git a/apps/settings/sub_menu/about_controller.h b/apps/settings/sub_menu/about_controller.h index 57d66087b..47fca25d5 100644 --- a/apps/settings/sub_menu/about_controller.h +++ b/apps/settings/sub_menu/about_controller.h @@ -9,6 +9,7 @@ namespace Settings { class AboutController : public GenericSubController { public: AboutController(Responder * parentResponder); + View * view() override; bool handleEvent(Ion::Events::Event event) override; HighlightCell * reusableCell(int index, int type) override; int reusableCellCount(int type) override; diff --git a/apps/settings/sub_menu/about_controller_non_official.cpp b/apps/settings/sub_menu/about_controller_non_official.cpp new file mode 100644 index 000000000..b83089b94 --- /dev/null +++ b/apps/settings/sub_menu/about_controller_non_official.cpp @@ -0,0 +1,12 @@ +#include "about_controller.h" +#include "selectable_view_with_messages.h" + +namespace Settings { + +View * AboutController::view() { + static I18n::Message cautionMessages[] = {I18n::Message::AboutWarning1, I18n::Message::AboutWarning2, I18n::Message::AboutWarning3, I18n::Message::AboutWarning4}; + static SelectableViewWithMessages view(&m_selectableTableView, cautionMessages, 4); + return &view; +} + +} diff --git a/apps/settings/sub_menu/about_controller_official.cpp b/apps/settings/sub_menu/about_controller_official.cpp new file mode 100644 index 000000000..8d7dca621 --- /dev/null +++ b/apps/settings/sub_menu/about_controller_official.cpp @@ -0,0 +1,9 @@ +#include "about_controller.h" + +namespace Settings { + +View * AboutController::view() { + return GenericSubController::view(); +} + +} diff --git a/apps/settings/sub_menu/selectable_view_with_messages.cpp b/apps/settings/sub_menu/selectable_view_with_messages.cpp index 313d4bdcf..79cb8ee7b 100644 --- a/apps/settings/sub_menu/selectable_view_with_messages.cpp +++ b/apps/settings/sub_menu/selectable_view_with_messages.cpp @@ -6,10 +6,14 @@ using namespace Shared; namespace Settings { -SelectableViewWithMessages::SelectableViewWithMessages(SelectableTableView * selectableTableView) : - m_selectableTableView(selectableTableView) +SelectableViewWithMessages::SelectableViewWithMessages(SelectableTableView * selectableTableView, I18n::Message * messages, int numberOfMessages) : + m_selectableTableView(selectableTableView), + m_numberOfMessages(numberOfMessages) { for (int i = 0; i < k_maxNumberOfLines; i++) { + if (i < numberOfMessages) { + m_messageLines[i].setMessage(messages[i]); + } m_messageLines[i].setFont(KDFont::SmallFont); m_messageLines[i].setAlignment(0.5f, 0.5f); m_messageLines[i].setBackgroundColor(Palette::WallScreen); diff --git a/apps/settings/sub_menu/selectable_view_with_messages.h b/apps/settings/sub_menu/selectable_view_with_messages.h index 393deec30..f5fe17896 100644 --- a/apps/settings/sub_menu/selectable_view_with_messages.h +++ b/apps/settings/sub_menu/selectable_view_with_messages.h @@ -8,7 +8,7 @@ namespace Settings { class SelectableViewWithMessages : public View { public: - SelectableViewWithMessages(SelectableTableView * selectableTableView); + SelectableViewWithMessages(SelectableTableView * selectableTableView, I18n::Message * messages = nullptr, int numberOfMessages = 0); void drawRect(KDContext * ctx, KDRect rect) const override; void setMessages(I18n::Message * messages, int numberOfMessages); private: