- Renamed NewsBlur Dev as NewsBlur Alpha.
- Similiarly changed the bundle identifier.
- Updated Xcode Cloud.
- Added NewsBlur Alpha listing in App Store Connect.
- Hopefully this will get it working!
- Added support for swiping rows to save/unsave and mark read/unread.
- Using Swift Package Manager modules.
- (I tried several third-party implementations to try to find one that works; some commented out code residue, will be cleaned up later.)
- Work in progress on view-based feed detail cell layout, which enables dynamically sizing cells without the ugly hacks used in the past, and will make it easier to support different layouts (like image on top).
- Since the UIPageViewController approach to paging had multiple issues that were proving impossible to work around, I decided to revert to the old UIScrollView-based approach.
- Added an Export Preferences… button in the Preferences view to save a copy of the preferences to a file.
- Added an Import Preferences… button to load a saved preferences file and replace the prefs.
- Added a document type and UTI type for the prefs file (you can provide an icon if you like).
- Enabled iCloud document support to allow saving to shared locations.
- Added a bridging header to enable Swift code to work properly.
- Tapping a story in the widget now opens it in the All Stories river view.
- Tried to get the widget to reload the content on first launch, but couldn’t. I might try again later.
- Reworded the first launch message as “Tap to set up in NewsBlur”, as a placeholder and to help discover the prefs.
- Now just reloads the table when collapsing or expanding, to avoid @nriley’s crash (the animation was pretty much invisible anyway).
- 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.
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.