Tracelet Doctor
Drop-in diagnostic overlay for Tracelet β visualize permissions, OEM health, battery state, sensors, and tracking status in a single tap.
Screenshot
The Doctor shows a premium dark-themed bottom sheet with:
- β οΈ Warnings β actionable issues (permission denied, power save, aggressive OEM, mock GPS, etc.)
- π‘οΈ Permissions β location, motion activity, accuracy authorization
- π Tracking State β enabled/disabled, mode, motion, odometer, scheduler
- π Battery & OEM β power save, battery optimization, manufacturer, aggression rating meter
- π‘ Sensors β accelerometer, gyroscope, magnetometer, significant-motion
- πΎ Database & Device β pending location count, mock detection, platform, OS version
Quick Start
dependencies:
tracelet: ^2.0.6
tracelet_doctor: ^1.0.1
import 'package:tracelet_doctor/tracelet_doctor.dart';
// Show the diagnostic sheet:
TraceletDoctor.show(context);
That's it β one line. No setup, no configuration.
Features
- Zero native code β pure Dart/Flutter widget
- One-line integration β
TraceletDoctor.show(context) - Dark glassmorphic theme β premium aesthetic with semantic status colors
- 12 warning types β automatically computed from device state
- Copy to clipboard β export the full diagnostic JSON for sharing
- Re-run β refresh diagnostics without dismissing the sheet
- Loading state β animated pulse indicator while gathering data
- Error handling β graceful retry on platform call failures
How It Works
The Doctor calls Tracelet.getHealth() internally, which fires 10 parallel platform calls:
getState()β tracking enabled, mode, motion, odometergetProviderState()β location services, GPS, network, accuracygetSettingsHealth()β OEM manufacturer, aggression ratinggetSensors()β accelerometer, gyroscope, magnetometer, sig-motiongetDeviceInfo()β platform, OS versionisPowerSaveMode()β battery saver activeisIgnoringBatteryOptimizations()β app exemption statusgetPermissionStatus()β location authorizationgetMotionPermissionStatus()β motion/activity recognitiongetCount()β pending locations in the database
All results are aggregated into a typed HealthCheck object with automatically computed warnings.
Architecture
This is a separate, optional package in the Tracelet monorepo:
| Package | Description |
|---|---|
tracelet |
Core SDK β the only package apps depend on (pub.flutter-io.cn) |
tracelet_doctor (this package) |
Diagnostic overlay widget |
tracelet_platform_interface |
Abstract platform interface |
tracelet_android |
Kotlin Android implementation |
tracelet_ios |
Swift iOS implementation |
tracelet_web |
Web implementation |
License
Apache 2.0 β see LICENSE for details.
Libraries
- tracelet_doctor
- Drop-in diagnostic overlay widget for Tracelet.