A modal window will now appear to give you a recap of the selected packages before applying the changes.
A complete overhaul of the way UAD handles package selection was required to implement this feature.
Note: UAD is now temporarily based on my fork of Iced until iced-rs/iced#1425 is merged upstream.
- Remove custom code for theming: UAD now uses the new Iced styling API
- All the code for initializing UAD (download debloat lists, fetch connected devices etc...) is now a lot more streamlined
- Other miscellaneous code improvement
- Replace row() and column() functions by the new Iced vector-like helper functions (row![], column![])
- Move navigation menu GUI code in a dedicated file
- Rework the way UAD uses events for async code
- This will be the default in Iced in the long run
- Less boilerplate code
- Simplify the separation between the data and the GUI
The `Application` is still stateful as I need to access and modify the child views. This will change one day.
- Add an update button in the About page which links to the Github Releases page
- Display if there is a new version available in the About page
- Display an error if the request to Github failed
- Download the new UAD version and update the software (the hard part)
- Display an update button instead of the `Apps` button if there is an update available
- Add a `no-self-update` cargo feature for this (we don't want auto-update if a package manager already handles this)
The request is done asynchronously, each time you launch UAD or press the About button
The message checking updates... is displayed in the meantime
Update process:
- Download the right release based on the current file name (temp_<release_name>)
- Extract the executable from the tarball for Linux and MacOS release
- Rename the current executable to a temp path and rename the new version as the original file name
- Spawn a new process to run the new (renamed) executable and kill the current one
- Remove the old executable
Acknowledgement:
@tarkah for the inspiration of the self-update code (https://github.com/ajour/ajour/pull/222)
- Try to download the list from Github when you launch UAD
- If it succeeds, cache the file
- Use the cache file if no Internet or fallback to the embedded list
- Display a special waiting message during the download
- You can skip the waiting screen if no internet. It will fallback to the cached or the embedded list
- Display the documentation version (date) in the About page
- Add an update button in the About page (with time last updated)