Installation:
Download the files I have provided in the messages to get started. One file I did not send out originally is needed for the Windows 10 installation:
www.zubersoft.com/mobilesheets/downloads/cert.zip
In order to install the appxbundle file, you need to install the certificate included in that zip file. Open a console window with admin privileges (type cmd.exe in taskbar to search for it, right-click and "Run as Administrator"), then enter "cd <directory you extracted cert.zip to>" in order to change to the correct directory, and then run the following cmd:
certmgr.exe /add MobileSheets_2.1.8.0_x86_x64_arm.cer /s /r localMachine root
Then the appxbundle should hopefully install without error. If you do run into errors, you can also drop the appxbundle in the same folder as the the certificate, and then run the powershell script Add-AppDevPackage.ps1 (which may require putting Windows 10 in developer mode first).
Instructions for testing:
The way the library synchronization feature is set up, you use one device as the server, and the other device will connect to that server as the client. The server is the one that is doing all of the real work during the merge. It requests the database from the client, and then runs through the deltas between the libraries and sends or requests files as needed. So you will see all of the output on the server side, and very little output on the client side. There are some important settings for the library sync feature:
1) Folder settings - if you have specific folders you are using on one device and you want those folders to be maintained on the other device (especially if one is Android and one is Windows 10), you will want to use the folder settings. This lets you set up a name/path pair one device, and another name/path pair on the other device. So here is an example:
Android mapping:
Name: Realbooks
Path: /storage/emulated/0/RealBooks
Windows 10 mapping:
Name: Realbooks
Path: C:\MobileSheets\RealBooks
If you set up those mappings, and a file is encountered on Android that begins with /storage/emulated/0/RealBooks, the server will look for a matching mapping name on the other device (Realbooks in this case), and then replace /storage/emulated/0/RealBooks with the path found (C:\MobileSheets\RealBooks). With Windows 10, all folders have to be under the storage location, so make sure you set it up this way otherwise errors will occur during the sync (I may need to add code to enforce this).
2) Data to sync - There are a series of checkboxes for controlling what data is synchronized. I think this is pretty self-explanatory, but it's important to note that song metadata includes a lot of things (metronome settings, link points, bookmarks, all the group assignments, various fields like custom, duration, etc). Checking "Sync groups" will synchronize the groups on both devices (most of which usually occurs through synchronizing song metadata), but what this mainly means is that Setlists will be synchronized between the two, as setlists aren't a metadata field for songs.
3) Merge behavior - This is one of the most powerful settings. If you selelct "Use data form the song that was modified last", MobileSheets will just look at the last modified timestamp on each song to figure out which song's data to use. This isn't always desired though, and when it comes to files, the file last modified timestamp is used instead (which can be different on each device). Therefore, if you want the most control, switch this to "Prompt user for decision". You will then get a merge window where you can see exactly what data will be merged between the devices and you can select exactly what data you want to use (and you can skip things you don't want to merge). The last two options are useful if you only want to merge new songs and groups instead of processing songs that match on each device. The only difference between the last two options is that "Only merge new and prompt user" will use the same prompting mechanism as "Prompt user for decision".
4) Connect using - The only choices are WiFi and Bluetooth, but I thought that I should mention that bluetooth is not adviced for performing large merges. I've seen data loss, so it's less reliable than WiFi, it's much slower, and it's more difficult to set up. I just wanted to provide the bluetooth option if users need to merge in a setting where WiFi is not available.
Mike
Download the files I have provided in the messages to get started. One file I did not send out originally is needed for the Windows 10 installation:
www.zubersoft.com/mobilesheets/downloads/cert.zip
In order to install the appxbundle file, you need to install the certificate included in that zip file. Open a console window with admin privileges (type cmd.exe in taskbar to search for it, right-click and "Run as Administrator"), then enter "cd <directory you extracted cert.zip to>" in order to change to the correct directory, and then run the following cmd:
certmgr.exe /add MobileSheets_2.1.8.0_x86_x64_arm.cer /s /r localMachine root
Then the appxbundle should hopefully install without error. If you do run into errors, you can also drop the appxbundle in the same folder as the the certificate, and then run the powershell script Add-AppDevPackage.ps1 (which may require putting Windows 10 in developer mode first).
Instructions for testing:
The way the library synchronization feature is set up, you use one device as the server, and the other device will connect to that server as the client. The server is the one that is doing all of the real work during the merge. It requests the database from the client, and then runs through the deltas between the libraries and sends or requests files as needed. So you will see all of the output on the server side, and very little output on the client side. There are some important settings for the library sync feature:
1) Folder settings - if you have specific folders you are using on one device and you want those folders to be maintained on the other device (especially if one is Android and one is Windows 10), you will want to use the folder settings. This lets you set up a name/path pair one device, and another name/path pair on the other device. So here is an example:
Android mapping:
Name: Realbooks
Path: /storage/emulated/0/RealBooks
Windows 10 mapping:
Name: Realbooks
Path: C:\MobileSheets\RealBooks
If you set up those mappings, and a file is encountered on Android that begins with /storage/emulated/0/RealBooks, the server will look for a matching mapping name on the other device (Realbooks in this case), and then replace /storage/emulated/0/RealBooks with the path found (C:\MobileSheets\RealBooks). With Windows 10, all folders have to be under the storage location, so make sure you set it up this way otherwise errors will occur during the sync (I may need to add code to enforce this).
2) Data to sync - There are a series of checkboxes for controlling what data is synchronized. I think this is pretty self-explanatory, but it's important to note that song metadata includes a lot of things (metronome settings, link points, bookmarks, all the group assignments, various fields like custom, duration, etc). Checking "Sync groups" will synchronize the groups on both devices (most of which usually occurs through synchronizing song metadata), but what this mainly means is that Setlists will be synchronized between the two, as setlists aren't a metadata field for songs.
3) Merge behavior - This is one of the most powerful settings. If you selelct "Use data form the song that was modified last", MobileSheets will just look at the last modified timestamp on each song to figure out which song's data to use. This isn't always desired though, and when it comes to files, the file last modified timestamp is used instead (which can be different on each device). Therefore, if you want the most control, switch this to "Prompt user for decision". You will then get a merge window where you can see exactly what data will be merged between the devices and you can select exactly what data you want to use (and you can skip things you don't want to merge). The last two options are useful if you only want to merge new songs and groups instead of processing songs that match on each device. The only difference between the last two options is that "Only merge new and prompt user" will use the same prompting mechanism as "Prompt user for decision".
4) Connect using - The only choices are WiFi and Bluetooth, but I thought that I should mention that bluetooth is not adviced for performing large merges. I've seen data loss, so it's less reliable than WiFi, it's much slower, and it's more difficult to set up. I just wanted to provide the bluetooth option if users need to merge in a setting where WiFi is not available.
Mike