6 Commits

Author SHA1 Message Date
Copilot
ec43a493a2
Convert ConnectionURLViewController to SwiftUI and add snapshot tests (#3956)
## Summary
Converted `ConnectionURLViewController` from UIKit/Eureka forms to
native SwiftUI (`ConnectionURLView`) with snapshot test coverage.

**Changes:**
- **ConnectionURLView.swift** (new): SwiftUI implementation with
Form-based UI
  - URL input with validation (internal/external/cloud toggle)
  - Dynamic SSID/hardware address lists with add/delete
  - Location permission checks (iOS 14+ accuracy support)
  - Local push configuration with doc link
  - Promise-based save with error handling
- **ConnectionSettingsViewController.swift**: Push SwiftUI view via
`UIHostingController` instead of `ButtonRowWithPresent`
- **ConnectionURLView.test.swift** (new): Snapshot tests for
internal/external URL types in light/dark modes
- **ConnectionURLViewController.swift**: Removed (393 lines)

Net: -2 lines, modernized architecture, improved maintainability.

## 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
All functionality preserved from original implementation. Snapshot tests
will generate reference images on first run.

<!-- START COPILOT CODING AGENT SUFFIX -->



<details>

<summary>Original prompt</summary>

> Convert ConnectionURLViewController to SwiftUI and add snapshot tests


</details>



<!-- START COPILOT CODING AGENT TIPS -->
---

 Let Copilot coding agent [set things up for
you](https://github.com/home-assistant/iOS/issues/new?title=+Set+up+Copilot+instructions&body=Configure%20instructions%20for%20this%20repository%20as%20documented%20in%20%5BBest%20practices%20for%20Copilot%20coding%20agent%20in%20your%20repository%5D%28https://gh.io/copilot-coding-agent-tips%29%2E%0A%0A%3COnboard%20this%20repo%3E&assignees=copilot)
— coding agent works faster and does higher quality work when set up for
your repo.

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: bgoncal <5808343+bgoncal@users.noreply.github.com>
2025-11-12 18:04:32 +01:00
Bruno Pantaleão Gonçalves
1a57a377a1
Add screen to block access for "most secure" connection configurations with requirements pending (#3920) 2025-10-28 23:46:20 +01:00
Bruno Pantaleão Gonçalves
7a0e42adc0
Update main window tint (#3572)
<!-- 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 -->

## 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-04-28 16:03:40 +02:00
Fábio Oliveira
d9bf9d423e
Snapshottable preview configuration (#3494) 2025-03-21 15:39:12 +01:00
Bruno Pantaleão Gonçalves
0773a9a8fc
Revert "Create SharedTesting framework target" (#3493)
Reverts home-assistant/iOS#3487
2025-03-20 11:18:58 +01:00
Fábio Oliveira
ab4de6a1f5
Create SharedTesting framework target (#3487)
<!-- 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
Put together a technique to reuse previews to generate and assert
snapshots.
This either saves time writing snapshot tests or makes snapshot tests
more useful by using them as previews.

This is implemented in a couple of libraries already
([example](https://github.com/BarredEwe/Prefire)). Went with a simple
implementation here but a library can be adopted to leverage additional
features and support.

To hold the code for snapshotting, a new framework was introduced,
SharedTesting, to collect all the utilities built for testing. It must
only be imported in test targets.

The preview side of the code lives in the Shared framework.

Applying this new technique will come in a separate PR.

[Original PR](https://github.com/home-assistant/iOS/pull/3484)

---------

Co-authored-by: Bruno Pantaleão Gonçalves <5808343+bgoncal@users.noreply.github.com>
2025-03-20 09:33:55 +01:00