Commit graph

3 commits

Author SHA1 Message Date
Tim Oliver
062b2f9f70 Bring Test Coverage back to > 99% (#1654)
Summary:
## Changes in this pull request

It's been a few years since I did an audit of our test suite. The majority of changes to IGListKit since then were adding additional error checking and hardening, so this was relatively straightforward.

### Checklist

- [x] All tests pass. Demo project builds and runs.
- [x] I added tests, an experiment, or detailed why my change isn't tested.
- [x] I have reviewed the [contributing guide](https://github.com/Instagram/IGListKit/blob/main/.github/CONTRIBUTING.md)

Pull Request resolved: https://github.com/instagram/IGListKit/pull/1654

Reviewed By: jurmarcus

Differential Revision: D91551666

Pulled By: TimOliver

fbshipit-source-id: c89c7a45abebb44dbf50b252bfadc9a7c2928683
2026-01-27 21:10:09 -08:00
Maxime Ollivier
59365a14b5 attach IGListViewVisibilityTracker to view
Summary: We'll need access to the tracker from different parts of `IGListKit`, so lets attach it to the view itself.

Differential Revision: D60691860

fbshipit-source-id: 87987b2939a0e13d733d25382ca4384fdfdd875e
2024-08-06 08:01:28 -07:00
Maxime Ollivier
3456dcbc1b create basic IGListViewVisibilityTracker
Summary:
We want to give higher diffing and coalescing priority to `IGListAdapters` that have a visible `UICollectionView`. Let's create `IGListViewVisibilityTracker`, which uses the views `window`, `hidden`, and `alpha` properties to get a best guess ...

I've also noticed that a few view-controllers call `-performUpdate` even before their views are in the window, so their updates will be slowed down. Lets add `IGListViewVisibilityStateNotVisibleEarly` to make that distinction. A time comparison is not ideal, but there's isn't a great way to tell if a VC is about to be visible without making app specific assumptions.

If we see promising results, we can go even further and look if the frame is in the visible bounds of the window, but that's a bit more complicated and expensive. Lets start simple.

Differential Revision: D60691857

fbshipit-source-id: dccdd6f59210710f5e0c1ca4150336c1381b875b
2024-08-06 08:01:28 -07:00