PhilippC / keepass2android

Password manager app for Android
https://play.google.com/store/apps/details?id=keepass2android.keepass2android
GNU General Public License v3.0
4.82k stars 390 forks source link

Perform DB sync in the background #1144

Open cornercase opened 4 years ago

cornercase commented 4 years ago

I am hoping for the ability to load the local copy of a database and perform a sync in the background. Normally, when I first load the app, the sync dialog blocks interaction with the app while the databases sync with my Nextcloud instance. I have an auto-loading database set up, which doubles the amount of time required to load the app. It would be preferable to load cached versions of the databases immediately and perform the sync in the background so as not to block interaction. I'm happy to work on this myself but would like to discuss the best approach before starting.

PhilippC commented 4 years ago

there are two points which should be considered when heading for this:

I am not saying it's not possible to do this, but it's not trivial to make this work (and it should work also when the app is in the background etc.)

finsterwalder commented 10 months ago

I would also like this feature. But reading Philipps comment I must say, that it's not soooo important for me. ;-)

Just some additional thoughts from my side for when you actually tackle this feature... For me it should ideally work silently in the background most of the time. In particular for cases, that don't have any collisions. Because it would also be annoying, if I would see a popup dialog, that the remote DB was updated and needs to reload or something like that, just a few seconds after I opened the app.

And maybe it makes sense to have a threshold. Only when updating the remote DB does not finish within a few seconds, then open the local version and keep updating in the background. Because waiting something like 4 seconds would not hurt much. But longer than that and it starts to get annoying. But this might strike a good balance for those cases, where updating really is slow, but prevent problems for cases, where the connection is actually quite good and the update is fast enough.