- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
Folder headers were misplaced due to adding the refresh control as a subview instead of setting the table property; jumping to the top was due to hiding search field, now only does that if at the top, and does it animated.
Purchases could fail if they require approval, and complete after leaving the premium view, or on next app launch. So I’ve split the premium business logic into a separate manager that maintains a permanent transaction observer.
Works just like on the website, except easier to find. :) Note that I had to add the Cmd key to the Add Site and Select Everything keyboard shortcuts, so the A and E characters could be typed in the search field.
* master: (398 commits)
Another fix for premium sub activation.
Fixing issue with activating premium when already premium.
Fixing premium dialog crash.
Only auto-enable every feed if a free user is moving to premium
New Android phones for scrteenshots.
Fixing major Stripe bug where changing a CC# would not correctly update the subscription, so some users would change their credit card but never receive a bill, either immediately if they were expired or on the correct expiration date. Both cases now fixed.
Android v8.0.0.
Fixing crash on network change.
Handling no host error in text importer.
Better handling of broken original text.
Handling twitter error
Handling missig feed on page importer.
Fixing missing schema exception.
Migrating to jQuery 2.2.4.
Incorrectly skipping title-less stories.
Switching to working NewsBlur Notifier Plus Chrome extension by @JoshSchreuder. https://gitlab.com/JoshSchreuder/newsblur-notifier-plus
Fixing copied/saved toasts on ios.
Preventing double counting of Stripe payments.
Better handling of broken page server.
Fixing handling of invalid feed url on share story feed finding.
...
These indices are used in appDelegate.dictFoldersArray and as UIButton tags.
Removes a number of places where a number-to-name lookup was done for no apparent reason when the items are in appDelegate.dictFoldersArray already.
Fixes issue where all stories are now at index 3, not 2, and shift-E was showing infrequent stories on iPad because the index was not updated when infrequent stories were introduced.
* master: (247 commits)
Handling issue when story has no original content.
Switching to Mercury text parser, which is an upgraded Readability. Using old readability as backup.
Baseline autolayout changes for story page control for iPhone X, but a lot needs to happen to get sizing correct for story traversal buttons and story web views.
Fixing feed detail view for iPhone X.
Updating twitter avatar photo on homepage.
Removing links to Readability. Fixes#1045.
Removing breaking text importer UTF-8 encoding.
Wrong margins on iPhone X.
Attempting to fix notifier on iPhone X.
Fixing font size selector styling.
More UI in background thread warnings.
Fixing long press menu location on feed titles.
Show all story tags.
Fixing warnings.
Adding feed list and story list font size segmented controls to feed and story menus. Also changing feed and story title list to be variable height depending on font size.
Fixing badge unread counts for users without any notifications.
Fixing layout of unread counts on dashboard top.
remove hardcoded background resource IDs in favour of using theme engine
migrate some hardcoded theme logic to use theme engine
fix broken colors when training and un-training story metadata
...