From ec6e975001861d494360cda4aa267747d3a14272 Mon Sep 17 00:00:00 2001 From: Evgeny Date: Mon, 10 Aug 2026 13:00:38 +0100 Subject: [PATCH 1/4] ios: update whats new (#7359) * ios: update whats new * custom view --------- Co-authored-by: Evgeny @ SimpleX Chat <259188159+evgeny-simplex@users.noreply.github.com> --- .../Views/Onboarding/WhatsNewView.swift | 47 ++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) diff --git a/apps/ios/Shared/Views/Onboarding/WhatsNewView.swift b/apps/ios/Shared/Views/Onboarding/WhatsNewView.swift index b7753e8539..6ea24ec91c 100644 --- a/apps/ios/Shared/Views/Onboarding/WhatsNewView.swift +++ b/apps/ios/Shared/Views/Onboarding/WhatsNewView.swift @@ -8,6 +8,7 @@ // Spec: spec/client/navigation.md import SwiftUI +import StoreKit import SimpleXChat private struct VersionDescription { @@ -41,6 +42,8 @@ private struct FeatureView { let view: () -> any View } +private let isInUS = SKStorefront().countryCode == "USA" + private let versionDescriptions: [VersionDescription] = [ VersionDescription( version: "v4.2", @@ -667,7 +670,13 @@ private let versionDescriptions: [VersionDescription] = [ VersionDescription( version: "v7.0", post: nil, - features: [ + features: (isInUS ? [ + .view(FeatureView( + icon: nil, + title: "Invest in SimpleX Chat", + view: { InvestInSimpleXChat() } + )) + ] : []) + [ .feature(Description( icon: "at", title: "SimpleX public names (BETA)", @@ -762,6 +771,42 @@ fileprivate struct CreateUpdateAddressShortLink: View { } } +fileprivate struct InvestInSimpleXChat: View { + @Environment(\.colorScheme) var colorScheme + @EnvironmentObject var theme: AppTheme + + var body: some View { + HStack(alignment: .top, spacing: 8) { + VStack(alignment: .leading, spacing: 4) { + HStack(alignment: .center, spacing: 4) { + Image(systemName: "dollarsign.circle") + .symbolRenderingMode(.monochrome) + .foregroundColor(theme.colors.secondary) + .frame(minWidth: 30, alignment: .center) + Text(verbatim: "Invest in SimpleX Chat").font(.title3).bold() + } + Text(verbatim: "Equity crowdfunding launched!") + .multilineTextAlignment(.leading) + .lineLimit(2) + if let url = URL("https://wefunder.com/simplexchat") { + ExternalLink(destination: url) { + HStack { + Text(verbatim: "Learn more on Wefunder") + Image(systemName: "arrow.up.right.circle") + } + } + } + } + .frame(maxWidth: .infinity, alignment: .leading) + Image(colorScheme == .light ? "own-stake" : "own-stake-light") + .resizable() + .scaledToFill() + .frame(width: UIScreen.main.bounds.width / 5) + } + .frame(maxWidth: .infinity, alignment: .leading) + } +} + private enum WhatsNewViewSheet: Identifiable { case showConditions From 486c2abf26d274d410f4173c9607d33f6eea4f98 Mon Sep 17 00:00:00 2001 From: Narasimha-sc <166327228+Narasimha-sc@users.noreply.github.com> Date: Wed, 12 Aug 2026 13:54:45 +0000 Subject: [PATCH 2/4] ui: connect when a SimpleX link is pasted as a markdown hyperlink (#7348) * ui: connect when a SimpleX link is pasted as a markdown hyperlink * remove comments Co-authored-by: Evgeny --------- Co-authored-by: Evgeny --- .../Shared/Views/NewChat/NewChatView.swift | 4 +-- .../common/views/newchat/NewChatView.kt | 3 +- .../2026-08-05-markdown-hyperlink-connect.md | 33 +++++++++++++++++++ 3 files changed, 37 insertions(+), 3 deletions(-) create mode 100644 docs/rfcs/2026-08-05-markdown-hyperlink-connect.md diff --git a/apps/ios/Shared/Views/NewChat/NewChatView.swift b/apps/ios/Shared/Views/NewChat/NewChatView.swift index a87b9b46f4..51746766bd 100644 --- a/apps/ios/Shared/Views/NewChat/NewChatView.swift +++ b/apps/ios/Shared/Views/NewChat/NewChatView.swift @@ -859,8 +859,8 @@ enum ConnectTarget { func strConnectTarget(_ str: String) -> ConnectTarget? { let parsedMd = parseSimpleXMarkdown(str) let links = parsedMd?.filter { $0.format?.isSimplexLink ?? false } ?? [] - return if links.count == 1, case let .simplexLink(_, linkType, _, smpHosts) = links[0].format { - .link(text: links[0].text, linkType: linkType, linkText: simplexLinkText(linkType, smpHosts)) + return if links.count == 1, case let .simplexLink(showText, linkType, simplexUri, smpHosts) = links[0].format { + .link(text: showText != nil ? simplexUri : links[0].text, linkType: linkType, linkText: simplexLinkText(linkType, smpHosts)) } else if links.isEmpty, let nameFt = parsedMd?.first(where: { if case .simplexName = $0.format { true } else { false } }), case let .simplexName(nameInfo) = nameFt.format { diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/newchat/NewChatView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/newchat/NewChatView.kt index d3bca178aa..f3006d221b 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/newchat/NewChatView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/newchat/NewChatView.kt @@ -836,7 +836,8 @@ fun strConnectTarget(str: String): ConnectTarget? { val links = parsedMd.filter { it.format?.isSimplexLink ?: false } if (links.size == 1) { val fmt = links[0].format as Format.SimplexLink - return ConnectTarget.Link(links[0].text, fmt.linkType, fmt.simplexLinkText) + val text = if (fmt.showText != null) fmt.simplexUri else links[0].text + return ConnectTarget.Link(text, fmt.linkType, fmt.simplexLinkText) } if (links.isEmpty()) { val nameFt = parsedMd.firstOrNull { it.format is Format.SimplexName } diff --git a/docs/rfcs/2026-08-05-markdown-hyperlink-connect.md b/docs/rfcs/2026-08-05-markdown-hyperlink-connect.md new file mode 100644 index 0000000000..2fe40755e8 --- /dev/null +++ b/docs/rfcs/2026-08-05-markdown-hyperlink-connect.md @@ -0,0 +1,33 @@ +# Connecting via a SimpleX link written as a markdown hyperlink + +## Problem + +Pasting a short SimpleX link written as a markdown hyperlink — `[label](https://smp6.simplex.im/a#...)` — into the chat list search, the new chat sheet search, or "Tap to paste link" fails with "Invalid connection link" instead of connecting. + +## Cause + +`markdownP` parses such a link into a single fragment whose `format` is `SimplexLink` but whose `text` is the whole markdown source: + +``` +[{"format":{"type":"simplexLink","showText":"label","linkType":"contact", + "simplexUri":"simplex:/a#...?h=smp6.simplex.im","smpHosts":["smp6.simplex.im"]}, + "text":"[label](https://smp6.simplex.im/a#...)"}] +``` + +`strConnectTarget` returns that `text` as the string to connect with. For a bare link `text` is the link, so it works; for a hyperlink it is `[label](link)`, which the core rejects as `InvalidConnReq`. + +## Design + +Use `simplexUri` — the link the parser already resolved — when the fragment came from the hyperlink parser, and keep using `text` otherwise: + +``` +text = if showText != null then simplexUri else text +``` + +`showText` is an exact discriminator, not a heuristic: `simplexUriFormat` is called with `Just t` only from `sowLinkP` (the hyperlink parser) and with `Nothing` from `wordMD` (bare link). Gating on it leaves every bare-link path unchanged. + +This also matches how the chat item renderer already resolves the same format — `TextItemView.kt` takes `simplexUri`, never the fragment `text`, when `showText` is set. `strConnectTarget` was the outlier. + +## Scope + +Short links only. `sowLinkP` rejects a full link inside a hyperlink (`fail "full SimpleX link in hyperlink"`), so `[label](full-link)` yields no formatting at all and never reaches this code — it stays treated as search text, as before. Bare full links are unaffected. From 0a61b0ddeacc2f8e4c1a44b58d3d3d4e6382108e Mon Sep 17 00:00:00 2001 From: sh <37271604+shumvgolove@users.noreply.github.com> Date: Wed, 12 Aug 2026 18:28:59 +0400 Subject: [PATCH 3/4] android: add google and foss build flavors (#7328) * android: add google and foss build flavors * android: get the Google Play account country in the google flavor * android, desktop: update whats new * temp: comment out wefunder link --- apps/multiplatform/README.md | 18 ++- apps/multiplatform/android/build.gradle.kts | 138 +++++++++++------- .../foss/java/chat/simplex/app/PlayStore.kt | 4 + .../google/java/chat/simplex/app/PlayStore.kt | 31 ++++ .../main/java/chat/simplex/app/SimplexApp.kt | 4 + apps/multiplatform/common/build.gradle.kts | 1 - .../chat/simplex/common/platform/AppCommon.kt | 5 + .../chat/simplex/common/platform/Platform.kt | 4 + .../common/views/chatlist/ChatListView.kt | 2 + .../common/views/onboarding/WhatsNewView.kt | 58 ++++++++ .../common/views/usersettings/SettingsView.kt | 3 +- .../commonMain/resources/MR/base/strings.xml | 3 + .../assets/default/MR/images/own_stake.svg | 4 + .../default/MR/images/own_stake_light.svg | 4 + apps/multiplatform/gradle.properties | 2 - apps/multiplatform/spec/architecture.md | 2 + .../resources/MR/images/own_stake@2x.png | Bin 0 -> 23490 bytes .../resources/MR/images/own_stake@3x.png | Bin 0 -> 47775 bytes .../MR/images/own_stake_light@2x.png | Bin 0 -> 23676 bytes .../MR/images/own_stake_light@3x.png | Bin 0 -> 47093 bytes docs/contributing/PROJECT.md | 7 +- scripts/android/build-android-bundle.sh | 7 +- scripts/android/build-android.sh | 6 +- .../simplex-chat-reproduce-builds-android.sh | 2 +- 24 files changed, 235 insertions(+), 70 deletions(-) create mode 100644 apps/multiplatform/android/src/foss/java/chat/simplex/app/PlayStore.kt create mode 100644 apps/multiplatform/android/src/google/java/chat/simplex/app/PlayStore.kt create mode 100644 apps/multiplatform/common/src/commonMain/resources/assets/default/MR/images/own_stake.svg create mode 100644 apps/multiplatform/common/src/commonMain/resources/assets/default/MR/images/own_stake_light.svg create mode 100644 assets/multiplatform/resources/MR/images/own_stake@2x.png create mode 100644 assets/multiplatform/resources/MR/images/own_stake@3x.png create mode 100644 assets/multiplatform/resources/MR/images/own_stake_light@2x.png create mode 100644 assets/multiplatform/resources/MR/images/own_stake_light@3x.png diff --git a/apps/multiplatform/README.md b/apps/multiplatform/README.md index eef1048ada..54e17d4c4e 100644 --- a/apps/multiplatform/README.md +++ b/apps/multiplatform/README.md @@ -9,11 +9,19 @@ This is the **Kotlin Multiplatform (KMP)** mobile and desktop client for SimpleX ## Build Commands ```bash -# Android debug APK -./gradlew assembleDebug +# Android debug APK, assembleGoogleDebug builds the flavor with the Play Billing dependency +./gradlew assembleFossDebug -# Android release APK -./gradlew assembleRelease +# Android release APK, distributed via F-Droid and GitHub +./gradlew assembleFossRelease + +# Android app bundle, distributed via Google Play, includes Play Billing +./gradlew bundleGoogleRelease + +# Always name the flavor for releases. The aggregate tasks (build, assemble, assembleRelease, +# bundle, bundleRelease) fail on purpose: they would package a release APK with Play Billing, +# or an app bundle without it. +# The fdroiddata recipe defaults to assembleRelease and must be changed to assembleFossRelease. # Desktop distribution (current OS) ./gradlew :desktop:packageDistributionForCurrentOS @@ -22,7 +30,7 @@ This is the **Kotlin Multiplatform (KMP)** mobile and desktop client for SimpleX ./gradlew desktopTest # Run Android instrumented tests (requires connected device/emulator) -./gradlew connectedAndroidTest +./gradlew connectedFossDebugAndroidTest # Build native libraries for all platforms ./gradlew common:cmakeBuild -PcrossCompile diff --git a/apps/multiplatform/android/build.gradle.kts b/apps/multiplatform/android/build.gradle.kts index 5255319194..419fef90b9 100644 --- a/apps/multiplatform/android/build.gradle.kts +++ b/apps/multiplatform/android/build.gradle.kts @@ -35,6 +35,21 @@ android { manifestPlaceholders["extract_native_libs"] = rootProject.extra["compression.level"] as Int != 0 } + // `google` is distributed via Google Play as an app bundle and includes Play Billing. + // `foss` is distributed via F-Droid and as APKs on GitHub, without Play dependencies. + flavorDimensions += "store" + productFlavors { + create("google") { + dimension = "store" + buildConfigField("boolean", "PLAY_STORE", "true") + } + create("foss") { + dimension = "store" + isDefault = true + buildConfigField("boolean", "PLAY_STORE", "false") + } + } + buildTypes { debug { applicationIdSuffix = rootProject.extra["application_id.suffix"] as String @@ -128,8 +143,28 @@ android { } } +// The graph is checked rather than the requested task, because every aggregate task +// (assemble, assembleRelease, build, bundle, ...) packages these variants too. +val projectPath = project.path +val apkTasks = setOf("packageFossDebug", "packageGoogleDebug", "packageFossRelease", "packageGoogleRelease") +val apkTaskPaths = apkTasks.map { "$projectPath:$it" }.toSet() +val bundleTaskPaths = apkTaskPaths.map { it + "Bundle" }.toSet() +gradle.taskGraph.whenReady { + if (hasTask("$projectPath:packageGoogleRelease")) { + throw GradleException("A release apk must not include Play Billing, use assembleFossRelease or bundleGoogleRelease") + } + if (hasTask("$projectPath:packageFossReleaseBundle")) { + throw GradleException("An app bundle must include Play Billing, use bundleGoogleRelease or assembleFossRelease") + } + // `isBundle` above is derived from the whole invocation, so a bundle in it disables abi splits + if (apkTaskPaths.any { hasTask(it) } && bundleTaskPaths.any { hasTask(it) }) { + throw GradleException("Build the apks and the bundle in separate invocations, the bundle disables abi splits") + } +} + dependencies { implementation(project(":common")) + "googleImplementation"("com.android.billingclient:billing:9.1.0") implementation("androidx.core:core-ktx:1.13.1") //implementation("androidx.compose.ui:ui:${rootProject.extra["compose.version"] as String}") //implementation("androidx.compose.material:material:$compose_version") @@ -160,58 +195,61 @@ dependencies { tasks { val compressApk by creating { doLast { - val isRelease = gradle.startParameter.taskNames.find { it.lowercase().contains("release") } != null - val buildType: String = if (isRelease) "release" else "debug" val javaHome = System.getProperties()["java.home"] ?: org.gradle.internal.jvm.Jvm.current().javaHome val sdkDir = android.sdkDirectory.absolutePath - val keyAlias: String - val keyPassword: String - val storeFile: String - val storePassword: String - if (project.properties["android.injected.signing.key.alias"] != null) { - keyAlias = project.properties["android.injected.signing.key.alias"] as String - keyPassword = project.properties["android.injected.signing.key.password"] as String - storeFile = project.properties["android.injected.signing.store.file"] as String - storePassword = project.properties["android.injected.signing.store.password"] as String - } else { - try { - val gradleConfig = android.signingConfigs.getByName(buildType) - keyAlias = gradleConfig.keyAlias!! - keyPassword = gradleConfig.keyPassword!! - storeFile = gradleConfig.storeFile!!.absolutePath - storePassword = gradleConfig.storePassword!! - } catch (e: UnknownDomainObjectException) { - // There is no signing config for current build type, can"t sign the apk - println("No signing configs for this build type: $buildType") - return@doLast + // A single invocation can package more than one variant, for example assembleDebug + gradle.taskGraph.allTasks.filter { it.path in apkTaskPaths }.forEach { packageTask -> + val variant = packageTask.name.removePrefix("package") + val buildType: String = if (variant.endsWith("Release")) "release" else "debug" + val keyAlias: String + val keyPassword: String + val storeFile: String + val storePassword: String + if (project.properties["android.injected.signing.key.alias"] != null) { + keyAlias = project.properties["android.injected.signing.key.alias"] as String + keyPassword = project.properties["android.injected.signing.key.password"] as String + storeFile = project.properties["android.injected.signing.store.file"] as String + storePassword = project.properties["android.injected.signing.store.password"] as String + } else { + try { + val gradleConfig = android.signingConfigs.getByName(buildType) + keyAlias = gradleConfig.keyAlias!! + keyPassword = gradleConfig.keyPassword!! + storeFile = gradleConfig.storeFile!!.absolutePath + storePassword = gradleConfig.storePassword!! + } catch (e: UnknownDomainObjectException) { + // There is no signing config for current build type, can"t sign the apk + println("No signing configs for this build type: $buildType") + return@forEach + } + } + val outputDir = packageTask.outputs.files.files.last() + exec { + workingDir("../../scripts/android") + environment = mapOf( + "JAVA_HOME" to "$javaHome", + "PATH" to "${System.getenv("PATH")}:$javaHome/bin" + ) + commandLine = listOf( + "./compress-and-sign-apk.sh", + "${rootProject.extra["compression.level"]}", + "$outputDir", + sdkDir, + storeFile, + storePassword, + keyAlias, + keyPassword + ) } - } - lateinit var outputDir: File - named(if (isRelease) "packageRelease" else "packageDebug") { - outputDir = outputs.files.files.last() - } - exec { - workingDir("../../scripts/android") - environment = mapOf( - "JAVA_HOME" to "$javaHome", - "PATH" to "${System.getenv("PATH")}:$javaHome/bin" - ) - commandLine = listOf( - "./compress-and-sign-apk.sh", - "${rootProject.extra["compression.level"]}", - "$outputDir", - sdkDir, - storeFile, - storePassword, - keyAlias, - keyPassword - ) - } - if (project.properties["android.injected.signing.key.alias"] != null && buildType == "release") { - File(outputDir, "android-release.apk").renameTo(File(outputDir, "simplex.apk")) - File(outputDir, "android-armeabi-v7a-release.apk").renameTo(File(outputDir, "simplex-armv7a.apk")) - File(outputDir, "android-arm64-v8a-release.apk").renameTo(File(outputDir, "simplex.apk")) + if (project.properties["android.injected.signing.key.alias"] != null && buildType == "release") { + val flavor = variant.removeSuffix("Release").lowercase() + mapOf("arm64-v8a" to "simplex.apk", "armeabi-v7a" to "simplex-armv7a.apk").forEach { (abi, name) -> + if (!File(outputDir, "android-$flavor-$abi-release.apk").renameTo(File(outputDir, name))) { + logger.warn("No $abi apk to rename to $name") + } + } + } } // View all gradle properties set // project.properties.each { k, v -> println "$k -> $v" } @@ -221,9 +259,7 @@ tasks { // Don"t do anything if no compression is needed if (rootProject.extra["compression.level"] as Int != 0) { whenTaskAdded { - if (name == "packageDebug") { - finalizedBy(compressApk) - } else if (name == "packageRelease") { + if (name in apkTasks) { finalizedBy(compressApk) } } diff --git a/apps/multiplatform/android/src/foss/java/chat/simplex/app/PlayStore.kt b/apps/multiplatform/android/src/foss/java/chat/simplex/app/PlayStore.kt new file mode 100644 index 0000000000..181fe42389 --- /dev/null +++ b/apps/multiplatform/android/src/foss/java/chat/simplex/app/PlayStore.kt @@ -0,0 +1,4 @@ +package chat.simplex.app + +// Play Billing is only in the google flavor, so the Play country stays unknown here +fun loadPlayStoreCountry() {} diff --git a/apps/multiplatform/android/src/google/java/chat/simplex/app/PlayStore.kt b/apps/multiplatform/android/src/google/java/chat/simplex/app/PlayStore.kt new file mode 100644 index 0000000000..a0e7734ff0 --- /dev/null +++ b/apps/multiplatform/android/src/google/java/chat/simplex/app/PlayStore.kt @@ -0,0 +1,31 @@ +package chat.simplex.app + +import chat.simplex.common.platform.androidAppContext +import chat.simplex.common.platform.androidPlayStoreCountry +import com.android.billingclient.api.* + +// Requests the country of the Google Play account into [androidPlayStoreCountry]. +// It stays null when Play is unavailable or the user is not signed in. +fun loadPlayStoreCountry() { + val client = BillingClient.newBuilder(androidAppContext) + .setListener { _, _ -> } + .enablePendingPurchases(PendingPurchasesParams.newBuilder().enableOneTimeProducts().build()) + .build() + client.startConnection(object : BillingClientStateListener { + override fun onBillingSetupFinished(result: BillingResult) { + if (result.responseCode != BillingClient.BillingResponseCode.OK) { + client.endConnection() + return + } + client.getBillingConfigAsync(GetBillingConfigParams.newBuilder().build()) { configResult, config -> + if (configResult.responseCode == BillingClient.BillingResponseCode.OK) { + androidPlayStoreCountry.value = config?.countryCode + } + client.endConnection() + } + } + + // The connection is only used for this one request, it is not retried + override fun onBillingServiceDisconnected() = client.endConnection() + }) +} diff --git a/apps/multiplatform/android/src/main/java/chat/simplex/app/SimplexApp.kt b/apps/multiplatform/android/src/main/java/chat/simplex/app/SimplexApp.kt index 83767f90d7..ce47d2c5de 100644 --- a/apps/multiplatform/android/src/main/java/chat/simplex/app/SimplexApp.kt +++ b/apps/multiplatform/android/src/main/java/chat/simplex/app/SimplexApp.kt @@ -341,6 +341,8 @@ class SimplexApp: Application(), LifecycleEventObserver { override fun androidIsXiaomiDevice(): Boolean = setOf("xiaomi", "redmi", "poco").contains(Build.BRAND.lowercase()) + override fun androidLoadPlayStoreCountry() = loadPlayStoreCountry() + @SuppressLint("SourceLockedOrientationActivity") @Composable override fun androidLockPortraitOrientation() { @@ -370,6 +372,8 @@ class SimplexApp: Application(), LifecycleEventObserver { override fun androidCreateActiveCallState(): Closeable = ActiveCallState() override val androidApiLevel: Int get() = Build.VERSION.SDK_INT + + override val androidIsPlayStoreBuild: Boolean get() = BuildConfig.PLAY_STORE } } diff --git a/apps/multiplatform/common/build.gradle.kts b/apps/multiplatform/common/build.gradle.kts index 98845365fc..1f55b9c660 100644 --- a/apps/multiplatform/common/build.gradle.kts +++ b/apps/multiplatform/common/build.gradle.kts @@ -189,7 +189,6 @@ buildConfig { buildConfigField("String", "DESKTOP_VERSION_NAME", "\"${extra["desktop.version_name"]}\"") buildConfigField("int", "DESKTOP_VERSION_CODE", "${extra["desktop.version_code"]}") buildConfigField("String", "DATABASE_BACKEND", "\"${extra["database.backend"]}\"") - buildConfigField("Boolean", "ANDROID_BUNDLE", "${extra["android.bundle"]}") buildConfigField("Boolean", "SIMPLEX_ASSETS", "$hasSimplexAssets") } } diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/platform/AppCommon.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/platform/AppCommon.kt index 7a96bd99d2..140c1951ee 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/platform/AppCommon.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/platform/AppCommon.kt @@ -1,5 +1,7 @@ package chat.simplex.common.platform +import androidx.compose.runtime.MutableState +import androidx.compose.runtime.mutableStateOf import chat.simplex.common.BuildConfigCommon import chat.simplex.common.model.* import chat.simplex.common.ui.theme.DefaultTheme @@ -30,6 +32,9 @@ else val databaseBackend: String = if (appPlatform == AppPlatform.ANDROID) "sqlite" else BuildConfigCommon.DATABASE_BACKEND +// Country of the Google Play account, only set in the google flavor of the Android app +val androidPlayStoreCountry: MutableState = mutableStateOf(null) + class FifoQueue(private var capacity: Int) : LinkedList() { override fun add(element: E): Boolean { if (size > capacity) removeFirstOrNull() diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/platform/Platform.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/platform/Platform.kt index 448100bc17..b46123c9cf 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/platform/Platform.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/platform/Platform.kt @@ -29,7 +29,11 @@ interface PlatformInterface { fun androidRestartNetworkObserver() {} fun androidCreateActiveCallState(): Closeable = Closeable { } fun androidIsXiaomiDevice(): Boolean = false + // Requests the Google Play account country into [androidPlayStoreCountry] + fun androidLoadPlayStoreCountry() {} val androidApiLevel: Int? get() = null + // The build distributed via Google Play, which has to follow its policies + val androidIsPlayStoreBuild: Boolean get() = false @Composable fun androidLockPortraitOrientation() {} suspend fun androidAskToAllowBackgroundCalls(): Boolean = true @Composable fun desktopShowAppUpdateNotice() {} diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chatlist/ChatListView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chatlist/ChatListView.kt index 77b4c40d7d..68fa25d553 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chatlist/ChatListView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chatlist/ChatListView.kt @@ -183,6 +183,8 @@ fun ChatListView(chatModel: ChatModel, userPickerState: MutableStateFlow WhatsNewView(close = close, updatedConditions = showUpdatedConditions) } } diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/onboarding/WhatsNewView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/onboarding/WhatsNewView.kt index f95ffc1961..ea95bc2045 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/onboarding/WhatsNewView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/onboarding/WhatsNewView.kt @@ -19,6 +19,7 @@ import androidx.compose.ui.platform.LocalClipboardManager import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp +import chat.simplex.common.BuildConfigCommon import chat.simplex.common.model.ChatController.appPrefs import chat.simplex.common.model.ChatModel import chat.simplex.common.model.* @@ -916,6 +917,11 @@ private val versionDescriptions: List = listOf( version = "v7.0", post = null, features = listOf( +// VersionFeature.FeatureView( +// icon = null, +// titleId = MR.strings.v7_0_invest, +// view = { _ -> InvestInSimpleXChatView() } +// ), VersionFeature.FeatureDescription( icon = MR.images.ic_alternate_email, titleId = MR.strings.v7_0_simplex_names, @@ -950,6 +956,58 @@ fun shouldShowWhatsNew(m: ChatModel): Boolean { return v != lastVersion } +// private const val WEFUNDER_URL = "https://wefunder.com/simplexchat" +// +// @Composable +// private fun InvestInSimpleXChatView() { +// if (platform.androidIsPlayStoreBuild) { +// LaunchedEffect(Unit) { if (androidPlayStoreCountry.value == null) platform.androidLoadPlayStoreCountry() } +// if (androidPlayStoreCountry.value != "US") return +// } +// val uriHandler = LocalUriHandler.current +// Row(horizontalArrangement = Arrangement.spacedBy(8.dp), modifier = Modifier.padding(bottom = 12.dp)) { +// Column(modifier = Modifier.weight(1f)) { +// Row( +// verticalAlignment = Alignment.CenterVertically, +// horizontalArrangement = Arrangement.spacedBy(8.dp), +// modifier = Modifier.padding(bottom = 4.dp) +// ) { +// Icon(painterResource(MR.images.ic_redeem), stringResource(MR.strings.v7_0_invest), tint = MaterialTheme.colors.secondary) +// Text( +// generalGetString(MR.strings.v7_0_invest), +// maxLines = 2, +// overflow = TextOverflow.Ellipsis, +// style = MaterialTheme.typography.h4, +// fontWeight = FontWeight.Medium, +// modifier = Modifier.padding(bottom = 6.dp) +// ) +// } +// Text(generalGetString(MR.strings.v7_0_invest_descr), fontSize = 15.sp, modifier = Modifier.padding(bottom = 4.dp)) +// Row( +// verticalAlignment = Alignment.CenterVertically, +// horizontalArrangement = Arrangement.spacedBy(8.dp), +// modifier = Modifier +// .clickable( +// interactionSource = remember { MutableInteractionSource() }, +// indication = null +// ) { +// uriHandler.openExternalLink(WEFUNDER_URL) +// } +// ) { +// Text(stringResource(MR.strings.v7_0_invest_learn_more), color = MaterialTheme.colors.primary, fontSize = 15.sp) +// Icon(painterResource(MR.images.ic_open_in_new), stringResource(MR.strings.v7_0_invest_learn_more), tint = MaterialTheme.colors.primary) +// } +// } +// if (BuildConfigCommon.SIMPLEX_ASSETS) { +// Image( +// painterResource(if (isInDarkTheme()) MR.images.own_stake_light else MR.images.own_stake), +// contentDescription = null, +// modifier = Modifier.width(80.dp) +// ) +// } +// } +// } + @Composable fun CreateUpdateAddressShortLinkView(modalManager: ModalManager) { val clipboard = LocalClipboardManager.current diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/usersettings/SettingsView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/usersettings/SettingsView.kt index c8e040c592..96f36da6d7 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/usersettings/SettingsView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/usersettings/SettingsView.kt @@ -22,7 +22,6 @@ import dev.icerock.moko.resources.compose.stringResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.* -import chat.simplex.common.BuildConfigCommon import chat.simplex.common.model.* import chat.simplex.common.model.ChatController.appPrefs import chat.simplex.common.platform.* @@ -143,7 +142,7 @@ fun HelpAndSupportView( SectionDividerSpaced() SectionView(stringResource(MR.strings.settings_section_title_support_project)) { - if (!BuildConfigCommon.ANDROID_BUNDLE) { + if (!platform.androidIsPlayStoreBuild) { ContributeItem(uriHandler) } if (appPlatform.isAndroid) { diff --git a/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml b/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml index 7950e7cc1c..ead51b31ea 100644 --- a/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml +++ b/apps/multiplatform/common/src/commonMain/resources/MR/base/strings.xml @@ -2736,6 +2736,9 @@ - opt-in to send link previews.\n- use SOCKS proxy if enabled.\n- prevent hyperlink phishing.\n- remove link tracking. Non-profit governance To make SimpleX Network last. + + + SimpleX public names (BETA) Public names for your channel or business. Better channels 📢 diff --git a/apps/multiplatform/common/src/commonMain/resources/assets/default/MR/images/own_stake.svg b/apps/multiplatform/common/src/commonMain/resources/assets/default/MR/images/own_stake.svg new file mode 100644 index 0000000000..cd6f033c62 --- /dev/null +++ b/apps/multiplatform/common/src/commonMain/resources/assets/default/MR/images/own_stake.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/multiplatform/common/src/commonMain/resources/assets/default/MR/images/own_stake_light.svg b/apps/multiplatform/common/src/commonMain/resources/assets/default/MR/images/own_stake_light.svg new file mode 100644 index 0000000000..cd6f033c62 --- /dev/null +++ b/apps/multiplatform/common/src/commonMain/resources/assets/default/MR/images/own_stake_light.svg @@ -0,0 +1,4 @@ + + + + diff --git a/apps/multiplatform/gradle.properties b/apps/multiplatform/gradle.properties index b4a7b4319a..3f3bbfa31b 100644 --- a/apps/multiplatform/gradle.properties +++ b/apps/multiplatform/gradle.properties @@ -27,8 +27,6 @@ kotlin.jvm.target=11 android.version_name=7.0 android.version_code=366 -android.bundle=false - desktop.version_name=7.0 desktop.version_code=155 diff --git a/apps/multiplatform/spec/architecture.md b/apps/multiplatform/spec/architecture.md index cfef4d06c2..9911a2670f 100644 --- a/apps/multiplatform/spec/architecture.md +++ b/apps/multiplatform/spec/architecture.md @@ -370,6 +370,8 @@ var platform: PlatformInterface = object : PlatformInterface {} | `androidCreateActiveCallState()` | empty `Closeable` | Create `ActiveCallState` | | `androidIsXiaomiDevice()` | `false` | Check device brand | | `androidApiLevel` | `null` | `Build.VERSION.SDK_INT` | +| `androidIsPlayStoreBuild` | `false` | `BuildConfig.PLAY_STORE` | +| `androidLoadPlayStoreCountry()` | no-op | Request the Play account country (google flavor only) | | `androidLockPortraitOrientation()` | no-op | Lock to `SCREEN_ORIENTATION_PORTRAIT` | | `androidAskToAllowBackgroundCalls()` | `true` | Show battery restriction dialog | | `desktopShowAppUpdateNotice()` | no-op | Show update notice (Desktop only) | diff --git a/assets/multiplatform/resources/MR/images/own_stake@2x.png b/assets/multiplatform/resources/MR/images/own_stake@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..fadf1b95995f4331f54f4f779cb3e4ce6ae15d4e GIT binary patch literal 23490 zcmdQ}=R4eAuvenjC`*(iYOsswJ%T9FqORT5drg$+MDL4;C_xat>|(Jx(Sm5vSBPGs zlPJ-B@9)02f5bhn&U2n~W}Z2pnK?6OCSFfhor;`=91jnV>ZQgD13Wx@2p%2*Gb!PJ zD=S|(tnu&&@$|HfRMkDSEpl)Ep5E>pUWc^+#tT=xcIPJTfKCmd7JR+@`x1EuM1Q*! zs=H9TxcRYr`F{1ERT|(_17vMn=`{eR%K$tGFi!e6x_dQtbfX^z2+W^Y4+F+=*H#I@ zkE3hy-VNQT^Tqw!-$!@5e*wI%6^X?|uHHS(h}#4JFgUvU0Nkk_pV!<1_(R)xwL@)v z8+r9Jq?$h&%`RGo&v?A!5KRK=HvtwnAej#kl;1ro0!r2Z(Jg={ z9$+>E7@YvIRN&cHKynUHYyk*MfRZghsSzNz1Y{?HXXOCl7XTaxC{_V@0$4)ho02J@ zbO8YA0^kdP5&$GJ0sNO+QaJ#=_7PJ$0FD6gP#XgO-9|9*I2m|s58ze)Wlsh0BnJuf z&qzK4_g?~dBAo=NJ7$Z&_p<;3QGiMjAbO4yivn2lfch1H)%KrT4M0$P#}@(+BY>h~ z;OZ6-J^);D0a{z2=mNmw2aFB@g^z$sDS)rMfG0mr^8zRv10>>se-{8@)17MrK%}-( zv=8tE04eQ&>;T}929QbvI%mL>3_vs#sG9>U06^m!;C~O$6#{mn0AdTkt6RYTdLwWO z=(+>X0l;GUKgbTiH-Jqd@c0J6EB}f2bKj1BHz0c%_^=K1F9I5~Kx%e9(d=c=GGKcS zgiio;!p9b$XBw7aX>rTG9YtAtn|>HYxn-5CvQC}L&PV$J?eY%1yfzYA9jQcb%igXoQFhF41uUH_Y$@o^n*E+WVRO6- zqgmdP84DPDsd)9BuP8C1^7WCM2!jB2H}F=);?FTlmQ@nm0%SNUQrz{sA{sFH|IY62;E{!ER`#-q1;(Bj(M(pVM0!66rpL;@ z`T_l2@oun=PILYsD~wTsgJ`%*wt^*qUKw+2LW$PQPKmJR-YbsniJ7&F?iNk;>B+^c z_P;`tQK89+aj#Oq579S_wqvqiwar6;WYhaN`}G%l{-_^JRy?J0MzPjjH%XZAtpr

s47RYaL`RtgR2F46oRU155FFu8VvrU46f>>Ft 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 Z{{VPkkvoI2cGLg>002ovPDHLkV1hhW7?}V7 literal 0 HcmV?d00001 diff --git a/assets/multiplatform/resources/MR/images/own_stake@3x.png b/assets/multiplatform/resources/MR/images/own_stake@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..106ee804ca3ade60c00db864717378da194ed88a GIT binary patch literal 47775 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 Ge4_;|B7UvJwE;FW12eGIzOn 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%0Am&+Ydk7%o}Aq#e@V=gwu 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

cC$hl6LycmyqUFK`57vd;LY@%Q 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 35.0.0-rc1 uses # the 0xd935 extra-field padding) unless AGP is bumped to a packager that uses it — From abd59546753b5c8b0fdbffb63ba6b8ab07800c08 Mon Sep 17 00:00:00 2001 From: Narasimha-sc <166327228+Narasimha-sc@users.noreply.github.com> Date: Wed, 12 Aug 2026 14:29:43 +0000 Subject: [PATCH 4/4] ui: send dropped .webm as video only when it has a video track (#7354) * ui: send dropped .webm as video only when it has a video track .webm is as commonly an audio-only container as a video one, so the extension alone cannot tell whether there is a frame to embed. Read the container to decide: files with a video track are sent as video, the rest as files. Only done for files attached without the user saying how to send them (drag & drop, paste). An explicitly picked video is still sent as one, so .webm is now listed in the video file picker too. * plan: send dropped .webm as video only when it has a video track --- .../common/views/helpers/Utils.android.kt | 13 ++++++ .../simplex/common/views/chat/ComposeView.kt | 22 +++++++++- .../simplex/common/views/helpers/Utils.kt | 3 ++ .../common/platform/VideoPlayer.desktop.kt | 41 +++++++++++++++++++ .../simplex/common/platform/Videos.desktop.kt | 3 +- .../common/views/helpers/Utils.desktop.kt | 2 + plans/2026-08-07-webm-video-detection.md | 19 +++++++++ 7 files changed, 100 insertions(+), 3 deletions(-) create mode 100644 plans/2026-08-07-webm-video-detection.md diff --git a/apps/multiplatform/common/src/androidMain/kotlin/chat/simplex/common/views/helpers/Utils.android.kt b/apps/multiplatform/common/src/androidMain/kotlin/chat/simplex/common/views/helpers/Utils.android.kt index c98f8f9f89..141d2d2665 100644 --- a/apps/multiplatform/common/src/androidMain/kotlin/chat/simplex/common/views/helpers/Utils.android.kt +++ b/apps/multiplatform/common/src/androidMain/kotlin/chat/simplex/common/views/helpers/Utils.android.kt @@ -341,6 +341,19 @@ actual suspend fun getBitmapFromVideo(uri: URI, timestamp: Long?, random: Boolea VideoPlayerInterface.PreviewAndDuration(null, 0, 0) } +actual suspend fun hasVideoTrack(uri: URI): Boolean { + val mmr = MediaMetadataRetriever() + return try { + mmr.setDataSource(androidAppContext, uri.toUri()) + mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_HAS_VIDEO) == "yes" + } catch (e: Exception) { + Log.e(TAG, "Utils.android hasVideoTrack error: ${e.message}") + false + } finally { + mmr.release() + } +} + actual fun ByteArray.toBase64StringForPassphrase(): String = Base64.encodeToString(this, Base64.DEFAULT) actual fun String.toByteArrayFromBase64ForPassphrase(): ByteArray = Base64.decode(this, Base64.DEFAULT) diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/ComposeView.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/ComposeView.kt index ff393a3c30..6bfbad52ef 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/ComposeView.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/ComposeView.kt @@ -285,7 +285,22 @@ expect fun AttachmentSelection( ) fun MutableState.onFilesAttached(uris: List) { - val groups = uris.groupBy { isImage(it) || isVideoUri(it) } + // The extension is enough to classify every format except .webm, which is just as commonly an + // audio-only container as a video one. An audio-only file has no frame to embed and is sent as a file, + // but that can only be told from the content, so reading it is deferred to a background thread. + // Only done here, where files arrive without the user saying how to send them (drag & drop, paste) - + // an explicitly picked video is still sent as one. + if (uris.none { isWebmUri(it) }) { + attachFiles(uris, emptySet()) + } else { + CoroutineScope(Dispatchers.IO).launch { + attachFiles(uris, uris.filter { isWebmUri(it) && hasVideoTrack(it) }.toSet()) + } + } +} + +private fun MutableState.attachFiles(uris: List, webmVideos: Set) { + val groups = uris.groupBy { isImage(it) || (isVideoUri(it) && (!isWebmUri(it) || it in webmVideos)) } val media = groups[true] ?: emptyList() val files = groups[false] ?: emptyList() if (media.isNotEmpty()) { @@ -298,9 +313,12 @@ fun MutableState.onFilesAttached(uris: List) { private fun isVideoUri(uri: URI): Boolean { val name = getFileName(uri)?.lowercase() ?: return false return name.endsWith(".mov") || name.endsWith(".avi") || name.endsWith(".mp4") || - name.endsWith(".mpg") || name.endsWith(".mpeg") || name.endsWith(".mkv") + name.endsWith(".mpg") || name.endsWith(".mpeg") || name.endsWith(".mkv") || + name.endsWith(".webm") } +private fun isWebmUri(uri: URI): Boolean = getFileName(uri)?.lowercase()?.endsWith(".webm") == true + fun MutableState.processPickedFile(uri: URI?, text: String?) { if (uri != null) { val maxFileSize = value.maxFileSize diff --git a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/helpers/Utils.kt b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/helpers/Utils.kt index 70f4a1759b..3128c63234 100644 --- a/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/helpers/Utils.kt +++ b/apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/helpers/Utils.kt @@ -495,6 +495,9 @@ fun ciSenderProfile(ci: ChatItem, chatInfo: ChatInfo): LocalProfile? = when (val expect suspend fun getBitmapFromVideo(uri: URI, timestamp: Long? = null, random: Boolean = true, withAlertOnException: Boolean = true): VideoPlayerInterface.PreviewAndDuration +// Whether the file really contains a video track. Reads container metadata only, without decoding a frame. +expect suspend fun hasVideoTrack(uri: URI): Boolean + fun showWrongUriAlert() { AlertManager.shared.showAlertMsg( title = generalGetString(MR.strings.non_content_uri_alert_title), diff --git a/apps/multiplatform/common/src/desktopMain/kotlin/chat/simplex/common/platform/VideoPlayer.desktop.kt b/apps/multiplatform/common/src/desktopMain/kotlin/chat/simplex/common/platform/VideoPlayer.desktop.kt index c3b6dc3a4c..768d2f421d 100644 --- a/apps/multiplatform/common/src/desktopMain/kotlin/chat/simplex/common/platform/VideoPlayer.desktop.kt +++ b/apps/multiplatform/common/src/desktopMain/kotlin/chat/simplex/common/platform/VideoPlayer.desktop.kt @@ -7,6 +7,10 @@ import chat.simplex.common.views.helpers.* import chat.simplex.res.MR import kotlinx.coroutines.* import org.jetbrains.compose.videoplayer.SkiaBitmapVideoSurface +import uk.co.caprica.vlcj.media.Media +import uk.co.caprica.vlcj.media.MediaEventAdapter +import uk.co.caprica.vlcj.media.MediaParsedStatus +import uk.co.caprica.vlcj.media.ParseFlag import uk.co.caprica.vlcj.media.VideoOrientation import uk.co.caprica.vlcj.player.base.* import uk.co.caprica.vlcj.player.component.CallbackMediaPlayerComponent @@ -255,6 +259,43 @@ actual class VideoPlayer actual constructor( return@withContext VideoPlayerInterface.PreviewAndDuration(preview = preview, timestamp = 0L, duration = duration) } + // Parsing a local container header takes a few dozen ms, this is only a guard against a stuck parse + private const val PARSE_TIMEOUT_MS = 3000L + + // Reads container metadata to tell whether there is a video track at all, without decoding a frame. + // libvlc signals the end of parsing with an event, so no polling or frame-decoding budget is needed. + suspend fun hasVideoTrack(uri: URI): Boolean = withContext(previewThread.asCoroutineDispatcher()) { + if (!uri.toFile().exists()) return@withContext false + val media = try { + vlcPreviewFactory.media().newMedia(uri.toFile().absolutePath) + } catch (e: Exception) { + Log.e(TAG, "hasVideoTrack unable to create media: ${e.stackTraceToString()}") + null + } ?: return@withContext false + try { + val parsed = CompletableDeferred() + media.events().addMediaEventListener(object: MediaEventAdapter() { + // vlcj maps an unknown status int to null, and a null here would throw on its event thread + override fun mediaParsedChanged(parsedMedia: Media?, newStatus: MediaParsedStatus?) { + parsed.complete(newStatus) + } + }) + if (!media.parsing().parse(PARSE_TIMEOUT_MS.toInt(), ParseFlag.PARSE_LOCAL)) { + return@withContext false + } + if (withTimeoutOrNull(PARSE_TIMEOUT_MS) { parsed.await() } != MediaParsedStatus.DONE) { + media.parsing().stop() + return@withContext false + } + media.info().videoTracks().isNotEmpty() + } catch (e: Exception) { + Log.e(TAG, "hasVideoTrack error: ${e.stackTraceToString()}") + false + } finally { + media.release() + } + } + val playerThread = Executors.newSingleThreadExecutor() private val previewThread = Executors.newSingleThreadExecutor() private val playersPool: ArrayList = ArrayList() diff --git a/apps/multiplatform/common/src/desktopMain/kotlin/chat/simplex/common/platform/Videos.desktop.kt b/apps/multiplatform/common/src/desktopMain/kotlin/chat/simplex/common/platform/Videos.desktop.kt index e9924914ef..3293d4f5bd 100644 --- a/apps/multiplatform/common/src/desktopMain/kotlin/chat/simplex/common/platform/Videos.desktop.kt +++ b/apps/multiplatform/common/src/desktopMain/kotlin/chat/simplex/common/platform/Videos.desktop.kt @@ -9,5 +9,6 @@ fun isVideo(uri: URI): Boolean { path.endsWith(".mp4") || path.endsWith(".mpg") || path.endsWith(".mpeg") || - path.endsWith(".mkv") + path.endsWith(".mkv") || + path.endsWith(".webm") } diff --git a/apps/multiplatform/common/src/desktopMain/kotlin/chat/simplex/common/views/helpers/Utils.desktop.kt b/apps/multiplatform/common/src/desktopMain/kotlin/chat/simplex/common/views/helpers/Utils.desktop.kt index 3ccb915661..d4c42790d2 100644 --- a/apps/multiplatform/common/src/desktopMain/kotlin/chat/simplex/common/views/helpers/Utils.desktop.kt +++ b/apps/multiplatform/common/src/desktopMain/kotlin/chat/simplex/common/views/helpers/Utils.desktop.kt @@ -255,6 +255,8 @@ actual suspend fun getBitmapFromVideo(uri: URI, timestamp: Long?, random: Boolea return VideoPlayer.getBitmapFromVideo(null, uri, withAlertOnException) } +actual suspend fun hasVideoTrack(uri: URI): Boolean = VideoPlayer.hasVideoTrack(uri) + @OptIn(ExperimentalEncodingApi::class) actual fun ByteArray.toBase64StringForPassphrase(): String = Base64.encode(this) diff --git a/plans/2026-08-07-webm-video-detection.md b/plans/2026-08-07-webm-video-detection.md new file mode 100644 index 0000000000..e8d4ff1e08 --- /dev/null +++ b/plans/2026-08-07-webm-video-detection.md @@ -0,0 +1,19 @@ +# Send dropped `.webm` as video only when it has a video track + +## Problem + +Dragging a `.webm` file onto the desktop compose area attaches it as a plain file instead of embedding it as a video with a preview frame and duration. Every other video container the app recognises (`.mov`, `.avi`, `.mp4`, `.mpg`, `.mpeg`, `.mkv`) embeds. The same omission hides `.webm` from the "Attach → video" file picker, so the only way to send one is "Choose file", which sends it as a document. + +## Cause + +`isVideoUri` (`apps/multiplatform/common/src/commonMain/kotlin/chat/simplex/common/views/chat/ComposeView.kt:298`) classifies attachments by file extension and does not list `.webm`; the desktop picker filter `isVideo` (`apps/multiplatform/common/src/desktopMain/kotlin/chat/simplex/common/platform/Videos.desktop.kt:5`) repeats the same list with the same omission. `onFilesAttached` groups the dropped URIs by `isImage(it) || isVideoUri(it)`, so a `.webm` fails both predicates, falls into the files group and reaches `processPickedFile`, which builds a `ComposePreview.FilePreview`. + +Adding the extension to both lists is not sufficient on its own. Unlike the other containers, `.webm` is used about as often for audio alone as for video — it is `MediaRecorder`'s default audio container, and Opus/Vorbis in WebM is widespread on the web. An audio-only file classified as video reaches the video branch of `processPickedMedia`, where `getBitmapFromVideo` finds no video track, returns a null preview and raises the "video decoding" alert; the item is then skipped and nothing is attached at all (`ComposeView.kt:366-376`). That is strictly worse than the file attachment the same drop produced before. + +## Fix + +Add `.webm` to both extension lists, and for `.webm` alone decide from the file's content rather than its name. A new `expect suspend fun hasVideoTrack(uri)` (`views/helpers/Utils.kt`) reports whether the container declares a video track, reading metadata only and never decoding a frame. On desktop it is implemented with libvlc's media parse (`platform/VideoPlayer.desktop.kt`), which signals completion with an event rather than a poll, so no frame-decoding budget is needed; measured at 12-346 ms across VP8, VP9, AV1, alpha and a 42 MB file, with a 3 s timeout as a guard against a stuck parse. On Android it uses `MediaMetadataRetriever.METADATA_KEY_HAS_VIDEO`. Either implementation answering "no", or failing, attaches the file as a file, which is always safe. + +`onFilesAttached` consults it only when a `.webm` is actually among the dropped URIs; every other attachment keeps the original synchronous code path on the caller thread, so the change adds no latency and no threading difference to images, documents or the other video containers. Files with a video track are sent as video, the rest as files. + +The content check is applied only where the user has not said how the file should be sent — drag & drop and paste. An explicitly picked video is still trusted: selecting an audio-only `.webm` through "Attach → video" raises the existing decoding error, which matches how the other containers already behave.