0f8380e8fe
- Add app path get() functions to `TactilityC` - Improved `Dispatcher` and `DispatcherThread` - Improved `PubSub` (type safety) - Created test for `DispatcherThread` and `PubSub` - Save properties files on app exit (various apps) by posting it to the main dispatcher (fixes UI hanging briefly on app exit) - Fixed bug with `SystemSettings` being read from the wrong file path. - `loadPropertiesFile()` now uses `file::readLines()` instead of doing that manually - Increased timer task stack size (required due to issues when reading a properties file for the very first time) - General cleanup - Created `EstimatedPower` driver that uses an ADC pin to measure voltage and estimate the battery charge that is left. - Cleanup of T-Deck board (updated to new style)
56 lines
1.3 KiB
C++
56 lines
1.3 KiB
C++
#pragma once
|
|
|
|
#include "Tactility/app/App.h"
|
|
#include "Tactility/app/wificonnect/Bindings.h"
|
|
#include "Tactility/app/wificonnect/State.h"
|
|
#include "Tactility/app/wificonnect/View.h"
|
|
|
|
#include <Tactility/Mutex.h>
|
|
#include <Tactility/service/wifi/Wifi.h>
|
|
|
|
namespace tt::app::wificonnect {
|
|
|
|
class WifiConnect : public App {
|
|
|
|
Mutex mutex;
|
|
State state;
|
|
Bindings bindings = {
|
|
.onConnectSsid = nullptr,
|
|
.onConnectSsidContext = nullptr
|
|
};
|
|
View view = View(&bindings, &state);
|
|
PubSub<service::wifi::WifiEvent>::SubscriptionHandle wifiSubscription;
|
|
bool view_enabled = false;
|
|
|
|
void onWifiEvent(service::wifi::WifiEvent event);
|
|
|
|
public:
|
|
|
|
WifiConnect();
|
|
~WifiConnect();
|
|
|
|
void lock();
|
|
void unlock();
|
|
|
|
void onShow(AppContext& app, lv_obj_t* parent) override;
|
|
void onHide(AppContext& app) override;
|
|
|
|
State& getState() { return state; }
|
|
Bindings& getBindings() { return bindings; }
|
|
View& getView() { return view; }
|
|
|
|
|
|
void requestViewUpdate();
|
|
};
|
|
|
|
/**
|
|
* Start the app with optional pre-filled fields.
|
|
*/
|
|
void start(const std::string& ssid = "", const std::string& password = "");
|
|
|
|
bool optSsidParameter(const std::shared_ptr<const Bundle>& bundle, std::string& ssid);
|
|
|
|
bool optPasswordParameter(const std::shared_ptr<const Bundle>& bundle, std::string& password);
|
|
|
|
} // namespace
|