Remove WiFi gate
This commit is contained in:
+61
-59
@@ -1,80 +1,82 @@
|
||||
#include "provisioning.h"
|
||||
#include "wifi_setup_page.h"
|
||||
#include "email_address_page.h"
|
||||
#include "license_key_page.h"
|
||||
#include "home.h"
|
||||
#include "license_key_page.h"
|
||||
#include "logger/logger.h"
|
||||
#include "wifi_setup_page.h"
|
||||
|
||||
namespace radiantwave::provisioning {
|
||||
|
||||
// Push the page for a walkthrough step, or Home when the walkthrough is done.
|
||||
static void pushStep(AppState& state, Step step)
|
||||
{
|
||||
switch (step) {
|
||||
case Step::Internet:
|
||||
state.pages.push(state, std::make_unique<WiFiSetupPage>());
|
||||
break;
|
||||
case Step::Email:
|
||||
state.pages.push(state, std::make_unique<EmailAddressPage>());
|
||||
break;
|
||||
case Step::License:
|
||||
state.pages.push(state, std::make_unique<LicenseKeyPage>());
|
||||
break;
|
||||
case Step::Done:
|
||||
state.provisioningMode = false;
|
||||
state.pages.push(state, std::make_unique<Home>());
|
||||
break;
|
||||
}
|
||||
static void pushStep(AppState &state, Step step) {
|
||||
switch (step) {
|
||||
// case Step::Internet:
|
||||
// state.pages.push(state, std::make_unique<WiFiSetupPage>());
|
||||
// break;
|
||||
case Step::Email:
|
||||
state.pages.push(state, std::make_unique<EmailAddressPage>());
|
||||
break;
|
||||
case Step::License:
|
||||
state.pages.push(state, std::make_unique<LicenseKeyPage>());
|
||||
break;
|
||||
case Step::Done:
|
||||
state.provisioningMode = false;
|
||||
state.pages.push(state, std::make_unique<Home>());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void begin(AppState& state)
|
||||
{
|
||||
// Without the database there is nowhere to persist email/license, so the
|
||||
// walkthrough would trap the user on pages that can never be completed.
|
||||
if (!state.db.isOpen()) {
|
||||
state.provisioningMode = false;
|
||||
state.pages.push(state, std::make_unique<Home>());
|
||||
return;
|
||||
}
|
||||
void begin(AppState &state) {
|
||||
// Without the database there is nowhere to persist email/license, so the
|
||||
// walkthrough would trap the user on pages that can never be completed.
|
||||
if (!state.db.isOpen()) {
|
||||
state.provisioningMode = false;
|
||||
state.pages.push(state, std::make_unique<Home>());
|
||||
return;
|
||||
}
|
||||
|
||||
const bool internetUp = state.network.hasInternet();
|
||||
const bool hasEmail = !state.db.getKV(radiantwave::db::KV_EMAIL_ADDRESS).empty();
|
||||
const bool hasLicense = !state.db.getKV(radiantwave::db::KV_LICENSE_KEY).empty();
|
||||
const bool internetUp = state.network.hasInternet();
|
||||
const bool hasEmail =
|
||||
!state.db.getKV(radiantwave::db::KV_EMAIL_ADDRESS).empty();
|
||||
const bool hasLicense =
|
||||
!state.db.getKV(radiantwave::db::KV_LICENSE_KEY).empty();
|
||||
|
||||
if (indicatesFirstRun(internetUp, hasEmail, hasLicense)) {
|
||||
// Placeholder: a brand-new device. Later this flag will launch the
|
||||
// first-run welcome walkthrough (TOS, quick user guide, ...).
|
||||
state.firstRunWalkthrough = true;
|
||||
radiantwave::logger::Logger::instance().info("Provisioning",
|
||||
"First-Run detected (no internet, no email, no license); "
|
||||
"first-run welcome walkthrough is not yet implemented");
|
||||
}
|
||||
if (indicatesFirstRun(internetUp, hasEmail, hasLicense)) {
|
||||
// Placeholder: a brand-new device. Later this flag will launch the
|
||||
// first-run welcome walkthrough (TOS, quick user guide, ...).
|
||||
state.firstRunWalkthrough = true;
|
||||
radiantwave::logger::Logger::instance().info(
|
||||
"Provisioning",
|
||||
"First-Run detected (no internet, no email, no license); "
|
||||
"first-run welcome walkthrough is not yet implemented");
|
||||
}
|
||||
|
||||
state.walkthroughInternetUp = internetUp;
|
||||
state.provisioningMode = true;
|
||||
pushStep(state, firstMissingStep(internetUp, hasEmail, hasLicense));
|
||||
state.walkthroughInternetUp = internetUp;
|
||||
state.provisioningMode = true;
|
||||
pushStep(state, firstMissingStep(internetUp, hasEmail, hasLicense));
|
||||
}
|
||||
|
||||
void advance(AppState& state)
|
||||
{
|
||||
if (state.pages.depth() > 0) {
|
||||
state.pages.pop(state);
|
||||
}
|
||||
void advance(AppState &state) {
|
||||
if (state.pages.depth() > 0) {
|
||||
state.pages.pop(state);
|
||||
}
|
||||
|
||||
// Internet is the first prerequisite and never gets "un-reached" once
|
||||
// satisfied, so it is only re-probed when it was still missing (i.e. the
|
||||
// walkthrough is coming from the WiFi page).
|
||||
bool internetUp = state.walkthroughInternetUp;
|
||||
if (!internetUp) {
|
||||
internetUp = state.network.hasInternet();
|
||||
state.walkthroughInternetUp = internetUp;
|
||||
}
|
||||
// Internet is the first prerequisite and never gets "un-reached" once
|
||||
// satisfied, so it is only re-probed when it was still missing (i.e. the
|
||||
// walkthrough is coming from the WiFi page).
|
||||
bool internetUp = state.walkthroughInternetUp;
|
||||
if (!internetUp) {
|
||||
internetUp = state.network.hasInternet();
|
||||
state.walkthroughInternetUp = internetUp;
|
||||
}
|
||||
|
||||
const bool hasEmail = !state.db.getKV(radiantwave::db::KV_EMAIL_ADDRESS).empty();
|
||||
const bool hasLicense = !state.db.getKV(radiantwave::db::KV_LICENSE_KEY).empty();
|
||||
const bool hasEmail =
|
||||
!state.db.getKV(radiantwave::db::KV_EMAIL_ADDRESS).empty();
|
||||
const bool hasLicense =
|
||||
!state.db.getKV(radiantwave::db::KV_LICENSE_KEY).empty();
|
||||
|
||||
state.provisioningMode = true;
|
||||
pushStep(state, firstMissingStep(internetUp, hasEmail, hasLicense));
|
||||
state.provisioningMode = true;
|
||||
pushStep(state, firstMissingStep(internetUp, hasEmail, hasLicense));
|
||||
}
|
||||
|
||||
} // namespace radiantwave::provisioning
|
||||
|
||||
Reference in New Issue
Block a user