PR: Mark cached articles read if they're read in online mode (Android)

Could you please give me (username ‘ekalin’) fork rights on gogs?

I have some ideas for improving the offline mode of the Android client. The first one is to mark as read articles that are present in the offline cache if they’re read in online mode. (And mark as unread if the user marks as unread.)

sure, done.

i have to mention that i’m not interested in increasing complexity in offline mode because in my opinion the whole thing has been largely irrelevant for years now. so unless your proposed patch is really tiny and simple i’m probably not going to merge it.

i would rather remove offline mode altogether tbh

To me offline mode is relevant. :wink: I don’t use it often, but it can be quite helpful when I’ll be without conectivity for a while.

I’ve opened a PR. This change is small, I guess.

I have some other ideas, though:

  • An option in “Go offline” to go to offline mode without download new data. This shouldn’t be a big change.
  • An icon in headlines displaying whether the article has a cached version offline. This would be a bigger change (but it’s just cosmetic, so it’s not so important).

Also, downloading media often fails for me. I suppose it has something to do with bad network connections, but I’ve not been able to reproduce. Ideally I’d like to fix this, but I’m not even sure if there’s anything that can be done.

But if offline mode is on its way out, it might not be worth to try to implement those changes.

like i suspected from the beginning, you’re trying to use offline mode the way it was never supposed to be used without reworking it properly: it was only ever designed for one “go offline -> read stuff -> go back online” cycle, nothing else.

if you want a proper offline-first design and two-way sync you’ll have to start with reworking the entire app, not just offline mode specifically, to use some kind of persistent storage everywhere instead of trying to bolt together ephemeral memory-only storage with separate storage for offline mode with hacks and kludges.

you’ll also have to implement a sync adapter (while writing about ten kilometers of boilerplate code), etc. good luck with that.

i didn’t want to do any of the above (and i preferred how the app worked without trying to sync stuff all the time, as opposed to a different tt-rss client i tried to use, because news is essentially ephemeral anyway) but people were whining for offline mode so i wrote something that was specifically limited to do what it does (while allowing me to keep offline code almost entirely separate from main app code i was actually interested in working on) and nothing else.

this was 2011 and i could justify time spent on it, nowadays i’d probably just tell them to go get a better network connection instead.

anyway, instead of a proper rework (which would be hard) what you’re proposing is to pile hacks on top of the current (consciously limited) design to make it sorta-kinda work similarly to what i have outlined above. in my experience, this is not a sustainable way of application development.

what’s going to happen is that hacks are not going work right, they never do. i’ll have to fix things indefinitely long after you personally lose interest because i feel responsible or, worse, rework offline because i don’t like half-assing things. all of it is what i’ve never wanted to do in the first place. which is why i’m not interested.

it’s 2020, get a better network connection.

I think your proposal is overly complex - I don’t need (nor want) constant offline caching and full syncing. As I said, I use offline mode only in specific occasions. In this occasions a little extra state sharing between online and offline modes would help. But downloading articles for offline mode should still only happen when requested, for example.

But thanks for letting me know you’re not interested early on, so no effort is wasted.