| Age | Commit message (Collapse) | Author |
|
This makes use of the state machine in the UI and implements all states
and transitions planned so far.
|
|
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.
|
|
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.
|
|
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.
|
|
This prepares starting connection attempts on manual action only.
|
|
This prepares manually starting the connection after server name
insertion.
|
|
This removes the need to write a SafeArea on each use of
ConnectionStatus and replaces it by exactly one occurrence.
|
|
This is a second page to offer a form to set the Sia server name.
|
|
This makes sure there is only one class instance of MaterialApp.
|
|
The old name class UI was not adding much information and is not well
suited to be differentiated to upcoming other *Page classes.
|
|
This simplifies the main function and adheres more to Flutter
conventions.
|
|
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/
|
|
|
|
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.
|
|
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.
|
|
This propagates icon files to the Android-specific source tree.
|
|
|
|
This tool allows to update icon files deep inside the source trees of
the different platforms.
|
|
|
|
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
|
|
This Inkscape file is the primary source file where the icon is
designed.
|
|
This adapts to the style recommendations from the tool `black` checking
the Python code of this repository. This makes the scripts clean again.
|
|
This is required for the MQTT connection.
|
|
On Android the bottom bar with the connection state used to be hidden by
the three Android navigation buttons.
|
|
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)
|
|
This allows to use the app after a temporary disconnect between app and
MQTT broker.
|
|
The user otherwise cannot trust the state of the contacts because the
app could just be disconnected from the broker.
|
|
That balances the scopes of UI and ContactList better and allows to add
more Widgets on the UI level.
|
|
|
|
This is already the minimal viable product (MVP) for this app.
|
|
|
|
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.
|
|
|
|
This is now done with the refactored code organization and a strict UI /
data split.
|
|
The UI should not store the application logic state.
|
|
This follows recommendations [1] from the flutter documentation.
[1]: https://docs.flutter.dev/app-architecture/concepts
|
|
|
|
This demonstrates that the state of the contacts in the UI can be
changed at runtime.
|
|
This is required to change the contact states during runtime.
|
|
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.
|
|
This should help writing good flutter / Dart code from the beginning.
|
|
This makes the code more readable.
|
|
The old name MainPage did not explain a lot.
|
|
This library is the currently most often downloaded MQTT library on
pub.dev. This is at least a good starting point.
|
|
This demonstrates how the UI should look like. The data is just for
visualization and never changes. Functionality is added later.
|
|
Displaying the more technical name `sia_app` in the title bar is not
suitable.
|
|
|
|
This makes it easy to re-generate the files provided initially with
`flutter create`.
|
|
|
|
This was done using the following command.
flutter create \
--description "Sia app" \
--org "eu.xengineering" \
--project-name "sia_app" \
--platforms linux,android \
--empty \
.
|