diff --git a/apps/settings/base.de.i18n b/apps/settings/base.de.i18n index caeb13a14..e9239b737 100644 --- a/apps/settings/base.de.i18n +++ b/apps/settings/base.de.i18n @@ -57,3 +57,4 @@ SymbolMultiplicationAutoSymbol = "automatisch " PythonFont = "Python schriftart" Large = "Groß " Small = "Klein " +MemUse = "Speicher" diff --git a/apps/settings/base.en.i18n b/apps/settings/base.en.i18n index c3717f753..edcab2930 100644 --- a/apps/settings/base.en.i18n +++ b/apps/settings/base.en.i18n @@ -57,3 +57,4 @@ SymbolMultiplicationAutoSymbol = "Auto " PythonFont = "Python Font" Large = "Large " Small = "Small " +MemUse = "Memory" diff --git a/apps/settings/base.es.i18n b/apps/settings/base.es.i18n index 7019f830a..0192f2e8e 100644 --- a/apps/settings/base.es.i18n +++ b/apps/settings/base.es.i18n @@ -57,3 +57,4 @@ SymbolMultiplicationAutoSymbol = "Auto " PythonFont = "Fuente Python" Large = "Grande " Small = "Pequeña " +MemUse = "Memoria" diff --git a/apps/settings/base.fr.i18n b/apps/settings/base.fr.i18n index bcb1c7b3d..01baa2fa7 100644 --- a/apps/settings/base.fr.i18n +++ b/apps/settings/base.fr.i18n @@ -57,3 +57,4 @@ SymbolMultiplicationAutoSymbol = "Automatique " PythonFont = "Police Python" Large = "Grand " Small = "Petit " +MemUse = "Mémoire" diff --git a/apps/settings/base.hu.i18n b/apps/settings/base.hu.i18n index 175dc0c24..be3be787d 100644 --- a/apps/settings/base.hu.i18n +++ b/apps/settings/base.hu.i18n @@ -57,3 +57,4 @@ SymbolMultiplicationAutoSymbol = "Automata " PythonFont = "Python Betütipus" Large = "Nagy " Small = "Kicsi " +MemUse = "Memória" diff --git a/apps/settings/base.pt.i18n b/apps/settings/base.pt.i18n index feb9ac565..591173082 100644 --- a/apps/settings/base.pt.i18n +++ b/apps/settings/base.pt.i18n @@ -57,3 +57,4 @@ SymbolMultiplicationAutoSymbol = "automático " PythonFont = "Fonte Python" Large = "Ampla " Small = "Pequeno " +MemUse = "Memória" diff --git a/apps/settings/main_controller_prompt_beta.cpp b/apps/settings/main_controller_prompt_beta.cpp index d938bc93a..f83bb289d 100644 --- a/apps/settings/main_controller_prompt_beta.cpp +++ b/apps/settings/main_controller_prompt_beta.cpp @@ -19,9 +19,9 @@ constexpr SettingsMessageTree s_modelExamChildren[3] = {SettingsMessageTree(I18n constexpr SettingsMessageTree s_pythonFont[2] = {SettingsMessageTree(I18n::Message::Large), SettingsMessageTree(I18n::Message::Small)}; constexpr SettingsMessageTree s_accessibilityChildren[6] = {SettingsMessageTree(I18n::Message::AccessibilityInvertColors), SettingsMessageTree(I18n::Message::AccessibilityMagnify),SettingsMessageTree(I18n::Message::AccessibilityGamma),SettingsMessageTree(I18n::Message::AccessibilityGammaRed),SettingsMessageTree(I18n::Message::AccessibilityGammaGreen),SettingsMessageTree(I18n::Message::AccessibilityGammaBlue)}; #ifdef USERNAME -constexpr SettingsMessageTree s_modelAboutChildren[7] = {SettingsMessageTree(I18n::Message::Username), SettingsMessageTree(I18n::Message::SoftwareVersion), SettingsMessageTree(I18n::Message::CustomSoftwareVersion), SettingsMessageTree(I18n::Message::MicroPythonVersion), SettingsMessageTree(I18n::Message::SerialNumber), SettingsMessageTree(I18n::Message::FccId), SettingsMessageTree(I18n::Message::Contributors, s_contributorsChildren, 7)}; +constexpr SettingsMessageTree s_modelAboutChildren[8] = {SettingsMessageTree(I18n::Message::Username), SettingsMessageTree(I18n::Message::SoftwareVersion), SettingsMessageTree(I18n::Message::CustomSoftwareVersion), SettingsMessageTree(I18n::Message::MicroPythonVersion), SettingsMessageTree(I18n::Message::MemUse), SettingsMessageTree(I18n::Message::SerialNumber), SettingsMessageTree(I18n::Message::FccId), SettingsMessageTree(I18n::Message::Contributors, s_contributorsChildren, 7)}; #else -constexpr SettingsMessageTree s_modelAboutChildren[6] = {SettingsMessageTree(I18n::Message::SoftwareVersion), SettingsMessageTree(I18n::Message::CustomSoftwareVersion), SettingsMessageTree(I18n::Message::MicroPythonVersion), SettingsMessageTree(I18n::Message::SerialNumber), SettingsMessageTree(I18n::Message::FccId), SettingsMessageTree(I18n::Message::Contributors, s_contributorsChildren, 7)}; +constexpr SettingsMessageTree s_modelAboutChildren[7] = {SettingsMessageTree(I18n::Message::SoftwareVersion), SettingsMessageTree(I18n::Message::CustomSoftwareVersion), SettingsMessageTree(I18n::Message::MicroPythonVersion), SettingsMessageTree(I18n::Message::MemUse), SettingsMessageTree(I18n::Message::SerialNumber), SettingsMessageTree(I18n::Message::FccId), SettingsMessageTree(I18n::Message::Contributors, s_contributorsChildren, 7)}; #endif constexpr SettingsMessageTree s_modelMenu[] = @@ -33,12 +33,12 @@ constexpr SettingsMessageTree s_modelMenu[] = SettingsMessageTree(I18n::Message::BetaPopUp), SettingsMessageTree(I18n::Message::Accessibility, s_accessibilityChildren, 6), #ifdef USERNAME - SettingsMessageTree(I18n::Message::About, s_modelAboutChildren, 7)}; + SettingsMessageTree(I18n::Message::About, s_modelAboutChildren, 8)}; #else - SettingsMessageTree(I18n::Message::About, s_modelAboutChildren, 6)}; + SettingsMessageTree(I18n::Message::About, s_modelAboutChildren, 7)}; #endif -constexpr SettingsMessageTree s_model = SettingsMessageTree(I18n::Message::SettingsApp, s_modelMenu, 8); +constexpr SettingsMessageTree s_model = SettingsMessageTree(I18n::Message::SettingsApp, s_modelMenu, 7); I18n::Message MainController::promptMessage() const { return I18n::Message::BetaPopUp; diff --git a/apps/settings/main_controller_prompt_none.cpp b/apps/settings/main_controller_prompt_none.cpp index 43d8b0a20..f6f0e85d7 100644 --- a/apps/settings/main_controller_prompt_none.cpp +++ b/apps/settings/main_controller_prompt_none.cpp @@ -20,9 +20,9 @@ constexpr SettingsMessageTree s_modelExamChildren[3] = {SettingsMessageTree(I18n constexpr SettingsMessageTree s_pythonFont[2] = {SettingsMessageTree(I18n::Message::Large), SettingsMessageTree(I18n::Message::Small)}; constexpr SettingsMessageTree s_accessibilityChildren[6] = {SettingsMessageTree(I18n::Message::AccessibilityInvertColors), SettingsMessageTree(I18n::Message::AccessibilityMagnify),SettingsMessageTree(I18n::Message::AccessibilityGamma),SettingsMessageTree(I18n::Message::AccessibilityGammaRed),SettingsMessageTree(I18n::Message::AccessibilityGammaGreen),SettingsMessageTree(I18n::Message::AccessibilityGammaBlue)}; #ifdef USERNAME -constexpr SettingsMessageTree s_modelAboutChildren[7] = {SettingsMessageTree(I18n::Message::Username), SettingsMessageTree(I18n::Message::SoftwareVersion), SettingsMessageTree(I18n::Message::CustomSoftwareVersion), SettingsMessageTree(I18n::Message::MicroPythonVersion), SettingsMessageTree(I18n::Message::SerialNumber), SettingsMessageTree(I18n::Message::FccId), SettingsMessageTree(I18n::Message::Contributors, s_contributorsChildren, 7)}; +constexpr SettingsMessageTree s_modelAboutChildren[8] = {SettingsMessageTree(I18n::Message::Username), SettingsMessageTree(I18n::Message::SoftwareVersion), SettingsMessageTree(I18n::Message::CustomSoftwareVersion), SettingsMessageTree(I18n::Message::MicroPythonVersion), SettingsMessageTree(I18n::Message::MemUse), SettingsMessageTree(I18n::Message::SerialNumber), SettingsMessageTree(I18n::Message::FccId), SettingsMessageTree(I18n::Message::Contributors, s_contributorsChildren, 7)}; #else -constexpr SettingsMessageTree s_modelAboutChildren[6] = {SettingsMessageTree(I18n::Message::SoftwareVersion), SettingsMessageTree(I18n::Message::CustomSoftwareVersion), SettingsMessageTree(I18n::Message::MicroPythonVersion), SettingsMessageTree(I18n::Message::SerialNumber), SettingsMessageTree(I18n::Message::FccId), SettingsMessageTree(I18n::Message::Contributors, s_contributorsChildren, 7)}; +constexpr SettingsMessageTree s_modelAboutChildren[7] = {SettingsMessageTree(I18n::Message::SoftwareVersion), SettingsMessageTree(I18n::Message::CustomSoftwareVersion), SettingsMessageTree(I18n::Message::MicroPythonVersion), SettingsMessageTree(I18n::Message::MemUse), SettingsMessageTree(I18n::Message::SerialNumber), SettingsMessageTree(I18n::Message::FccId), SettingsMessageTree(I18n::Message::Contributors, s_contributorsChildren, 7)}; #endif constexpr SettingsMessageTree s_modelMenu[] = @@ -33,9 +33,9 @@ constexpr SettingsMessageTree s_modelMenu[] = SettingsMessageTree(I18n::Message::PythonFont, s_pythonFont, 2), SettingsMessageTree(I18n::Message::Accessibility, s_accessibilityChildren, 6), #ifdef USERNAME - SettingsMessageTree(I18n::Message::About, s_modelAboutChildren, 7)}; + SettingsMessageTree(I18n::Message::About, s_modelAboutChildren, 8)}; #else - SettingsMessageTree(I18n::Message::About, s_modelAboutChildren, 6)}; + SettingsMessageTree(I18n::Message::About, s_modelAboutChildren, 7)}; #endif constexpr SettingsMessageTree s_model = SettingsMessageTree(I18n::Message::SettingsApp, s_modelMenu, 7); diff --git a/apps/settings/main_controller_prompt_update.cpp b/apps/settings/main_controller_prompt_update.cpp index 949ac57b4..70f01ecde 100644 --- a/apps/settings/main_controller_prompt_update.cpp +++ b/apps/settings/main_controller_prompt_update.cpp @@ -19,9 +19,9 @@ constexpr SettingsMessageTree s_modelExamChildren[3] = {SettingsMessageTree(I18n constexpr SettingsMessageTree s_pythonFont[2] = {SettingsMessageTree(I18n::Message::Large), SettingsMessageTree(I18n::Message::Small)}; constexpr SettingsMessageTree s_accessibilityChildren[6] = {SettingsMessageTree(I18n::Message::AccessibilityInvertColors), SettingsMessageTree(I18n::Message::AccessibilityMagnify),SettingsMessageTree(I18n::Message::AccessibilityGamma),SettingsMessageTree(I18n::Message::AccessibilityGammaRed),SettingsMessageTree(I18n::Message::AccessibilityGammaGreen),SettingsMessageTree(I18n::Message::AccessibilityGammaBlue)}; #ifdef USERNAME -constexpr SettingsMessageTree s_modelAboutChildren[7] = {SettingsMessageTree(I18n::Message::Username), SettingsMessageTree(I18n::Message::SoftwareVersion), SettingsMessageTree(I18n::Message::CustomSoftwareVersion), SettingsMessageTree(I18n::Message::MicroPythonVersion), SettingsMessageTree(I18n::Message::SerialNumber), SettingsMessageTree(I18n::Message::FccId), SettingsMessageTree(I18n::Message::Contributors, s_contributorsChildren, 7)}; +constexpr SettingsMessageTree s_modelAboutChildren[8] = {SettingsMessageTree(I18n::Message::Username), SettingsMessageTree(I18n::Message::SoftwareVersion), SettingsMessageTree(I18n::Message::CustomSoftwareVersion), SettingsMessageTree(I18n::Message::MicroPythonVersion), SettingsMessageTree(I18n::Message::MemUse), SettingsMessageTree(I18n::Message::SerialNumber), SettingsMessageTree(I18n::Message::FccId), SettingsMessageTree(I18n::Message::Contributors, s_contributorsChildren, 7)}; #else -constexpr SettingsMessageTree s_modelAboutChildren[6] = {SettingsMessageTree(I18n::Message::SoftwareVersion), SettingsMessageTree(I18n::Message::CustomSoftwareVersion), SettingsMessageTree(I18n::Message::MicroPythonVersion), SettingsMessageTree(I18n::Message::SerialNumber), SettingsMessageTree(I18n::Message::FccId), SettingsMessageTree(I18n::Message::Contributors, s_contributorsChildren, 7)}; +constexpr SettingsMessageTree s_modelAboutChildren[7] = {SettingsMessageTree(I18n::Message::SoftwareVersion), SettingsMessageTree(I18n::Message::CustomSoftwareVersion), SettingsMessageTree(I18n::Message::MicroPythonVersion), SettingsMessageTree(I18n::Message::MemUse), SettingsMessageTree(I18n::Message::SerialNumber), SettingsMessageTree(I18n::Message::FccId), SettingsMessageTree(I18n::Message::Contributors, s_contributorsChildren, 7)}; #endif constexpr SettingsMessageTree s_modelMenu[] = @@ -33,12 +33,12 @@ constexpr SettingsMessageTree s_modelMenu[] = SettingsMessageTree(I18n::Message::UpdatePopUp), SettingsMessageTree(I18n::Message::Accessibility, s_accessibilityChildren, 6), #ifdef USERNAME - SettingsMessageTree(I18n::Message::About, s_modelAboutChildren, 7)}; + SettingsMessageTree(I18n::Message::About, s_modelAboutChildren, 8)}; #else - SettingsMessageTree(I18n::Message::About, s_modelAboutChildren, 6)}; + SettingsMessageTree(I18n::Message::About, s_modelAboutChildren, 7)}; #endif -constexpr SettingsMessageTree s_model = SettingsMessageTree(I18n::Message::SettingsApp, s_modelMenu, 8); +constexpr SettingsMessageTree s_model = SettingsMessageTree(I18n::Message::SettingsApp, s_modelMenu, 7); I18n::Message MainController::promptMessage() const { return I18n::Message::UpdatePopUp; diff --git a/apps/settings/sub_menu/about_controller.cpp b/apps/settings/sub_menu/about_controller.cpp index fd5d92e6d..c80718ffc 100644 --- a/apps/settings/sub_menu/about_controller.cpp +++ b/apps/settings/sub_menu/about_controller.cpp @@ -3,6 +3,8 @@ #include #include #include +#include +#include #define MP_STRINGIFY_HELPER(x) #x #define MP_STRINGIFY(x) MP_STRINGIFY_HELPER(x) @@ -56,6 +58,33 @@ bool AboutController::handleEvent(Ion::Events::Event event) { myCell->setAccessoryText(Ion::customSoftwareVersion()); return true; } + if (childLabel == I18n::Message::MemUse) { + MessageTableCellWithBuffer * myCell = (MessageTableCellWithBuffer *)m_selectableTableView.selectedCell(); + + char memUseBuffer[15]; + + if (strchr(myCell->accessoryText(), '%') == NULL) { + int len = Poincare::Integer((int)((float)(Ion::Storage::k_storageSize - Ion::Storage::sharedStorage()->availableSize()) / (float)(Ion::Storage::k_storageSize) * 100.0f)).serialize(memUseBuffer, 4); + memUseBuffer[len] = '%'; + memUseBuffer[len+1] = '\0'; + + myCell->setAccessoryText(memUseBuffer); + } else { + int len = Poincare::Integer((int)((float) (Ion::Storage::k_storageSize - Ion::Storage::sharedStorage()->availableSize()) / 1024.f)).serialize(memUseBuffer, 4); + memUseBuffer[len] = 'k'; + memUseBuffer[len+1] = 'B'; + memUseBuffer[len+2] = '/'; + + len = Poincare::Integer((int)((float) Ion::Storage::k_storageSize / 1024.f)).serialize(memUseBuffer + len + 3, 4) + len + 3; + memUseBuffer[len] = 'k'; + memUseBuffer[len+1] = 'B'; + memUseBuffer[len+2] = '\0'; + + myCell->setAccessoryText(memUseBuffer); + } + + return true; + } } return false; } @@ -94,8 +123,20 @@ void AboutController::willDisplayCellForIndex(HighlightCell * cell, int index) { if (m_messageTreeModel->children(index)->label() == I18n::Message::Contributors) { MessageTableCellWithChevronAndMessage * myTextCell = (MessageTableCellWithChevronAndMessage *)cell; myTextCell->setSubtitle(I18n::Message::Default); - } - else { + } else if (m_messageTreeModel->children(index)->label() == I18n::Message::MemUse) { + char memUseBuffer[15]; + int len = Poincare::Integer((int)((float) (Ion::Storage::k_storageSize - Ion::Storage::sharedStorage()->availableSize()) / 1024.f)).serialize(memUseBuffer, 4); + memUseBuffer[len] = 'k'; + memUseBuffer[len+1] = 'B'; + memUseBuffer[len+2] = '/'; + + len = Poincare::Integer((int)((float) Ion::Storage::k_storageSize / 1024.f)).serialize(memUseBuffer + len + 3, 4) + len + 3; + memUseBuffer[len] = 'k'; + memUseBuffer[len+1] = 'B'; + + MessageTableCellWithBuffer * myCell = (MessageTableCellWithBuffer *)cell; + myCell->setAccessoryText(memUseBuffer); + } else { MessageTableCellWithBuffer * myCell = (MessageTableCellWithBuffer *)cell; static const char * mpVersion = MICROPY_VERSION_STRING; static const char * messages[] = { @@ -105,6 +146,7 @@ void AboutController::willDisplayCellForIndex(HighlightCell * cell, int index) { Ion::softwareVersion(), Ion::customSoftwareVersion(), mpVersion, + "", Ion::serialNumber(), Ion::fccId() }; diff --git a/apps/settings/sub_menu/about_controller.h b/apps/settings/sub_menu/about_controller.h index 9717df3ba..ea7734e60 100644 --- a/apps/settings/sub_menu/about_controller.h +++ b/apps/settings/sub_menu/about_controller.h @@ -17,9 +17,9 @@ public: int typeAtLocation(int i, int j) override; private: #ifdef USERNAME - constexpr static int k_totalNumberOfCell = 7; + constexpr static int k_totalNumberOfCell = 8; #else - constexpr static int k_totalNumberOfCell = 6; + constexpr static int k_totalNumberOfCell = 7; #endif ContributorsController m_contributorsController; MessageTableCellWithChevronAndMessage m_contributorsCell;