n0tst3v3andClaude Opus 5 308d63b8d8 feat(map): upload recorded sightings to the ingestion server
Adds ServerUploader plus an "Upload to Server" button and a Server…
settings dialog in the map filter panel.

The uploader builds a CSV of every device fix and every recorded history
point - the history rows are the interesting ones, since they carry each
device's location trail - and POSTs it as multipart/form-data with the API
key in X-API-Key. Timestamps are written ISO-8601 in UTC, because sending
local time would shift every point by the phone's offset.

It uploads the whole database every time rather than tracking what was sent
before. The server deduplicates on (mac, timestamp, latitude, longitude), so
re-sending is idempotent: anything it already holds comes back counted as a
duplicate instead of stored twice. Keeping the client dumb is what makes a
failed or partial upload safe to simply retry, with no sync state to get out
of step.

Network work runs on a background thread and the result is delivered on the
main thread; the button disables itself while a run is in flight and the
panel shows the returned metrics.

The URL and key default to the deployment at bt.justbug.me and are editable
in the dialog, stored in the server_settings preferences.

Verified against the real server: the exact CSV this emits - including empty
RSSI cells for history rows and a device name containing a comma - ingests as
4 points, and re-uploading the same file returns 4 duplicates and 0 added.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-19 11:26:29 -06:00
S
Description
BlueToothLogger Android APP for tracking your BLE devices.
5.7 MiB
2026-08-19 18:40:40 -06:00
Languages
Java 100%