Incorporate koreader registration

This commit is contained in:
jpirnay
2026-03-23 12:35:01 +01:00
parent 68bf80e6b9
commit 75350b0a3e
6 changed files with 159 additions and 23 deletions
+10 -6
View File
@@ -5,27 +5,31 @@
#include "activities/Activity.h"
/**
* Activity for testing KOReader credentials.
* Connects to WiFi and authenticates with the KOReader sync server.
* Activity for authenticating or registering a KOReader sync account.
* Connects to WiFi, then either logs in or creates a new account on the server.
*/
class KOReaderAuthActivity final : public Activity {
public:
explicit KOReaderAuthActivity(GfxRenderer& renderer, MappedInputManager& mappedInput)
: Activity("KOReaderAuth", renderer, mappedInput) {}
enum class Mode { LOGIN, REGISTER };
explicit KOReaderAuthActivity(GfxRenderer& renderer, MappedInputManager& mappedInput, Mode mode = Mode::LOGIN)
: Activity("KOReaderAuth", renderer, mappedInput), mode(mode) {}
void onEnter() override;
void onExit() override;
void loop() override;
void render(RenderLock&&) override;
bool preventAutoSleep() override { return state == CONNECTING || state == AUTHENTICATING; }
bool preventAutoSleep() override { return state == CONNECTING || state == AUTHENTICATING || state == REGISTERING; }
private:
enum State { WIFI_SELECTION, CONNECTING, AUTHENTICATING, SUCCESS, FAILED };
enum State { WIFI_SELECTION, CONNECTING, AUTHENTICATING, REGISTERING, SUCCESS, FAILED, USER_EXISTS };
Mode mode;
State state = WIFI_SELECTION;
std::string statusMessage;
std::string errorMessage;
void onWifiSelectionComplete(bool success);
void performAuthentication();
void performRegistration();
};