Trail-Sense icon indicating copy to clipboard operation
Trail-Sense copied to clipboard

Plugins

Open kylecorry31 opened this issue 3 years ago β€’ 14 comments

These would all be standalone apps, optional app download that requires Trail Sense be installed. The provider plugins can probably be merged into a single package. The goal of the standalone apps would be to provide functionality that Trail Sense itself can't do - things like Internet, texting, and packaging large amounts of data (to keep Trail Sense's core APK size small). All plugins can be accessed from within Trail Sense (not sure how exactly - maybe they'll start a new activity or communicate via Intents - more research is needed)

Some may show up as additional tools rather than extending existing tools. Not sure if they could be opened in TS (maybe the UI lives in TS and communication is done via services).

Research Google Play policies on cross app communication where different permissions are allowed.

Create a template for the plugins that supports the multiple ways to communicate with Trail Sense.

Potential plugins

Providers

Adds additional data sources to tools in Trail Sense, can use the Internet. Some of these may be an APK which contains the relevant content (ex. DEM) at first to avoid self hosting.

  • Weather: Downloads current weather conditions and forecasts
  • Tides: Downloads tide tables / harmonics
  • Map tiles: Downloads map tiles
  • DEM: Download a digital elevation model for a given region
  • Geocoder: Get the name of the location. This doesn't require the Internet permission - it is built into Android - but it does use the Internet.
  • Cell towers: A higher resolution cell tower map
  • Gadgetbridge support: https://github.com/kylecorry31/Trail-Sense/issues/1534 (may be a separate plugin)
  • Species computer vision models: iNaturalist open model for animals/plants or cropnet by Google

Comms

Local communication can happen via bluetooth, wifi direct, audio?, or QR (may be part of TS itself). There will be the ability to add and connect to trusted devices.

  • Emergency beacon: Sends out a text to selected contacts at a set frequency containing your location (texts are more reliable than an Internet connection while in areas of spotty connection).
  • Walkie talkie / chat: Can communicate with nearby users/people you've connected with. Support text to speech as well.
  • Offline file share: Similar to Google Files offline share feature.
  • Shared navigation: Share navigation details with trusted devices nearby (ex. location of each user shown in Trail Sense)
  • BLE LoRa communicator support: https://github.com/kylecorry31/Trail-Sense/issues/1961
  • Share images via audio: Look into https://github.com/kylecorry31/Trail-Sense/issues/2824, but most likely will just use wireless signals.

Health

  • Heart Rate Sensor: A heart rate sensor which uses your camera
  • Sound Amplifier: Amplifies sound, with options to boost certain frequencies

Experiments / research

  • [x] #2381

kylecorry31 avatar Nov 16 '22 00:11 kylecorry31

Sync a common packing list with file share? πŸ˜…

michaelblyons avatar Aug 07 '23 19:08 michaelblyons

@michaelblyons can you clarify what you mean?

Do you mean just the ability to import/export a packing list? In that case, that is something I could implement without a plugin - and then the plugin could be used to share the exported file while offline

kylecorry31 avatar Aug 07 '23 19:08 kylecorry31

That's pretty close. I think I saw that you're planning export/import to CSV for packing lists. The file could be synced with Bluetooth, yes.

I coordinate with my partner: "Did we already pack enough X?" to prepare a vehicle for 1-day, 3-day, or 7-day trips together. When we get there and set up, every adult manages their own list for excursions, which is more like the normal packing list behavior. If TS is not the right tool for shared packing, we can surely find something else.

If people use packing lists to track stocks of consumables on distance hikes as well, having a merge algorithm for intelligent incr/decr might be helpful. But I am not personally doing that in the backcountry.

michaelblyons avatar Aug 07 '23 21:08 michaelblyons

Thanks! I'll consider adding that along with the offline file share plugin

kylecorry31 avatar Aug 07 '23 23:08 kylecorry31

More ideas for the comms plugin (shared navigation): https://github.com/kylecorry31/Trail-Sense/issues/1911#issuecomment-1851705781

kylecorry31 avatar Dec 12 '23 12:12 kylecorry31

That walkie-talkie feature would be so useful for me πŸ™ˆ Sorry for "spamming" with comments, but I found your app yesterday and I'm very excited about it, haha

I'm disabled and we use Zello with my dad (when I need help getting out of the shower, can't get up, my heart rate is too high etc.) and he can't hear me through the closed door. But Zello is WiFi only, so if the internet goes out (happens frequently) he needs to pick up my call first without hearing my message immediately and he can miss it if his phone's on mute (media sound is always on) ✨ Edit: I also struggle to talk loudly or at all in certain situations due to trauma, so that'd be great during medical emergencies or even when we're out and about geocaching πŸ—ΊοΈ

MikaelaLovett avatar Mar 26 '24 14:03 MikaelaLovett

That walkie-talkie feature would be so useful for me πŸ™ˆ Sorry for "spamming" with comments, but I found your app yesterday and I'm very excited about it, haha

I'm disabled and we use Zello with my dad (when I need help getting out of the shower, can't get up, my heart rate is too high etc.) and he can't hear me through the closed door. But Zello is WiFi only, so if the internet goes out (happens frequently) he needs to pick up my call first without hearing my message immediately and he can miss it if his phone's on mute (media sound is always on) ✨ Edit: I also struggle to talk loudly or at all in certain situations due to trauma, so that'd be great during medical emergencies or even when we're out and about geocaching πŸ—ΊοΈ

I'll have to take a look at Zello - my hope is that the walkie talkie will support both wifi (direct connection) and bluetooth (maybe even at the same time, using whichever has the best signal). It could even have the option of sending a message and having it read out load on the receiving device (using text to speech).

kylecorry31 avatar Mar 26 '24 17:03 kylecorry31

That walkie-talkie feature would be so useful for me πŸ™ˆ Sorry for "spamming" with comments, but I found your app yesterday and I'm very excited about it, haha

I'm disabled and we use Zello with my dad (when I need help getting out of the shower, can't get up, my heart rate is too high etc.) and he can't hear me through the closed door. But Zello is WiFi only, so if the internet goes out (happens frequently) he needs to pick up my call first without hearing my message immediately and he can miss it if his phone's on mute (media sound is always on) ✨ Edit: I also struggle to talk loudly or at all in certain situations due to trauma, so that'd be great during medical emergencies or even when we're out and about geocaching πŸ—ΊοΈ

I'll have to take a look at Zello - my hope is that the walkie talkie will support both wifi (direct connection) and bluetooth (maybe even at the same time, using whichever has the best signal). It could even have the option of sending a message and having it read out load on the receiving device (using text to speech).

Oh my, thank you for considering it, the text to speech feature would be life changing! πŸ’—

MikaelaLovett avatar Mar 26 '24 17:03 MikaelaLovett

Initial experimentation with the comms plugin can be found here (extremely work in progress - basically an experimentation project at this point): https://github.com/kylecorry31/Trail-Sense-Comms

Still have not determined what the plugin architecture will look like / what is allowed on Google Play Store

kylecorry31 avatar May 13 '24 22:05 kylecorry31

Initial experimentation with the comms plugin can be found here (extremely work in progress - basically an experimentation project at this point): https://github.com/kylecorry31/Trail-Sense-Comms

Still have not determined what the plugin architecture will look like / what is allowed on Google Play Store

Thank you for working on it! πŸ€

MikaelaLovett avatar May 13 '24 22:05 MikaelaLovett

Possible architecture:

image

Under this model, the tool would live in Trail Sense and the comms plugin just adds the ability to talk with nearby devices.

Example flow of the walkie talkie:

  1. User installs comms plugin, "Local Talk" tool shows up in TS
  2. User opens the tool and is prompted to connect to a device
  3. User clicks connect button which launches the comms plugin activity to select a device
  4. The comms plugin requests bluetooth permission
  5. User selects the device they want to connect to and a foreground service is started
  6. User is returned to Trail Sense where they interact with the tool - TS uses AIDL to communicate with the comms plugin
  7. User stops communication -> TS uses AIDL to stop the comms plugin
  8. User returns to app and selects an existing connection -> TS starts comms activity with pre-selected device -> process repeats

This will also allow other tools to leverage the plugin, such as the ability to see nearby devices on the navigation/photo map tools or to send notes/files.

kylecorry31 avatar May 18 '24 10:05 kylecorry31

METAR/TAF functionality would be useful as far as weather plugins go. Perhaps the ability to translate raw data as well? How about a database of all known airports? A METAR/TAF widget perhaps?

leavenode avatar Jul 24 '24 17:07 leavenode

METAR/TAF functionality would be useful as far as weather plugins go. Perhaps the ability to translate raw data as well? How about a database of all known airports? A METAR/TAF widget perhaps?

Thank you for the suggestion, I will consider that as part of the Provider plugin

kylecorry31 avatar Jul 24 '24 19:07 kylecorry31