NPBruce / valkyrie

Valkyrie GM for Fantasy Flight Board Games
Apache License 2.0
504 stars 105 forks source link

[Feature] Add container import of Descent / Mansions of Madness content (Android 11 or higher support) #1515

Closed Quantumrunner closed 1 year ago

Quantumrunner commented 3 years ago

Is your feature request related to a problem?

Currently Valkyrie is not supported by Android 11 or higher because it is not possible to import the app content from Descent's Road to Legend and Mansions of Madness Apps for Android.

Describe the solution you'd like

Instead of importing the data from the apps directly it should be possible to generate a container file that contains all Valkyrie data from the folder \Valkyrie\D2E\import or \Valkyrie\MoM\import. This feature should only be available on Windows/MacOS/Linux devices to reduce confusion.

Export

The export feature should be available in options menu:

grafik

When a user clicks the export button an export container file in zip format but with file extension .valkyrie(D2E_Export.valkyrie or MoM_Export.valkyrie) will be generated at the home location of the device (e.g. desktop for windows, same logic when creating a package file for a quest editor mission). The file contains all data from the folder \Valkyrie\D2E\import or \Valkyrie\MoM\import depending on the Game the user choose in Valkyrie main menu (Descent or Mansions of Madness).

While the export takes place a message should be shown:

grafik

Import

Change the import logic so there is always only one button for importing:

grafik

When a user clicks at this button a new import page opens:

It shows two options to import the data:

  1. Import using official apps
  2. Import using container file

grafik

The app should check if app import is available for the current device (e.g. only Windows/Linux/MacOs and Android version 10 or lower). If normal import is not available the button should be greyed out and a warning message should be shown:

grafik

Option 1

When the user selects option one a new page should be opened page is opened which shows how app import works:

grafik

Option 2

When the user selects option two another page is opened which shows how container import works:

grafik

When the user clicks Locate import file a file picker menu appears and the user can navigate to the .valkyrie file and select it. Afterwards the app should check if the import file is a valid file for importing the data. If not an error message should be shown (import file is not valid). If the file is valid the import process starts and copies the data from the container file to the app storage.

Additional logic

For all pages a Back button is shown which redirects to the parent page:

Valkyrie Main menu > Import selection > App Import Page / Container import page (if necessary: > Cancel/Back button for file selector).

Additional steps

When this feature gets available it is necessary to update the manual on the Valkyrie Website for all languages:

grafik

antontimmermans commented 3 years ago

This sounds like a very promising solution.

Valkyrie also has many non-technical users and one re-import content button is already reaching the limit of their app-installation skills. ( I won't name names, but I have friends that call me how to install the app on windows 10).

Could all the steps mentioned above also be hidden behind the current re-import button and as a one-click action? That the app should detect which OS it is running on and decide to have the 'normal' import or the 'container import'.

Alternative: I can imaging that the container import method works for all OS. You could also make this the default method. It is likely a slower method than the current 'normal' re-import method, but it may be easier to implement (and less effort to maintain). Since this action is only done once (or with a new expansion) it is not really a problem if it is slower.

Quantumrunner commented 3 years ago

Sure putting everything behind one button sounds like a good idea. I would not make the Zip-Import the default one though.

Best would be to create some kind of nice looking image-buttons which make clear how the process works:

  1. One image showing the icons of Road to legend app and mansions of madness app.
  2. and one icon showing a PC symbol.

Edit: I have updated the issue a bit with more details how this could look like.

mayjak commented 3 years ago

Looks pretty good. I'll see what I can do.

mayjak commented 2 years ago

I've started implementing this, but I'll personally drop it for a few reasons:

  1. My main problem is it would quickly become a timesink to maintain in future android versions. The amount of work for adding the export/import feature is not trivial (I have a working prototype ready for this, though).
  2. The second problem is I think we would quickly get into a situation where FFG copyrighted material that was exported through Valkyrie would land somewhere on a Dropbox/Google Drive. I'd advise against anything that violates the IP laws.
  3. The third one is we'd have to have a brilliant step by step document/video that shows how to do that. But this is a minor one as I'm sure someone from community would be happy to do that.
  4. I have successfully used streaming with steam link over wifi on both a borrowed android device and iOS tablet. I think we should have a unified doc for streaming on both types of tablets instead.
  5. I'm not personally interested in the feature as I don't use an android device.

That being said I think it can still be developed, but I won't personally do that. I'll focus my time on other features/bugs instead.

Quantumrunner commented 2 years ago

@mayjak

  1. I can fully understand that. Can you maybe make the prototype branch available so that someone can have a look at this later if interested?
  2. I don't see this as a problem because this could already easily be the case with the current logic when you export it on PC.
  3. Yep this is correct. Without a good manual it would not work.

The question is if the Android Version should stay a supported feature then at all? New Android versions 11 and higher are on the move so the amount of devices ready to use Valkyrie is getting smaller and smaller. I think this would be a good point for the community to decide if any additional work should be invested in new Android versions of Valkyrie in general.

Personally I'm planning to replace my Android Tablet with version low than 11 soon. So I will not able to use Valkyrie on Android anymore.

mayjak commented 2 years ago

@Quantumrunner

  1. Maybe. What I have is a dead simple PoC that compresses the files and restores them on target device. The UI, current state management, etc will be a bit harder. The other problem is fully supporting Android 10+ file systems. I basically moved everything to the app folder from {SD Card}/ , which is not ideal, especially if your internal storage is small. There's also going to be some migration effort to move save files from the old to new location, etc.
  2. Yes, but right now it's not needed right now as you don't really need to transfer the files between devices. Unless you want to create a backup.

I can really recommend Steam Link. That's how I'm playing the official JiME app right now on iOS as I prefer buying expansions on Steam :)

scrubbless commented 2 years ago

Full understand why you would rather focus on other features, appreciate all the time and effort you've put into the app!

My thoughts on the second topic:

  1. The second problem is I think we would quickly get into a situation where FFG copyrighted material that was exported through Valkyrie would land somewhere on a Dropbox/Google Drive. I'd advise against anything that violates the IP laws.

I personally think this is a bit of a moot point now, with the way Valkyrie imports data from the app and stores it (especially the M1E tiles and tokens), it would be easy for anyone to do the same and drop it on a dropbox/google drive. Adding an export from Valkyrie and import to Valkyrie isn't going to mix up that too much

Secondly and probably the most important, the game is now EOL and no longer being developed, I doubt FFG would go out of their way to shut down Valkyrie. The time for that was a few years ago and i'd be shocked if the app hadn't made its way to FFG by now, its a pretty epic app.

Part of me thinks we should "whip off the plaster" and just go all in. Add Android 11 support with an export import feature, then publish the app on the playstore. I might even go as far as to say we just publish it with the content pre-imported.

You can look at the Arkham DB/app for an example where FFG aren't shutting useful (non profit) stuff down, the app and the website has all of the Arkham Horror LCG cards in high res contained on the website and within the app.

https://arkhamdb.com/

Quantumrunner commented 1 year ago

Closed: This is not necessary anymore because we found a workaround for Android 11 and above. See this wiki article for details: https://github.com/NPBruce/valkyrie/wiki/Troubleshooting#blackscreen-on-startup-android