* Use recommended splash screen library for Wear OS
* More tweaks per recommendations
* Add splash screen to Assist
* Add splash screen for Assist
* Use mipmap instead of drawable
ListHeader: set overflow, limit lines based on font size
- Set overflow for ListHeader to ellipsis instead of cutting of text
- Set the maximum number of lines for ListHeader based on the font size
- Center text in the list header for nicer appearance in case of multiple ines
* Update icon
- Replace old icon with the new icon
- Update app primary color to new blue tint
- Deduplicate resources
* Update feature graphic
* Decouple app icon color from main color
* Add location history (location, trigger, result)
- Initial setup saving data, no UI, cleanup or preferences yet
* On/off setting, limit history size and basic UI
- Add a on/off setting for location history (default on)
- Limit the history size to 48 hours, any older entries will be deleted during regular sensor updates
- Add a basic UI for location history based on paging considering the possible data size with multiserver/high accuracy. The list looks good and shows status at a glance, detail view still needs work.
* Finish expanded UI
- Make the expanded UI nicer and show relevant data, buttons for opening the location in a maps app and sharing log data
- Add empty states for location history
* Filter by state, improve list speed
- Add option to filter by state
- Simplify Room configuration and sort by indexed ID to improve list loading speed
* Remove duplicate source
* Fix minimal
* Split sent into sent and failed to send
- The recent switch to Horologist modifiers for rotary input broke after the first screen because of manual focus requesting, and the refresh interval picker in general so also switch that to a Horologist modifier.
* [WIP] Prepare camera snapshot tile
* Deduplicate refresh views
* Get/save tile config in the database
* Deduplicate haptic click, add to camera refresh
* [WIP] Camera tile settings UI
- Create UI to set camera tile settings
- Reuse shortcut tile settings activity as a general tile settings activity
* Rename camera snapshot tile to camera tile
* Cleanup: camera entities selection, empty state, preview image
- On initial load also create a list of camera entities to make it possible to select them without showing up elsewhere in the app
- Add text to empty state instructing the user to set a camera
- Update tile preview images
* Fix logged out state on missing tile config
* Force tile update on login
* Scale bitmap to fit inside screen size
- Scale the received image to a bitmap that does not exceed the screen size to ensure timely refreshes and prevent parcels that are too big
* Only use the base URL during onboarding
* Use HttpUrl Builder to construct proper URL
* Move variable to try/catch block
* Only apply logic to NC URLs as those do not have custom path
* Only parse the end of the URL
* Deduplicate code per review
* Prepare controls panel activity for Android 14
* Allow controls panel to work while locked
* UI to enable/disable controls panel
- Disable panel by default
- Add area to controls settings on Android 14 to enable/disable panel
* Panel server/path settings
- Add setting to choose which server and path to use for the panel
* Remove transition animation for panel
* experience -> mode
* Fix deleting orphaned Thread credentials
- Deleting orphaned Thread datasets (= datasets for servers that have been deleted for the app) actually deleted current datasets. No real harm except it's deleting stuff and adding it again.
* Log app added preferred Thread network details for debugging
* Always delete Thread datasets using placeholder on >=2023.9
* More detailed log for update app added dataset action
* Add/update/delete Thread credentials by border agent ID
* Multiserver: only keep one HA credential, handle credentials for deleted servers
- Make sure the app only stores one HA credential that matches the preferred credential for the server executing the sync.
- Create an 'orphaned Thread credentials' system to be able to delete credentials for servers that have been previously deleted.
* Fix minimal
- When reading service data from the database, make sure to also add custom fields.
- Fix RecyclerView not setting fields to empty when no value is present, potentially showing input from other recycled fields if the field doesn't have any value.
- Fix adding a new custom field destroying any input currently held in the views by using a specific insertion method instead of all changed, which will reset the values.
- Update to Kotlin 1.9
- Update to Compose 1.5 and Compose Wear 1.2, both depend on and are required for Kotlin 1.9. Compose Wear includes lazy classes moving to a different package so updated imports.
- Update to AGP 8.1.1 to remove compatibility warning
- Update Navigation Compose to 2.7.1 as it uses Compose 1.5 internally
- Update Accompanist to 0.32 as it uses Compose 1.5 internally
- Switch Room to KSP instead of kapt because this (latest stable) release doesn't work with Kotlin 1.9 otherwise. As a result, we no longer need to specifically enable incremental compilation.