308d63b8d838ffff4b21c79a3647fd6c8d2680c6
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>
Description
BlueToothLogger Android APP for tracking your BLE devices.
5.7 MiB