From 410b0c08e5b36252c826d802039ce4dcc2c5b767 Mon Sep 17 00:00:00 2001 From: Salvatore Testa Date: Sun, 31 May 2026 23:19:52 -0700 Subject: [PATCH] libpebble3: make internal implementation classes `internal` Tighten the published ABI of the connection package by marking implementation-only classes `internal`, so they (and the kable Peripheral type they carry) don't appear in the public API of the standalone artifact: - BlePlatformIdentifier: `internal` ctor + `internal val peripheral` (hides the com.juul.kable.Peripheral type). - WatchManager: `internal` ctor. - LegacyBtClassicMigrator: `internal` class. All three are only constructed within libpebble3 (via DI), so this is ABI-only. Co-Authored-By: Claude Opus 4.8 (1M context) Entire-Checkpoint: 17b4842c3fd0 --- .../libpebblecommon/connection/LegacyBtClassicMigrator.kt | 2 +- .../io/rebble/libpebblecommon/connection/PlatformIdentifier.kt | 2 +- .../kotlin/io/rebble/libpebblecommon/connection/WatchManager.kt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/libpebble3/src/commonMain/kotlin/io/rebble/libpebblecommon/connection/LegacyBtClassicMigrator.kt b/libpebble3/src/commonMain/kotlin/io/rebble/libpebblecommon/connection/LegacyBtClassicMigrator.kt index 2e9191b6b..46528b3a7 100644 --- a/libpebble3/src/commonMain/kotlin/io/rebble/libpebblecommon/connection/LegacyBtClassicMigrator.kt +++ b/libpebble3/src/commonMain/kotlin/io/rebble/libpebblecommon/connection/LegacyBtClassicMigrator.kt @@ -16,7 +16,7 @@ import io.rebble.libpebblecommon.metadata.supportsBtClassic * Runs at app boot, gated by a Settings flag so it only executes once. Safe to call before * `BondedWatchSeeder` since either an existing row stays as-is (BLE) or gets re-keyed (Classic). */ -class LegacyBtClassicMigrator( +internal class LegacyBtClassicMigrator( private val knownWatchDao: KnownWatchDao, private val settings: Settings, private val blePlatformConfig: BlePlatformConfig, diff --git a/libpebble3/src/commonMain/kotlin/io/rebble/libpebblecommon/connection/PlatformIdentifier.kt b/libpebble3/src/commonMain/kotlin/io/rebble/libpebblecommon/connection/PlatformIdentifier.kt index de0e6a3cd..41c6a7387 100644 --- a/libpebble3/src/commonMain/kotlin/io/rebble/libpebblecommon/connection/PlatformIdentifier.kt +++ b/libpebble3/src/commonMain/kotlin/io/rebble/libpebblecommon/connection/PlatformIdentifier.kt @@ -4,7 +4,7 @@ import com.juul.kable.Peripheral import io.rebble.libpebblecommon.connection.bt.ble.transport.impl.peripheralFromIdentifier sealed class PlatformIdentifier { - class BlePlatformIdentifier(val peripheral: Peripheral) : PlatformIdentifier() + class BlePlatformIdentifier internal constructor(internal val peripheral: Peripheral) : PlatformIdentifier() class SocketPlatformIdentifier(val addr: String) : PlatformIdentifier() class BtClassicPlatformIdentifier(val identifier: PebbleBtClassicIdentifier) : PlatformIdentifier() } diff --git a/libpebble3/src/commonMain/kotlin/io/rebble/libpebblecommon/connection/WatchManager.kt b/libpebble3/src/commonMain/kotlin/io/rebble/libpebblecommon/connection/WatchManager.kt index 7197fe71b..2f5687f94 100644 --- a/libpebble3/src/commonMain/kotlin/io/rebble/libpebblecommon/connection/WatchManager.kt +++ b/libpebble3/src/commonMain/kotlin/io/rebble/libpebblecommon/connection/WatchManager.kt @@ -149,7 +149,7 @@ private data class CombinedState( val btstate: BluetoothState, ) -class WatchManager( +class WatchManager internal constructor( private val knownWatchDao: KnownWatchDao, private val pebbleDeviceFactory: PebbleDeviceFactory, private val createPlatformIdentifier: CreatePlatformIdentifier,