@Matt_Hill, @ProofOfKeags, we would be perfectly willing to accept this and support it if you wanted to get this done. Kyle and I had a brief couple of messages and there are only a few questions we would want to address through your approach and investigation (which these questions may answer some of yours in regards to areas of impact, the “where” and what):
- If these are linked through the native Android and iOS frameworks, we would need to know how that would work with Xamarin, which we are using for our mobile apps (along with Xamarin Forms)
- Also, would the UI settings for this be on the same configuration screen as the server/service URLs before logging in?
- Is any additional support necessary for the server-side of this implementation? Docker container, reverse proxy/nginx configurations, etc.?
- If #3 above is yes, we would need the ability to disable this for organizations/enterprises using self-hosted or Bitwarden cloud who’s internal security policies prevent or deny the use of Tor on corporate networks or corporate assets/services.
The likely starting place in mobile would be within the UI/UX approach, our preference would likely be a setting on the EnvironmentPage and work backwards from there regarding the settings.
I imagine this would also be structured as a service that would be injected into the necessary handlers to be invoked which wrap the native implementation(s) of the necessary APIs/frameworks. Quite not sure how this would work to be honest but that would need to be figured out. All service injection has abstractions setup either in Core or App, this I believe would go in App (but not married to that).
Per your thought that on background the connection would be closed and on open re-engaged, I believe the areas of concern for hooking into that are in the primary App.xaml.cs file.
I would recommend taking a look at how you would approach doing this within Xamarin, or working around Xamarin w/o breaking stuff (obviously ), but ultimately would need the settings from the app’s primary screen (dotnetcore + Xamarin) to feed into the behavior. Please let us know if you have any other questions.
Also looping in @mp-bw as he’s much more familiar with the mobile platform than I am and can offer any other color or help/assist answering any questions you may have as you explore your technical approach. Any draft PRs are welcome as well, feel free to assign to me and I’ll add anyone else necessary for review from our end.
Thanks for your patience!