feat(ui): adapt presentation to each platform

This commit is contained in:
2026-07-22 10:04:32 +02:00
parent 4feff29c74
commit 627c205853
18 changed files with 771 additions and 199 deletions

View File

@@ -17,6 +17,7 @@ fun rememberJvmAppDependencies(externalInvitations: ExternalInvitationController
appVersion = AppDependencies::class.java.`package`.implementationVersion ?: "0.1.0",
defaultCoreDataDir = System.getProperty("user.home") + "/.vnidrop",
defaultUsername = System.getenv("COMPUTERNAME") ?: System.getenv("HOSTNAME") ?: System.getProperty("user.name") ?: "Receiver",
uiPlatform = uiPlatformForJvm(System.getProperty("os.name")),
),
deviceInfoProvider = JvmDeviceInfoProvider,
fileSystemService = fileSystemService,
@@ -26,6 +27,12 @@ fun rememberJvmAppDependencies(externalInvitations: ExternalInvitationController
}
}
internal fun uiPlatformForJvm(osName: String?): UiPlatform = when {
osName.orEmpty().contains("windows", ignoreCase = true) -> UiPlatform.Windows
osName.orEmpty().contains("linux", ignoreCase = true) -> UiPlatform.Linux
else -> UiPlatform.Desktop
}
private object JvmDeviceInfoProvider : DeviceInfoProvider {
override suspend fun load(): DeviceInfo = DeviceInfo(
deviceName = System.getenv("COMPUTERNAME") ?: System.getenv("HOSTNAME") ?: System.getProperty("user.name"),