Added a "Tap story" preference with "Toggle full screen" and "Do nothing" options; toggling is the default. This is only available on iPhone. When active, a single tap in a story, not on a link, image, movie, or button, will hide or show the status and navigation bars. On iPhones with a notch (iPhone X, XS, etc), the feed bar at the top is also hidden, so the story can scroll under the notch, using every bit of the screen.
Added a new "Scroll horizontally" preference (in the "Reading Stories" section of the prefs). Defaults off. Note that this is a change in behavior from before; you might want to default it on to avoid confusing existing users. I do prefer the new vertical scrolling behavior.
This was a curly one! I also fixed a bunch of Xcode 8 warnings (for
non-third-party code; I'd like to fix the third-party ones to get to
zero warnings, but don't know how you feel about that).
Funnel all HTML loading through -loadHTMLString:.
Cache base URL (which is always the same) in a static variable instead of computing it different ways and putting in an instance variable temporarily.
Use more intention-revealing variable names.
Only set hasStory when we’re actually loading the story itself.
Only set the font size and line spacing once, in webViewDidStartLoad, because the DOM is always set up by then in my experience.
Only bother to set font size and line spacing if we’re loading a (full) story.
Show the Web view when a full story *starts* to load, as sometimes it may not complete but you still want to see a partially loaded story. (Fixes an intermittent issue with AnandTech; see https://getsatisfaction.com/newsblur/topics/anandtech-straight-up-doesnt-load-on-the-ios-app)
This should have significant performance improvements, leveraging the
full power of the Safari Nitro Javascript engine and out-of-process
rendering. Also as requested, it now observes the progress and removes
the spinner as soon as the base HTML has loaded. Some big changes, but
doesn’t look like anything is broken.