Files
Meshtastic-Android/core/datastore
James Rich 501c81ecde build: drop compiler flags and opt-ins made redundant by Kotlin 2.4
Kotlin 2.4.0 (#5760) stabilized several features this build still
configured manually:

- kotlin.uuid.Uuid (incl. Uuid.random/parse) is stable: remove the
  global -opt-in and the per-file @OptIn(ExperimentalUuidApi) usages.
  Only the generateV4/V7 variants remain experimental and nothing in
  the repo uses them.
- kotlin.time Clock/Instant have been stable since 2.3 and no
  still-experimental kotlin.time API is used: remove the global
  -opt-in=kotlin.time.ExperimentalTime.
- Context parameters are stable: remove -Xcontext-parameters.
- Annotation use-site defaulting (param-property) is the language
  default now; the compiler reported -Xannotation-default-target as
  redundant: remove it.
- OptimizeNonSkippingGroups is default Compose compiler behavior and
  the feature flag is deprecated (removal slated for Kotlin 2.6):
  drop it from ComposeCompilerConfiguration.

Verified: spotlessApply spotlessCheck detekt assembleDebug test
allTests kmpSmokeCompile all pass (2756 tests, 0 failures), with no
remaining warnings about the removed flags.

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

:core:datastore

Overview

Targets: Android · JVM (Desktop) · iOS

The :core:datastore module manages structured, asynchronous data storage using Jetpack DataStore. It is primarily used for storing complex configuration objects like radio channel sets and local device configurations.

Key Components

1. Data Sources

  • ChannelSetDataSource: Manages the storage of radio channel configurations.
  • RecentAddressesDataSource: Stores a list of recently connected radio addresses (BLE/USB/TCP).
  • UiPreferencesDataSource: Modern replacement for SharedPreferences for UI-related settings.

2. Serializers

Uses Kotlin Serialization to convert between Protobuf/JSON and the underlying DataStore storage.

Dependency Graph

graph TB
  :core:datastore[datastore]:::kmp-library
  :core:datastore -.-> :core:common
  :core:datastore -.-> :core:model

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;