otter icon indicating copy to clipboard operation
otter copied to clipboard

Display if whole album is offline available

Open georgkrause opened this issue 4 years ago • 5 comments

Currently the display if a track is offline available is only available for tracks but not for an album. It would be cool if there would be an "offline available" sign for each album.

georgkrause avatar Jul 08 '20 13:07 georgkrause

I'll look into it, but I'm afraid this Funkwhale PR removing the track list from the /albums/ endpoint might complicate things.

Before this, we might have looped over each track in each album and mark those appropriately. If the track list is not returned with the albums, we're looking at one additional HTTP request per album, before we're even able to process the data.

I'll spend some time considering our option here.

apognu avatar Jul 08 '20 21:07 apognu

@georgkrause I think there's a typo in the subject: "hole" -> "whole"

MightyCreak avatar Aug 02 '20 15:08 MightyCreak

I am currently experimenting with a very large rewrite of Otter, using more "modern" and flexible techniques for fetching, storing and displaying data.

In a nutshell, all data coming from Funkwhale would be inserted in a local database, which can then be queried to be displayed and used by the app. This has several advantages, including for this issue (right now, I can't locally ask for "all tracks contained in an album", which this would need).

I'll put that on hold until I have a clearer view of where Otter's codebase is going.

apognu avatar Aug 08 '20 13:08 apognu

Caching data also comes with its issues. You'll need to ensure the local db is synchronized with the remote db, which is clearly doable by checking the modify dates. But maybe consider doing the "bruteforce" approach first? Get all the tracks of an album and verify which one is already downloaded and which one isn't. If at least one is not downloaded, don't show the badge. With everything done asynchronously, the only effect on the user is that the badge will show a few milliseconds after the page is displayed.

What do you think?

MightyCreak avatar Aug 08 '20 16:08 MightyCreak

I'm really considering the performance issues here. This is an action to be performed for each album shown on screen. Which means at least one separate network request by album, each, in my experience, taking a lot longer than a few milliseconds.

Of course it is possible, but I have to be careful not to incur too much load on the mobile device or the Funkwhale instance. After all, there might be a good reason Funkwhale removed the track list from the album request.

It is something I'll try, anyway, but I'm not convinced.

apognu avatar Aug 08 '20 20:08 apognu