Add USB sync option for HearThis Desktop to HearThis Android

Would it be possible to add a USB sync option in addition to WiFi for HearThis?

We should be able to leverage the work we have done in Bloom to transfer Bloom books to Bloom Reader to accomplish this without reinventing the wheel.

Excellent! That sounds like it would work nicely.

This is harder than it sounds. When I last looked a few years ago, I was not able to discover any well-documented libraries for a Windows app to talk to an Android app over USB. Bloom makes use of a trick: part of the Android file system can be made visible to Windows as something like a USB drive. The Bloom Windows app can then drop book files in a particular place, and the Android Bloom Reader app looks for them there.
This already has two nasty user interface problems. First, recent versions of Android don’t just mount themselves as USB drives by default. The user has to know (typically) to drag down from the top of the screen to see notifications, scroll to the end to see USB options, and select an option like “Transferring files”. This is hard to document because the text of these commands varies from device to device, even in English. Second, Google has implemented some security precautions that get in the way. There is NO part of the file system that is, by default, accessible both to a Windows app accessing the device as a USB drive and to an app running on the device. We eventually had to ask the user to approve Bloom Reader getting access to the directory that Bloom Editor writes to.
Even then it’s not very reliable. It works well on some devices, and sometimes or not at all on others.
That’s bad enough for a simple one-way transfer like Bloom Editor sending a book to Bloom Reader. But HearThis is doing a much more complex two-way transfer in which the Windows app is potentially both sending updated versions of the text and fetching new or updated audio files, and possibly resolving conflicts in case more than one person has recorded the same passage. To make it work, I think HT Android would have to do all its work in the Windows-accessible folder. That means even users who don’t want to do USB have to grant HT Android access to that folder, for no obvious reason. That folder is likely to get left behind if HT Android is uninstalled. Google may tighten the security rules further and break whatever we do.
In summary, it’s probably possible to do this, but it’s likely to be difficult and the end result might easily be messy and unreliable.
There are two other options that I think might be more promising, if we get some more time to work on this. One is to use Bluetooth. That would probably be ideal if we can make it work. Another is to have the Windows computer and HT Android both talk to a server somewhere. This has the advantage over WiFi that it doesn’t depend on them being on the same local network and (since each device initiates a conversation with the server) doesn’t run into firewall problems. Possibly, the server could also function as a backup for both devices. However, it would depend on being online, and someone would have to pay the running costs of the server.