feat(desktop): add entitlements and wire MeshConnectionManager into orchestrator (#5127)

This commit is contained in:
James Rich 2026-04-14 10:16:10 -05:00 committed by GitHub
parent c6f58cc799
commit 099aea2d81
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 32 additions and 8 deletions

View file

@ -158,9 +158,14 @@ compose.desktop {
iconFile.set(project.file("src/main/resources/icon.icns"))
minimumSystemVersion = "12.0"
bundleID = "org.meshtastic.desktop"
entitlementsFile.set(project.file("entitlements.plist"))
infoPlist {
extraKeysRawXml =
"""
<key>NSBluetoothAlwaysUsageDescription</key>
<string>Meshtastic uses Bluetooth to communicate with your Meshtastic radio device.</string>
<key>NSLocalNetworkUsageDescription</key>
<string>Meshtastic uses your local network to discover Meshtastic devices connected via WiFi.</string>
<key>NSUserNotificationAlertStyle</key>
<string>alert</string>
<key>CFBundleURLTypes</key>

View file

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.cs.allow-jit</key>
<true/>
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
<true/>
<key>com.apple.security.cs.disable-library-validation</key>
<true/>
<key>com.apple.security.device.bluetooth</key>
<true/>
</dict>
</plist>

View file

@ -60,9 +60,7 @@ import kotlinx.coroutines.flow.first
import okio.Path.Companion.toPath
import org.jetbrains.compose.resources.decodeToSvgPainter
import org.koin.compose.koinInject
import org.koin.compose.viewmodel.koinViewModel
import org.koin.core.context.startKoin
import org.koin.core.context.stopKoin
import org.meshtastic.core.common.BuildConfigProvider
import org.meshtastic.core.common.util.MeshtasticUri
import org.meshtastic.core.database.desktopDataDir
@ -107,12 +105,13 @@ private fun svgPainterResource(path: String, density: Density): Painter = rememb
@OptIn(ExperimentalCoilApi::class)
fun main(args: Array<String>) = application(exitProcessOnExit = false) {
Logger.i { "Meshtastic Desktop — Starting" }
remember { startKoin { modules(desktopPlatformModule(), desktopModule()) } }
DisposableEffect(Unit) { onDispose { stopKoin() } }
val uiViewModel = koinViewModel<UIViewModel>()
val koinApp = remember {
Logger.i { "Meshtastic Desktop — Starting" }
startKoin { modules(desktopPlatformModule(), desktopModule()) }
}
val systemLocale = remember { Locale.getDefault() }
val uiViewModel = remember { koinApp.koin.get<UIViewModel>() }
val httpClient = remember { koinApp.koin.get<HttpClient>() }
DeepLinkHandler(args, uiViewModel)
MeshServiceLifecycle()