Posts: 4
Threads: 3
Joined: Apr 2018
Reputation:
0
I am a long time user of this nice product. Until now I used to transfer my library from my Android tablet to my Wind10 PC or vice versa via the backup function using the common Google Drive as backup directory. I changed now my working environment and I want now to use on my workplace at the same time both devices with same content and with the possibility to change content arbitrary on both devices. I tried now to use the "library synchronisation" using my WIFI network. It works, but using it it is necessary to trigger a sync every time I want to see the changes I made on one device on the other.
My question: Is there a function which synchronizes this two devices via WIFI on the fly without manual sync triggering (if both devices are switched on)? Can I use e.g. a (common) Google Drive Directory for storing (and changing) the Mobile Sheets Files?
I tried to find a similar question in the forum or function in the handbook, but no success.
Thanks for any solution I could use.
Wolfgang
from Austria
Posts: 13,355
Threads: 301
Joined: Apr 2012
Reputation:
235
There isn't an automatic synchronization option at the moment, although some users have accomplished the same thing by just performing a file sync using standalone tools. If you wanted to do this, you'd need to enable Settings->Storage->Expose Database on the Android device, then sync the storage location (you must use a folder on the internal storage, if you use an SD card the database will be stored at /storage/emulated/0/Android/data/com.zubersoft.mobilesheetspro/files). On the Windows side, you'd want to use the default storage location and then sync that folder to the same location. Then in theory, as long as you are letting MobileSheetsPro manage your files on the Android device, everything should sync properly between the two without any additional changes.
I am going to look into an automatic sync option in the future, but the one thing I haven't figured out yet is how I should handle conflicts between multiple devices if they try to sync at the same time, because I'm not currently tracking deletions in the database. If I keep it dead simple and just do the equivalent of a file sync, then the database on one device would just overwrite the database in the sync location, so you wouldn't want to be making changes on both devices at the same time while synchronization is active otherwise you could lose changes. The problem with a file sync approach is, if I want the other device to reload the database after changes are made, I can't just constantly be reloading the entire library to figure out what has changed as that could kill performance (I'm thinking about the situation where you might have five or six devices all synchronized to one location and one user is making a lot of changes and the other devices are grabbing those changes every minute or so). If I try to leverage my current synchronization capabilities, this would handle conflicts and merges far better, and I would just take changes from whichever device modified something last, but the only way this is going to work well is if I track deletions so the other devices can know when they need to delete something versus recreating it. There are a lot of complex things I would need to figure out how to handle with this kind of a feature, as there are a lot of potential error scenarios. What if one user is viewing a song that another user deletes, and then the synchronization happens in the background and that song needs to be deleted? Should synchronizations only happen while songs are not being viewed? What if one user wants to get updated annotations that another user is actively making and they are viewing the same song?
Mike
Posts: 4
Threads: 3
Joined: Apr 2018
Reputation:
0
Thank You for the answer and also for sharing Your thoughts about sync. I think I understand now where the problem is. I will try Your proposal.
Posts: 13,355
Threads: 301
Joined: Apr 2012
Reputation:
235
On Windows, the database is stored under C:\Users\<your username>\AppData\Local\Packages\41730Zubersoft.MobileSheets_ys1c8ct2g6ypr\LocalState and can't be moved due to limitations with the SQLite library. As long as that is the folder you are synchronizing, then in theory, yes, what you have described will work. I have seen plenty of cases where OneDrive won't properly sync files though, so I'm not sure how well it will work in practice. I personally would rather have control over when the sync happens versus waiting for it to happen and not knowing if OneDrive is finished synchronizing or not. You will have to test to see if it meets your needs.
Mike