- 'getter for isSpeakerphoneOn: Boolean' is deprecated. Deprecated in Java
- Unnecessary safe call on a non-null receiver of type Intent
- The corresponding parameter in the supertype 'BaseWidgetConfigureActivity' is named 'savedInstanceState'. This may cause problems when calling this function with named arguments.
* Use device class enum where possible and supply possible states for those sensors
* Add some missing sensors
* Review comments and suppress lint
* Add media session sensor to enum device class
- Prevent a race on logout from the frontend between updating the sensors and deleting the server data, causing stale sensor entries
- During periodic sensor updates, clean up any orphaned sensor entries there might be (because of this bug or other race conditions we're unaware of)
* Basic barcode scanner functionality
* Add overlay with cutout and toggle flashlight
- Add a overlay with cutout in the middle / on the side, matching design and Google's barcode scanner
- Working button for toggling the flashlight on and off
* Fix background camera use, complete more UI
- Fix camera remaining active when the activity is paused (for example, by going to another app)
- Set the app's theme
- Add more UI parts: title, subtitle, optional action button
* Complete scanner UI
- Request permission when launched, and add snackbar when permission is denied
- Add flashlight button and position it to line up with the frame
- Make title/subtitle/action dynamic
- Fix double scrim for system bars on older API levels
* Add dependency to automotive as we can't exclude features
* More automotive dependencies
* Return information about barcode format
* Implement external bus for scanner
* Fix external bus type
- The type for external bus messages should be command, with the bar_code/* in the key command
- Send aborted when closing the scanner using back
* Improve feature availability check
- Make sure the device actually has a camera and is not automotive
- Adds an interface to the app to interact with the external bus outside the WebViewActivity. This should make it possible for the frontend to control more native UI of the app.
* Fixed runBlocking call in suspend function DefaultSliderControl.performAction
* Fixed runBlocking in LanguagesManager.getCurrentLang. This function is always called from a coroutine.
* Fixed runBlocking in LanguagesManager.saveLang. This function is always called from a coroutine.
* Fixed runBlocking in LocationSensorManager.sendLocationUpdate. This function is always called from a coroutine.
* Fixed runBlocking for ThemesManager.saveTheme and ThemesManager.getCurrentTheme
* Fixed ktlint
* Add some missing states for audio sensor
* Correct improper SDK check for mic muted intent action
* Update wear intent receivers
* Correct mic muted sensor update type
- When creating a new entity state widget, if the label is empty pre-fill it with the name for that entity to improve the initial UX. This does not apply when you've edited the label (or are editing a saved widget) until cleared.
- When determining whether the WebView should be reloaded with the current server URL, also check that the protocol (http/https) and port (8123, 443, ...) match and if not reload.
* Support showing all frames of animated gif when sent as image in Android 14+
* Use unique image names and delete existing files that are no longer needed
* Fix lint
* update behavior to keep 2 days of images
"timeout" is relative, but "when" is absolute by default.
It is now possible to synchronize timers in seconds without time difference:
```yaml
timeout: 120
chronometer: "true"
when: 120
when_relative: "true"
```
- Catch exceptions thrown while loading all controls on a server level, to make sure that an issue with one server doesn't prevent data from other servers from showing.
- Update the dialog flags for showing the Assist dialog when locked to prevent unintentional resuming in another locked state and clear contents when resumed intentionally (assistant intent action)
* Add ability for ClimateControl Card to cycle through entity states
* Fix ktlint issue
* Set `currentMode` after sending request for cycling through modes
* Display thermostat always as "on"
* Use "toggle" string from widget_tap_action_toggle
* Use hashMap to save states of entities as we're in a singleton
* Include support for colliding entityIds when using multi server within ClimateControl
* Add comment why ToggleRangeTemplate is always set to checked
* Bump org.jlleitschuh.gradle.ktlint from 11.6.1 to 12.1.0
Bumps org.jlleitschuh.gradle.ktlint from 11.6.1 to 12.1.0.
---
updated-dependencies:
- dependency-name: org.jlleitschuh.gradle.ktlint
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
* Add .editorconfig
* ktlintFormat
* Fix comment in a 'value_argument_list' is only allowed when placed on a separate line
* Restore AssistShortcutView
* Fix comment in a 'value_argument_list' is only allowed when placed on a separate line
* Fix no comment expected at this location
* Fix property name should start with a lowercase letter and use camel case
* Fix parameter comments
* Fix comment in a 'value_argument_list' is only allowed when placed on a separate line, again
* Fix property name should use the screaming snake case notation when the value can not be changed
* Fix final comment in argument list
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Joris Pelgröm <joris.pelgrom@gmail.com>
* Add option to update camera & template tile 'on view'
- Use the tile enter callback to request an update to the tile once it enters the view. Considering that this callback exists it's probably safe to assume an update that is requested in this callback won't be throttled (at least it appears to work during testing).
- Minor edit to the refresh interval picker to ensure strings that are more than one line look a bit nicer.
* on view -> in view
- MdcTheme appears to have been deprecated in the latest release. Replace it with our own theme everywhere it is used. Thankfully, because the modifications for the HA (XML) theme are very minor compared to a default Material theme there's not a lot to define/duplicate.
* Make volume sensors update instantly by subscribing to a broadcast
* Change skippableActions to a 1-to-many map and the list of all volume sensors to the corresponding Intent action key
- After discussion with Thread dev, remove Thread credential syncing from the start of the Matter commissioning flow. There are 2 major reasons for this:
* it significantly slows down the flow while only being useful some of the time
* the results have limited usefulness because the API limits how much Home Assistant can influence the device data
The alternative for the user is to use the manual 'import credentials' button in the frontend (matching iOS), or access the sync option in the app settings > troubleshooting menu.
* Integrate car sensors with automotive, and added permissions
* Set context in every call
* Fixed CarSensorManager format
* Enable car sensors only on correct flavors
* Fixed format
* Renamed context to latestContext and added parenthesis to expression
* Support multiple Template tiles on Wear OS
* Add `TemplateTileConfig` data class
* Fix migration
* `Pair` -> `TemplateTileConfig` fixes
* Fix `getAllTemplateTiles` implementation
* Initial work on companion <-> wearable device communication
* More work on phone <-> wear device communication
* Save updated template in phone app
* Get the template to render using the right method
* Fix CI complaints
* Work on Wear UI for multiple template tiles
* Update wear manifest
* Wear migration and navigation fixes
* Fix Template tile IDs in mobile app
* Make adding a new Template tile on Wear device work
* Small cleanups and TODO fixes
* Try to fix template config refresh in settings
* Fix after rebase
* Adopt blocking approach for reacting to tile events, inspired by #3974
* Use `OpenTileSettingsActivity` for template tile
* Adopt Material 3 and other UI-related changes
* Show help text in phone app if no template tiles have been added yet
* Reference the view model variable inside the function
By having the view model variable outside the block, the updated template tile
might not be propagated to the template settings view.
* Reload template tiles when opening the template tiles from settings
* Replace null key with -1 for old template tile
* Lint complaints fixes
* remove TODO
* Store error
* Scrollable list of template tiles
* Move "Configure template tile" to header
* Replace with methods with copy
* Show template as secondary text
* Fix scrolling
* Update app/src/full/java/io/homeassistant/companion/android/settings/wear/views/SettingsWearTemplateTileList.kt
Co-authored-by: Joris Pelgröm <jpelgrom@users.noreply.github.com>
* Remove unused field
* Move padding to "no tiles" text
* Add deep link
---------
Co-authored-by: Joris Pelgröm <jpelgrom@users.noreply.github.com>
* Support for Thread "import credentials" frontend action
- Add support for the frontend action to import Thread credentials, or better said export Thread credentials from the device. This is essentially a very basic sync.
* Rename/reorder reused Matter code
- Change names and order of reused Matter code for Thread importing to prevent potential confusion
* Update minimal implementation