ccomeaux / boardgamegeek4android

BoardGameGeek application for Android (unofficial)
GNU General Public License v3.0
228 stars 47 forks source link

Partial sync issue #140

Open Kaligula0 opened 4 years ago

Kaligula0 commented 4 years ago

That's not the first time. It happened to me today, yesterday and in previous versions, but it I didn't track it. Yesterday I added 8 games to my collection via BGG website (from 86 to final 94). Went to the app, it showed 86. I said O.K. and recorded a video (it's private on YouTube): 1) I swiped down, sync finished, nothing changed. 2) I found a game (Abyss: Leviathan) via Search, opened [My Games] tab, it showed "The game isn't in your collection", but rapidly something synced, the text disappeared and the tab was empty (showing only "Synced 0 mins ago"). 3) When I swipe down, the proper Collection status appears. 4) After coming back to Collection the new game was on the list but other new games didn't. The app showed 87 games in collection. 5) I swiped down, nothing changed. 6) I repeated steps 2-4 with game "Tagi" (well, not exactly the same). The app showed 88 games. 7) After the video finished I clicked "Re-sync entire collection" from settings and all new games appeared at once. The app showed 94 games.

Maybe sth changed in API? Or is the response cached on server side?

Kaligula0 commented 4 years ago

I have 7 Wonders in collection and today I added (as a test) to my collection another copy (Czech) of 7 Wonders (I don't know if this makes difference; I don't know if they're stored as related items or two different items). And swiping down synced this one ¯\(°∩°)

BUT – what I was trying to test. It seems to me that swiping down on the [My games] tab does nothing. It never syncs any details that I updated on BGG website – I have to open item details, then swipe down, then go back to [My games] tab and then everything is updated. Also it didn't sync the Czech copy – until I went back to Colection list and swiped down (then I went to 7 Wonders and [My games] tab and everything was synced, I saw both copies).

ccomeaux commented 4 years ago

When you request a collection from the API, it often returns something similar to "this is expensive, come back later". It will continue to respond this way on subsequent requests until the server has assembled the response, then it's sent like a typical response. So

There's nothing for the app to do, but to continue to retry (it does so with an exponential backoff) until it appears as if by magic. The time until a good response is a factor of how big of a collection you are requesting and what else the BGG server is processing. Your example isn't a very large collection, so you may be requesting this at a busy time of day for BGG.

I will confirm that the My Games tab is working as designed.