Skip to content

[camera_avfoundation] Implementation swift migration - part 5 #9397

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 4 commits into
base: main
Choose a base branch
from

Conversation

RobertOdrowaz
Copy link
Contributor

@RobertOdrowaz RobertOdrowaz commented Jun 6, 2025

Migrates camera implementation as part of flutter/flutter#119109

This PR migrates a part of FLTCam class to Swift.

This PR includes the second chunk:

  • start
  • stop
  • close
  • receivedImageStreamData
  • setExposureMode
  • setExposureOffset
  • setExposurePoint
  • setFocusMode
  • setFocusPoint

Some properties of the FLTCam have to be temporarily made public so that they are accessible in DefaultCamera.

Pre-Review Checklist

If you need help, consider asking for advice on the #hackers-new channel on Discord.

Footnotes

  1. Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling. 2 3

@flutter-dashboard
Copy link

It looks like this pull request may not have tests. Please make sure to add tests or get an explicit test exemption before merging.

If you are not sure if you need tests, consider this rule of thumb: the purpose of a test is to make sure someone doesn't accidentally revert the fix. Ask yourself, is there anything in your PR that you feel it is important we not accidentally revert back to how it was before your fix?

Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing.If you believe this PR qualifies for a test exemption, contact "@test-exemption-reviewer" in the #hackers channel in Discord (don't just cc them here, they won't see it!). The test exemption team is a small volunteer group, so all reviewers should feel empowered to ask for tests, without delegating that responsibility entirely to the test exemption group.

@RobertOdrowaz RobertOdrowaz requested a review from vashworth as a code owner June 6, 2025 08:48
@RobertOdrowaz RobertOdrowaz marked this pull request as draft June 6, 2025 08:48
@RobertOdrowaz RobertOdrowaz changed the title Feature/camera implementation swift migration part5 [camera_avfoundation] Implementation swift migration - part 5 Jun 6, 2025
@RobertOdrowaz RobertOdrowaz force-pushed the feature/camera-implementation-swift-migration-part5 branch from 8f8fa48 to 8cfe0f2 Compare June 6, 2025 09:04
@RobertOdrowaz RobertOdrowaz marked this pull request as ready for review June 6, 2025 09:05
}

private func applyExposureMode() {
try? captureDevice.lockForConfiguration()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we do defer { captureDevice.unlockForConfiguration() } in case we update the code and introduce an early exit.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you mean an early exit after lockForConfiguration fails? If so I wouldn't add defer because I don't think we have to unlockForConfiguration if lockForConfigurationhas failed (currently we discard the lock result in line with ObjC implementation)

func setExposureOffset(_ offset: Double) {
try? captureDevice.lockForConfiguration()
captureDevice.setExposureTargetBias(Float(offset), completionHandler: nil)
captureDevice.unlockForConfiguration()
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same here

@RobertOdrowaz
Copy link
Contributor Author

This PR falls under the "refactors with no semantic change (e.g. null safety migrations)" test exemption. It's a part of the migration from ObjC to Swift so by design it's covered by the existing tests

@hellohuanlin
Copy link
Contributor

@RobertOdrowaz Please request an exemption in Discord channel.

@stuartmorgan-g
Copy link
Contributor

test-exempt: code refactor with no semantic change

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants