- Done; it’s first in the story settings menu, to be consistent with others.
- I resisted replacing FontSettingsViewController with a MenuViewController usage; that would simplify the code and future changes, but would’ve taken more time now.
- Added a "Download text" preference. Defaults on.
- If on, the text is fetched for feeds that are in text view when fetching new stories.
- The text is fetched after stories, and before images, using a similar mechanism.
- The text is stored in a new "cached_text" database table.
- The text is deleted when the story is deleted.
- When displaying a text view, the cached text is used if available, otherwise it is fetched as before.
- Replaced the non-functional multi-select segmented control in notification popover with four buttons, that are drawn similar to an iOS 13 segmented control.
- Now reloads the feeds list when the preference is changed.
- This also fixed some other preference changes, since the notification handler passes a different class for multi-select options.
Note that need to pull-to-refresh to make the preference take effect, since it sorts on loading the feeds. I think that’s reasonable; not something people would change often.
This was a tricky one to reproduce and trace. I added a safety check for the master navigation view getting too big. I also fixed a couple of other Catalina bugs: a crash on launch due to incorrectly creating an image, and a NaN issue with drawing.
- Reproduced by scrolling a story to go full-screen, double-click to show the Safari browser view, interactively go partially back, then scroll in the browser.
- Now shows the navigation bar when using the browser, since the browser shows it, so they’re consistent.
- Fixed the story appearing to be unread after returning to the app.
- Fixed the "scroll horizontally" preference appearing twice.
- Fixed the add feed and action toolbar buttons sometimes appearing blue.
- Fixed issues related to the way the feeds list is set up, that caused tapping on folders and feed detail buttons to fail (that was very tricky to narrow down).
- Fixed the FTUX presentation on iPad.
- Fixed tapping when traverse is visible.
- Tweaked the autoscroll controls position on iPad to line up with traverse when visible, or go a bit higher when not (to avoid the home indicator).
Moved the 1-second load (which was added for issue #1152, to cope with slow avatars) to after the full HTML is generated, so it won’t fail. Also changed to GCD `dispatch_after` instead of `NSTimer`.
- Implemented the feature, showing or hiding hidden stories, only offering it if there are some.
- I used the “all” icon in the menu as a placeholder; please provide one you’d prefer.
- Since the crusty old menu mechanism doesn’t handle dynamic items well, I took this opportunity to migrate the feed detail menu to the block-based MenuViewController mechanism, resulting in significant code reduction.
- Enhanced MenuViewController to support the theme controls etc, so other menus can be more easily migrated next time they need to be updated.
When there are changes, the “Show Changes” button appears before the date, like on the web. Tapping loads and displays the changes, and the button changes to “Hide Changes”, which works without loading. The insertion and deletion highlights support style-appropriate colors.
- Now doesn’t use estimated row heights, since that seemed to cause the jitter.
- Increased efficiency by caching row heights.
- The cached row heights are reset when reloading the table etc.
Improved it so interactive back gesture works when the navigation bar is shown, or when scrolling between stories vertically. As you originally pointed out, scrolling between stories horizontally conflicts with the back gesture.
It is using the system gesture, so I can’t change the gesture behavior.
The autoscroll controls will now hide with the traversal when scrolling. They still appear on tap, or when going to a new story, to make it easy to re-enable scrolling. Of course, they never appear if set to manual scrolling.
- Fixed offset short stories.
- Moved autoscroll controls closer to bottom on iPhone or compact.
- Moved autoscroll controls between traversal buttons on regular iPad.
- Added a "Restore position" preference in the "Reading Stories" group, with options to restore the previous state on launch always, within a specified interval, or never.
- When within the indicated interval, the app restores the feeds, feed detail, and story selections and scrolling positions.
- The active story is marked unread to ensure it remains available for restoring, and re-marked read when resumed.
- NOTE: only supported on iPhone for now. I’ll add iPad support later.