MobileSheets Forums

Full Version: Switching library
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
As I said I just noticed that this feature is newly included.

I think it would be better placed in the overflow menu than in the settings, especially if one switches between libraries more frequently.

Here's my problem: I created a second library. Before I switched it to active I duplicated the default library and renamed it and the autobackup to the new library (deleting the empty entries).

I thought I could load the new library with the contents of the default (and then reduce it by deleting the entries I don't want in my second slim library).

It didn't work though. Where am I going wrong?
No word on this yet?
I'll consider adding an option to switch libraries to the overflow menu, but it's something that I think the majority of users won't need (and it comes with some complexity), so I'm not sure if I want it to be quite that visible. I'll have to think about that some more.

As far as the issue you encountered, in theory it sounds like it should work. If you have mobilesheets.db, and you want to create a second library that is a copy with fewer songs, you would first create a new library under Settings->Library Settings->Switch Library. You would want to name the new library the same thing as the database file you will copy over. So for this example, the default library is mobilesheets.db, and the copy will be slim.db. So you create the slim library in the settings, then completely close MobileSheetsPro, then copy mobilesheets.db and rename it to slim.db. Now restart MobileSheetsPro and you can start editing the library as you desire.

I tried (on a clean install, MSPro manages files):
  1. Import a song from Telegram -> imported as 4_604...703.cho
    Is this the name that the app (in this case, Telegram) supplies to MSPro?
  2. Switch to (new) library 'alt'
  3. Import same song from Telegram -> imported as 4_604...703.cho
    Even though the file already exists, MSPro allows it to be imported again.
  4. Switch to default library
  5. Error dialog: File 4_604...703.cho already exists (replace/rename/use)
    I would have expected an error in step 3, not here
  6. Hit Cancel, MSPro gets into an endless "Initializing database".
I hoped that this would work, i.e. that both libraries would use different storage folders.
No, I did not force different storage folders to be used when switching libraries as that would have caused a significant ripple across all three applications (Android, Windows 10 and the companion app). I was hoping to implement the library switching without it introducing potentially serious bugs and it just seemed safer not to have to modify the code that is used to assign and look up file paths. I also didn't think users would necessary want to have multiple copies of files in their libraries (as far as storage space, this is more significant when dealing with a lot of PDFs). As far as the error you encountered, I agree that the file conflict dialog should have been displayed after step #3. I will have to look into that to see why it wasn't shown until after you switched the library and exited the settings screen. As far as the endless dialog, that seems to indicate a deadlock occurred somewhere, most likely with the database. I certainly never encountered that during any of my testing, so I hope I can reproduce it using your example. It's probably related to using an external application to import the file into MobileSheetsPro versus using Import->Local File. 

If users would like me to take the library switching further to make each library truly independent from the other libraries (meaning different storage folders are used to store all the files for each library), I can do this, but I'm going to want a team of beta testers to help me verify I haven't broken any functionality. I'm starting to think I may need a test team like this in general, as I'm not able to catch all of the issues that can be caused in each update as I don't have enough libraries (or time) to test every possibility. This could slow down the release dates for updates, but that's certainly preferable to updates with significant bugs. If anyone is interested in regularly testing updates before releases, please let know.

If I change the code to use a separate storage folder per library, I will also have to think about how I'm going to fix libraries that have already been created. I'm not really sure I have a great answer for that at the moment. Perhaps the change will only apply to new libraries created after the code is updated.

> As far as the issue you encountered, in theory it sounds like it should work. 

Well, I tried it with Win10. After I created the new one and replaced/renamed the new db with the old one and set the new one as active I only get a white MSP screen with 0 entries.

> I also didn't think users would necessary want to have multiple copies of files in their libraries (as far as storage space, this is more significant when dealing with a lot of PDFs). 

I agree. I want my different databases to share the same filebase. If one wants duplicate entries for some reason they should be created/imported manually with different names or folders but not by
some automation by MSP. IMO different names of the database are quite sufficient and there are no separate folders needed.
The current implementation of library switching is a great step forward and already solves a lot of the nastiness I needed to deal with due to the unconventional way I want to manage my music collection.
What it does now is provide a kind of view on the database. Similar to SQL 'VIEW' but not readonly. Sharing the file location has its pros and cons.

MSPro stores only the relative path in the database. It sounds doable to me to also add the name of the current library when constructing file paths. This can be made an setting in the switch library screen, and only settable when a new library is created. This eliminates the need to convert file paths when switching from old style to new style database. Files that have absolute filenames in the database stay shared between all libraries.

Thanks for the great progress, and count me in for the test team!