Change Notes

v1.9.2+59 Latest
  • Feature Battery Charge Indicators in Flight Log Selection
    • Added battery charge status indicators when selecting batteries for flight logs
    • Individual color-coded indicators for each battery: 🟢 Optimal, 🔵 Storage, 🟠 Acceptable, 🟠 Degraded, 🔴 Critical
    • Chemistry-specific voltage thresholds for accurate status: LiPo, LiHV, LiFE, Li-Ion, NiMH, NiCd
    • Battery sets display individual member batteries with their own charge indicators
    • Quick visual health check before logging flights prevents using degraded batteries
  • Feature Enhanced Battery Set Display in Aircraft Detail
    • Battery set accordion headers now show all member batteries with charge indicators when collapsed
    • Quick at-a-glance view of every battery's health without expanding the set
    • Individual battery cards with detailed status when set is expanded
    • Color-coded status badges with background highlights for easy identification
    • Tap any battery card to view full battery details
    • Consistent "weakest link" approach ensures critical batteries are never hidden
  • UX Enhancement Multi-Chemistry Battery Support
    • Accurate voltage thresholds for all major battery chemistries
    • LiPo: 4.0V optimal, 3.75V storage, 3.5V acceptable, 3.4V degraded
    • LiHV: 4.15V optimal, 3.85V storage, 3.6V acceptable, 3.5V degraded
    • LiFE/A123: 3.4V optimal, 3.3V storage, 3.0V acceptable, 2.8V degraded
    • Li-Ion: 4.0V optimal, 3.7V storage, 3.4V acceptable, 3.2V degraded
    • NiMH/NiCd: 1.4V optimal, 1.2V storage, 1.1V acceptable, 1.05V degraded
    • Automatic chemistry detection from battery pack data
  • UX Enhancement Battery Set Accordion Header - Mobile View Improvements
    • Battery names now remain visible in battery set accordion headers at all screen widths
    • Previously, battery names were hidden on narrow screens (under 380px), showing only the set title
    • Collapsed battery sets now always display member battery names with status indicators for quick reference
    • Improves visibility and usability on mobile devices in both portrait and landscape orientations
v1.9.1+58
  • Feature Delete Charge Events
    • Added ability to delete battery charge events from the battery pack detail screen
    • Quick delete icon (🗑️) on each row in the "Charge Events" expansion tile for fast deletion
    • Delete button also available in the charge session detail bottom sheet
    • Confirmation dialog shows event date and mAh details before deletion
    • Note warns users that cycle count will not be automatically reversed
    • Uses soft delete for proper cloud sync support (PRO feature)
    • List automatically refreshes after deletion with success feedback
  • Android Fix External Links Not Opening in Browser
    • Fixed website, user guide, contact, and Discord links not opening on Android 11+ (API 30+)
    • Added required queries declarations to AndroidManifest.xml for package visibility compliance
    • Added HTTPS/HTTP URL scheme queries to enable canLaunchUrl() to properly detect browser availability
    • Added mailto scheme query to enable email client launching for contact links
    • All external links in Settings screen now properly open in external browser or email app
  • UX Enhancement Improved Mobile Image Viewer with Full-Screen Zoom & Pan
    • Fixed image viewing on mobile devices where zooming was constrained to center of screen
    • Created new FullscreenImageViewer widget providing true full-screen image experience
    • Zoom and pan now utilize the entire screen with no artificial constraints
    • Smooth pan/zoom gestures with support for 0.5x to 4.0x zoom range
    • Semi-transparent background with elegant close button for intuitive dismissal
    • Tap outside image area or press close button to exit viewer
    • Applied consistently across all image viewing contexts: aircraft photos, transmitter photos, certification/license photos, club membership photos, and radio setup transmitter photos
    • Professional, app-wide consistent image viewing experience
  • UX Enhancement Scroll-to-Hide Header in Mobile Landscape Mode
    • Header/title bar automatically hides when scrolling down in landscape mode on mobile devices
    • Provides more screen real estate for viewing content when device is rotated to landscape
    • Scrolling up brings the header back into view for access to search, menu, and sync options
    • Smooth 200ms animation for header show/hide transitions
    • Header automatically reappears when switching between screens via swipe navigation
    • Sync loading bar also hides along with header to maximize viewable area
    • Works across all main list screens: Models, Transmitters, Batteries, Maintenance, and Profile
    • Only activates on mobile platforms (Android/iOS) in landscape orientation
  • Feature Charge Event Date/Time Field with Backlog Support
    • Added date/time picker field to charge event screen for accurate timestamp tracking
    • Field pre-fills with current date/time when adding a new charge event
    • Users can modify the date/time to backlog charge events that occurred in the past
    • Calendar icon and formatted display (e.g., "1/13/2026 at 10:05 AM") for easy viewing
    • Tappable field opens date picker followed by time picker for flexible input
    • Consistent with date/time pickers used throughout the app (flight logs, maintenance entries)
    • Works for both individual batteries and battery sets
    • Charge timestamps properly saved to database for accurate historical tracking
  • UX Enhancement Responsive Battery Status Indicator in Split Pane View
    • Fixed battery status indicator taking up too much space in narrow split pane views
    • Very narrow views (<380px): Status indicator hidden, replaced with colored border around card (border color matches status)
    • Compact views (<520px): Status dot visible, label text hidden to save space
    • Normal width (≥520px): Both status dot and label displayed normally
    • Battery information remains fully readable at all split pane sizes
    • Automatic adaptation as split pane divider is dragged
    • Colored borders provide visual status feedback: green (Optimal), orange (Acceptable), red (Critical), blue (Storage)
  • Critical Fix Battery Deletion in Split Pane View
    • Fixed issue where deleting a battery in desktop split pane mode redirected to a blank screen
    • Battery detail screen now properly detects when embedded in split view vs navigated mode
    • Deletion in split pane mode clears selection and refreshes list without navigation
    • Maintains proper navigation behavior in mobile/tablet single-pane mode
    • Applied same fix pattern used successfully in transmitter and aircraft screens
v1.9.0+57
  • UX Enhancement "Add Flight Log" Shortcut on Aircraft List
    • Added a quick-access "Add Flight Log" option to the three-dot menu on each aircraft card in the main list
    • Allows users to quickly log flights directly from the aircraft list without entering the detail screen
    • Pre-fills the correct aircraft and automatically refreshes flight statistics on the list screen after saving
  • UX Enhancement Improved Charge Time Input
    • Updated the "Add Charge Event" screen to use an HH:MM:SS format for charge duration instead of decimal minutes
    • New mask-like input field ensures easy entry of precise hours, minutes, and seconds
    • Charge durations now display throughout the app in standard HH:MM:SS format for better readability
    • Maintains full backward compatibility with existing charge logs
    • Major Feature Sign In with Apple Integration
      • Added support for Sign In with Apple on iOS devices to provide an equivalent login option alongside Google Sign In
      • Secure authentication flow with Apple ID, including support for private email relay
      • Seamless account linking—Apple-authenticated users can link an email and password to access their data on desktop platforms
      • Official Apple-styled sign-in button integrated into the login screen for iOS users
    • UX Enhancement Improved Engine Edit Workflow
      • Fixed issue where using "Edit Engine" from the motor detail screen would return the user all the way to the aircraft detail screen
      • The app now correctly returns to the (now updated) motor detail screen after editing, maintaining user context
      • Applied consistent navigation behavior to both the AppBar edit icon and the Quick Actions edit button
v1.8.2+56
  • Major Feature Enhanced Inventory Management with Searching and Sorting
    • Added dedicated search bars to each inventory section for real-time filtering by name, model, or manufacturer
    • Custom Section Reordering: Users can now long-press and drag to rearrange the order of inventory categories (engines, servos, etc.)
    • New comprehensive sorting options: Alphabetical (A-Z), Newest First, Installed First, and Uninstalled First
    • Improved inventory header with a dismissible info card that stays hidden once closed (persisted via local storage)
    • Enhanced cross-component search logic with unified manufacturer/brand detection across all 7 inventory types
    • Optimized inventory list performance with polymorphic item handling
  • Critical Fix Enhanced Photo Path Persistence and Sync Restoration
    • Improved photo storage architecture using safe Documents directory to ensure media survives iOS and Android app updates
    • Enhanced migration system automatically detects and recovers photos from legacy "ApplicationStorage" and "ApplicationSupport" locations
    • Implemented intelligent sync-based restoration: automatically detects missing local photos and re-downloads them from cloud storage (PRO)
    • Unified filename sanitization and path resolution across all equipment types (Aircraft, Transmitters, Certifications, etc.)
    • Ensures that configuration files (ESC, Gyro) benefit from the same robust persistence and restoration logic
    • Fixed sync detection issues where updated photo paths weren't always triggering local database refreshes
v1.8.1+55
  • Critical Fix Database Migration Upgrade Error
    • Fixed database migration errors causing "table already exists" crashes when upgrading the app
    • Users upgrading from earlier versions would experience app crashes due to inventory tables being created without IF NOT EXISTS checks
    • All inventory system table creation statements (version 55-56) now use idempotent CREATE TABLE IF NOT EXISTS and CREATE INDEX IF NOT EXISTS
    • Ensures smooth upgrades regardless of starting database version
    • Database version bumped to 60 to capture this critical fix
    • Affected tables: inventory_engines, inventory_gyros, inventory_receivers, inventory_servos, inventory_escs, inventory_propellers, inventory_batteries
v1.8.0+54
  • Fix Transmitter Detail Screen Back Button Consistency
    • Changed transmitter detail screen back button from "X" (close icon) to "<" (back arrow)
    • Now consistent with all other detail screens in the app (aircraft, battery packs, etc.)
    • Uses Flutter's default back navigation behavior for unified user experience
  • UX Enhancement Reusable Expandable Notes System
    • Created portable, reusable notes components for consistent text editing experience across the app
    • Full-screen NotesEditorScreen with character count, save/cancel buttons, and discard changes confirmation
    • ExpandableNotesSection widget for expandable/collapsible notes display with edit capability
    • InlineExpandableNotes for compact, inline notes display with expand/collapse toggle
    • Tappable notes cards with edit icons that open the full-screen editor
    • Applied consistent notes experience to: Aircraft Detail, Flight Log List, Add/Edit Flight Log, Transmitter Detail, Add/Edit Maintenance Log, Edit Battery Pack
    • Context-specific hint text provides helpful prompts (e.g., maintenance description examples, corrective action documentation suggestions)
    • Fixed discard dialog auto-closing issue in notes editor
    • All notes areas now support proper unsaved changes detection
  • Major Feature Component Inventory System (Beta)
    • New centralized inventory management for spare and uninstalled components
    • Track 7 component types: Engines, Receivers, Servos, Gyros, ESCs, Propellers, and Batteries
    • Accessible via Settings → Data & Analytics → Component Inventory
    • Full detail screens for each component type with comprehensive field tracking
    • "Move to Inventory" workflow: Uninstall components from aircraft and store them in inventory
    • "Add from Inventory" workflow: Install inventory components onto aircraft
    • "Delete Permanently" option: Remove components completely from both aircraft and inventory
    • Inventory ID tracking links installed components to their inventory records
    • Full cloud sync support - inventory syncs across all devices (PRO feature)
    • 7 new Firestore collections for inventory data with proper security rules
    • Export/import support - inventory data preserved in backup/restore operations
    • Database version 55 with 7 new inventory tables and automatic migration
    • Integrated with nuke, repair, and garbage collection sync functions
v1.7.0+53
  • Critical Fix Photo Loss During App Updates - Comprehensive Storage Solution
    • Fixed critical issue where photos were being lost during app updates on all platforms (iOS, Android, Windows, macOS)
    • Root cause: Photos were stored in Application Support directory, which CAN be cleared during app updates
    • Solution: Migrated all photo and config file storage to Application Documents directory
    • Documents directory is NEVER cleared during app updates (guaranteed by OS)
    • Automatic one-time migration seamlessly moves existing photos from old location to new secure location
    • Migration tracking prevents repeated migrations and ensures reliability
    • Applies to all photo types: aircraft photos, transmitter photos, certifications, club memberships, FAA registrations, logbook entries
    • Also applies to config files: ESC configs, gyro configs, transmitter configs
    • Documents directory automatically backed up by OS-level backups (iCloud, iTunes, Android backup)
    • Enhanced sync service with matching migration for cloud-synced photos
    • Benefits both FREE users (local persistence) and PRO users (local + cloud sync)
    • Zero data loss - all existing photos automatically preserved during upgrade
    • Comprehensive logging for troubleshooting migration process
    • Industry-standard approach for user-generated content storage
v1.6.1+52
  • Critical Fix iOS QR Dialog Closing Issue
    • Fixed QR code dialogs closing immediately after opening on iOS iPads
    • Root cause: Parent detail screens were rebuilding while dialogs were open, causing iOS to dismiss the modal dialogs
    • Solution: Replaced modal dialogs with dedicated full-screen QR display using Navigator.push()
    • Created new QRDisplayScreen that is completely isolated from parent screen rebuild cycles
    • QR widgets now purely synchronous - removed all async operations that could trigger setState during display
    • QR logo image preloads before navigation to ensure instant display
    • Applied fix to all three equipment types: aircraft, transmitters, and battery packs
    • QR codes now display and remain open reliably on iOS devices
    • Improved user experience with full-screen QR view instead of constrained dialog
  • Critical Fix Dark Mode Watermark Visibility on iOS iPads
    • Fixed background watermark logos showing visible borders in dark mode, especially noticeable on iOS iPads
    • Root cause: Solid mono-colored logos (RCModelManager_Mono_Black.png and RCModelManager_White_Icon.png) had hard edges that didn't blend with screen backgrounds
    • Solution: Switched to transparent logos with proper alpha channels (RCModelManager_Transparent_WhiteLettering_Icon.png for dark mode, RCModelManager_Transparent_Icon.png for light mode)
    • Reduced watermark opacity from 0.05 to 0.03 for more subtle branding
    • Applied to 7 screens: battery pack list, aircraft detail, aircraft list, logbook list, transmitter detail, transmitter list, and profile screens
    • Watermarks now blend seamlessly with backgrounds across all themes and platforms
    • Eliminates jarring visual artifacts previously visible on high-contrast displays
v1.6.0+51
  • Major Feature QR Scanner Manual/Auto Capture Mode Toggle
    • Added Manual/Auto mode toggle button in QR scanner app bar for better control in multi-QR environments
    • Auto Mode (default): Scans and processes QR codes instantly when detected (original behavior)
    • Manual Mode: QR code detected but requires button press to capture and process
    • Large orange "Capture QR Code" button appears at bottom when QR detected in manual mode
    • Perfect for scanning environments with multiple QR codes nearby (prevents accidental scans)
    • Toggle button shows orange touch icon for Manual mode, white sparkle icon for Auto mode
    • Bottom instruction card changes color and content based on current mode
    • All QR processing logic identical in both modes for consistent behavior
  • Critical Fix Battery Detail Screen Grey Screen from External QR Codes
    • Fixed grey screen crash when viewing battery pack details after scanning external QR codes
    • Root cause: Navigation code tried to access non-existent battery.aircraftId field in BatteryPack model
    • Battery-aircraft associations are stored in separate junction table, not on battery object itself
    • Solution: Changed navigation to use qrData.aircraftId ?? -1 instead of accessing non-existent field
    • BatteryPackDetailScreen already has logic to handle -1 aircraftId (indicates standalone battery)
    • Standalone batteries (not attached to aircraft) now display details correctly from QR scans
    • Fixes reported issue where scanning external QR for batteries resulted in blank grey screen
  • Major Feature In-Service Date Tracking for Aircraft and Transmitters
    • Track when each aircraft and transmitter was put into service
    • In-service date field added to aircraft and transmitter add/edit screens
    • Displays as elegant calendar badge on detail screens alongside maintenance indicators
    • Full cloud sync support - in-service dates sync across all devices (PRO feature)
    • Export/import support - dates preserved in backup/restore operations
    • Database version 54 with automatic migration for existing users
  • Major Feature System Date Format Configuration
    • Application now respects your system's configured date format preferences
    • DateFormatter utility supports multiple format options
    • Available formats: MM/dd/yyyy (US), dd/MM/yyyy (EU), yyyy-MM-dd (ISO), and more
    • Centralized date parsing and formatting throughout the app
    • Consistent date display in flight logs, maintenance logs, in-service dates, etc.
    • Automatic initialization at app startup for seamless experience
  • Critical Fix Database Schema - External QR Code Columns for Fresh Installs
    • Fixed external QR code columns missing from aircraft table for new users installing the app
    • Added external_qr_code, qr_code_source, external_system_name, qr_code_assigned_date, qr_code_priority, and qr_code_active_mode columns to aircraft table creation
    • Columns were previously only added during database upgrades, causing "no such column" errors on fresh installs
    • Database version remains at 52 (columns added to onCreate and defensive migration code)
    • Resolves critical issue preventing new users from using external QR code features
    • Existing users unaffected - automatic migration already handled these columns
  • Feature Database Version Display in Settings
    • Added real-time database version indicator in Settings → About section
    • Shows current database version with up-to-date status confirmation
    • Green checkmark displayed when database is current
    • Orange warning indicator if database version doesn't match expected version
    • Helps troubleshoot database-related issues and verify successful migrations
    • DatabaseHelper now exposes getDatabaseVersion() and expectedDatabaseVersion getter methods
  • Critical Fix QR Scanner Battery Pack Navigation Error
    • Fixed missing required aircraftId parameter when navigating to battery pack details from QR scanner
    • Added proper null-handling for aircraftId using fallback to battery's own aircraftId
    • Prevents "Required named parameter 'aircraftId' must be provided" build errors
    • Navigation to battery pack detail screen now works correctly from QR code scanning
  • Fix Battery List Maintenance Chip Alignment
    • Fixed maintenance log/task status chips being positioned in the middle of battery cards when screen expanded
    • Chips now remain left-justified at all screen widths, matching aircraft and transmitter list behavior
    • Simplified layout logic by removing complex LayoutBuilder responsive code
    • Consistent alignment across all equipment list screens
v1.5.5+50
  • Major Feature Universal External QR Code Import System
    • Scan and import QR codes from ANY external RC management system (DJI, Betaflight, Spektrum, etc.)
    • No format restrictions - works with any QR code content, not just RC Model Manager format
    • Intelligent detection: Attempts RC Model Manager parsing first, falls back to generic import for any QR code
    • Manual data entry: Enter external system name (e.g., "DJI", "Betaflight") and optional ID
    • Equipment association: Link imported QR codes to any of your aircraft, transmitters, or battery packs
    • Full management UI: View, edit, and delete external QR associations from equipment detail screens
    • Link icon indicator: Shows in app bar when equipment has external QR codes associated
    • Management dialog: Comprehensive interface for viewing current associations and managing them
    • Edit functionality: Change system name or ID without rescanning
    • Replace functionality: Scan new QR codes to replace existing associations
    • Delete protection: Confirmation dialogs prevent accidental removal
    • Hybrid QR generation: Equipment with external QR codes generates QR codes containing both internal and external data
    • Cross-system compatibility: Your QR codes work with both RC Model Manager and external systems
    • Security by design: Only stores user-provided text data, no code execution, all associations require manual approval
    • Database integration: External QR data stored in equipment records with full sync support
    • UI indicators: External QR badges and special handling throughout the app
    • Comprehensive documentation: Updated user guide with detailed import workflows and examples
v1.5.4+49
  • Critical Fix Battery Cycle Count Editing and Persistence Issues
    • Fixed battery cycle counts not saving when manually edited in battery pack detail screens
    • Fixed automatic cycle count reversion when viewing battery pack details (removed incorrect recalculation logic)
    • Fixed silent update failures - battery edits now properly validate database operations and show error messages
    • Manual cycle count edits now persist correctly across app sessions and device sync
    • Automatic cycle increments from charge sessions now work reliably without being overridden
    • Battery pack cycle counts accurately reflect both manual adjustments and automatic charge-based increments
  • Critical Fix Charge Session Form Validation and User Experience
    • Removed overly restrictive validation requiring mAh input when battery capacity is set
    • Charge sessions can now be logged with any combination of fields (mAh optional for documentation-only entries)
    • Added clear validation error messages for invalid mAh entries when provided
    • Enhanced mAh input field with "Required for cycle counting" hint for clarity
    • Improved charge session form layout with mAh field prominently positioned for cycle tracking
    • Prevents form rejection when users want to document charge events without cycle implications
  • Major Feature Automatic Image Compression and Size Management
    • All photos now automatically compressed to stay under 2MB during sync, export, and import operations
    • Applies to aircraft photos, transmitter photos, certifications, club memberships, FAA registrations, and maintenance logbook entries
    • Three-tier compression strategy: 85% quality (first attempt) → 70% quality (second) → 50% quality (final) with progressive size reduction
    • Images converted to JPEG format for optimal compression and cross-platform compatibility
    • Ensures consistent file sizes across all devices and prevents storage bloat from large imported images
    • Backward compatible - existing images are compressed during next sync/export/import operation
    • Reduces Firebase Storage costs and improves sync performance
    • Configuration files (ESC settings, gyro configs, etc.) remain uncompressed for data integrity
  • Critical Fix Desktop Split Pane Refresh Issue - Left Pane Not Updating After Detail Edit
    • Fixed issue where in desktop split pane mode, editing details in the right pane wouldn't update the left pane list
    • Root cause: Detail screens were embedded in split pane mode, but when users edited components from within the detail view, the parent list screen wasn't being notified to refresh its data
    • Added onAircraftUpdated, onTransmitterUpdated, and onBatteryUpdated callback parameters to detail screens
    • Detail screens now notify parent list screens when edits are saved, triggering list refresh
    • Fixed for all three equipment types: models (aircraft), transmitters, and batteries
    • Handles both embedded split pane mode and separate navigation modes
    • Resolves customer-reported issue where changes weren't visible in list until app restart or navigation away/return
    • Maintains proper separation of concerns between embedded and navigation-based flows
v1.5.3+48
  • Critical Fix Flying Field Address Sync Issue
    • Fixed flying field addresses not syncing between Windows and Android devices
    • Root cause: Flying field Firestore conversion methods (_flyingFieldToFirestore and _flyingFieldFromFirestore) were missing several fields from the FlyingField model
    • Missing fields: address, website, contact_info, field_rules, club_membership_id
    • Added all missing fields to both upload and download sync conversion methods
    • Flying field data now syncs completely, including addresses, websites, contact information, and field rules
    • Resolves customer-reported issue where field names and locations synced but addresses did not
    • Database schema was already correct - this was purely a sync serialization issue
  • Fix Aircraft List Layout Overflow in Split-View Mode
    • Fixed RenderFlex overflow error (1.8 pixels) when resizing aircraft list to smallest width in desktop split-view mode
    • Maintenance chip now switches to build icon when card width < 300px (matching thumbnail behavior)
    • FAA registration text wrapped in Flexible widget to allow proper truncation during transient resizing
    • Text truncates with ellipsis instead of causing overflow when space is constrained
    • Resolves overflow exception that occurred at minimum split-pane list width (320px)
  • Fix Split View Layout Improvements for Battery Packs
    • Fixed FAA number flickering in aircraft detail header during window resize by caching FAA registration data
    • Removed responsive layout logic from aircraft, transmitter, and battery pack list screens for consistent card layouts
    • Fixed battery set reordering crash when expanded - drag handle now only shows when battery set is collapsed
    • Eliminates Flutter ReorderableListView errors caused by dynamic widget tree changes during expand/collapse
    • Users must collapse battery sets before reordering them, preventing rendering exceptions
    • Clean, professional appearance across all screen sizes with no layout shifts or element repositioning
v1.5.2+47
  • Critical Fix Photo and Config File Synchronization Path Errors
    • Fixed path doubling bug causing "PathNotFoundException" errors during cross-device sync
    • Fixed transmitter photos not downloading after recrop/sync operations
    • Fixed FAA registration photos failing to sync with path syntax errors
    • Fixed club membership photos not downloading correctly
    • Fixed gyro config files failing to download during sync
    • Root cause: Some code was passing full directory paths to _downloadFile() instead of category strings
    • _downloadFile() method was then constructing paths again, resulting in doubled paths like: C:\Users\...\Documents/C:\Users\...\Documents/photos/... (invalid)
    • All four affected locations now correctly pass category strings (e.g., 'photos/transmitters')
    • Proper path construction now results in: C:\Users\...\AppData\...\rc_model_manager\photos\... (valid)
    • Resolves user-reported issue where transmitter and FAA registration photos weren't syncing
  • Critical Fix Transmitter Photo Re-download Logic Error
    • Fixed transmitter photo re-download using incorrect aircraft methods (copy-paste bug)
    • When transmitter photos needed re-downloading, sync was calling: _aircraftFromFirestore() and updateAircraft() instead of transmitter methods
    • This caused transmitters to be converted into aircraft records during sync
    • User scenario: Recrop transmitter photo → sync → photo appears on ghost aircraft instead of transmitter
    • Now correctly calls _transmitterFromFirestore() and updateTransmitter()
    • Transmitter photos now properly sync after editing/recropping operations
    • Resolves user-reported issue where transmitter appeared in aircraft list after photo sync
  • UX Enhancement Hidden Background Watermarks in Split-Pane View
    • Background watermark logos now hidden when using desktop split-pane (master-detail) view
    • Reduces visual clutter when viewing list and detail screens side-by-side
    • Applies to aircraft and transmitter split-pane views
    • Watermarks remain visible on mobile and when viewing screens individually
    • Cleaner, more professional appearance on desktop layouts
  • UX Enhancement Fixed FAA Number Flickering in Aircraft Detail Header
    • Fixed FAA registration number flickering/flashing during window resize in split-pane view
    • Root cause: FutureBuilder was refetching FAA registration data on every rebuild
    • Solution: Cache FAA registration data during aircraft detail load
    • Display cached value directly instead of using FutureBuilder that triggers on resize
    • Eliminates distracting flash/reload behavior when adjusting split pane divider
    • Provides stable, smooth user experience in desktop layouts
  • UX Enhancement Improved List Card Layout Consistency
    • Fixed list card layout issues where FAA number and maintenance indicators moved awkwardly in medium-width views
    • Simplified subtitle layout logic to provide consistent vertical alignment
    • FAA number and maintenance chip now display together on same row, left-aligned
    • Removed complex responsive breakpoints that caused elements to shift positions
    • Cleaner, more professional appearance across all screen sizes
    • Consistent layout whether viewing on mobile, tablet, or desktop split-pane
v1.5.1+46
  • Critical Fix Photo Synchronization Issues
    • Fixed photos not syncing between devices or appearing after initial sync
    • Fixed Firestore security rules blocking photo uploads for authenticated users
    • Enhanced image picker with proper error handling and loading states
    • Images now properly upload to Firebase Storage and sync across all devices
    • Added comprehensive error messages for troubleshooting upload failures
    • Improved image editor integration for seamless photo management
  • Critical Fix Database Schema for Recurring Maintenance
    • Fixed missing is_recurring column causing crashes for new users
    • Added is_recurring field to both table creation (new installs) and migrations (upgrades)
    • Bumped database version to 51 for automatic migration on app update
    • Ensures all users (new and existing) have proper database schema
    • Eliminates "table logbook_entries has no column named is_recurring" errors
  • UX Enhancement Redesigned Split-View Divider with Modern Grab Bar
    • Created new SplitViewDivider widget with clean 3-dot vertical grab bar design
    • Replaced bulky arrow buttons with subtle, compact 28×28px rounded square indicator
    • Thin 2px divider line provides clear visual separation without distraction
    • Enhanced hover effects: grab bar brightens and shadow increases for better feedback
    • Reduced divider width from 16px to 14px for cleaner appearance
    • Consistent design now used across all split-pane screens (Aircraft, Battery Packs, Maintenance Log, Transmitters)
    • Drag-only interaction maintains full resize functionality without visual clutter
  • Fix Edit Maintenance Log Back Button Navigation
    • Added proper back navigation handling with unsaved changes detection
    • Shows "Discard Changes?" dialog when leaving screen with unsaved edits
    • Prevents accidental data loss when using back button or system navigation
    • Blocks navigation while save operation is in progress
    • Improved user experience with clear confirmation prompts
  • Critical Fix Transmitter Photo Edit Black Screen in Split-Pane View
    • Fixed black screen issue when editing transmitter photos in desktop split-pane mode
    • Added embedded parameter to TransmitterDetailScreen to detect split-pane context
    • Photo edits now refresh in-place when embedded instead of attempting navigation
    • Maintains proper navigation flow when screen is used in full-screen mode
    • Eliminates confusion and improves desktop multi-pane workflow reliability
  • UX Enhancement Data Wipe Settings Improvements
    • Local device data can now be wiped without signing in
    • Cloud data deletion requires authentication for security
    • Updated post-wipe success message to be more concise: "Please restart your app after wipe"
    • Improved clarity on data deletion options and requirements
v1.5.0+45
  • Desktop UX New Split-View (Master–Detail) Lists with Resizable Divider
    • Aircraft, Transmitters, Battery Packs, and Maintenance Log now support a desktop-optimized two-pane layout
    • Selecting an item shows details on the right without leaving the list
    • Drag the center divider to resize the panes (with quick snap controls)
    • Uses wide-screen space more effectively and reduces extra clicks
  • Mobile UX Prevent Split-View on Phones in Landscape
    • Phones stay in the familiar single-pane navigation flow even when rotated to landscape
    • Split-view is reserved for larger screens with enough height to be usable
  • Fix Maintenance Split-View Completion Stability
    • Completing a maintenance task from the split-view detail pane no longer pops the Navigator (prevents a blank/black screen)
    • Full-screen detail flow still returns to the list with a refresh result
v1.4.8+44
  • Critical Fix Transmitter Sync Configuration Change Detection
    • Fixed transmitter sync not detecting changes to switch types or position counts
    • Sync now properly detects when baseline transmitter switch configuration changes (e.g., 2-position → 3-position)
    • Detects changes in max positions (e.g., 3 positions → 6 positions for rotary dials)
    • Preserves user-configured conditions when updating switch configurations
    • Enhanced feedback messages show exactly what changed: "Updated switches: A, B (6 positions)"
    • Previously reported "all switches synchronized" even when configuration had changed
    • User conditions maintained on overlapping positions when switch updates occur
    • Debug logging added for troubleshooting complex sync scenarios
    • Resolves issue where users couldn't sync configuration changes from baseline transmitter to bound models
  • UX / Maintenance Workflow Clarified Recurring vs One-Time Maintenance Behavior
    • Refined maintenance completion logic so that using Complete Task on a non-recurring maintenance entry clears all "Next Service Due" values on that closed task
    • Prevents closed, one-time maintenance jobs from still appearing to have future-due triggers while keeping Next Due fully usable for planning
    • When Recurring Maintenance is enabled, closing a task now preserves its Next Due values for history and automatically creates the next open task using those thresholds
    • Updated in-app User Guide to clearly explain how "Next Service Due" works with the Recurring switch and what the Complete Task button does in each case
v1.4.7+43
  • Critical Fix Maintenance Task Completion Prevents Unwanted Auto-Task Creation
    • Fixed issue where completing maintenance tasks would automatically create duplicate maintenance tasks
    • Clearing "Next Service Due" fields when marking tasks as completed prevents accidental future task generation
    • Maintains manual scheduling capability while eliminating unwanted automatic creation
    • Improved user control over maintenance planning workflow
  • Critical Fix Transmitter Switch Position Synchronization
    • Fixed transmitter switches not updating position counts when base aircraft switches were modified
    • Added automatic sync of max_positions field between aircraft switches and bound transmitter switches during sync operations
    • Prevents discrepancies between aircraft and transmitter switch configurations
    • Resolves reported customer issue where changing switch positions (e.g., 6 to 18 positions) on aircraft wasn't updating bound transmitters
v1.4.6+42
  • Critical Fix Transmitter Channel Sync Performance and Reliability
    • Fixed transmitter channel synchronization bottlenecks by implementing batch operations (10 switches per batch)
    • Prevents Firebase timeout errors when syncing large transmitter configurations with many switches
    • Improved sync reliability for complex radio setups and multi-device environments
    • Enhanced sync logging and error reporting for better troubleshooting
  • Major Feature Complete Data Wipe Functionality
    • Added "Delete Cloud Data" option in Settings with optional local device data inclusion
    • Multi-step confirmation process with clear messaging about what will be deleted
    • Choice between cloud-only deletion or complete device reset (includes local data)
    • Repositioned UI at bottom of settings screen for safety and improved visibility
    • Enhanced user experience with step-by-step confirmation dialogs
    • Complete device reset capability with automatic app restart for full system cleanup
    • Automatic backup and retention of user preferences when only cloud data deleted
  • Technical Enhancement Improved Code Quality and Stability
    • Removed duplicate method definition causing build errors (update_service.dart)
    • Fixed UI color syntax errors (Colors.grey600 → Colors.grey)
    • Enhanced error handling throughout sync operations
    • Improved batch processing coordination to prevent race conditions
    • Added comprehensive logging for sync performance monitoring
  • UX Enhancement Settings Screen Organization
    • Repositioned data management actions for better visibility and safety
    • Clearer messaging for destructive actions with visual emphasis (red styling, bottom placement)
    • Improved user guidance with explicit descriptions of functionality scope
    • Enhanced visual hierarchy to separate safe operations from dangerous ones
v1.4.5+41
  • Critical Fix Automatic restoration of missing aircraft and transmitter photos after app updates
    • Fixed critical issue where aircraft photos disappeared during app updates on all platforms
    • Enhanced file storage to use persistent application support directories across Android, iOS, Windows, and macOS
    • Automatic re-download mechanism detects missing local files and restores them from cloud storage
    • Applied to aircraft photos, transmitter photos, ESC config files, gyro config files, and multi-photo objects (certifications, club memberships, FAA registrations)
    • Cross-platform file migration system moves existing files from temporary directories to persistent locations
    • No data loss - users won't lose photos when upgrading the app or switching devices
  • Critical Fix Synchronization now automatically restores missing images from cloud storage
    • Fixed synchronization not re-downloading photos when local files disappeared during app updates
    • Enhanced sync service with proactive missing file detection and automatic restoration
    • Aircraft and transmitter photos automatically redownload during next sync when detected missing
    • Prevents broken image links and missing equipment photos across devices
    • Real-time file validation during sync operations restores missing media instantly
  • Technical Enhancement Cross-platform persistent file storage system
    • Migrated from app documents directory to application support directory across all platforms
    • Ensures app updates survive file deletion on Android, iOS, Windows, and macOS
    • Automatic file migration preserves existing user data during the transition
    • Enhanced error handling and logging for file system operations
    • Platform-specific optimizations for file system differences between desktop and mobile
  • Improvements Enhanced synchronization reliability for configuration files
    • ESC and gyro config files now automatically re-download when missing from local storage
    • Prevents broken radio configurations after app updates or device synchronization
    • File name sanitization ensures compatibility across different file systems
    • Complete restoration of all equipment media during sync operations
v1.4.4+40
  • New Feature Architecture-specific automatic updates for MacOS
    • MacOS users now receive architecture-specific updates (Intel x64 or Apple Silicon ARM64)
    • App automatically detects Mac architecture using 'uname -m' command
    • Downloads appropriate DMG file (RCModelManager_macOS_X64.dmg or RCModelManager_macOS_ARM64.dmg)
    • Falls back to generic macos download if architecture detection fails
    • Eliminates manual selection requirement for Mac updates
v1.4.3+39
  • Critical Fix Settings Screen Version Alignment
    • Fixed settings screen showing main version instead of platform-specific version for available updates
    • Settings screen now displays the correct version for each platform (iOS, Android, Windows, macOS, Linux) when updates are detected
    • Updated version display to use platform-aware display logic consistent with update dialogs
    • Users now see accurate version information in both update notifications and settings screen
  • Major Fix Platform-Specific Version Management System
    • Resolved critical issue where update system showed global version instead of platform-specific versions in dialogs and settings
    • Added getPlatformDisplayVersion() method to VersionInfo model for platform-aware version display
    • Update dialogs now correctly show platform-specific versions (e.g., Android users see Android version, iOS users see iOS version)
    • Enhanced settings screen with real-time update indicators when new versions are available
    • Visual cues include notification dots on version cards and "Update Available" badges
    • Platform-specific version checking was already working, but display logic now matches the version checking logic
    • Ensures users only see update notifications when updates are actually available for their specific platform
    • Prevents confusing "update available" messages when mobile platforms are still in store review
  • UX Enhancement Settings Screen Update Indicators
    • Added live update monitoring to settings screen version information
    • Blue notification dot appears on version card when updates are available
    • "Update Available" badge displayed prominently when new versions are detected
    • Shows both current installed version and available update version
    • Platform-specific version display for detected updates (uses user's platform version, not global version)
    • Real-time updates as new versions are detected or become available
    • Consistent visual indicators with app-wide update notification system
v1.4.2+38
  • Major Feature Battery Usage Percentage Bars in Flight Logs
    • Added percentage usage indicators to flight log displays when battery data is available
    • Priority-based calculation: Uses mAh consumption data for most accurate percentages (when available)
    • Fallback to voltage-based estimation using linear interpolation between start and minimum safe voltages
    • Chemistry-aware minimum voltage defaults: 3.3V per cell for LiPo, 2.8V per cell for LiFe, 1.0V per cell for NiMH
    • Visual progress bars with color-coded thresholds (green <60%, orange 60-80%, red >80%)
    • Clear warning labels for voltage-based estimates: "⚠ Voltage estimation • Add mAh logging for accuracy"
    • Enhanced usability for both coulomb counter users and voltage-only logging scenarios
    • Proper linear discharge curve accounting for LiPo chemistry (4.2V full → minimum voltage discharge range)
  • UX Enhancement Improved Maintenance Log Ordering in Aircraft Detail Screen
    • Maintenance logs now prioritize active maintenance tasks at the top
    • Done entries now appear at the bottom, sorted by most recent completion date
    • Incomplete entries (open, in-work, overdue) are sorted by due date soonest first
    • Helps users focus on urgent maintenance tasks while keeping completed work accessible
    • Applied to maintenance history sections across aircraft, transmitter, and battery detail screens
  • UX Enhancement Improved Maintenance Log Status Filter Categorization
    • Restructured maintenance log status filter to eliminate confusing terminology
    • "Open" filter now includes all active maintenance tasks (open, in work, overdue)
    • Separate "In Work" and "Overdue" filters for specific status filtering
    • Clarifies that all three states (open, in work, overdue) are technically active maintenance
    • Reduces user confusion about maintenance workflow and status meanings
  • UX Enhancement QR Code Scanner Warning for Retired Assets
    • Added warning dialog when scanning QR codes for retired assets
    • Dialog shows: "This asset has been marked as retired. Do you want to continue with this action?"
    • Users can choose "Cancel" to return to scanning or "Continue" to proceed with the action
    • Prevents accidental actions on retired equipment while allowing intentional continued use
    • Applies to aircraft, batteries, and transmitters (not battery sets)
v1.4.1+37
  • Major Feature Per-Platform Version Management System
    • Update system now supports independent version numbers for each platform
    • Solves cross-platform release timing challenges (iOS App Store: 1-3 days, Android Play Store: 1-2 days, Desktop: immediate)
    • Desktop platforms can release new versions immediately while mobile platforms remain on previous version during store review
    • Platform-specific version numbers in Firestore allow granular control over update notifications
    • Each platform checks its own version first, falls back to global version if not specified
    • Users only see update notifications when updates are actually available for their specific platform
    • Prevents confusing "update available" messages on mobile before store approval
  • Technical Enhanced VersionInfo Model
    • Added optional version and buildNumber fields to PlatformInfo class
    • Platform-specific versions override global version when present
    • Maintains backward compatibility - existing configurations work unchanged
    • Simple fallback logic ensures smooth operation across all scenarios
  • Technical Improved UpdateService Logic
    • Modified checkForUpdates() to prioritize platform-specific version checking
    • Added _isNewerVersion() helper method for robust version comparison
    • Enhanced console logging shows which platform and version are being checked
    • Proper null-safety handling for optional platform version fields
  • Documentation Comprehensive Staggered Release Workflow
    • Updated update_firestore_structure.md with complete per-platform examples
    • Two configuration modes: Simple (all platforms same version) vs Staggered (different per platform)
    • Real-world workflow timeline showing Day 1 (desktop release), Day 3 (iOS approval), Day 4 (Android approval)
    • Step-by-step Firestore configuration examples with actual JSON structures
    • Testing and troubleshooting guidance for version management
  • Configuration Updated versions.json Schema
    • Example staggered release configuration included
    • Desktop platforms at v1.4.0+42, mobile platforms at v1.3.5+41
    • Demonstrates proper JSON structure for per-platform versioning
    • Ready-to-use template for production deployments
v1.4.0+36
  • New In-app update notification system
    • App now checks for new versions on startup and after login
    • Update dialog shows version, release date, and platform-specific instructions
    • Optional "Don't show this update again" checkbox lets you skip a specific version
    • Manual "Check for Updates" action added under Settings → About
  • Improvement Simplified desktop download flow
    • Update button now opens the installer/download (DMG/ZIP) in your default browser
    • Files save to your normal Downloads folder instead of hidden temp locations
    • Button text updated to clearly say "Download Update" instead of "Download & Install"
  • Improvement Store and website links
    • iOS can open directly to the RC Model Manager App Store page
    • Android/desktop are ready for future Google Play links using the same update dialog
    • All platforms use external browser/app handling via url_launcher for better reliability
  • Improvement Centralized change notes
    • Update dialog links to this change-notes page on rcmodelmanager.com
    • New versions only need their notes added in one place going forward
v1.3.5+35
  • UX Enhancement Maintenance Details - Smart Date Display
    • Changed "Date" label to "Due Date" in maintenance detail screens for clarity
    • Added days remaining/overdue calculation for active maintenance tasks (Open / In Work / Overdue)
    • Closed maintenance tasks now show only the completion date (no misleading "due in X days" text)
    • Examples: closed shows "December 15, 2025"; active shows "December 15, 2025" with a second line like "Due in 5 days"
    • Detail screen behavior is now consistent with list-screen due date logic
  • Feature Battery Set Detachment from Aircraft
    • Added "Detach from Aircraft" support for battery sets, matching individual battery pack behavior
    • Detaching a set removes all member associations from the aircraft in a single action
    • Implemented on the aircraft detail screen using the same detach workflow as packs
  • Feature Battery Set Detail Viewing
    • New detail view for battery sets showing members, configuration, and associated aircraft
    • UI is consistent with existing battery pack detail screens for a unified experience
    • Enables full inspection and management of battery sets from a single screen
  • Feature Battery Set Edit Management
    • Added dedicated edit screen for battery sets
    • Rename sets with a searchable, extensible name field
    • Optional description and notes fields for documenting complex configurations
    • Mark sets as favorites directly from the edit screen
    • Access set editing via the three-dot menu on battery set headers with automatic list refresh after saving
    • Validation ensures set names are required and properly formatted
    • Design is aligned with other asset edit screens in the app
  • UX Enhancement Battery Set Favorites & Visual Indicators
    • Added favorites support for battery sets with persistent storage
    • Amber star icon appears in set headers when marked as favorite
    • Popup menu options: "Add to Favorites" / "Remove from Favorites" for quick toggling
    • Behavior is consistent with aircraft, transmitter, and battery pack favorites
    • Favorites make it easy to access commonly used battery configurations
    • Favorite state syncs across PRO-enabled devices via cloud sync
v1.3.4+34
  • Critical Fix iOS Drag Reordering Crash - Index Mapping Issue
    • Fixed iOS crash when dragging to reorder detail screen sections ("Failed assertion: '0 <= index && index < widget.itemCount'")
    • Root cause: Drag handle indices weren't properly mapped to visible section indices when sections were hidden
    • Solution: Ensured drag handles receive correct visible indices, not full section order indices
    • Fixed both aircraft and transmitter detail screens affected by the same issue
    • Section reordering now works reliably across all platforms including iOS
    • No impact on existing reorder functionality or user preferences
  • Critical Fix Section Reordering "Jump Two Positions" Bug
    • Fixed sections jumping two positions down when dragged downward in detail screens
    • Root cause: Flutter's ReorderableList newIndex parameter accounts for pre-removal position when dragging down
    • Solution: Added standard Flutter adjustment (newIndex -= 1) when oldIndex < newIndex
    • Sections now move exactly one position in both directions (up and down)
    • Applied to both aircraft and transmitter detail screens
    • Upward dragging was already working correctly and remains unchanged
  • Technical Improved drag handle index validation to prevent out-of-bounds access
    • Enhanced _reorderSections method with better index bounds checking
    • Added proper validation for drag start operations to prevent crashes
    • Made drag operations more robust against timing issues and state changes
v1.3.3+32
  • Critical Fix Radio SyncID Preservation During Updates
    • Fixed radio configurations losing sync identifiers when updated via radio setup screen
    • Radio syncId now properly preserved when transmitter file paths or notes are modified
    • Prevents switch synchronization failures caused by missing radio identifiers
    • Ensures continuous sync reliability for aircraft-transmitter-switch relationships
  • Critical Fix Cascade Delete for Switches When Radios Are Deleted
    • Aircraft repository now properly marks all dependent switches as deleted when a radio is removed
    • Prevents orphaned switches from remaining in database after radio deletion
    • Switch cleanup automatically triggers across all synced devices
    • Maintains database integrity and prevents "radio not found locally" errors
  • Enhancement Comprehensive Sync Data Repair Tool
    • Repair Sync Data now cleans ALL 27 Firestore collections (aircraft, transmitters, radios, channels, switches, batteries, engines, propellers, receivers, ESCs, servos, gyros, flight logs, profiles, certifications, memberships, registrations, battery packs, charge sessions, maintenance events, logbook entries, flying fields, battery sets, and more)
    • Automatically deletes documents with null sync_id from Firestore (prevents sync corruption)
    • Detects and marks orphaned switches belonging to deleted radios as deleted
    • Forces re-upload of corrected local data for complete sync recovery
    • Comprehensive two-phase repair: Phase 1 cleans Firestore corruption, Phase 2 marks local data for re-upload
  • Major Feature Automatic Garbage Collection
    • Soft-deleted items (marked as is_deleted = true) now automatically cleaned from Firestore after 30 days
    • Random sampling (10% probability) runs cleanup during regular sync operations
    • Keeps database size optimized without impacting sync performance
    • 30-day grace period ensures all devices have time to sync deletions before permanent removal
    • Works across all 27 database collections automatically
    • Non-critical operation - won't cause sync failures if cleanup encounters errors
  • Improvement Switch Synchronization Reliability
    • Enhanced switch sync logging for better troubleshooting of multi-device scenarios
    • Fixed switch sync failures when custom aircraft-specific switches are added alongside transmitter template switches
    • Proper handling of model-specific switches (e.g., switch E on Aircraft1 when transmitter has A, B, C, D)
    • Complete sync verification across all switch sources: transmitter templates and model-specific additions
v1.3.2+31
  • Critical Fix Switch Configuration Sync Recovery Tool
    • Added "Repair Sync Data" functionality to fix corrupted switch synchronization in Firestore
    • Resolves issue where switches uploaded with radio_sync_id: null causing "radio not found locally" errors on other devices
    • Two-step repair process: (1) Deletes corrupted switches from Firestore, (2) Marks local data for re-upload
    • New orange "Repair Sync Data" button in Settings → Subscription & Sync section
    • Automatically triggers sync after repair completes for immediate fix
    • Repairs entire relationship chain: aircraft, transmitters, radios, channels, and switches
    • User-friendly confirmation dialog explains the repair process before execution
    • Critical for multi-device users experiencing missing switches on secondary devices
    • Only affects PRO users with cloud sync enabled
  • Technical Enhanced sync service error logging for troubleshooting switch relationship issues
  • Technical Fixed save logic in transmitter edit screen to properly mark switches for upload
v1.3.2+30
  • Critical Fix iOS Emulator Touch Issue in List Screens
    • Fixed iOS emulator touch blocking in top area of main view pages (just below navigation bar)
    • Issue was caused by search container overlap with navigation bar's hit test area
    • Increased search container top padding from 8px to 24px on all list screens
    • Wrapped filter IconButtons in Material widgets for better iOS touch handling
    • Applied to aircraft, transmitter, battery pack, and maintenance logbook list screens
    • Filter buttons and search fields now properly accessible on iOS emulators
  • Feature Battery Pack Chemistry Filters with Multiple Selection
    • Added battery chemistry type filtering to battery pack list screen
    • Support for multiple chemistry selection (LiPo, Li-Ion, LiFe, NiMH, NiCd, etc.)
    • Dynamic filter chips automatically detect unique chemistry types from your batteries
    • Color-coded icons for each chemistry type matching battery card icons
    • Filter button highlights when any chemistry filter is active
    • Easy toggle - tap to select, tap again to deselect
    • Consistent with other filter screens allowing multiple selections
    • Filter by one or more chemistry types simultaneously
  • UX Draggable Detail Screen Sections
    • Aircraft and transmitter detail screens now support drag-and-drop section reordering
    • Long-press section headers to rearrange layout to match your workflow preferences
    • Section order automatically saves and persists across app sessions
    • "Hide empty sections" toggle button in app bar to declutter unused sections
    • Preferences sync across all devices (PRO feature)
  • Feature Aircraft Dimensions Tracking
    • Added dimensions section to aircraft: Length, Wingspan/Rotor Diameter/Width, Weight, Height
    • Context-aware field labels: "Wingspan" for airplanes/drones, "Rotor Diameter" for helicopters, "Width" for cars/other
    • Optional dimensions notes field for additional details
    • All dimension fields fully synced across devices (PRO feature)
  • Feature Propellers/Blades Management
    • Track propellers and rotor blades with manufacturer, part number, size/pitch, type, and quantity
    • Support for multiple propellers per aircraft (multi-engine setups)
    • Support for main and tail rotor blades on helicopters
    • Full CRUD operations with dedicated add/edit screens
    • Propeller data syncs across all devices (PRO feature)
  • UX Improved propeller icon - Changed from car icon to fan blade icon for better visual representation
  • Critical Fix Switch Configuration Synchronization
    • Fixed switch setups not syncing properly between devices when transmitters are bound to aircraft
    • Resolved issue where custom aircraft-specific switches (e.g., switch E) added alongside transmitter switches (A, B, C, D) failed to synchronize
    • Replaced problematic "delete-all-then-recreate" pattern with proper CRUD operations (update/insert/delete)
    • Switch modifications now correctly update lastModified timestamps for sync detection
    • Database layer properly handles syncId generation for new switches
    • All switches (both from transmitter templates and custom additions) now sync reliably across devices
    • Maintains backward compatibility - no database schema changes required
    • Fixes reported customer issue where switch configurations weren't appearing on secondary devices
  • Major Feature Asset Retirement System
    • Mark aircraft, transmitters, or batteries as "retired" to declutter active equipment lists
    • Retired items hidden from list views by default with "Hide Retired" filter (toggle to show/hide)
    • RETIRED badges displayed on retired items for clear visual identification
    • Retire/Restore functionality accessible via popup menus and detail screen Quick Actions
    • Standardized retire buttons across all detail screens with consistent styling
    • Green button with refresh icon when retired (restore action), grey button with archive icon when active
    • Retiring a battery automatically removes it from all Battery Sets
    • Transmitters remain bound to models when retired (can still view configurations)
    • Full cloud sync support - retirement status syncs across all devices
    • Confirmation dialogs explain action and consequences before retiring/restoring
    • Perfect for managing equipment lifecycle without deleting valuable historical data
v1.3.1+29
  • UX Enhancement Mobile-Optimized List Reordering
    • Implemented long-press to reorder functionality for aircraft, transmitters, and battery packs on mobile devices
    • Grab bars (≡) now hidden on mobile screens (< 600px width) to save valuable screen space
    • Long-press any tile to enable drag-and-drop reordering on mobile devices
    • Grab bars remain visible on tablets and desktop (≥ 600px width) for traditional drag-and-drop
    • Custom tile order and favorites status sync across all devices (PRO feature)
    • Provides cleaner, more spacious mobile interface while maintaining full functionality
  • Fix Battery Set Selection Banner Visibility
    • Fixed "Select 2 or more batteries to create a set" message appearing behind tiles
    • Banner now displays prominently at the top of the battery list where it's clearly visible
    • Improved user experience when creating battery sets
  • UX Enhancement Global Sync Progress Indicator
    • Added thin animated loading bar at top of main content area during cloud sync operations
    • Loading bar appears below navigation header for clear visibility
    • Smooth left-to-right pulsing animation provides visual feedback of ongoing sync
    • Always visible while syncing, even after closing mobile menu or navigating between screens
    • Solves mobile UX issue where sync spinner was hidden inside closed menu
    • Automatic show/hide based on sync state using theme-aware colors
  • Critical Fix Maintenance Task Status Sync Issue
    • Fixed maintenance task status changes (completed, in-progress, etc.) not syncing to other devices
    • Root cause: updateEntry() method wasn't updating the last_modified timestamp needed for sync detection
    • Repository now automatically updates timestamp when any maintenance field is modified
    • Status changes now properly propagate across all connected devices via cloud sync
  • Major Feature Maintenance Entry Photo Sync (PRO)
    • Added full Firebase Storage integration for maintenance entry photos
    • Photos now upload to cloud storage and download to all synced devices
    • Multiple photos per maintenance entry fully supported
    • Cross-device photo access ensures complete maintenance records everywhere
    • Previously only local file paths were synced (photos didn't transfer)
  • Verification Battery Set Sync Confirmation
    • Verified battery sets, battery set members, and all related data syncing correctly
    • Cloud sync working as designed for battery set configurations
  • Verification Model Photo Sync Confirmation
    • Confirmed aircraft and transmitter photos syncing properly via Firebase Storage
    • Photo upload/download with proper async/await handling verified
    • Cross-device model photos working as designed
v1.3.0+28
  • Feature Type-Specific Icons for Aircraft
    • Aircraft now display distinct icons based on their type throughout the app
    • Icon types: Airplane ✈️, Helicopter 🚁, Drone (quadcopter grid), Car 🚗, Other (airplane)
    • Icons appear in aircraft list, add/edit screens, and detail screen headers
    • Placeholder icons dynamically update when aircraft type is changed in dropdowns
    • Improved visual identification of different aircraft types at a glance
    • Uses Font Awesome icons for professional appearance across all platforms
  • UX Improved Mobile Search Interface Consistency
    • Moved search clear button (X) inside all search fields as a suffix icon for compact mobile layout
    • Applied to: Maintenance Logbook, Aircraft List, Battery List, and Transmitter List screens
    • Eliminated vertical spacing issues where clear button pushed down other UI elements
    • More compact layout optimized for mobile screens and better space utilization
    • Consistent user experience across all list screens in the app
  • UX Collapsible Maintenance Logbook Filters for Mobile
    • Added filter toggle button in maintenance search bar to show/hide filter buttons
    • Filter buttons (asset type, category, status, date, sort) now collapsible on mobile
    • Saves significant screen space on mobile devices by hiding filters when not needed
    • Filter button highlighted when active filters are applied
    • Tap filter icon to expand/collapse filter options
    • Improves mobile usability by reducing screen clutter
  • Feature Collapsible Battery Pack Sets
    • Battery sets now default to collapsed state for cleaner, more compact list view
    • Tap anywhere on set header to expand/collapse individual battery details
    • Chevron indicator shows current state (► collapsed, ▼ expanded)
    • Collapsed view displays battery names with color-coded charge state indicators
    • Charge status dots show battery health at a glance (green=optimal, blue=storage, orange=acceptable, red=critical)
    • Saves significant vertical screen space when managing multiple battery sets
    • Each set's collapsed/expanded state is remembered during the session
    • All set actions (charge, maintenance, QR code, break up) remain accessible in collapsed view
v1.2.9+26
  • Critical Fix Display Order Synchronization
    • Fixed display_order field not syncing to cloud for Aircraft, Transmitters, and Battery Packs
    • Custom sort order now properly synchronizes across all devices (PRO feature)
    • Added display_order to both upload and download sync conversion methods
    • User-defined item organization will now be preserved during cloud sync operations
  • Verification Transmitter Battery Field Sync
    • Verified all transmitter battery fields (battery_type, battery_voltage, battery_capacity) are properly synchronized
    • Confirmed bidirectional sync (upload and download) working correctly
    • All transmitter fields fully functional in cloud sync operations
v1.2.9+25
  • Major Feature Drag-and-Drop Reordering for Asset Lists
    • Reorder aircraft, transmitters, and battery packs with intuitive drag handles
    • Custom drag handle icons (≡) positioned at top right of each card
    • Favorites remain pinned at top, followed by your custom order
    • Battery sets show drag handle in colored title bar for easy repositioning
    • Individual batteries within sets move with the set (no separate handles)
    • Custom order persists locally and syncs across all devices (PRO feature)
    • Visual feedback during drag operations for clear interaction
  • Database Updated to version 44
    • Added display_order column to aircraft, transmitters, and battery_packs tables
    • Automatic migration handles both fresh installs and upgrades
    • Sorting logic: favorites first → custom order → alphabetical
    • Bulk update methods with proper sync timestamp handling
  • UX Enhanced List Navigation
    • Organize assets in the order that works best for your workflow
    • Frequently used items can be positioned at the top of lists
    • Consistent drag-and-drop experience across all asset types
    • No duplicate drag handles - only custom handles visible
v1.2.9+24
  • Major Feature Battery Set Management System - Complete Implementation
    • Group multiple battery packs into named "sets" for simplified workflow
    • Perfect for aircraft using batteries in series (e.g., 3× 6S = 18S) or parallel configurations
    • Create sets with 2 or more battery packs from the battery list screen
    • Visual grouping in battery list with colored headers and set icons
    • Break up sets feature to ungroup batteries back to individual packs
  • Major Feature Battery Set Charge Events
    • Charge entire sets with a single data entry
    • Enter voltage, temperature, mAh, and notes once for the whole set
    • Automatically creates individual charge sessions for each battery in the set
    • Maintains complete individual battery history
    • Blue visual indicator shows when charging a set
    • Storage mode fully supports set charging
  • Major Feature Battery Set Flight Logging
    • Use battery sets in flight logs with shared values
    • Enter start/end voltage, temp, and mAh once for all set members
    • Each battery gets individual flight log usage records
    • Set association tracked in database for historical reference
    • Seamless integration with existing flight log workflow
  • Feature Battery Set QR Code Generation
    • Generate QR codes for battery sets with proper embedded logo
    • Scan set QR codes to quickly access charge screen
    • All set members automatically loaded for charging
    • Full QR code functionality (share, save, print)
    • Consistent with aircraft, transmitter, and battery QR codes
  • Feature Smart Voltage Pre-fill for Flight Logs
    • Start voltage automatically pre-filled with last known voltage
    • Checks most recent flight log usage or charge session
    • For battery sets: calculates and displays average voltage across all members
    • Falls back to nominal voltage if no history exists
    • Saves time and improves data accuracy
  • Feature Aircraft Battery Set Attachment
    • Attach entire battery sets to aircraft configurations
    • All set members automatically associated with the aircraft
    • Set membership displayed in aircraft detail screen
    • Detaching a set removes all member associations
  • UX Enhanced Battery List UI
    • Color-coded set headers with proper dark mode support
    • Set name and member count displayed prominently
    • Popup menu for set actions: Charge Set, Show QR Code, Break Up Set
    • Individual batteries remain accessible within sets
    • Selection mode disabled for batteries already in sets
  • Database Updated to version 43
    • Added battery_sets table for set definitions
    • Added battery_set_members table for set membership with display ordering
    • Added battery_set_id column to flight_log_battery_usage table
    • Full CRUD operations implemented in DatabaseHelper and repositories
    • Indexed for optimal query performance
    • Cascade delete support for set cleanup
  • Integration Export/Import & Cloud Sync Support
    • Battery sets included in data export backups
    • Set members and associations preserved during export
    • Full restoration support via import functionality
    • Battery sets sync across all devices (PRO feature)
    • Real-time updates across connected devices
    • Maintains set relationships across devices
  • Documentation Comprehensive battery set feature guide (BATTERY_SET_FEATURE_GUIDE.md) with complete implementation details, use cases, workflows, API documentation, database schema, and testing checklist.
v1.2.8+23
  • Fix Profile section drag handle alignment
    • Prevented drag handles from overflowing the card in portrait mode by constraining header layout
v1.2.8+22
  • Improvement Profile section reordering and polish
    • Certifications, club memberships, and FAA registrations can be reordered via drag-and-drop
    • Section order is saved and restored between app launches
    • Refreshed section styling with consistent borders and light/dark-friendly background tinting
  • Improvement Analytics breakdown and navigation
    • Added expandable aircraft and battery pack breakdowns with dividers and clearer affordance
    • Tap through to aircraft and battery detail screens directly from analytics
    • Fixed cycle count parsing (int/double) to prevent analytics crashes
  • Improvement Header polish and responsive branding
    • Dark-to-light primary gradient refined for both light and dark themes
    • Compact header shows logo + “RCMM”; full width shows logo + “RC Model Manager” with PRO/FREE badge
    • Dark mode swaps to a transparent icon for better contrast
  • Fix QR Code icon Centering
    • QR code icon now stays centered in mobile portrait and landscape mode
    • Fixed overflow issue and allow scrolling of QR code modal
  • Improvement Aircraft detail: hide empty sections with saved preference
    • New app bar toggle hides unused component sections (engines, ESCs, receivers, etc.) for cleaner layouts
    • Preference is saved and restored via SharedPreferences across Android, iOS, macOS, Windows, and web
    • Prevents empty cards from showing when you don't track certain components
v1.2.7+21
  • Improvement Enhanced QR Code User Experience
    • QR code modal now closes immediately when Save or Share buttons are clicked
    • Success messages display in a snackbar with automatic 5-second timeout
    • Added "Dismiss" button to manually close success notifications
    • Desktop platforms (Windows/macOS/Linux) include "Open" button to view saved QR codes in file manager
    • Mobile platforms (Android/iOS) show only "Dismiss" button (files are in sandboxed storage)
    • Platform-specific folder opening: Windows uses explorer.exe, macOS uses open, Linux uses xdg-open
    • Fixed context crash when dismissing snackbars after modal closes
    • Embedded app icon in QR codes for professional branding and authenticity
    • Cross-platform snackbar behavior ensures consistent user experience
v1.2.6+20
  • Critical Fix Flying Field Sync Issue
    • Fixed flying fields not syncing to Firebase Firestore
    • Added missing syncId generation when creating new flying fields
    • All new flying fields now automatically receive a unique sync identifier
  • Critical Fix Database Schema Consistency
    • Fixed logbook entries sync errors ("no column named status")
    • Resolved schema mismatch between fresh installs and database upgrades
    • Added missing columns (status, start_time, end_time) to logbook_entries table creation
    • Database version bumped to 42 for automatic migration
  • Database Version 42 - Schema Alignment
    • Verified complete schema consistency across all versions (37-42)
    • Fresh installs now match upgraded databases exactly
    • All columns added via upgrade paths now present in initial table creation
  • Documentation Added FLYING_FIELD_SYNC_FIX.md with detailed technical explanation
v1.2.5+19
  • Fix Flying Field List Immediate Update
    • Fixed flying sites not appearing immediately after saving
    • List now refreshes automatically when adding a new flying field
    • Previously required navigating away and returning to see newly added fields
    • Resolved type mismatch in navigation result handling (integer vs boolean check)
v1.2.5+18
  • Critical Fix Resolved fresh install database error
    • Fixed missing flying_fields table in database creation for new users
    • Table was only created during upgrades, causing "no such table: flying_fields" error on fresh installs
    • Added flying_fields table and index to _onCreate method to ensure proper initialization
    • Existing users upgrading from previous versions are unaffected
v1.2.5+17
  • Major Feature Flying Field Management System
    • Create and manage a list of flying fields/locations you regularly visit
    • Capture comprehensive field information: name, location, address, GPS coordinates, website, contact info, field rules, notes
    • Optional club membership association - link fields to your club memberships
    • GPS coordinate capture - use device location to save exact field coordinates
    • Select flying field when logging flights for consistent location tracking
    • Analytics dashboard showing flights and total flight time per field
    • Accessible via Settings → Data & Analytics → Flying Fields
    • Full cloud sync support - flying fields sync across all your devices (PRO feature)
    • Export/import support - flying fields preserved in backup/restore operations
  • Database Updated to version 41
    • Added flying_fields table with comprehensive field information storage
    • Added flying_field_id foreign key to flight_logs table
    • Backwards compatible with automatic migration for existing databases
  • UX Enhanced Flight Log Entry with Intelligent Location Detection
    • Flying field dropdown selector in flight log creation
    • Quick Add: "Add New Field..." option in dropdown for on-the-fly field creation
      • Navigate directly to Add Flying Field screen without leaving flight log
      • Full GPS capture capability available during field creation
      • Automatically returns to flight log after saving
      • New field auto-selected and location pre-filled
      • Perfect for discovering new flying locations at the field
    • Smart GPS detection: "Use Current Location" automatically detects and selects nearby flying fields
    • Proximity detection within 500 meters (~0.3 miles) with distance display
    • Auto-fills location notes when field is selected or detected
    • Green notification when flying field is detected: "📍 Flying field detected: [Name] ([distance]m away)"
    • Falls back to reverse geocoding if no flying fields are nearby
    • Seamless integration with existing location capture workflow
  • Feature Favorites/Pinning System for Models, Transmitters, and Battery Packs
    • Pin your most-used equipment to the top of lists for instant access
    • Star icon displays on favorited items with one-tap toggle to remove
    • Menu option to add items as favorites (3-dot menu → "Add as Favorite")
    • Favorites automatically sort to the top of aircraft, transmitter, and battery pack lists
    • Full cloud sync support - favorites sync across all your devices (PRO feature)
    • Export/import support - favorite status preserved in backup/restore operations
    • Mobile-optimized UX with amber star indicators for quick identification
  • Database Updated to version 40
    • Added is_favorite field to aircraft, transmitters, and battery_packs tables
    • Backwards compatible with automatic migration for existing databases
    • Feature Maintenance History Settings - Control Old Entry Visibility
      • Added maintenance history filter in Settings → Maintenance
      • Options to hide closed entries older than 30/60/90/180/365 days
      • Open, In Work, and Overdue tasks always visible regardless of date
      • Helps focus on recent maintenance while keeping important tasks visible
      • Reduces clutter in maintenance history sections for long-term users
    • Feature Aircraft List At-a-Glance Statistics
      • Total flights display on aircraft cards (including baseline + logged)
      • Total flight time display with hours and minutes format (e.g., "125 flights • 47h 32m")
      • Maintenance alert badges: URGENT (red), DUE SOON (orange), OPEN (blue)
      • Instant visibility of aircraft status without opening detail screens
    • Feature Battery List At-a-Glance Statistics
      • Total cycle count display on battery cards
      • Usage count showing number of times used in flight
      • Charge session count display
      • Maintenance alert badges for pending battery maintenance
      • Format: "47 cycles • 23 uses • 18 charges"
    • Feature Enhanced Battery Brand Display
      • Brand/manufacturer now displays beside nickname in battery list
      • Inline format using bullet separator (e.g., "Zippy Compact • Turnigy")
      • RichText implementation keeps text flowing naturally
      • Brand field available in add/edit screens side-by-side with nickname
    • Feature Website URL Fields for Profiles and Club Memberships
      • Added website field to user profile (Settings → Profile)
      • Added website field to club memberships (add/edit/detail screens)
      • One-click/tap website launching in external browser
      • Automatic protocol detection (adds https:// if missing)
      • Visual indicators (underline, link color, open icon) for clickable URLs
      • Easy connection to club websites and personal pages
    • Fix iPhone Battery Type Dropdown Overflow
      • Fixed dropdown menu overflow on smaller iPhone screens
      • Added `isExpanded: true` property to dropdowns
      • Shortened chemistry labels to fit mobile viewports
      • Improved mobile user experience in battery management
    • Fix Battery Edit Screen Field Initialization
      • Fixed connector type and dimensions fields not loading in edit screen
      • Fields now properly initialize with existing battery data
      • Added missing dispose calls for memory management
      • Values correctly saved when editing batteries
    • Documentation Updated user guides and web documentation
      • Added maintenance history settings section
      • Documented at-a-glance statistics for aircraft and batteries
      • Added maintenance alert badge explanations
      • Updated both USER_GUIDE.md and web/documentation.html
v1.2.4+16
  • Fix PRO License Sync Issue - Resolved critical bug preventing PRO status from appearing in admin panel
    • Fixed license key not syncing to Firestore when users activated offline then signed in
    • License validation now properly uploads PRO status to Firestore for admin visibility
    • Ensures all activation workflows (sign-in-first OR activate-first) correctly sync to cloud
    • Admin panel user management table now accurately displays all PRO users
  • UX Simplified QR Code Interface
    • Removed redundant "Full Screen" button from QR code display across all equipment types
    • Streamlined QR code UI to show only essential "Share" functionality
    • Applies to all QR codes: aircraft, transmitters, batteries, and battery packs
    • Cleaner, more focused user experience when viewing QR codes
v1.2.3+15
  • Feature QR Code Scanner - Add Note & Maintenance Functionality
    • Implemented "Add Note" action for all scanned assets (aircraft, transmitters, batteries)
    • Notes editor opens with context-specific placeholder text for each asset type
    • Implemented "Add Maintenance Event" action with pre-filled asset type and ID
    • Leverages existing NotesEditorScreen and AddLogbookEntryScreen components
    • Seamless integration with QR scanner action menu
    • Real-time updates saved directly to database with user feedback
  • UX Enhanced QR scanner workflow
    • Quick access to add notes or log maintenance directly from QR scan
    • Eliminates need to navigate to asset detail screens for common actions
    • Success/error confirmations via SnackBar messages
v1.2.2+14
  • Fix Resolved iOS QR scanner camera permission issue
    • Fixed iOS camera permission dialog not appearing for QR scanner
    • Updated NSCameraUsageDescription to explicitly mention QR code scanning
    • Removed manual permission handling in favor of native iOS permission system
    • QR scanner now uses same permission flow as image picker for consistency
  • Fix Resolved QR scanner continuous detection issue
    • Scanner now stops immediately when a QR code is detected
    • Prevents multiple dialogs from appearing when QR code stays in frame
    • Scanner automatically restarts after action menu is dismissed or action is completed
    • Each QR code scan is now processed exactly once
  • Improvement Enhanced QR scanner error handling
    • Invalid QR codes now show a clear error dialog instead of automatic retry
    • User must acknowledge error by tapping "OK" before scanner resumes
    • Prevents repeated error messages and unexpected behavior
    • Provides explicit, user-controlled error flow
  • Improvement QR scanner button now hidden on desktop platforms
    • QR scanner FAB button only shows on mobile devices (iOS/Android)
    • Desktop platforms (Windows/macOS/Linux) don't support camera scanning
    • Prevents confusion by hiding unavailable feature on desktop
  • Maintenance Updated .gitignore to exclude macos/build/ artifacts
v1.2.2+13
  • Major Feature QR Code Generation and Scanning (PRO Feature)
    • Generate QR codes for all equipment (aircraft, transmitters, batteries)
    • Quick scan access via floating action button on main navigation
    • Instant equipment access through QR code scanning with action menu
    • Print/attach codes to physical items for fast identification
    • Quick actions: View details, add flight log, add maintenance, add charge event
    • PRO-only feature with upgrade prompts for free users
  • UX Improved dark mode QR scanner button visibility
    • Darkened QR scanner FAB button (blue shade 800) for better contrast in dark mode
    • Maintains vibrant blue (shade 600) in light mode
  • Security Comprehensive PRO feature gating
    • All QR generation points protected (aircraft, transmitter, battery pack, battery detail screens)
    • QR scanner protected with PRO check
    • Consistent upgrade dialogs across all entry points
v1.2.1+12
  • Major Feature Comprehensive Flight Log mAh Out Tracking
    • Added mAh Out input field in flight log creation and editing screens
    • Capture battery consumption per flight with milliamp-hour precision
    • Enhanced battery pack detail screen with mAh used display in usage history
    • Advanced usage statistics: total flights, average flight time, and average mAh consumed per flight
    • Improved duration display showing minutes and seconds (e.g., "4m 30s") instead of truncated values
    • Flight log editing now correctly shows only batteries assigned to the specific aircraft
    • Enhanced flight log detail modal with complete mAh consumption information
  • UX Fixed splash screen and launcher icons
    • Added light and dark mode logic for splash screen on iOS and Android
    • Fixed icon sizing
v1.2.0+11
  • Fix Resolved maintenance logbook import failures caused by duplicate part IDs in exported backups (logbook parts are now deduplicated during export).
v1.2.0+10
  • iOS Fix Improved touch interaction reliability on iOS devices
    • Removed redundant close buttons from search interface across all list screens
    • Fixed header touch blocking by optimizing container clipping behavior
    • Repositioned interactive buttons outside TextField for better iOS touch handling
    • Applied proper SafeArea insets to prevent content overlap with system UI
    • Changes applied to aircraft, transmitter, battery, and maintenance logbook screens
  • UX Simplified search interaction
    • Search can now be toggled on/off using the magnifying glass icon
    • Clear button automatically appears when text is entered
    • More intuitive search workflow across the app
v1.2.0+9
  • Major Feature Comprehensive Maintenance Logbook System
    • Track maintenance for all assets (aircraft, transmitters, batteries)
    • 11 maintenance categories including Inspection, Repair, Replacement, and more
    • Rich data capture: date/time, description, performed by, location, hours/cycles
    • Parts tracking with name, number, cost, vendor, quantity
    • Next service reminders by hours, cycles, date, or custom conditions
    • Full CRUD operations with maintenance history on asset detail screens
    • Dedicated maintenance tab in main navigation
  • Major Feature Centralized Battery Management System
    • Centralized battery packs with unique serial numbers and multi-aircraft associations
    • Fractional cycle tracking auto-calculated from mAh added during charges
    • Advanced battery health assessment combining voltage and internal resistance measurements
    • Chemistry-specific charge status monitoring with voltage thresholds
    • Temperature logging with automatic °C/°F conversion across charge and flight sessions
    • Per-cell IR monitoring for detailed battery health diagnostics
    • Flexible battery-aircraft associations with automatic detachment support
    • Comprehensive charge session tracking: start/end voltage/current, mAh added, thermal data
    • Flight usage logging with voltage and capacity tracking
  • Feature Advanced Search & Filtering
    • Text search across description, notes, performed by, and asset names
    • Filter by asset type (aircraft/transmitter/battery)
    • Filter by maintenance category
    • Date range filtering with visual date picker
    • Sort by date (newest/oldest)
    • Active filters displayed as removable chips
  • Feature Firebase Cloud Sync for maintenance records with automatic backup and real-time sync across devices.
  • Feature Export/Import Support with maintenance records included in backups and full restoration.
  • UX Theme-compliant UI with proper light/dark mode support, color-coded category icons, and pull-to-refresh.
v1.1.0+7
  • Feature Centralized battery packs with serials, multi-aircraft associations, detach support, and refreshed detail UI.
  • Feature Enhanced charge/usage logging: temps, mAh added, multi-battery flight logs preserved when detached, richer detail sheets.
  • Feature Fractional cycle tracking auto-calculated from mAh added, editable cycle count, updated health display.
  • Improvement Global temperature unit setting (°C/°F) with automatic conversion across charge logs, flight logs, and battery detail.
  • Improvement Consistent outlined battery forms and improved readability/styling in light & dark themes.
v1.0.1+6
  • Fix Resolved Android authentication errors ("API Exception 10") by ensuring SHA-1 fingerprints are synchronized between Firebase and Google Cloud.
  • Fix Resolved Windows authentication errors ("Internal Error") by updating desktop client API keys.
  • Maintenance Optimized cross-platform authentication configuration.
v1.0.1+5
  • Maintenance System re-baseline and administrative updates.
v1.0.1+4
  • Improvement Implemented automated version generation for build process.
  • Fix Updates to iOS dynamic version handling.
v1.0.1+3
  • Improvement Enhanced In-App Purchase error reporting to provide specific details (e.g., "No products found" vs generic error) to aid in troubleshooting configuration issues.
  • Feature Enabled iTunes File Sharing and "Open in Place" for iOS.
    • Allows users to access saved configuration files directly via the iOS "Files" app.
    • Enables easier export/backup of radio configuration files.
  • Documentation Updated IAP implementation guide with troubleshooting steps.
v1.0.1+2
  • Feature Internal testing and stability improvements.
  • Improvement Updated iOS Splash Screen to match Android design.
  • Improvement Added "Continue Anyway" option in Settings Sign-In flow to allow offline access to login screen.
  • Fix Resolved iOS build warnings and stale file errors.
  • Fix Resolved naming conflicts in subscription logic.
v1.0.0+1
  • Release Initial Release