A large amount of change primarily to the view model layer, to make reasoning about the content reveal/hide state easier.
To prevent terrible scrolling jags while allowing the cells to be shorter when hiding content, the layout changes for content display state now happen before the cell is returned by the datasource provider and the tableview is reloaded when a status’s display mode changes.
Instead of publishing a list of filters, the StatusFilterService now publishes a struct that can apply those filters to any status in any context.
Also, we now use V2 of the filters API, which distinguishes between hide and warn.
Fixes #1354 [BUG] Mastodon iOS App Ignores "Hide completely" Filter action Setting
Filters used to be applied only at the display stage.
There is remaining work here:
- Hide filters still will not hide until we update Filter to use API V2.
- Filter work is now duplicated and should be made more efficient.
- It may be important to hold on to statuses even if they are hidden, so that they can be shown if the filter changes.
Contributes to #1354 [BUG] Mastodon iOS App Ignores "Hide completely" Filter action Setting
Every time, the account gets updated, the `avatarURL` is updated as
well. But not only new image was set. Before setting the image, the
button-image was reset to the placeholder first. After that, the
downloaded image was applied.
Now we don't reset the image to the placeholder, but set the placeholder
once.
Also: Cleanup.
* Add missing actions, hack way to inject options into menu (IOS-229)
* Implement new menu structure (IOS-229)
This doesn't work-work yet, as functionality isn't implemented yet. Also: Special options and traits.
* Add preferredElementSize to submenus (IOS-229)
* Copy Link (IOS-229)
* Open In Browser (IOS-229)
* Boost status from menu (IOS-229)
* Favorite status from menu (IOS-229)
* Fix following-status in menu and don't cache menu (IOS-229)
* Add some destruction, add localization and use "Boost" instead of "Reblog" (IOS-229)
* Use struct instead of tuple for those menu-parts (IOS-229)
* Begin fixing of "Load More" on Home Timeline (IOS-266)
* Don't show "Load More" if last status is first existing (IOS-266)
* Insert missing items upon "Load More" (IOS-266)
* Implement sinceID usage when loading latest posts (IOS-266)
* Change updating of items on Load More(IOS-266)
* Do not try to modify datasource directly (IOS-266)
* Improve load more (IOS-266)
* Fix load more using maxID and limit to 20 items (IOS-266)
* Implement loading missing status in public timeline (IOS-266)
* Implement subsequent "Load More" (IOS-266)
* Make loadMore(item:at:) API more Swifty (IOS-266)
* Address PR comments (IOS-266)
* Replace icons with SF Symbols (IOS-232)
* Remove visibility-icon from Status (IOS-232)
* Use relative time formatter and switch position of timestamp/user (IOS-232)
* Set TimelineSelector-Button-Position (IOS-232)
Shouldn't switch now any longer. Also: Refactoring.
* Fix position of the Home-icon in TabBar (IOS-232)
TIL: Don't set an empty string, otherwise the position of the TabBarItem-icon breaks
* Add unlisted as option to post (#250)
* Replace menu-icons with SF Symbols to match other platforms (#250)
* Replace earth with SF-symbol (#250)
* Use SF Symbols for visibility (#250)
* Fix image-editing (#1244)
Probably introduced in 76304e5 and we just missed that :)
* Removed unused property (#1244)
* Don't allow tapping on followers/followees when editing my profile
* Remove obsolete code
relationship-update on viewDidAppear is not needed anylonger as we use update user/relationship using notifications like in the good ol days
* Make relationship optional and use switch-pattern-matching for button-configuration
* Don't change relationship when relationship is updating
* [WIP] don't toggle, but just set booleans.