OPDS: How to handle outdated feeds in the user interface? #20
Unanswered
mickael-menu
asked this question in
General
Replies: 1 comment 2 replies
-
Note that @HadrienGardeur argued that refreshing the navigation back stack is not necessarily useful or desired in this context (e.g. there's the same issue in a Web Browser, and they don't do anything fancy). According to him, the most important things are:
I think that a monitoring facade still makes sense to simplify the UX layer, even if the scope might be different. |
Beta Was this translation helpful? Give feedback.
2 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
@qnga and @io7m came up with an interesting question that surfaced with SimplyE and that we also encountered with Aldiko.
While browsing through an OPDS feed, a user might open several successive screens, e.g. publications feed -> details of a publication -> another related feed, etc. But if the user triggers an action (borrow, hold, acquisition) on one publication, going back in the screens stack might show outdated information.
This problem can also occur outside a navigation flow, for example a Home screen showing the user OPDS bookshelf should be refreshed when the user borrow another publication.
Let's explore some possible solutions and talk about it. Feel free to share more ideas!
Solution 1: Refresh when reappearing
A simple way to solve this would be to refresh the feeds every time an OPDS screen regains focus. This is not energy and data efficient, and the user might still see outdated information for a few seconds while the feed is being refreshed.
Solution 2: Selective refresh when reappearing
Same as 1, but only if a particular event (borrow, hold, etc.) was triggered down the navigation stack.
Advantages
Disadvantages
Solution 3: Monitoring layer/facade over the OPDS catalog
Instead of having one-shot requests in the UX layer, the screens could subscribe to an
Observable
feed which will automatically get updates. It's similar to observing an SQL query.The observable feeds could be provided by a new facade/controller wrapping an OPDS catalog, with the following responsibilities:
Observable
responsesrel
of the requested link can be used to determine what will refresh theObservable
, for example:http://opds-spec.org/shelf
refreshes on any borrow/buyrel
information of the requested links, e.g.borrow
,hold
,addToWishlist
, etc.Observable
feeds when needed, e.g. if the feed contains a publication identifier that was part of an event.Advantages
Disadvantages
Beta Was this translation helpful? Give feedback.
All reactions