ProjekteMobil

InteractiveChecklists

Companion and standalone Android app for DCS-World Flightsimulator with map-based route planning and navigation, marker management, interactive Markdown/PDF checklists, annotations, notes, tab support, and live telemetry display (DataPad). Implemented using Jetpack Compose.

39
Sterne
4
Forks
Dez. 2025
Erstellt
vor 1 Monat
Letzter Push

Readme

Dieses Readme enthält 36 Bilder von GitHub. Sie laden erst nach einem Klick unten.

License: CC BY-NC-SA 4.0 GitHub DeepWiki

APP Version Platform: Android Jetpack Compose


PYTHON TOOLS Platform: Windows Python

Current Development Status – Aviation Map & DataPad Features
(February 2026)

I'm currently not actively working on the Aviation Map, live DataPad / telemetry, or tactical units features, because I do not have DCS World installed right now and cannot verify / test > whether changes still work or break functionality.

The topic will definitely be continued in the future once I have a proper DCS test environment again.

If anyone is interested in actively contributing, testing, or submitting pull requests in the meantime → very welcome!
I will happily look at everything, review code / changes, and give feedback in English.

Thanks for your understanding and patience 🙏
o7

Screenshots • Demo Videos

InteractiveChecklists

InteractiveChecklists is an Android application for viewing and interacting with Markdown and PDF checklists. It is built with Jetpack Compose and follows an MVVM-style architecture. It is designed to be extensible with an interactive aviation map featuring live DCS data integration, tactical markers, and dynamic route and pattern calculation. Runway heading–based approach visualization and real-time map updates enable enhanced situational awareness during flight operations.

Development status: This repository is a development version and not an official release. The app is functional but under active development and may contain experimental features.

Note: A preview APK for version 1.1 is planned. If you are not familiar with Android Studio or building apps from source, please wait for the official preview release to test the app.

Table of Contents

Features

  • Unified File System: Manage files from bundled assets and internal storage in a single hierarchical view.

  • Multilanguage Support: The app supports English, Spanish and German. You can switch the language in the Settings menu. All UI text is available in English.

  • Multi-Tab System: Open multiple documents (MD/PDF) with a scrollable tab bar, quick tab switcher, swipe navigation, and tab persistence.

  • PDF Viewer: PDF viewer with annotations (draw/highlight/erase), pinch-to-zoom, page snapping, and color inversion.

  • Interactive Markdown Checklists: Stateful checkboxes and collapsible sections for interactive checklists.

  • Tagging System: Assign tags to files for filtering and organization.

  • QuickNotes: Persistent notes powered by Room, with search, autosave, and markdown support.

  • Data Persistence: Stores user preferences, annotations, shortcuts, tags, and open tabs locally.

  • Aviation Map (experimental): OpenStreetMap-based map viewer with live aircraft position tracking from the DataPad stream. Adds a MapViewer tab showing aircraft position, heading, altitude and basic overlays — see docs/EN/features/AVIATION_MAP_FEATURE.md for details and configuration.

  • DataPad (experimental): Live flight telemetry display (UDP) for DCS World. Streams aircraft telemetry to the app for realtime status and popup details — see docs/EN/features/DATAPAD_FEATURE.md for full details and setup instructions.

  • Tactical Units Tracking (experimental): Live tactical unit markers (aircraft, helicopter, ground, ship) on the map with real-time updates. Marker popups include "Last seen" timestamps and refresh snippets with speed/altitude. A "Live Units Only" filter (shows units seen in the last 10s) is synchronized between the list and the map. See docs/EN/features/TACTICAL_UNITS_TRACKING.md and scripts/DCS-SCRIPTS-FOLDER-Experimental/README_ENTITY_TRACKING.md for setup and details.

  • MapDatabaseTools (Python): A collection of Python utilities for receiving, decrypting (AES-GCM), and visualizing DCS flight telemetry. Includes a PySide6 GUI with an embedded OpenStreetMap/Leaflet map for live aircraft tracking, a marker database, and helper scripts to manage map assets. See scripts/MapDatabaseTools/README.md for usage and configuration.

  • Supported maps (marker DB):

Map Status Notes
Caucasus Supported Marker set available in DB
Marianas Supported Marker set available in DB
Germany (CW) Mostly Supported Marker addition in progress

Roadmap

Planned features and long-term improvements are tracked in the Roadmap document.


Quick Start – Windows (Recommended & Easiest)

Install the DCS Export Script (Automatic via GUI Installer)

The GUI installer now automatically installs Export.lua to your DCS Scripts folder during the setup wizard.

Features:

  • Auto-detection of DCS Saved Games folder
  • Version detection - Shows current and new version
  • Backup creation - Automatically backs up existing Export.lua
  • Version comparison - Prompts before overwriting if Export.lua already exists
  • Optional skip - Can skip installation if you prefer manual installation

Manual Installation (Alternative):

If you prefer to install manually or skipped the wizard step:

  1. Copy Export.lua from scripts/DCS-SCRIPTS-FOLDER-Experimental
  2. Paste into your DCS Scripts folder: %USERPROFILE%\Saved Games\DCS\Scripts\

This script enables DCS to write entity batches and player telemetry files into a subfolder that the Python forwarder reads.

After installation (automatic or manual):

  • Start or reload your mission, or
  • Restart DCS

to activate the export script.


Important Note – Python Requirement

The Python forwarder (DataPad Server) requires a local Python installation.

  • On Windows, installing Python via the Microsoft Store (Python 3.12+) is recommended for simplicity.

  • The GUI installer (run_installer.bat) automatically:

    • Creates a virtual environment (venv) if not present
    • Installs all required Python packages into that environment
    • Detects your DCS installation and Saved Games folder
    • Configures network settings and firewall rules (optional) This keeps dependencies isolated and clean.
  • To update packages: re-run run_installer.bat

  • To remove everything: delete the created venv folder


Initial Setup (GUI Installer)

  1. Navigate to the folder: /scripts/DCS-SCRIPTS-FOLDER-Experimental

  2. Start the GUI installer – double-click: run_installer.bat → The GUI will automatically install dependencies and open the installer window (first run takes 1–2 minutes to install packages)

Server First Installation Wizard
Server first installation Wizard

  1. First-Time Setup Wizard (appears on first run):

    • The wizard will guide you through:
      • DCS Installation Detection – Auto-detects your DCS installation
      • Export.lua Installation – Automatically copies Export.lua to DCS Scripts folder with version detection
      • Dependency Installation – Installs required Python packages
      • Server Configuration – Configure network settings (bind IP, ports, etc.)
      • Firewall Setup (optional) – Add Windows Firewall rules for server ports
  2. After setup is complete, the main installer window opens with tabs:

    • Dashboard – Server status and control (Start/Stop server)
    • Device Management – Manage authorized devices and generate QR codes
    • Server Configuration – Network and security settings
    • Installation Settings – DCS paths and file locations
    • Health Checks – System diagnostics and firewall configuration
    • Logs – Real-time server log viewer

Server health-checks
Server health window


4. Server Setup (GUI)

Configure Server Settings

Server settings page
Server settings window

  1. Open the Server Configuration tab

  2. Configure the following settings:

    • Bind IP – IP address of the PC where DCS is running (Example: 192.168.1.100)
    • Target IP – Android devices in your Wi-Fi network (Example: 192.168.1.255 for broadcast, or 192.168.1.* for all devices in subnet)
    • Data Port – UDP port for telemetry data (default: 5010)
    • Handshake Port – UDP port for device handshakes (default: 5011)
    • Update Interval – How often to send data (default: 100 ms)
    • Enable Proof-of-Work (PoW) – Recommended for security (default: disabled)
    • PoW Difficulty – Difficulty level (default: 16 bits)
  3. Click "Save Configuration"

Notes

  • Server Bind IP → IP address of the PC where DCS is running
  • Target IPs → Android devices (tablet or smartphone) in your Wi-Fi network
  • You can:
    • Enter specific IPs individually, or
    • Use broadcast: 192.168.1.255, or
    • Use wildcard pattern: 192.168.1.* to target all devices in the subnet

Start the Server

  1. Go to the Dashboard tab
  2. Click "Start Server" button
  3. Server status will show "● Server Running" (green) when active
  4. The Logs tab shows real-time server output

Tip: You can minimize the GUI to system tray – the server continues running in the background.


QR Code Pairing (GUI Method)

Datapad device list and qr registration
Datapad device list and qr-code registration

The GUI provides an easy way to register devices via QR code:

  1. Start the server from the Dashboard tab (if not already running)
  2. Go to the Device Management tab
  3. Click "Generate Token" button
    • If server is not running, you'll be prompted to start it
    • The GUI generates a secure registration token valid for 10 minutes
  4. A dialog appears showing:
    • QR Code – Scan this with your Android app
    • Token Details – Server IP, port, expiration time
    • Registration Status – Shows when a device successfully registers

Datapad QR-Code Registration
Datapad QR-code registration

  1. The GUI automatically detects when your device scans the QR code and registers

    • Registration confirmation appears in the dialog
    • The device is automatically added to the authorized devices list
    • No server restart needed – registration happens in real-time
  2. (Optional) You can manually add devices by clicking "Add Device" and entering:

    • Device Name
    • Device ID
    • Public Key (Base64)

Troubleshooting QR Registration ✅

If QR-code registration fails, try the checks below (quick and common fixes):

  • Check Android app network permissions: ensure the app has the INTERNET permission and is allowed to use networks (no restrictive work profile or denied network access).

  • Check Android firewall / antivirus / VPN: some devices ship with an app firewall or VPN that blocks UDP traffic; disable or allow the app temporarily and retry.

  • Ensure both devices are on the same Wi‑Fi: your phone/tablet must be on the same local network (same subnet) as the server – mobile data or a different Wi‑Fi will not reach a local server.

  • Verify the Server IP is correct: confirm the server IP shown in the QR code matches the server bind IP (and that the server is running on that interface).

  • Verify the Handshake / Registration port: make sure the port in the QR payload (e.g., 5011) matches the server handshake port and any firewall rules on the server/PC allow incoming UDP on that port.

  • Confirm the server is running and listening: check the server logs for "Listening for handshakes on" and ensure it reports the expected IP:port.

  • Check token validity: registration tokens are time-limited and single-use — regenerate and try again if expired or already used.

  • Look for specific errors: Example: sendto failed: EPERM on Android usually means the app is blocked from sending network packets (firewall, VPN, or missing permissions).

  • Ask on GitHub Discussions: Prefer posting in the project's Discussions (https://github.com/arn-c0de/InteractiveChecklists/discussions) — include app logs (adb logcat) and server logs so we can reproduce and diagnose quickly.

  • Or open a GitHub issue using the built-in template: Click New issue on the repo and select "QR Registration problem" — this pre-fills the required fields and helps us triage faster.


5. Android App Setup

APP DataPad Activate Toggle
Activates the in App datapad functions

  1. Open the Android app
  2. Go to Settings → DataPad
  3. Turn DataPad ON

APP DataPad Settings button
Settings Menu for datapad

  1. Open the DataPad Popup using the FAB button
  2. Tap Settings in the DataPad Popup

APP DataPad Device Name
Enter your Device Name

  1. Enter a Device name

APP DataPad Setup Ip and QR-code
Enter your Server IP and Scan QR-Code

  1. Scroll down set your ServerIP (recommend) then to QR-Code setup | or for Manual adding, copy Device Name, ID and Public Key and enter as new entry in authorized_devices.json
  2. Tap Scan QR Code
  3. Scan the QR code displayed on your PC screen
    • (First time only – securely registers your device)
  4. Enable the toggle button in the DataPad Popup
  • If the correct server is selected, a heartbeat is sent every 30 seconds

Data Status & Indicators

  • When a DCS mission starts and you are seated in an aircraft, the forwarder (DataPad Server) begins sending live data to the app

  • The current status is shown in the top info bar:

    • 🔴 Red – No incoming data / No mission running
    • 🟡 Yellow – Mission running, but not in an aircraft / No active live data
    • 🟢 Green – In an aircraft and receiving telemetry and/or tactical unit live data

Unblocking Files in DCS World (Important)

Some DCS files may be blocked by Group Policy or antivirus software.
This can prevent correct operation.

Using PowerShell (Recommended)

  1. Press the Windows key and type PowerShell
  2. Right-click Windows PowerShell → Run as Administrator
  3. To unblock a single file, enter:
Unblock-File "C:\Program Files\Eagle Dynamics\DCS World\bin\lua-dxgui.dll"
  1. Press Enter

To Unblock All DLL Files at Once

Get-ChildItem "C:\Program Files\Eagle Dynamics\DCS World\bin\*.dll" | Unblock-File

Press Enter.

Alternative: Repair DCS

If unblocking does not help:

  1. Open DCS Launcher
  2. Go to Settings (gear icon)
  3. Click Repair
  4. Wait for the process to complete

This will restore and unblock all affected files.


Server main window
Server main window

  1. After successful registration, switch to the Device Management → Devices tab

    • Your newly registered device now appears in the device list
    • The device status is shown as Authorized / Connected
  2. Go back to the Dashboard tab

  3. Click "Start Server" to finalize and run the server

    • The server now starts with the registered device active
    • Live connections are accepted immediately

✅ Done! The app should now receive live telemetry and tactical data from DCS.


Security – Quick Summary (2025/2026)

  • Connection is encrypted (AES-256 + ECDH handshake) – similar to secure websites
  • Only registered devices can connect (via QR code or manual list)
  • First connection is remembered (Trust on First Use) → protects against fake servers later
  • Optional extra protection: Proof-of-Work (anti-spam) – can be enabled in the GUI's Server Configuration tab

For most users the QR code method is secure enough and very simple.

For Linux/macOS or advanced users (CLI/manual start)

The GUI installer is Windows-only. For Linux/macOS or if you prefer command-line control:

Note: The Windows TUI (Text-based menu with install.bat/run.bat) has been replaced by the GUI installer in version 1.0.25+. For the legacy TUI, use branch 1.0.24.

Manual command-line start (all platforms)

cd scripts/DCS-SCRIPTS-FOLDER-Experimental
python -m venv venv
source venv/bin/activate          # Linux/macOS
# or on Windows: venv\Scripts\activate
pip install -r requirements.txt
python forward_parsed_udp.py --authorized-devices authorized_devices.json --host YOUR_PC_IP --port 5010 --skip-qr-prompt

Important: Use --skip-qr-prompt to disable the interactive QR prompt when starting the server. The GUI generates tokens separately.

Entity Contacts (tactical units): Enable Entity Tracking and run the forwarder with entity tracking enabled to receive live markers; see scripts/DCS-SCRIPTS-FOLDER-Experimental/README_ENTITY_TRACKING.md and docs/EN/features/TACTICAL_UNITS_TRACKING.md.

See docs/EN/features/DATAPAD_FEATURE.md for full usage, configuration, and troubleshooting.

Phase 1 (experimental): This is Phase 1 of DataPad — future phases will add more telemetry, visualizations, and security improvements.

Next up: 2-way communication (experimental) to enable data flow back to DCS.

Screenshots

File explorer - list of files and folders
File explorer showing the hierarchical file and folder structure

Markdown viewer showing interactive checklists
Interactive Markdown checklist with stateful checkboxes

PDF viewer with annotation tools
PDF viewer with drawing, highlighting and annotation capabilities

QuickNotes bottom sheet and editor
QuickNotes editor with markdown support and autosave

Calculator for landing patterns
Landing pattern calculator displaying flight path calculations

First implementation parts for atc features
Early ATC features showing airspace visualization

AA map range rings visualization
AA range rings visualization

Full tactical live data Support
Live tactical markers displaying real-time unit positions

Flight path overlay
Flight path tracking overlay on the aviation map

Route lines overlay with labels
Route planning with labeled waypoints and flight paths

Route planner - line preview
Route planner interface with live preview

Create Route sheet
Landing route creation sheet with configuration options

DataPad live telemetry panel
DataPad displaying live aircraft telemetry from DCS World

Settings and preferences
Application settings and configuration panel

Demo Videos

Carrier Landing Pattern – Live Tracking & Pattern Calculation Test (STATE App 1.0.19)   Demo 1   Demo 2

📝 NOTE
This is a test recording to evaluate recording performance, tablet capture workflow, resolution settings, and overall system stability during DCS gameplay. Mission content and pacing are deliberately simple and functional.

Installation for Developer

Step-by-step instructions to get the project running locally.

  1. Prerequisites

    • Install Android Studio (Arctic Fox or later recommended).
    • Install a compatible JDK (Java 11 or later recommended).
    • Configure Android SDK and at least one emulator or use a physical device.
    • For Python forwarder scripts (optional): install qrcode and cryptography dependencies: pip install qrcode[pil] cryptography cffi (use a virtual environment to avoid system conflicts).
  2. Clone the repository

git clone https://github.com/arn-c0de/InteractiveChecklists.git
cd InteractiveChecklists
  1. Build with Gradle (command-line)
./gradlew assembleDebug
  1. Open in Android Studio
    • Open the InteractiveChecklists directory in Android Studio.
    • Let Gradle sync and allow Android Studio to download any missing SDK components.
    • Run the app on an emulator or connected device.

System Requirements

  • Supported OS: Windows, macOS, Linux (for development).
  • Android Studio: Arctic Fox or newer recommended.
  • JDK: Java 11+ recommended.
  • Android SDK: API level corresponding to the project's compileSdk and targetSdk (see build.gradle.kts).

How to Build & Run

  • From Android Studio: Open the project, wait for Gradle to finish syncing, then select a target device and click Run.
  • From the command line: ./gradlew assembleDebug builds an APK; use ./gradlew installDebug to install on a connected device.

Contributing

We welcome contributions. For guidelines, issue workflow, and coding standards, see COLLABORATORS.md.


💰 Unpaid Contributions

All contributions are currently unpaid and voluntary. This is a non-commercial project without donation functionality or sponsorship options at this time.


Quick contribution ideas:

  • Improve documentation or add examples.
  • Add or extend tests.
  • Fix small UI/UX bugs or accessibility issues.

For larger or breaking changes, please open an issue first to discuss design and scope.

Support & Contact

If you encounter issues or have questions:

  • Open an issue in this repository.
  • For security-sensitive issues, please follow the instructions in SECURITY.md.
  • For contribution coordination and discussions, see COLLABORATORS.md.

Bug Reports

When reporting a bug, please include a screenshot if possible.
Use the screenshot to mark or highlight the exact area where the issue occurs, and briefly describe what is shown and what is wrong in that location.

FAQ

  • Q: How do I run tests?
    • A: There are unit tests under app/src/test. Run them via ./gradlew test.
  • Q: What is the license?
    • A: This project is licensed under CC-BY-NC-SA 4.0. See the LICENSE file for details.
  • Q: Where is the documentation?

Acknowledgements & Credits

Thanks to all contributors and to the Jetpack Compose and Android open-source ecosystems used in this project.

Contributors

License

This project is licensed under the terms in the LICENSE file (CC BY-NC-SA 4.0).


App Version: v1.0.25 Last Updated: 2026-01-18

Roadmap

docs/EN/planning/roadmap.md

← Back to README | Documentation index

Project Roadmap

This roadmap outlines the planned development phases and features for the app in the exact priority order requested. All items are listed sequentially, reflecting the intended implementation sequence. The focus is on iterative progression: completing earlier items before moving to the next.


Map Orders Icons and Airport Symbols

  • Implement customizable order icons on the map.
  • Add standard airport symbols with proper scaling and layering.
  • Ensure icons are clear, distinguishable, and support different zoom levels.

Two-Way Telemetry and App Commands

  • Enable full two-way telemetry between app and external systems (e.g., simulator).
  • Implement command transmission from app to system.
  • Add in-app command buttons and controls (e.g., for waypoints, modes, actions).
  • Support customizable button layouts and reliable delivery with feedback.

Online Sharing with Parsed Data (Location, Name, Plane Heading, Speed, Height)

  • Implement online data sharing functionality.
  • Parse and transmit key telemetry data in real-time:
    • Location (coordinates)
    • Aircraft name/type
    • Heading
    • Speed
    • Altitude/height
  • Display received shared data clearly on the map and UI.

Security Hardening

  • Apply advanced security hardening across the entire app.
  • Include measures such as:
    • Code obfuscation
    • Root/jailbreak detection
    • Secure storage of keys and data
    • Protection against reverse engineering and tampering
    • Regular security audits and updates

Squad Mode via Internet

  • Develop full squad mode with internet-based multiplayer collaboration.
  • Enable real-time sharing of:
    • Positions and telemetry
    • Map annotations and orders
    • Player icons and status
  • Include squad management (join/leave rooms, authentication, voice/text coordination hooks).
  • Ensure low-latency synchronization and robust reconnection handling.

ATC Mode (Air Traffic Control)

  • Visualize, detect, and navigate all aircraft in the operational area.
  • Provide real-time data on aircraft positions, headings, speeds, and altitudes.
  • Implement functionalities to issue orders and instructions to individual aircraft or groups, visualized directly on their datapad.
  • Include tools for managing air traffic flow, conflict detection, and resolution.
  • Further expand with advanced ATC functions like flight plan management, weather integration, and emergency handling.

Notes & General Guidelines

  • Backend infrastructure (where needed) should prioritize privacy, encryption, and optional self-hosting.
  • Regular testing on target devices and simulators is required at each milestone.

App Version: v1.0.25 Last Updated: 2026.01.19

Ganze Datei auf GitHub

Änderungen

CHANGELOG.md

Changelog


App Version: v1.0.25 Last Updated: 2026.01.19

[1.0.26] - 2026-01-31

All relevant changes are summarized here by version.

[1.0.25] - 2026-01-18

  • Merge pull request #30 from arn-c0de/1.0.25-Feature-nearest-airports Feature: Implement Map View - Nearest Airports List with FAB button and popup marker selection #26

Summary

  • GUI Installer (Windows): Introduced a full PyQt6-based GUI installer (dcs_datapad_installer.py / run_installer.bat) replacing the legacy TUI (text-based menu). The GUI provides:
    • Automatic setup wizard – Auto-detects DCS installation and Saved Games folders, installs dependencies, and guides first-time configuration
    • Multi-tab interface – Dashboard (server control), Device Management (QR token generation + authorized devices list), Server Configuration (network/security settings), Installation Settings (paths), Health Checks (diagnostics + firewall rules), and real-time Logs viewer
    • QR registration integration – Generate registration tokens directly from the GUI with live device registration detection; tokens auto-reload without server restart
    • System tray support – Minimize to tray while server runs in background
    • Firewall configuration – Optional one-click Windows Firewall rule setup for UDP ports
  • QR Registration fixes (Critical):
    • Fixed missing --skip-qr-prompt flag in GUI server command – server now starts in non-interactive mode and accepts DeviceRegistration messages immediately
    • Fixed token file reload issue – verify_token() now reloads registration_tokens.json before verification, allowing GUI-generated tokens to work without server restart
    • Android app applyTokenSettings() restored to original behavior (sets both server IP and port from token payload)
  • Documentation:
    • Updated README.md with comprehensive GUI installer instructions, setup wizard flow, and QR pairing guide
    • Added note that TUI (install.bat/run.bat) is legacy and only available in branch 1.0.24
    • CLI manual start instructions updated with --skip-qr-prompt flag requirement
    • Added TODO placeholder for GUI screenshots
  • Configuration & gitignore:
    • server_config.json confirmed in .gitignore (auto-generated by GUI on first run)
    • GUI creates default config with sensible defaults if missing
  • Scripts & utilities:
    • Added test_device_registration.py – Python test script for simulating DeviceRegistration messages
    • Added simple_registration_test.py – Simplified test without emojis for Windows console compatibility
    • Added add_firewall_rule.bat – Manual firewall rule setup batch script
  • Migration notes:
    • Windows users: Use run_installer.bat instead of install.bat/run.bat
    • Linux/macOS: Use manual CLI start (TUI not supported on non-Windows platforms)
    • Branch 1.0.24 retains legacy TUI for users who prefer the text-based interface

Files of note

  • Added: scripts/DCS-SCRIPTS-FOLDER-Experimental/dcs_datapad_installer.py, run_installer.bat, test_device_registration.py, simple_registration_test.py, add_firewall_rule.bat, requirements_gui.txt, installer.spec
  • Modified: README.md, registration_token.py (auto-reload fix), app/.../QrRegistrationManager.kt (applyTokenSettings)
  • Removed references: Legacy install.bat/run.bat (moved to branch 1.0.24)

[1.0.24] - 2026-01-15

Summary

  • Map performance & stability: Reduced GC pressure and improved map panning smoothness by reusing GeoPoint instances and mutable collections; implemented viewport culling, invalidate throttling and recomposition detection to prevent redraw storms; AA system caching and removal of blocking DB queries from draw loops.
  • Map features: Added AA-range visualization (phase 1) and historical MapBorders overlays; improved airspace/ring rendering at navigation targets and ensured rings draw correctly behind labels; added per-marker traffic pattern support and multiple fixes for runway/label rendering and MGRS/grid layering.
  • UI & Flight instruments: Implemented responsive instrument layouts for phones/tablets, added heading display to the attitude HUD, removed instrument background on small screens, and fixed FAB positioning & behavior across orientations.
  • Forwarder & Launcher: Updated server launcher and install/run scripts; added resilient file tailing, dynamic reconnection, forwarder_status.json reporting, and multi-host/wildcard send support for the forwarder with client IP/session tracking.
  • Exports & detection: Improved weapon detection in export scripts and added export Lua detections (e.g., SA-11 / SA-5).
  • Docs & polish: Updated documentation and screenshots (launcher, AA range), consolidated recent changes from previous releases, and applied various small fixes and warnings cleanups.

Files of note

  • Modified/Added: app/src/.../ui/maps/overlays/*, MapViewer.kt, forward_parsed_udp.py, launcher/install scripts, various docs and screenshots.

[1.0.23] - 2026-01-08

Summary

  • QR Registration & onboarding: Implemented a full QR-based device registration flow. Server-side registration_token.py (token manager + QR generation), temporary UDP listener & interactive startup mode in forward_parsed_udp.py (press B within 5s to generate token and wait for registration), crypto_handshake.py integration to validate/consume tokens and add devices to authorized_devices.json (camelCase fields).
  • Security & robustness: Tokens are single-use, time-limited (default 10 min), bound to server IP; public key validation enforces EC SECP256R1; registration attempts are rate-limited and audited (audit log written to security_audit.jsonl).
  • Android: QR Scanner & registration client: Added QrRegistrationManager.kt and a full-screen ZXing-based QrCodeScannerScreen composable. Fixed camera sizing and lifecycle (resume/pause on lifecycle events), improved overlay/z-order, logging and QR validation (case-insensitive datapad_registration detection).
  • Tests & docs: Added test_qr_registration.py integration tests and updated docs (docs/EN/features/qr_registration.md, .../qr_registration_quickstart.md) to reflect implemented behavior and troubleshooting (cryptography/cffi note).
  • Fixes & polish: Fixed ClassCastException and layout issues in camera preview, ensured the scanner stops after scan, improved UX in DataPad settings (scan flow, field validation), and added --skip-qr-prompt for non-interactive startup.
  • Maps & Navigation (UI fixes): Prevent NM labels from wrapping vertically in the collapsed navigation panel; persist collapsed/expanded navigation panel state across app restarts; shorten Auto‑Center labels for a compact display; adjust Center FAB position to reduce overlap; add optional airspace rings displayed at navigation targets for better situational awareness. (Files: app/src/main/java/com/example/checklist_interactive/ui/common/FABOverlay.kt, app/src/main/java/com/example/checklist_interactive/ui/maps/MapViewer.kt, app/src/main/java/com/example/checklist_interactive/ui/maps/ui/MapNavigationDisplay.kt, app/src/main/res/values/strings.xml and localized variants.)
  • Flight Instruments improvements: Added heading display (yellow number) at top of Attitude Indicator; removed Fuel Indicator; responsive layout for smartphone vs tablet (smaller instruments, no background on phones for map clickthrough); disabled OSMdroid zoom buttons; optimized FAB positioning (DataPad/QuickAccess higher on phones, z-index added for proper layering).
  • Other notable: Added AA-map range visualisation (phase 1) and historical border/MapBorders overlays; switched to PDFBox-Android to fix PDF rendering crashes; forwarder improvements (multi-host/wildcard support, resilient file tailing, status reporting) and a simplified installer/launcher; added export Lua detection (e.g., SA-11) and HUD speed formatting >999. These items were consolidated from recent commits on 1.0.23.

Files of note

  • Added: scripts/registration_token.py, scripts/tests/test_qr_registration.py, app/.../data/datapad/QrRegistrationManager.kt
  • Modified: scripts/forward_parsed_udp.py, scripts/crypto_handshake.py, app/.../ui/datapad/QrCodeScannerComposable.kt, app/.../ui/maps/MapFlightInstruments.kt, app/.../ui/maps/MapViewer.kt, app/.../ui/common/FABOverlay.kt, docs and quickstart files.

[1.0.22] - 2026-01-06

Hier gekürzt. Ganze Datei auf GitHub

Details

Sprache
Kotlin
Lizenz
siehe Repository
Themen
aesandroidandroid-applicationchecklistsdcsdcs-worlddcsworldfile-managementflightsimjetpack-composemarkdownmobile-appmsfsmulti-tabmvvmnotespdf-viewerproductivitysimulation-tools

Ähnliche Projekte