summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2026-03-08Implement server selectionxengineering
This lets the user select the fully qualified domain name (FQDN) of the MQTT broker. The FQDN is not yet preserved after a manual disconnect.
2026-03-08Switch completely to connection state machinexengineering
This makes use of the state machine in the UI and implements all states and transitions planned so far.
2026-03-08Add manual disconnectxengineering
This allows going back to the connection page and to choose a different server. Furthermore it might be useful to force a new connection attempt while auto-reconnect might be in a delay state.
2026-03-07Remove automatic initial connectionxengineering
The user should provide the fully qualified domain name (FQDN) of the MQTT broker manually and then press connect to actually connect including automated re-connects. As a first step the initial connect is bound to the manual button in the bottom bar. To reduce the scope the disconnect button is labeled "(disabled)" to make clear this is not expected to work.
2026-03-07Label button with '(dis)connect'xengineering
This does not yet work but the correct text based on the page is displayed. This is based on a state machine based implementation suitable to implement the state handling cleanly.
2026-03-07Start by default on ConnectionPagexengineering
This prepares starting connection attempts on manual action only.
2026-03-07Allow switching between pagesxengineering
This prepares manually starting the connection after server name insertion.
2026-03-07Make ConnectionStatus a SafeArea by defaultxengineering
This removes the need to write a SafeArea on each use of ConnectionStatus and replaces it by exactly one occurrence.
2026-03-07Add class ConnectionPagexengineering
This is a second page to offer a form to set the Sia server name.
2026-03-06Move MaterialApp up to class Siaxengineering
This makes sure there is only one class instance of MaterialApp.
2026-03-06Rename to class DevicesPagexengineering
The old name class UI was not adding much information and is not well suited to be differentiated to upcoming other *Page classes.
2026-03-06Add `class Sia` as top-level widgetxengineering
This simplifies the main function and adheres more to Flutter conventions.
2026-03-06Add app.desktop for Linuxxengineering
The freedesktop.org specification for desktop entries [1] requires this file. Adding it here allows Sia to be packaged to multiple Linux distributions using the same *.desktop file. [1]: https://specifications.freedesktop.org/desktop-entry/latest-single/
2026-03-06icon: linux: Generate filesxengineering
2026-03-06icon: Add Linux icon generationxengineering
Since SVG files are optionally in Linux PNG files in multiple resolutions are a good fallback to support Linux. Thus in addition to icon/main.svg a Linux packager might use these generated PNG files.
2026-03-06icon: main.svg: Hide safe zonexengineering
An icon designer can enable this item to work on the icon. But for the build process it is easier to have it like that by default because Inkscape seems not to be able to select elements by ID in SVG export while this works for PNG.
2026-03-04Run flutter_launcher_iconsxengineering
This propagates icon files to the Android-specific source tree.
2026-03-04Document icon maintenance in READMExengineering
2026-03-04Add flutter_launcher_iconsxengineering
This tool allows to update icon files deep inside the source trees of the different platforms.
2026-03-04icon: Generate Android filesxengineering
2026-03-04icon: Add convert.py for Android Adaptive Iconsxengineering
Android Adaptive Icons allow the OS to display the icon in different variations and styles. For this to work Android requires PNG images with e.g. only the foreground or only the background. The added script can generate these files from main.svg. [1]: https://developer.android.com/develop/ui/views/launch/icon_design_adaptive
2026-03-04icon: Add icon as main.svgxengineering
This Inkscape file is the primary source file where the icon is designed.
2026-03-04Adapt to new black-based Python stylexengineering
This adapts to the style recommendations from the tool `black` checking the Python code of this repository. This makes the scripts clean again.
2026-01-17android: Add network permissionxengineering
This is required for the MQTT connection.
2026-01-17Protect bottom bar with SafeAreaxengineering
On Android the bottom bar with the connection state used to be hidden by the three Android navigation buttons.
2026-01-17Indicate disconnected Sia serverxengineering
There are now three instead of two status states: - "Connected" / MQTT connected, Sia server connected - "Connection issue" / MQTT connected, Sia server disconnected - "Disconnected" / all other cases (Sia server connection unknown)
2026-01-17Add automatic reconnectingxengineering
This allows to use the app after a temporary disconnect between app and MQTT broker.
2026-01-17Display MQTT connection statusxengineering
The user otherwise cannot trust the state of the contacts because the app could just be disconnected from the broker.
2026-01-16Move Scaffold up to UI classxengineering
That balances the scopes of UI and ContactList better and allows to add more Widgets on the UI level.
2026-01-16Document links to widget and icon websitesxengineering
2026-01-15Set contact states based on MQTTxengineering
This is already the minimal viable product (MVP) for this app.
2026-01-11Add const MQTT connection optionsxengineering
2026-01-11Switch to Map address to state for contactsxengineering
This map should be empty in the future and updated based on the incoming MQTT messages. A list was not the correct data structure for that since it requires to iterate over the whole list to find the entry with a certain address. But this is required to update the state of an already known contact.
2026-01-11Fix indentationxengineering
2026-01-10Re-introduce timer-based state togglingxengineering
This is now done with the refactored code organization and a strict UI / data split.
2026-01-10Move state to data.dartxengineering
The UI should not store the application logic state.
2026-01-05Split code into three Dart filesxengineering
This follows recommendations [1] from the flutter documentation. [1]: https://docs.flutter.dev/app-architecture/concepts
2026-01-05Rename to `UI`xengineering
2026-01-03Make one contact toggle with timerxengineering
This demonstrates that the state of the contacts in the UI can be changed at runtime.
2026-01-03Make ContactList a StatefulWidgetxengineering
This is required to change the contact states during runtime.
2026-01-03Add check.pyxengineering
This is one script which checks the code quality of Python and Dart sources. It can be symlinked as `.git/hooks/pre-commit` to guard commits of questionable quality.
2026-01-03Make analysis_options.yaml more strictxengineering
This should help writing good flutter / Dart code from the beginning.
2026-01-03Specify Dart types explicitlyxengineering
This makes the code more readable.
2026-01-02Rename to ContactListxengineering
The old name MainPage did not explain a lot.
2026-01-02Add mqtt_client v10.11.3 dependencyxengineering
This library is the currently most often downloaded MQTT library on pub.dev. This is at least a good starting point.
2026-01-02Implement dummy `Contacts` UIxengineering
This demonstrates how the UI should look like. The data is just for visualization and never changes. Functionality is added later.
2026-01-02Switch to friendly name `Sia`xengineering
Displaying the more technical name `sia_app` in the title bar is not suitable.
2026-01-02Update dependencies with generate.pyxengineering
2026-01-02Add generate.pyxengineering
This makes it easy to re-generate the files provided initially with `flutter create`.
2025-12-23Document usagexengineering