Commit graph

1051 commits

Author SHA1 Message Date
Joris Pelgröm dd800d00ea
Use compressed entity changes for device controls (#2942)
* Use compressed entity changes for device controls

 - Add support for the subscribe_entities websocket subscription which delivers initial state + changes in a compressed format to reduce data usage
 - Use the new subscribe_entities format in device controls on supported Home Assistant versions

* Less duplicate code
2022-10-19 14:47:10 -04:00
RoboMagus 983dbd58e4
Add notify command for app-lock (#2868)
* Add notify command for app-lock

* Add null check for optional parameters

* Only allow enabling app_lock by notify command if previously enabled by user

* Use constants for app lock command parameters

* Add BiometricManager check before turning on app_lock

* Remove 'hasLockEverBeenEnabled' in favor of only biometricmanager check.

* Improved value checking for app lock command. 
Made setAppLock function suspending i.s.o. sepearate runBlocking calls.

* Show notification if no parameters were updated.

* improved parameter value checking

* Don't make changes when invalid data is provided

* Early check on argument validity for app lock commands

* Cleanup app lock command parameter validation
2022-10-19 14:45:22 -04:00
Joris Pelgröm 4a9dd8ba04
Android 13 notification changes + target (#2682)
* 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
2022-10-19 14:43:15 -04:00
dependabot[bot] 72681ca632
Bump sentry-android from 6.4.3 to 6.5.0 (#2963)
Bumps [sentry-android](https://github.com/getsentry/sentry-java) from 6.4.3 to 6.5.0.
- [Release notes](https://github.com/getsentry/sentry-java/releases)
- [Changelog](https://github.com/getsentry/sentry-java/blob/main/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-java/compare/6.4.3...6.5.0)

---
updated-dependencies:
- dependency-name: io.sentry:sentry-android
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-11 13:04:07 -04:00
dependabot[bot] 0b6a934607
Bump sentry-android from 6.4.2 to 6.4.3 (#2953)
Bumps [sentry-android](https://github.com/getsentry/sentry-java) from 6.4.2 to 6.4.3.
- [Release notes](https://github.com/getsentry/sentry-java/releases)
- [Changelog](https://github.com/getsentry/sentry-java/blob/6.4.3/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-java/compare/6.4.2...6.4.3)

---
updated-dependencies:
- dependency-name: io.sentry:sentry-android
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-10 10:36:28 -04:00
Daniel Shokouhi 93844ffea0
Add pixel watch companion to list of Wear OS apps (#2957) 2022-10-07 14:21:56 -04:00
Daniel Shokouhi ddce1ca1b3
Set the media player widget icon if available, otherwise default to cast icon (#2940)
* Set the media player widget icon if available, otherwise default to cast icon

* Use icon directly per review comment
2022-10-04 08:34:40 -04:00
Daniel Shokouhi e4e414d5b4
Update change log week of 10/1 for beta (#2938)
* Update change log week of 10/1 for beta

* Add back changes so they are not missed during weekly beta

* Separate release blocks
2022-10-01 14:42:19 -07:00
Justin Bassett 1adc33bf61
Bump Hilt version to 2.44 (#2939)
Bump hilt version to 2.44
2022-10-01 17:12:32 -04:00
Daniel Shokouhi 48f2ca3125
Default to app icon if icon is not available for notification (#2936) 2022-10-01 16:15:24 -04:00
Joris Pelgröm abf0220430
Update Gradle to 7.5.1, Android Gradle plugin to 7.3.0 (#2934)
- 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
2022-10-01 16:14:45 -04:00
Chris Kemp 203e6868d1
Add new force_on and force_off options to command_high_accuracy_mode. (#2924) 2022-10-01 16:12:44 -04:00
Joris Pelgröm c2937e77aa
Simplify themes (#2923)
* Merge Follow Home Assistant/Follow System Settings theme

 - As these two themes behave the same now, don't present two options but instead just one. The default setting has been renamed back to "Follow System Settings" to best match expectations. Internally the "android" setting still works, settings will show "Not set".

* Remove useless webview force dark

 - The WebView force dark settings are no longer required (and will no longer be supported when targeting Android 13), as the latest appcompat/webview/HA frontend already respect the app's theme setting and allow overriding it
2022-10-01 16:11:31 -04:00
Daniel Shokouhi 60aadc906a
Show custom icon if set for the entity in device controls (#2922)
* Add support for showing custom icons in device controls

* Clean up and set color based on state

* Set icon size and adjust colors based on domain

* Move color values to resources and add more color options from source

* Review comments

* Only set the icon if it exists in the library
2022-10-01 16:10:52 -04:00
Daniel Shokouhi 1a5776371e
Add commands to control screen brightness and a sensor to get its value (#2894)
* Add commands to control screen brightness and a sensor to get the value

* Minor file clean up

* Review comments

* Rename Device Settings to Display Sensors
2022-10-01 16:09:01 -04:00
Daniel Shokouhi 070a839b74
Update iBeacon format to have underscores (#2930)
* Update iBeacon format to have underscores

* Update change log
2022-10-01 19:57:01 +00:00
Daniel Shokouhi 79802c18a8
Update change log week of 10/1 (#2937) 2022-10-01 19:38:03 +00:00
Daniel Shokouhi cabd41e6d5
Breaking Change: Only update geocoded sensor with location if the setting is turned on (#2913)
* Add a setting to control if the geocoded sensor should update with device tracker

* Update strings for settings
2022-09-26 10:55:02 -04:00
Daniel Shokouhi 113582ad2d
Update change log week of 9/24 (#2914) 2022-09-26 10:54:05 -04:00
Daniel Shokouhi fbe300e30b
Breaking Change: Add bluetooth connect permission to beacon monitor to prevent log spam from library (#2920)
Add bluetooth connect permission to beacon monitor to prevent log spam from library
2022-09-26 10:53:42 -04:00
Joris Pelgröm db98a7ced3
Fix BLE monitor new beacon check (#2918) 2022-09-26 10:52:28 -04:00
Daniel Shokouhi e541db2ca8
Only check for beacons if the index is present (#2916)
* Only check for beacons if the index is present

* Remove assert

* Review comment
2022-09-26 10:52:08 -04:00
dependabot[bot] 1449ff5409
Bump sentry-android from 6.4.1 to 6.4.2 (#2898)
Bumps [sentry-android](https://github.com/getsentry/sentry-java) from 6.4.1 to 6.4.2.
- [Release notes](https://github.com/getsentry/sentry-java/releases)
- [Changelog](https://github.com/getsentry/sentry-java/blob/main/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-java/compare/6.4.1...6.4.2)

---
updated-dependencies:
- dependency-name: io.sentry:sentry-android
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-24 20:19:34 +00:00
Joris Pelgröm 0222d6b673
Bump Google dependencies (#2910) 2022-09-24 16:04:58 -04:00
Daniel Shokouhi 603e411823
Breaking Change: Add major and minor to UUID for beacon attribute in beacon monitor (#2909)
* Add major and minor to UUID for beacon attribute

* Review comments
2022-09-24 16:04:31 -04:00
Daniel Shokouhi 7c6096634f
Allow custom intents register for categories in case they are required (#2901)
* Allow custom intents register for categories in case they are required

* Update description

* Update string to be more generalized and readable
2022-09-24 16:03:32 -04:00
Daniel Shokouhi 91a4b02500
Change TTS error message and clean up some other strings (#2890) 2022-09-24 16:01:20 -04:00
Daniel Shokouhi 2e19dc4474
Add support for intent scheme URI and deep links in clickAction and actionable notifications (#2888)
* Add support for intent scheme URI in clickAction and actionable notifications

* Add a new prefix for app links in actions

* Rename app link to deep link to be more precise

* Use correct intent prefix

* Take user to the play store if the app is not installed

* Fix taking user to the market if app is missing, remove ability for deep links since we can't get the package name

* Only open the play store if we have an actual package to open to
2022-09-24 16:00:29 -04:00
Daniel Shokouhi 763819746a
Add a dynamic color sensor for accent color (#2884)
* Add a dynamic color sensor for accent color

* Update colors to color to match material design label
2022-09-24 15:56:10 -04:00
Joris Pelgröm 80816df6f5
Add support for using BSSIDs for internal connection (#2883)
* Add support for using BSSIDs for internal connection

 - Add support for entering BSSIDs to use for detecting when the internal connection URL should be used. These are saved like any regular SSID, but contain the prefix "BSSID:".

* Add link to documentation
2022-09-24 15:55:36 -04:00
Daniel Shokouhi 9fa983c6dc
Fix full screen mode for all devices (#2878)
* Fix full screen mode for all devices

* Hide system UI when we regain focus and a video is still full screen

* Revert theme changes

* Remove unneeded line break
2022-09-24 15:54:38 -04:00
Daniel Shokouhi d87781dea4
Breaking Change: Only send notification received event if a notification wants the confirmation (#2899)
* Breaking Change: Only send notification received event if a notification wants the confirmation

* Update change log
2022-09-20 19:48:51 +00:00
Daniel Shokouhi a34487409c
Update change log week of 9/2 (#2842)
* Update change log week of 9/2

* Reduce description as docs also mention the rate limit

* Add more changes from recent merges
2022-09-10 12:33:52 -07:00
Daniel Shokouhi 0ce8cbe871
Add item ID to active notification attributes to keep them unique (#2856) 2022-09-10 15:22:11 -04:00
Joris Pelgröm 6a0ffd82b1
Tweak camera control active state: true if not unavailable (#2871)
- Set the thumbnail template for the camera control to active as long as the camera isn't unavailable and the app was able to download an image, to show the camera image more often and better match the frontend.
2022-09-10 15:18:45 -04:00
Joris Pelgröm 6756e21112
Fix template widgets that render null in websocket subscription (#2866)
Fix widgets that return null in websocket subscription

 - Just like in the preview, null is a valid result and should be handled by the app
2022-09-10 15:18:10 -04:00
Joris Pelgröm a31afb3455
Only subscribe to state changes for added controls (#2864)
- Instead of receiving all state changes when the device controls are open, only receive state changes for entities that were added as controls. This potentially reduces the amount of data used while controls are open.
2022-09-10 15:17:49 -04:00
Joris Pelgröm bdc9094845
Improve adding quick settings tile (#2860)
* Improve adding quick settings tiles

 - Use the new option available on Android 13 to prompt the user to add a tile to the quick settings panel, if a tile wasn't already added
 - Switch Toast to Snackbar
 - Move some logic from the manage tiles view to viewmodel

* Only show subtitle field when supported

 - Setting a tile subtitle is only supported on Android Q+, so don't show the field on versions before that!

* Deeplink into app for tiles that aren't setup

 - Instead of disabling a tile if it isn't setup, if the user is logged in set it up as inactive with the default icon/label and deeplink into the app settings with a notice that it needs to be setup first. This provides a better first use experience, as the user can simply tap it to setup instead of requiring them to manually go to the settings.
2022-09-10 15:16:36 -04:00
dependabot[bot] 2380741a45
Bump jackson-module-kotlin from 2.13.3 to 2.13.4 (#2851)
Bumps [jackson-module-kotlin](https://github.com/FasterXML/jackson-module-kotlin) from 2.13.3 to 2.13.4.
- [Release notes](https://github.com/FasterXML/jackson-module-kotlin/releases)
- [Commits](https://github.com/FasterXML/jackson-module-kotlin/compare/jackson-module-kotlin-2.13.3...jackson-module-kotlin-2.13.4)

---
updated-dependencies:
- dependency-name: com.fasterxml.jackson.module:jackson-module-kotlin
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-05 14:42:26 +00:00
Joris Pelgröm a711c659a4
Update Wear onboarding to always use phone for sign in (#2838)
* 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
2022-09-05 10:25:13 -04:00
Daniel Shokouhi dab3640c6b
Fix sensorDao not initialized error after geocoded update (#2772)
* Fix sensorDao not initialized error after geocoded update

* Switch to sending an intent to update the sensor

* Review comments
2022-09-05 10:11:38 -04:00
Adrian Huber d0016e530e
Add Beacon Monitor (#2472)
* Add BLE Beacon Monitoring Sensor

* Fix on/off toggle

* Add on/off commands

* Fix commands

* Add all beacons to attributtes

* Add Kalman Filter

* Improve performance

* More settings

* cleanup

* Fix linter errors

* Update description

* Show monitoring state in sensor

* Add missing permissions

* Fix permissions

* Fix Bluetooth state of Android 12

* Use instance instead of singelton

* Use runBlocking for updateLastSendState

* Use own scope for beacon manager

* Use new notification commands

* fix rebase

* use null instead of empty string

* return if sensor is disabled
2022-09-05 10:07:26 -04:00
dependabot[bot] 647d6c4533
Bump sentry-android from 6.4.0 to 6.4.1 (#2836)
Bumps [sentry-android](https://github.com/getsentry/sentry-java) from 6.4.0 to 6.4.1.
- [Release notes](https://github.com/getsentry/sentry-java/releases)
- [Changelog](https://github.com/getsentry/sentry-java/blob/main/CHANGELOG.md)
- [Commits](https://github.com/getsentry/sentry-java/compare/6.4.0...6.4.1)

---
updated-dependencies:
- dependency-name: io.sentry:sentry-android
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-09-05 10:05:33 -04:00
Joris Pelgröm e31ec2f731
Send external url to Wear discovery (#2839) 2022-09-05 10:05:04 -04:00
leroyboerefijn 3926a04e21
Update companion settings landing page for Wear settings (#2837)
* Update companion settings landing page for Wear settings

* Fix description

* Update text and label
2022-09-05 10:04:26 -04:00
Joris Pelgröm 567e286bfa
Fix media notification command (#2835)
Fix media command

 - Fixes the media command code using 'command' to check if it is included but 'media_command' to do the actual command
2022-09-05 10:00:08 -04:00
Joris Pelgröm c6b36d82bb
Support device controls on locked Android 13 device (#2820)
- Add support for using device controls while the device is locked on Android 13 devices
 - Start compiling with Android 13's SDK to make this possible
2022-09-05 09:58:13 -04:00
Joris Pelgröm 232fbb2b2d
Better state change subscriptions in entity state and media player widgets (#2814)
Implement subscribe_trigger and use it in widgets

 - Implement support for subscribing using subscribe_trigger, currently used to get state changes only for specific entities
 - Change the entity state and media player widgets to use this new subscription instead of subscribing to all state changes, based on the template widget
 - Removed some placeholder code from media player widget
2022-09-05 09:56:44 -04:00
RoboMagus 2cf5a7d215
Option to bypass app lock on home network (#2800)
* Add setting to bypass app lock on home network

* Debug loging to check logic

* Fix logic. Cleanup logging.

* Disable home lock bypass when no home networks are configured.

* Only check for WiFi SSID, not internal URL when evaluating isLockEnabled.

* Fix build error
2022-09-05 09:53:07 -04:00
andyboeh 6b06e0d8a8
Add authentication to widget buttons (#2798) 2022-09-05 09:50:53 -04:00