* Add permissions requests to wear OS sensors
* Add intents for network sensors on wear
* Separate background/foreground location permission requests
* Prompt for background permissions after foreground was successful
* Only set sensor to enabled if all permissions are grantted
* Review comments
* Process more review comments
* Remove unnecessary variable update
* Request notification permission during onboarding
- When using Android 13 or the minimal version, add a screen to onboarding to request to enable notifications on the device. This screen is based on iOS onboarding. When tapping Continue, on Android 13 this requests the system permission and/or on the minimal version this changes the websocket setting.
- Compile with and target SDK 33 (targeting required to be able to request notification system permission on demand)
* Add notification settings link in settings when off
- Show a new setting in settings for the user to enable notifications for the Home Assistant app, either because the permission was denied (Android 13) or the user manually turned off all notifications (Android 8-12).
- This new setting replaces the notification channels setting when everything is off; in this case there is no point managing individual channels. If at least one channel is on, the existing notification channels setting is shown instead.
* Compose tweaks
- Remove redundant content description for icon
- Change to a simpler scroll modifier
* Fix skipping notifications on minimal version
- Ensure that the value is actually saved to the database
* Post Bluetooth on/off commands as if invalid
- When using Android 13, post notification commands to control Bluetooth on/off as a normal notification as if they were invalid, as the function has been deprecated for the app
* Remove type that can be inferred
- Update Gradle to latest version (7.5.1)
- Update Android Gradle plugin to latest version (7.3.0)
- Move package property out of manifest into gradle build files namespace as recommended
Don't collapse lists by default if there's only one key
- If there is only one key, the app shouldn't collapse it by default as the app may not use a collapsible header in that case
* Always do Wear onboarding on phone
- Switch the Wear onboarding to always use the sign in flow on the paired phone, instead of offering the option to sign in completely on the watch.
- When opening the companion app using the Wear app, immediately link the user to the list of instances or sign in screen.
- Use standard OAuth flow for devices without companion app installed.
- Fix type casting of location preference in Wear onboarding result.
* Fix ListenableFuture await import
- Catch exceptions thrown when executing calls to change an entity state instead of crashing the app
- When revoking a session fails continue with logout as the server might no longer be available and the user otherwise might be 'locked in' with no way to change the server
* Always collapse headers and add favorites section
* Remove unneeded entity update subscription
* Process comments
* Use shorthand for favorites loop in MainView
* Remove error message on null template
- Null is a valid value for a template so the app should reflect that instead of suggesting there is an error, which may cause users to start looking in the wrong place.
* Log.e instead of Log.i
* Implement styling on the template tyle
* Also process preview in phone settings
* Small cleanup
* Improve template null handling
* Update template rendering error
* Update help text to indicate new line and markup options
* Also support newline
* More extensive replacement for <br>
- Add specific error if the app encounters a HTTP 404 response during onboarding registration, because that means the mobile_app integration is missing
- After an error, clean up the session data to make sure a new registration attempt is made
* Show entity state on entity chip in Wear OS app
- Shows the color and position of an entity state on the entity's chip in the Wear OS app by using a custom background class that accepts more than a single Color
* Use horizontal instead of diagonal gradients
- The default BrushPainter actually isn't the correct one, the ToggleChip class uses its own but that is marked as internal and we cannot override the default BrushPainter so another copied class it is
* RTL entity position support
- When using an RTL language, the entity chip should fill in the position value from the right side
* Support cover position
- Show cover position as entity chip's background
- Adjust background color code to also work when a chip isn't checked for covers that are currently closing
* Cleanup EntityUi
* Cleanup duplicate code in device controls
* Naming conventions
- Should've used a lowercase letter to start
- Fix class
* Fix build
- Updates because ToggleChipColors has changed
- Add workaround for implementing Compose interface because kotlin-gradle-plugin is linked to stable Compose and we cannot update yet
* Update gradient values to match rc02
- Wear Compose 1.0.0-rc02 changed the default values for the gradients in ToggleChips, so update the values used when using a custom background to match
* Speed up loading device controls by running network async
- Speed up loading the device controls menu and initial controls by launching all requests in an async block, which allows the server to respond out of order
- For individual controls, only start listening for changes once we have provided initial controls
* Speed up Wear OS cold boot by running network async
- Speed up a cold boot of the Wear OS app by launching all network requests in an async block, which allows the server to respond out of order
* Bump compose, make it build and update loading screen
* Fix toggle icons
* Update refresh interval picker layout
* Remove potential empty item in MainView to improve content alignment in window
* Fix rotary scroll
* Fix toggle icon in DetailsPanelView
* Stop using hardcoded strings...
* Bump to rc02
* Smoother rotary scrolling
* Revert "Smoother rotary scrolling"
This reverts commit e13738983d.
* Only show loading screen in one place to make sure we always see the same ui
* Add entity state complication with hardcoded entity id
* Add config activity and save entity id in DB
* Update complications when entity state changes
* Allow all entity types for complication
* Update config layout
* remove unused file
* Upload database json
* Process review comments!
* Fix little bug
* Icon background and error catching
* Add automatic refresh and fix missed Dao inject
* Add icons for standard domains
91cd584b4b/src/common/const.ts (L66)
* Cleanup and further icon updates
* Add dagger module for daos
* Update classes in common to inject daos
* Update app view models to use inject
* Use inject with widgets
* Update app activities and fragments to use inject
* Clean up imports
* Make TileExtensions use coroutines
* Sync sensor enabled state from app to core
- Change sensor 'registered' to indicate not registered, registered as disabled or registered as enabled
- When a sensor is disabled, set it's status as such on core 2022.6 servers
- In the sensor registration, use the basic sensor details in case there is no info in the database that can be used
* Clean up version check
- Now that there is a standard function to get the version, re-use it
* Improve which sensors are synced to core
- Update database migration to reset registration state on db upgrade to make sure the information is correct for all sensors
- Only sync sensors that are actually available on the device
- Fix registering all sensors on core <2022.6 on app/core version change
- Fix unnecessary sensor updates due to location sensors which are never registered always triggering update on core >=2022.6
* Sync sensor enabled state from core to app
- After pushing app enabled changes to core, if on core 2022.6 check if the enabled state for any of the sensors is different from what is registered in the app and try to update the sensors. This is done by reading the entire config, because otherwise we wouldn't know about sensors that have been enabled and the app already updates all sensors at the same time so no need for tracking individual updates in the sensor update response.
- Restore getting config using webhooks, because only the webhook config contains information about entity enabled state
- Add support for opening a specific sensor's settings page, used for the notification when trying to enable a sensor that requires granting (additional) permissions
* Provide Compose preview for Play Store listing screens
* Update previews for onboarding
- Set theme correctly and show system UI
- Add variant for dark mode
* Update Wear OS listing image
* Remove specific icon, we can use domain default
- The touch target for the refresh button is really small and there aren't any other conflicting actions, so allow tapping anywhere to refresh the content