Back button now does something and lockscreen can OPTIONALLY be set to stay over reboot (Implemented #146)

This commit is contained in:
CommanderRedYT
2021-12-14 19:52:39 +01:00
parent 595a508d93
commit 6adca753aa
9 changed files with 44 additions and 4 deletions

View File

@@ -23,6 +23,11 @@ void Lockscreen::start()
profileButtonDisabled = !settings.lockscreen.allowPresetSwitch;
isLocked = true;
if (settings.lockscreen.keepLockedAfterReboot && !settings.lockscreen.locked)
{
settings.lockscreen.locked = true;
saveSettings();
}
}
void Lockscreen::initScreen()
@@ -64,12 +69,12 @@ void Lockscreen::update()
void Lockscreen::redraw()
{
if (m_pressed)
if (m_pressed || m_back_pressed)
{
drawRect(m_currentIndex, 1, TFT_BLACK);
drawRect(m_currentIndex, 2, TFT_BLACK);
if (++m_currentIndex>=4)
if (!m_back_pressed && ++m_currentIndex>=4)
{
if (m_numbers == settings.lockscreen.pin)
{
@@ -83,7 +88,12 @@ void Lockscreen::redraw()
m_numbers = {0,0,0,0};
m_currentIndex = 0;
std::for_each(std::begin(m_labels) + 1, std::end(m_labels), [](auto &label){ label.redraw({}); });
std::for_each(std::begin(m_labels) + 1, std::end(m_labels), [](auto &label){ label.redraw("0"); });
}
else if (m_back_pressed && m_currentIndex < 3)
{
drawRect(m_currentIndex+1, 1, TFT_BLACK);
drawRect(m_currentIndex+1, 2, TFT_BLACK);
}
m_labels[m_currentIndex].redraw(std::to_string(m_numbers[m_currentIndex]));
@@ -92,6 +102,7 @@ void Lockscreen::redraw()
drawRect(m_currentIndex, 2, TFT_YELLOW);
m_pressed = false;
m_back_pressed = false;
}
if (m_rotated)
@@ -124,6 +135,11 @@ void Lockscreen::stop()
profileButtonDisabled = false;
isLocked = false;
if (settings.lockscreen.keepLockedAfterReboot && settings.lockscreen.locked)
{
settings.lockscreen.locked = false;
saveSettings();
}
}
void Lockscreen::confirm()
@@ -133,6 +149,9 @@ void Lockscreen::confirm()
void Lockscreen::back()
{
if (m_currentIndex > 0)
m_currentIndex--;
m_back_pressed = true;
}
void Lockscreen::rotate(int offset)