summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
14 daysWIP: Disable autocorrect for server name fieldspellcheckxengineering
TODO: Still auto correction is changing the input. Auto correction is not helpful when typing a domain name on a smartphone.
14 daysUpdate dependenciesHEADmainxengineering
14 daysSwitch to fvmxengineering
This tracks the used Flutter SDK version compatible with the [fvm][1] Flutter version management tool. It allows to make the build reproducible. The build documentation is adapted and the used Flutter version committed. [1]: https://fvm.app
2026-04-14Add CHANGELOG.mdv0.1.0xengineering
2026-04-08Add plug controlxengineering
This allows the user to turn Wi-Fi plugs on and off.
2026-04-08Fix missing SafeArea for Androidxengineering
The start of the DevicesPage could be below a notch or header bar in Android.
2026-04-08Merge cover controlxengineering
This allows the user to move covers controlled by the Sia server to move up, down and to stop them.
2026-04-08Add cover control with up / stop / downxengineering
This allows the user to move covers with the Sia app.
2026-04-08Display available coversxengineering
This does not yet allow control of the covers but existence is shown.
2026-04-07Add AppState.coversxengineering
This set contains all the covers the server offers. This commit does not include displaying it.
2026-04-07Refactor message routingxengineering
This allows to route incoming MQTT messages in the _onMessage() method and handle it in different handlers per topic.
2026-04-07Empty contacts cache on disconnectxengineering
The cache of server data must be cleared on any disconnect. This avoids a bug when devices from another server are displayed after connecting to a different server or displaying outdated states on re-connect.
2026-04-07Update dependenciesxengineering
No special reason for this update apart from using up-to-date software.
2026-04-06Merge persisting server fully qualified domain namexengineering
This allows to save the server fully qualified domain name (FQDN). The user does not have to insert this on every app start. Saved is the value of the corresponding text field on the last press on the connect button.
2026-04-06Implement setting server_fqdnxengineering
This persists the used server_fqdn on connection. This makes sure the user does not need to specify the FQDN every time.
2026-04-06Implement SQL migrationsxengineering
This allows to update the SQL schema incrementally.
2026-04-03Introduce class DBxengineering
This centralises database related code in one class.
2026-04-03Add *_futures to analysis_options.yamlxengineering
These options should avoid making typical mistakes in asynchronous code.
2026-03-20Add DB schema version checkxengineering
This version is only compatible with the schema version 0. No migrations are implemented. Thus the DB is only accessed if the schema version saved as user_version is as expected.
2026-03-20Add reading server domain name from SQLite3 DBxengineering
It is annoying to type the server domain name on every app start. This should be way more ergonomic. As a minimal first step reading from the database is implemented and tested with an externally injected database.
2026-03-20Add package pathxengineering
This is added to join paths.
2026-03-20Add sqlite3 packagexengineering
Application data should be stored in a single sqlite3 database. This allows pretty mature and powerful data storage which works on Linux, Android, iOS, MacOS and Windows.
2026-03-20Add path_provider packagexengineering
This is required to get the "Application Support" directory on Linux, Android, iOS, MacOS and Windows. This folder is used to store persistence of the Sia app.
2026-03-10Merge MQTT broker selectionxengineering
This allows the user to select the MQTT broker and thus Sia server instance which should be used.
2026-03-10Make ConnectionPage a StatefulWidgetxengineering
This allows to store the fully qualified domain name (FQDN) of the MQTT broker and display it if the user visits the page again. The old behaviour was that the text input field was empty.
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.