Commit Graph

16 Commits

Author SHA1 Message Date
Bruno Pantaleão Gonçalves
9be944780e Onboarding UX fixes (#3914)
<!-- Thank you for submitting a Pull Request and helping to improve Home
Assistant. Please complete the following sections to help the processing
and review of your changes. Please do not delete anything from this
template. -->

## Summary
<!-- Provide a brief summary of the changes you have made and most
importantly what they aim to achieve -->
- Fix http/https section not showing on manual URL entry during
onboarding;
- Fix Safari view controller presentation during onboarding;
- Fix ha button style missing highlighted and pressed state missing;
- Fix registered list of devices not up to date when user names the
device;

## Screenshots
<!-- If this is a user-facing change not in the frontend, please include
screenshots in light and dark mode. -->

## Link to pull request in Documentation repository
<!-- Pull requests that add, change or remove functionality must have a
corresponding pull request in the Companion App Documentation repository
(https://github.com/home-assistant/companion.home-assistant). Please add
the number of this pull request after the "#" -->
Documentation: home-assistant/companion.home-assistant#

## Any other notes
<!-- If there is any other information of note, like if this Pull
Request is part of a bigger change, please include it here. -->
2025-10-28 12:08:33 +01:00
Bruno Pantaleão Gonçalves
83eeb7ab09 Add new "device naming" step to onboarding (#3708) 2025-07-10 14:36:18 +02:00
Bruno Pantaleão Gonçalves
f2c35267f3 Periodic update app entities instead of subscribing to state updates (#3231)
<!-- Thank you for submitting a Pull Request and helping to improve Home
Assistant. Please complete the following sections to help the processing
and review of your changes. Please do not delete anything from this
template. -->

## Summary
<!-- Provide a brief summary of the changes you have made and most
importantly what they aim to achieve -->
This PR will change the approach of how the app keeps it's data updated
by not subscribing to all state changes and only periodic updating it's
app entities instead.
This will avoid several issues where users experience their app to
freeze due to 9k entities updating every second and notifying the app.

## Screenshots
<!-- If this is a user-facing change not in the frontend, please include
screenshots in light and dark mode. -->

## Link to pull request in Documentation repository
<!-- Pull requests that add, change or remove functionality must have a
corresponding pull request in the Companion App Documentation repository
(https://github.com/home-assistant/companion.home-assistant). Please add
the number of this pull request after the "#" -->
Documentation: home-assistant/companion.home-assistant#

## Any other notes
<!-- If there is any other information of note, like if this Pull
Request is part of a bigger change, please include it here. -->
2024-12-05 10:28:45 +01:00
mat1th
97834bfd5e Update swift lint and format + appy fixes (#2585)
## Summary
Swift lint and swiftformat are outdated. This PR does update those +
applies the new formatting form swiftformat.
There is 1 swift file with a manual change:
`Sources/Vehicle/Templates/Areas/CarPlayAreasViewModel.swift`. This is
done because `swiftlint` did create the following swiftlint error:
`error: Cyclomatic Complexity Violation: Function should have complexity
10 or less; currently complexity is 11 (cyclomatic_complexity)`.

Because it does change a lot of files the question is if we want to
finetune the `swiftformat` rules.

## Screenshots
No user facing changes.

## Link to pull request in Documentation repository
NA

## Any other notes
NA
2024-02-22 13:06:39 +01:00
Bruno Pantaleão Gonçalves
d8b139618a Restore mac window size when reopen the app (#2514)
<!-- Thank you for submitting a Pull Request and helping to improve Home
Assistant. Please complete the following sections to help the processing
and review of your changes. Please do not delete anything from this
template. -->

## Summary
<!-- Provide a brief summary of the changes you have made and most
importantly what they aim to achieve -->
Restore mac catalyst app latest window size when reopening the app
## Screenshots
<!-- If this is a user-facing change not in the frontend, please include
screenshots in light and dark mode. -->

## Link to pull request in Documentation repository
<!-- Pull requests that add, change or remove functionality must have a
corresponding pull request in the Companion App Documentation repository
(https://github.com/home-assistant/companion.home-assistant). Please add
the number of this pull request after the "#" -->
Documentation: home-assistant/companion.home-assistant#

## Any other notes
<!-- If there is any other information of note, like if this Pull
Request is part of a bigger change, please include it here. -->
2024-01-18 16:00:28 +01:00
Zac West
c95c6cf32a Don't automatically consider hardware address for internal URL (#2302)
## Summary
Stops inserting the current network hardware address, since it may be
hardware which is connected to other networks. Allow the user to choose
this later.

## Any other notes
Since we can't directly tell when a hardware address is a valid way to
consider internal, don't automatically include it. This resolves an
issue where we'd think any Wi-Fi connection was internal which is
invalid logic.
2023-02-08 22:39:39 -08:00
Zac West
d5a64e273e Move Login to an in-app WebView instead of an Authentication Session (#2187)
## Summary
Fixes issues on Mac where Safari breaks the login flow and resolves
having to 'trust' a certificate twice after selecting a server.

## Screenshots

![mac](https://user-images.githubusercontent.com/74188/185290738-9e169621-8947-42a3-8a43-7295aabdb7f4.png)

![iphone](https://user-images.githubusercontent.com/74188/185290789-ca69b486-96d9-432f-ad46-d975889d45e3.png)

## Link to pull request in Documentation repository
<!-- Pull requests that add, change or remove functionality must have a
corresponding pull request in the Companion App Documentation repository
(https://github.com/home-assistant/companion.home-assistant). Please add
the number of this pull request after the "#" -->
Documentation: home-assistant/companion.home-assistant#

## Any other notes
<!-- If there is any other information of note, like if this Pull
Request is part of a bigger change, please include it here. -->
2022-10-15 06:34:10 +00:00
Zac West
662eec4c64 Allow trusting otherwise-invalid TLS certificates during onboarding (#2131)
## Summary
During onboarding, allow trusting an invalid certificate chain for most features of the app.

## Screenshots
<img src="https://user-images.githubusercontent.com/74188/170773293-14eeb3fb-2e54-42a5-b6c6-8b07c792ea24.png" width="300">

## Link to pull request in Documentation repository
<!-- Pull requests that add, change or remove functionality must have a corresponding pull request in the Companion App Documentation repository (https://github.com/home-assistant/companion.home-assistant). Please add the number of this pull request after the "#" -->
Documentation: home-assistant/companion.home-assistant#

## Any other notes
Future changes necessary:
- Trusting certificates if an error occurs while the app is running
- Trusting certificates when configuring internal/external URLs
2022-05-27 23:15:14 +00:00
Zac West
3e1dcd22f2 Improve SSL connection errors in onboarding (#2123)
Evaluates the certificate directly to try and get better error messages from SSL errors.
2022-05-08 07:03:23 +00:00
Zac West
2cd08b5392 Fix onboarding timeout when only internal URL is set and we lack SSID info (#1969)
Fixes #1918.

## Summary
During initial onboarding (or even after the fact), we don't have permission to read SSID values due to Location permission occurring later. When only an internal URL was set, we were falling back to homeassistant.local.:8123 which is possibly not valid, rather than using the one we slurped from discovery info.

## Any other notes
Manually entering a URL worked here because it sets the value as 'external URL' which didn't have this issue.
2021-12-04 13:10:55 -08:00
Zac West
8a2d36909e Fix cloud not enabling by default in onboarding (#1960) 2021-12-02 07:16:51 +00:00
Zac West
ec12cd8580 Try both internal and external URLs in onboarding (#1954)
A common case appears to be an internal we cannot connect to (outdated IP address or SSL to a local IP) and an external address we are able to connect to (like Nabu Casa). Detect this and switch to talking to just the external if the internal fails connectivity checks.
2021-11-30 22:13:17 -08:00
Zac West
30a61b423c Show an alert on macOS when opening web auth session (#1953)
Fixes #1951.

## Summary
Alert that we're opening Safari for login after a few seconds of waiting (so it's not distracting as Safari normally opens it). This alert dismisses on its own when cancelling or completing login, so 'cancel' is its only choice.
2021-11-30 20:30:34 -08:00
Zac West
5c104f76e9 Multi-server (#1906)
## Summary
Most, but not all, of the changes necessary to support multi-server throughout the app and all its features.

## Screenshots
| Light | Dark |
| ----- | ---- |
| ![Simulator Screen Shot - iPhone 13 Pro - 2021-11-26 at 21 52 24](https://user-images.githubusercontent.com/74188/143670011-9b9905ac-1b5b-4a82-b9f3-1490465c4ec5.png) | ![Simulator Screen Shot - iPhone 13 Pro - 2021-11-26 at 21 52 26](https://user-images.githubusercontent.com/74188/143670012-0080230a-8f68-4f34-9691-db9f5e825a83.png) |
| ![Simulator Screen Shot - iPhone 13 Pro - 2021-11-26 at 21 52 30](https://user-images.githubusercontent.com/74188/143670015-ceeac558-e039-4639-a186-b5001ab418b8.png) | ![Simulator Screen Shot - iPhone 13 Pro - 2021-11-26 at 21 52 29](https://user-images.githubusercontent.com/74188/143670016-d72bb69d-83f5-4197-a742-59d208467258.png) |
| ![Simulator Screen Shot - iPhone 13 Pro - 2021-11-26 at 21 52 47](https://user-images.githubusercontent.com/74188/143670021-6c90c40f-c2f1-4a33-aad9-da6626e99d9d.png) | ![Simulator Screen Shot - iPhone 13 Pro - 2021-11-26 at 21 52 45](https://user-images.githubusercontent.com/74188/143670024-e99de69d-61d8-4e12-be73-a172242806a0.png) |
| ![Simulator Screen Shot - iPhone 13 Pro - 2021-11-26 at 21 53 05](https://user-images.githubusercontent.com/74188/143670033-1a41ac7e-d4d1-458b-974e-2efdaf8e2288.png) | ![Simulator Screen Shot - iPhone 13 Pro - 2021-11-26 at 21 53 03](https://user-images.githubusercontent.com/74188/143670049-baf4db64-64db-4bfb-88cf-4930f9e5661b.png) |
| ![Simulator Screen Shot - iPhone 13 Pro - 2021-11-26 at 21 53 21](https://user-images.githubusercontent.com/74188/143670053-7ec794f1-857c-4ef6-a92a-5318e90ac6b6.png) | ![Simulator Screen Shot - iPhone 13 Pro - 2021-11-26 at 21 53 19](https://user-images.githubusercontent.com/74188/143670056-a6a5207c-3bba-49fc-b5c6-fc6fa8141f9c.png) |

## Any other notes
- Encapsulates all connectivity, token & server-specific knowledge in a Server model object which gets passed around.
- Updates various places throughout the app to know about and use Server rather than accessing said information through non-server-specific methods.
- Visually requests/notes server in places where it's ambiguous. For example, the Open Page widget will gain a subtitle if multiple servers are set up.
- Allows switching which server is shown in the WebViews. Note that this doesn't take into account multi-window support on iPad/macOS yet.

Most things will migrate successfully however adding an additional server causes things like Shortcuts to start erroring requiring you specify which to use in the particular Shortcut.

Future work necessary:
- Model objects currently clobber each other if their identifiers match. For example, both servers having a zone named `home` means one of them wins the fight for which is known to the app.
- Being remotely logged out on any account causes the app to require onboarding again, when instead it should only do that if the last known server is logged out.
2021-11-27 12:33:46 -08:00
Zac West
d6ea6c4762 Prompt in onboarding for new device name if already taken (#1895)
Fixes #415.

## Summary
When the device name is already taken by a different unique ID than the current device (in other words, when registering would produce a duplicate device name; login->logout is not affected), prompt for a replacement device name to use instead.

This will hopefully eliminate cases where the notify service is confused, and prevent sensor naming conflicts.
2021-10-25 22:36:01 -07:00
Zac West
4c39d8672d Add testing to onboarding authentication/login handling (#1888) 2021-10-25 21:04:05 -07:00