Skip to content
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

[image_picker] Copy exif tags in categories II and III #4738

Merged
merged 5 commits into from
Sep 12, 2023

Conversation

RobertOdrowaz
Copy link
Contributor

Added all exif tags from Category II and Category III (excluding ones that don't have consts in ExifInterface WaterDepth etc.). Those tags include data not related to the structure of the file itself so resizing definitely doesn't invalidate them and thus they should be copied over.

I've also switched from list of raw strings to consts provided be the ExifInterface

I'm not sure show to handle TAG_ISO_SPEED_RATINGS deprecation in this case. The const is deprecated and the tag itself is deprecated in the standard however it would be reasonable to copy it as well to handle legacy files which include it. It was also being copied in the previous versions of this package.

List which issues are fixed by this PR. You must list at least one issue.
flutter/flutter#132827

If you had to change anything in the flutter/tests repo, include a link to the migration guide as per the breaking change policy.

Pre-launch Checklist

  • I read the Contributor Guide and followed the process outlined there for submitting PRs.
  • I read the Tree Hygiene wiki page, which explains my responsibilities.
  • I read and followed the relevant style guides and ran the auto-formatter. (Unlike the flutter/flutter repo, the flutter/packages repo does use dart format.)
  • I signed the CLA.
  • The title of the PR starts with the name of the package surrounded by square brackets, e.g. [shared_preferences]
  • I listed at least one issue that this PR fixes in the description above.
  • I updated pubspec.yaml with an appropriate new version according to the pub versioning philosophy, or this PR is exempt from version changes.
  • I updated CHANGELOG.md to add a description of the change, following repository CHANGELOG style.
  • I updated/added relevant documentation (doc comments with ///).
  • I added new tests to check the change I am making, or this PR is test-exempt.
  • All existing and new tests are passing.

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

@flutter-dashboard
Copy link

It looks like this pull request may not have tests. Please make sure to add tests before merging. If you need an exemption to this rule, contact Hixie on the #hackers channel in Chat (don't just cc him here, he won't see it! He's on Discord!).

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.

Copy link
Contributor

@stuartmorgan stuartmorgan left a comment

Choose a reason for hiding this comment

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

Thanks for the contribution!

  • I read and followed the relevant style guides and ran the auto-formatter. (Unlike the flutter/flutter repo, the flutter/packages repo does use dart format.)

The CI format check is failing; please ensure that the Java is auto-formatted as well.

  • I added new tests to check the change I am making, or this PR is test-exempt.

This change is not exempt, so will need tests before we can proceed with the review.

@gmackall
Copy link
Member

Thanks for adding tests! I'll take a look this afternoon 🙂

Copy link
Member

@gmackall gmackall left a comment

Choose a reason for hiding this comment

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

Thanks for the contribution! This change mostly LGTM, but do you have a link to documentation on where Exif tags are broken into categories? I couldn't find anything clear just by searching.

Also, would you mind adding documentation to copyExif explaining why we select this subset of Exif tags? It probably should have some documentation covering that, and this change seems like a good time to add it.

@RobertOdrowaz
Copy link
Contributor Author

Thanks for the review. https://www.cipa.jp/std/documents/download_e.html?DC-008-Translation-2023-E here you can download the standard. On page 234 there is a table explaining categories and on page 238 is a table matching tags to categories.

I will add the explanation regarding tags chosen later today.

@RobertOdrowaz
Copy link
Contributor Author

FYI couple of tags are missing eg. WaterDepth because ExifInterface is based on older 2.3 exif standard and those were introduced in 2.31. I believe we could copy them as well but we would need to go back to using raw string values

@RobertOdrowaz RobertOdrowaz force-pushed the fix/exif-data-copying branch 2 times, most recently from 39a91d1 to 0435d3f Compare September 5, 2023 07:31
@gmackall gmackall self-requested a review September 5, 2023 17:05
Copy link
Member

@gmackall gmackall left a comment

Choose a reason for hiding this comment

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

This LGTM! @stuartmorgan do you want to do secondary review or shall I find another reviewer?

@stuartmorgan stuartmorgan self-requested a review September 9, 2023 19:21
@stuartmorgan
Copy link
Contributor

@tarrinneal is the ecosystem team codeowner for this plugin, so would probably be the best person to do the secondary review.

Copy link
Contributor

@tarrinneal tarrinneal left a comment

Choose a reason for hiding this comment

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

lgtm, thanks for putting this together!

@stuartmorgan
Copy link
Contributor

It looks like this just needs conflicts resolved, then we can land it.

@RobertOdrowaz
Copy link
Contributor Author

I've rebased and resolved the conflicts. I think we are ready to merge

@stuartmorgan stuartmorgan added the autosubmit Merge PR when tree becomes green via auto submit App label Sep 12, 2023
@auto-submit auto-submit bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Sep 12, 2023
@auto-submit
Copy link
Contributor

auto-submit bot commented Sep 12, 2023

auto label is removed for flutter/packages/4738, due to This PR has not met approval requirements for merging. Changes were requested by {stuartmorgan}, please make the needed changes and resubmit this PR.
You are not a member of flutter-hackers and need 1 more review(s) in order to merge this PR.

  • Merge guidelines: You need at least one approved review if you are already part of flutter-hackers or two member reviews if you are not a flutter-hacker before re-applying the autosubmit label. Reviewers: If you left a comment approving, please use the "approve" review action instead.

@stuartmorgan stuartmorgan added the autosubmit Merge PR when tree becomes green via auto submit App label Sep 12, 2023
@auto-submit auto-submit bot merged commit 4512e4d into flutter:main Sep 12, 2023
70 checks passed
@bartekpacia bartekpacia deleted the fix/exif-data-copying branch September 12, 2023 15:02
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Sep 12, 2023
engine-flutter-autoroll added a commit to engine-flutter-autoroll/flutter that referenced this pull request Sep 12, 2023
auto-submit bot pushed a commit to flutter/flutter that referenced this pull request Sep 12, 2023
flutter/packages@ef0c65e...e04ba88

2023-09-12 stuartmorgan@google.com [tool] Add a package inclusion filter (flutter/packages#4904)
2023-09-12 me@nils.re [flutter_markdown] Fix changelog regarding minimum supported SDK version (flutter/packages#4851)
2023-09-12 stuartmorgan@google.com [ios_platform_images] Add integration tests (flutter/packages#4899)
2023-09-12 robert@odrowaz.dev [image_picker] Copy exif tags in categories II and III (flutter/packages#4738)
2023-09-11 233583+mossmana@users.noreply.github.com [google_maps_flutter_android] Fix for testToggleInfoWindow persistently flaky  (flutter/packages#4768)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages-flutter-autoroll
Please CC flutter-ecosystem@google.com,rmistry@google.com on the revert to ensure that a human
is aware of the problem.

To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
sybrands-place pushed a commit to sybrands-place/packages that referenced this pull request Sep 14, 2023
* main: (83 commits)
  go_router_builder: support the latest pkg:analyzer (flutter#4921)
  Replace collection type lints with more general lint (flutter#4912)
  Roll Flutter from 219efce to 4e7a07a (30 revisions) (flutter#4910)
  [camerax] Implement `startVideoCapturing` and `onVideoRecordedEvent` (flutter#4815)
  [tool] Add a package inclusion filter (flutter#4904)
  [flutter_markdown] Fix changelog regarding minimum supported SDK version (flutter#4851)
  [ios_platform_images] Add integration tests (flutter#4899)
  [image_picker] Copy exif tags in categories II and III (flutter#4738)
  [google_maps_flutter_android] Fix for testToggleInfoWindow persistently flaky  (flutter#4768)
  Roll Flutter from 7c28e8e to 219efce (16 revisions) (flutter#4901)
  [url_launcher] migrating iOS tests from objc to swift (flutter#4758)
  Roll Flutter from da676f7 to 7c28e8e (20 revisions) (flutter#4879)
  Bump actions/upload-artifact from 3.1.2 to 3.1.3 (flutter#4863)
  Roll Flutter from aea4552 to da676f7 (28 revisions) (flutter#4874)
  [webview_flutter_android] Added the functionality to fullscreen html5 video (flutter#3879)
  [tool] Add Android dependency (gradle) option to update dependencies command (flutter#4757)
  [camerax] Implement resolution configuration (flutter#3799)
  Manual roll Flutter from 685ce14 to aea4552 (64 revisions) (flutter#4870)
  [rfw, ci] Regenerate goldens, manually roll flutter#4835 (flutter#4862)
  Bump actions/checkout from 3.6.0 to 4.0.0 (flutter#4845)
  ...
@reidbaker reidbaker mentioned this pull request Sep 15, 2023
11 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
autosubmit Merge PR when tree becomes green via auto submit App p: image_picker platform-android
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants