Files
Meshtastic-Android/feature/settings
James Rich de797fc59d feat(settings): implement set_ham_mode HamParameters admin message
When the licensed amateur radio toggle is on for the locally connected
node, the User config screen repurposes the long-name field as the
callsign (max 8 chars, iOS parity) and saving sends
AdminMessage(set_ham_mode) instead of set_owner. Current LoRa
tx_power/override_frequency are echoed into the HamParameters so a
re-send while already licensed never wipes the node's overrides
(firmware applies them verbatim). The node entry is optimistically
updated pending the device's authoritative NodeInfo.

Closes #5759

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-12 07:20:45 -05:00
..

:feature:settings

Overview

The :feature:settings module manages all application and radio-side configurations. This includes user preferences, channel configuration, and advanced radio settings.

Key Components

1. SettingsScreen

The main entry point for application-wide settings.

2. RadioConfigViewModel

Handles the complex logic of reading and writing configuration to the Meshtastic device over the radio link (BLE, USB, or TCP).

3. AboutScreen

Displays version information, licenses, and project links.

Validation Reference

Features

  • Channel Configuration: Manage encryption keys, channel names, and radio frequency settings.
  • Node Database Management: Options to clear or prune the local and remote node databases.
  • App Preferences: Theme selection, unit system (metric/imperial), and notification settings.

Dependency Graph

graph TB
  :feature:settings[settings]:::kmp-feature
  :feature:settings -.-> :core:barcode
  :feature:settings -.-> :core:nfc
  :feature:settings -.-> :core:common
  :feature:settings -.-> :core:data
  :feature:settings -.-> :core:database
  :feature:settings -.-> :core:datastore
  :feature:settings -.-> :core:domain
  :feature:settings -.-> :core:model
  :feature:settings -.-> :core:navigation
  :feature:settings -.-> :core:network
  :feature:settings -.-> :core:repository
  :feature:settings -.-> :core:service
  :feature:settings -.-> :core:resources
  :feature:settings -.-> :core:ui
  :feature:settings -.-> :core:di
  :feature:settings -.-> :core:takserver
  :feature:settings -.-> :core:testing

classDef android-application fill:#CAFFBF,stroke:#000,stroke-width:2px,color:#000;
classDef android-application-compose fill:#CAFFBF,stroke:#000,stroke-width:2px,color:#000;
classDef compose-desktop-application fill:#CAFFBF,stroke:#000,stroke-width:2px,color:#000;
classDef android-feature fill:#FFD6A5,stroke:#000,stroke-width:2px,color:#000;
classDef android-library fill:#9BF6FF,stroke:#000,stroke-width:2px,color:#000;
classDef android-library-compose fill:#9BF6FF,stroke:#000,stroke-width:2px,color:#000;
classDef android-test fill:#A0C4FF,stroke:#000,stroke-width:2px,color:#000;
classDef jvm-library fill:#BDB2FF,stroke:#000,stroke-width:2px,color:#000;
classDef kmp-feature fill:#FFD6A5,stroke:#000,stroke-width:2px,color:#000;
classDef kmp-library-compose fill:#FFC1CC,stroke:#000,stroke-width:2px,color:#000;
classDef kmp-library fill:#FFC1CC,stroke:#000,stroke-width:2px,color:#000;
classDef unknown fill:#FFADAD,stroke:#000,stroke-width:2px,color:#000;