Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Search is blocked while database updates are queried #609

Closed
Nightfirecat opened this issue Mar 7, 2023 · 4 comments
Closed

Search is blocked while database updates are queried #609

Nightfirecat opened this issue Mar 7, 2023 · 4 comments

Comments

@Nightfirecat
Copy link

After the app is updated, it will search for card database updates on launch. During this somewhat-lengthy process, I'm unable to use the app's card search function to, say, add cards to a trade. I'd expect the app to be able to rely on a cached card database to search for cards from so that it's not blocked waiting for its card database update query to complete.

@AEFeinstein
Copy link
Owner

Yeah, this has gotten worse lately. Way long ago othe database update would happen in the foreground, which was intrusive but clear. At some point I switched it to a background which was both quieter and faster but would would have times where concurrent access wasn't allowed. Patches were small (a few sets at most) and not very frequent (whenever a new set was added).

Maintaining my own scraper got to be too onerous, so I switched to using MTGJSON. The upside was much higher quality data, but the downside was much more frequent (weekly) and larger changes. This made the background update service problem much more visible.

Familiar uses Android's SQLite database, and I do not believe there is a way to copy the whole database, update the copy, and then swap it in when done. If you know how to do this, please fork Familiar and have at it! But for real, I don't have a ton of time for Familiar these days and will take any help I can get.

Another option I've considered is to provide whole database updates rather than patches. These would be much larger to download (~20mb) but would swap in real fast. I used to care very much about not using too much data, but I could have this only download over wifi.

The final thought is to have a foreground warning that the database is updating, back like the real old days.

@AEFeinstein
Copy link
Owner

Switched back to a foreground warning in 606538e because Google denied Familiar's usage of foreground services. It was declared as TYPE_DATA_SYNC, so I have no idea what they actually want...

@HyperEpsilon
Copy link

Just adding in my thoughts, but I would absolutely love the ability to download the whole DB. I'm personally not concerned with the larger data usage if it means the update is quicker.

But I think having it as an option (defaulted off) would be the better option.

@AEFeinstein
Copy link
Owner

First https://github.com/AEFeinstein/Mtgjson2Familiar/ would have to generate the SQLite database, rather than a JSON file per-expansion and comprehensive rules in plaintext.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants