- 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
- Fixes the default domain icon on shortcut tiles not working because of a missing ".", used an extension function to prevent this problem in the future
* Update Kotlin to 1.6 and Compose to 1.1
- Remove @ExperimantalComposeUiApi, @ExperimentalWearMaterialApi annotations (because the functions aren't experimental, we are just using an experimental API) and replace with an opt-in declaration at the 'lowest level' usage
- Websocket: ProducerScope is no longer experimental so the annotation can be completely removed
- Wear: the animation APIs that are used for the time text are no longer experimental so the annotation can be completely removed
* Update for Compose sensor settings merge
* Add fan speed detail panel to Wear OS
- Added a fan speed slider for entities that support setting the fan speed
- Adjust light brightness string to include percentage symbol
* Rename extension function
* Add extensions to Entity for domain, lights features
- Add extension property for domain
- Add extension functions for lights: support for setting brightness and color temperature
* Use domain extension property in more places
* Add details panel with light brightness/colortemp control
* Update InlineSlider icons
* Process review comments
* Update toggle placement and string formatting
* Fix last strings and use representative color for Color temperature bar
* Websocket: make connected Job Deferred to get errors
- Switch the job used for monitoring whether a connection has been established to use Deferred, which will allow us to get the exception that caused the job to be cancelled (and also makes the code a little easier)
* Websocket: add variable for state
- Add a variable to the websocket repository to monitor the state of the connection. This will allow the app to respond to handled exceptions.
* More Websocket race condition fixes
- If multiple outgoing messages are pending before the connection is opened, if we receive an invalid auth message or onFailure callback this will be processed last. The connected job is still 'completed', so it shouldn't return true but return if it was successful. This will ensure that any messages after the first one that triggered the failure, will be ignored until the job is reset.
- Set the connection state to authenticating before sending the message, to make sure that we don't accidentally override a very quick response
* Handle error states in HomeView
- Add a state for the loading progress to the view model in order to be able to update the home view with errors if necessary
- If loading the main data failed because of authentication, reset the session like in the phone app and send the user back to onboarding
- Fix the app getting stuck on a loading screen, even if everything loaded correctly, if there are no supported entity domains in the response