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

Replace WPImageViewController with LightboxViewController #23922

Merged
merged 18 commits into from
Dec 24, 2024

Conversation

kean
Copy link
Contributor

@kean kean commented Dec 24, 2024

This PR introduces a new LightboxViewController to replace WPImageViewController (Objective-C). The new screen uses ImageDownloader and also supports the zoom transitions introduced in iOS 18.

media-after.mov

Here's how it used to look: before.

Changes

  • Add LightboxViewController (currently only supports one item at a time like the previous ViewController did)
  • Update WPRichTextImage to use AsyncImageView (tested manually)
  • Rewrite PostFeaturedImageCell from Objective-C to Swift and remove ImageLoader usages
  • Remove FeaturedImageViewController (Objective-C) and use natively provided toolbar instead
  • Remove WPImageViewController

Regression Notes

  1. Potential unintended areas of impact

  2. What I did to test those areas of impact (or what existing automated tests I relied on)

  3. What automated tests I added (or what prevented me from doing so)

PR submission checklist:

  • I have completed the Regression Notes.
  • I have considered adding unit tests for my changes.
  • I have considered adding accessibility improvements for my changes.
  • I have considered if this change warrants user-facing release notes and have added them to RELEASE-NOTES.txt if necessary.

Testing checklist:

  • WordPress.com sites and self-hosted Jetpack sites.
  • Portrait and landscape orientations.
  • Light and dark modes.
  • Fonts: Larger, smaller and bold text.
  • High contrast.
  • VoiceOver.
  • Languages with large words or with letters/accents not frequently used in English.
  • Right-to-left languages. (Even if translation isn’t complete, formatting should still respect the right-to-left layout)
  • iPhone and iPad.
  • Multi-tasking: Split view and Slide over. (iPad)

@kean kean added the Media label Dec 24, 2024
@kean kean added this to the 25.7 milestone Dec 24, 2024
@dangermattic
Copy link
Collaborator

2 Warnings
⚠️ This PR is larger than 500 lines of changes. Please consider splitting it into smaller PRs for easier and faster reviews.
⚠️ This PR is assigned to the milestone 25.7. The due date for this milestone has already passed.
Please assign it to a milestone with a later deadline or check whether the release for this milestone has already been finished.

Generated by 🚫 Danger

@kean kean changed the base branch from trunk to christmas-feature-branch December 24, 2024 16:54
@@ -145,6 +147,14 @@ final class AsyncImageView: UIView {
self.errorView = errorView
return errorView
}

override func hitTest(_ point: CGPoint, with event: UIEvent?) -> UIView? {
if configuration.passTouchesToSuperview && self.bounds.contains(point) {
Copy link
Contributor Author

Choose a reason for hiding this comment

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

This was needed to make it work in WPRichTextImage (UIControl, needed to pass gestures to the superview)

@@ -43,26 +35,8 @@ open class WPRichTextImage: UIControl, WPRichTextMediaAttachment {
addSubview(imageView)
}

required public init?(coder aDecoder: NSCoder) {
Copy link
Contributor Author

Choose a reason for hiding this comment

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

The encoding was not used anywhere.

@kean kean merged commit 1e0a902 into christmas-feature-branch Dec 24, 2024
8 of 22 checks passed
@kean kean deleted the task/image-loading-rework branch December 24, 2024 16:57
@kean kean mentioned this pull request Dec 24, 2024
14 tasks
@wpmobilebot
Copy link
Contributor

WordPress Alpha📲 You can test the changes from this Pull Request in WordPress Alpha by scanning the QR code below to install the corresponding build.
App NameWordPress Alpha WordPress Alpha
ConfigurationRelease-Alpha
Build Numberpr23922-9e82544
Version25.6
Bundle IDorg.wordpress.alpha
Commit9e82544
App Center BuildWPiOS - One-Offs #11225
Automatticians: You can use our internal self-serve MC tool to give yourself access to App Center if needed.

@wpmobilebot
Copy link
Contributor

Jetpack Alpha📲 You can test the changes from this Pull Request in Jetpack Alpha by scanning the QR code below to install the corresponding build.
App NameJetpack Alpha Jetpack Alpha
ConfigurationRelease-Alpha
Build Numberpr23922-9e82544
Version25.6
Bundle IDcom.jetpack.alpha
Commit9e82544
App Center Buildjetpack-installable-builds #10263
Automatticians: You can use our internal self-serve MC tool to give yourself access to App Center if needed.

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

Successfully merging this pull request may close these issues.

3 participants