Pocket Cacher

Rating: 
5
Your rating: None Average: 5 (2 votes)

Summary

The third released version of my geocaching application for SailfishOS, which includes support for other OpenCaching servers (at least all of the OpenCaching servers listed on OKAPI introduction page).
At the moment it supports loading of geocaching.com's pocket queries, and downloading a list of caches from OpenCaching sites. It has the ability to navigate to a cache (including an experimental navigate-by-sound feature), and to log your find in a local database stored on the device.

Note that due to the restrictive terms and conditions placed on developers by GroundSpeak, it will not use the geocaching.com API, and hence won't pull/update data live from/to geocaching.com.

I have a long list of features that I want to add (but I also have a full-time job). I also need to improve this page and generate some documentation.

Upcoming Features

* OAuth support for authenticating to OpenCaching servers to submit log entries etc.

Usage

  1. Generate a pocket query on geocaching.com
  2. Copy the pocket query GPX file to your device
  3. Run the application
  4. Select 'Geocaches' from the pulley menu
  5. Select 'Load caches' from the pulley menu
  6. Select the 'Source' ('Pocket Query' to load a GPX pocket query from geocaching.com, or 'OpenCaching' to download cache details from one of the OpenCaching servers)

Loading a Pocket Query

  1. Follow the steps above and select 'Pocket Query' as the 'Source'
  2. Click on the 'Filename' field
  3. Search for your pocket query GPX file using the dialogue box
  4. Click on 'Accept'

Loading caches from an OpenCaching server

  1. Follow the steps above and select 'OpenCaching' as the 'Source'
  2. Select which of the OpenCaching sites you would like to download cache details from
  3. Click on 'Accept'

Whichever method you chose, you should then see a list of caches appear, in the order that they were read from either the Pocket Query or from the OpenCaching server.

From the cache list, clicking on a cache will bring up the cache details page, which will allow you to 'Navigate to' or 'Log geocache'.

You can also select the 'Show map' pulley menu to plot the loaded caches on to an OpenStreetMap map.

The 'Options' pulley menu will allow you to sort and/or filter the list of caches. Note that sorting by distance requires the cache list to be resorted whenever your location changes, which uses a lot of CPU time and isn't good for performance. As such, if you sort the list by distance, the list is only updated (resorted) every ten seconds.

'Log geocache' will only log to a local database on your device, as it does not use the geocaching.com API. I do, however, have plans to allow you to export the log entries to a text file, or to copy and paste the text from the log entries in to a web browser so you don't have to retype them in to the cache page on geocaching.com.

Once OAuth support is added, I'll be able to add functionality to upload log entries from the device to your OpenCaching account.

Testing

I've only created an account for one of the OpenCaching servers, and I'm about 18,000 km from the caches, so I can't properly test the OpenCaching functionality. I'd appreciate comments if it isn't working as you'd expect.

Security

To allow you to verify the integrity of the RPM file, I have created a DNS TXT record containing the SHA-256 hash of the RPM file. This is a more secure way of checking the SHA-256 has because it is hosted on a completely different site, run by a different provider, and using different credentials than I use for this site. This severely lessens the chance of someone being able to change both the RPM file and also the stored SHA-256 hash.

To check the integrity of the RPM file, perform a DNS lookup for a TXT record with the file name, replacing dots (.) with hyphens (-), follwed by '.sha256.malwaremusings.com'. For instance, to check the SHA256 hash of 'harbour-pocketcacher-0.2-1.armv7hl.rpm', look for a DNS TXT record with the name:

harbour-pocketcacher-0-2-1-armv7hl-rpm.sha256.malwaremusings.com

Or for v0.2.1-1:

harbour-pocketcacher-0-2-1-1-armv7hl-rpm.sha256.malwaremusings.com
 

An example of how to do this using nslookup:

nslookup
> set type=TXT
> harbour-pocketcacher-0-2-2-1-armv7hl-rpm.sha256.malwaremusings.com

Server:         mydnsserver
Address:        555.0.13.7

Non-authoritative answer:

harbour-pocketcacher-0-2-2-1-armv7hl-rpm.sha256.malwaremusings.com      text = "733e53037c5739a6fd74ad2a1c2b84a5b16390a78c8a8f1b7c649e45d7b6b861"

 

Privacy

Pocket Cacher does not send any information from your device other than network requests to download cache details for caches within 100 km of your current location, from the OpenCaching servers, and requests for map tiles from OpenStreetmap (which will give away your general location).

If you select 'OpenCaching' as the geocache source when loading caches, then your current location will be sent to the OpenCaching server(s).

When requesting a list of caches from OpenCaching servers, a 'fudge' distance and bearing is added to your current location to avoid revealing your actual location. The distance added will be between 500 metres and 1,000 metres, and is based on the current milliseconds. This should be enough to mask your actual location, but not too much to obscure the cache list results (too much).

Keywords:

Application versions: 
AttachmentSizeDate
File harbour-pocketcacher-0.2-1.armv7hl.rpm86.11 KB26/01/2019 - 15:54
File harbour-pocketcacher-0.2.1-1.armv7hl.rpm86.15 KB31/01/2019 - 14:38
File harbour-pocketcacher-0.2.2-1.armv7hl.rpm100.75 KB05/02/2019 - 11:34
Changelog: 

v0.2.2 -- Tue 05th Feb 2019

- [Added] Support for remaining OpenCaching sites -- now supports all OpenCaching sites listed on the OKAPI introduction page (.de, .nl, .pl, .ro, .uk, .us).

v0.2.1

- [Added] OKAPIDataSource: Ability to download caches from opencache.uk
- [Added] OKAPIDataSource: Fudge the location when requesting cache list from OpenCaching server so as to not reveal the cacher's actual location
- [Added] CacheMap: Clicking on a cache on the map now displays the CacheDetails page
- [Added] CacheMap: Button to close the CacheMap and return to previous page (screen)
- [Fix] CacheMap: Problem with panning the map to the left closing the map page (backNavigation)