[apps] Spamm with the "need upgade" pop up after suspend

Change-Id: I7ca817ff9630a3f802ae4a7d01506dc117f6bb35
This commit is contained in:
Émilie Feral
2017-05-12 10:46:33 +02:00
parent 998733db62
commit 0000bd3fb8
6 changed files with 16 additions and 8 deletions

View File

@@ -15,12 +15,13 @@ AppsContainer::AppsContainer() :
m_globalContext(),
m_variableBoxController(&m_globalContext),
m_examPopUpController(ExamPopUpController()),
m_updateController(),
m_ledTimer(LedTimer()),
m_batteryTimer(BatteryTimer(this)),
m_USBTimer(USBTimer(this)),
m_suspendTimer(SuspendTimer(this)),
m_backlightDimmingTimer(BacklightDimmingTimer()),
m_onBoardingApp(new OnBoarding::App(this)),
m_onBoardingApp(new OnBoarding::App(this, &m_updateController)),
m_homeApp(new Home::App(this)),
m_graphApp(new Graph::App(this, &m_globalContext)),
m_probabilityApp(new Probability::App(this)),
@@ -132,6 +133,9 @@ VariableBoxController * AppsContainer::variableBoxController() {
}
void AppsContainer::suspend(bool checkIfPowerKeyReleased) {
if (activeApp() != m_onBoardingApp) {
activeApp()->displayModalViewController(&m_updateController, 0.f, 0.f);
}
Ion::Power::suspend(checkIfPowerKeyReleased);
/* Ion::Power::suspend() completely shuts down the LCD controller. Therefore
* the frame memory is lost. That's why we need to force a window redraw

View File

@@ -7,6 +7,7 @@
#include "calculation/app.h"
#include "hardware_test/app.h"
#include "on_boarding/app.h"
#include "on_boarding/update_controller.h"
#include "regression/app.h"
#include "sequence/app.h"
#include "settings/app.h"
@@ -73,6 +74,7 @@ private:
MathToolbox m_mathToolbox;
VariableBoxController m_variableBoxController;
ExamPopUpController m_examPopUpController;
UpdateController m_updateController;
LedTimer m_ledTimer;
BatteryTimer m_batteryTimer;
USBTimer m_USBTimer;

View File

@@ -2,9 +2,9 @@
namespace OnBoarding {
App::App(Container * container) :
App::App(Container * container, UpdateController * updateController) :
::App(container, &m_languageController),
m_languageController(&m_modalViewController, &m_logoController),
m_languageController(&m_modalViewController, &m_logoController, updateController),
m_logoController()
{
}

View File

@@ -4,12 +4,13 @@
#include <escher.h>
#include "language_controller.h"
#include "logo_controller.h"
#include "update_controller.h"
namespace OnBoarding {
class App : public ::App {
public:
App(Container * container);
App(Container * container, UpdateController * updateController);
void reinitOnBoarding();
bool hasTimer();
Timer * timer();

View File

@@ -4,9 +4,10 @@
namespace OnBoarding {
LanguageController::LanguageController(Responder * parentResponder, LogoController * logoController) :
LanguageController::LanguageController(Responder * parentResponder, LogoController * logoController, UpdateController * updateController) :
ViewController(parentResponder),
m_logoController(logoController),
m_updateController(updateController),
m_cells{MessageTableCell(I18n::Message::Default, KDText::FontSize::Large), MessageTableCell(I18n::Message::Default, KDText::FontSize::Large), MessageTableCell(I18n::Message::Default, KDText::FontSize::Large)},
m_selectableTableView(SelectableTableView(this, this, 0, 1, (Ion::Display::Height - I18n::NumberOfLanguages*Metric::ParameterCellHeight)/2, Metric::CommonRightMargin, 0, Metric::CommonLeftMargin, this))
{
@@ -29,7 +30,7 @@ void LanguageController::didBecomeFirstResponder() {
bool LanguageController::handleEvent(Ion::Events::Event event) {
if (event == Ion::Events::OK || event == Ion::Events::EXE) {
GlobalPreferences::sharedGlobalPreferences()->setLanguage((I18n::Language)(selectedRow()+1));
app()->displayModalViewController(&m_updateController, 0.5f, 0.5f);
app()->displayModalViewController(m_updateController, 0.5f, 0.5f);
return true;
}
if (event == Ion::Events::Back) {

View File

@@ -10,7 +10,7 @@ namespace OnBoarding {
class LanguageController : public ViewController, public SimpleListViewDataSource, public SelectableTableViewDelegate {
public:
LanguageController(Responder * parentResponder, LogoController * logoController);
LanguageController(Responder * parentResponder, LogoController * logoController, UpdateController * updateController);
View * view() override;
void reinitOnBoarding();
void didBecomeFirstResponder() override;
@@ -24,7 +24,7 @@ public:
void willDisplayCellForIndex(HighlightCell * cell, int index) override;
private:
LogoController * m_logoController;
UpdateController m_updateController;
UpdateController * m_updateController;
MessageTableCell m_cells[I18n::NumberOfLanguages];
SelectableTableView m_selectableTableView;
};