SensToolsApp now installs a default uncaught exception handler that
writes crash stack traces to filesDir/crashes/crash_YYYY-MM-DD_HH-mm-ss.txt
before passing to the default handler. This makes debugging easy without
adb/root.
P[i][k] accessed k up to 5, but P is 4x4 (only indices 0..3 valid).
Split P * H^T multiplication into two explicit steps:
1. PHT = P * H^T (4x6, k over 0..3)
2. K = PHT * SInv (4x6, k over 0..5)
- CompassView: custom View with rotating dial, N/E/S/W labels,
degree markings, red north / gray south pointer, bearing display
- Inserted compass card between Flight Dashboard and GPS Data cards
- CompassView driven by EKF attitude yaw from existing data pipeline
- DataCollectionService now starts collection automatically in onStartCommand
- DashboardFragment binds service + starts service on creation
- Recording button only controls file writing, not sensor collection
- Renamed btnStartRecording to btnRecord, updated layout and string resources
- stopRecording no longer stops sensor collection, only stops file writes
- Upgrade AGP from 8.2.0 to 8.7.3 for Gradle 9.x compatibility
- Upgrade Kotlin from 1.9.20 to 2.0.21
- Use explicit dependency strings (remove old version catalog)
- Remove old gradle wrapper (useless without internet download)
- Use system Gradle 9.4.1 directly
feat: Airbus-style PFD attitude indicator + map dropdown selector
- Rewrite ArtificialHorizonView as Airbus A320 PFD style:
Central artificial horizon, fixed yellow aircraft, pitch scale,
roll arc indicator, speed tape, altitude tape, compass rose
- Map: Spinner dropdown with 百度卫星图(default)/高德卫星图/Google卫星图 etc
- Rewrite ArtificialHorizonView as Airbus A320 PFD style:
- Central artificial horizon with pitch scale
- Fixed yellow aircraft symbol on moving sky/ground
- Roll scale arc with triangular indicator at top
- Speed tape (knots) on left side
- Altitude tape (meters) on right side
- Heading compass rose at bottom (N/E/S/W)
- Supports additional flight data display
- Map selection:
- Replace TabLayout with Spinner dropdown
- Options: 百度卫星图/普通/混合, 高德卫星图/普通, Google卫星/普通/地形/混合
- Default: 百度卫星图
- Each option includes provider + map type in one selection
- Fix Chinese map type names (was garbled in repo)
- Create Chinese, English, Japanese, Korean string resources
- Add LanguageManager for language management
- Add language selection dropdown in Settings
- Update all layouts to use string resources
- Support app restart prompt for language change
- Implement MapProvider interface with Google, Baidu, Gaode map providers
- Support satellite and normal map types for all providers
- Add coordinate conversion (WGS84 to BD09/GCJ02)
- Add tab-based map type and provider switching UI
- Add map settings with default provider and type configuration
- Add location button widget
- Add webview-based Baidu and Gaode map HTML assets