diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/uploads/UploadOrchestrator.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/uploads/UploadOrchestrator.kt index fe264d3f0d..a10a63d66a 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/service/uploads/UploadOrchestrator.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/service/uploads/UploadOrchestrator.kt @@ -263,11 +263,13 @@ class UploadOrchestrator { val hash = result.sha256 ?: sourceUrl.substringAfterLast('/').substringBefore('.') if (hash.length != 64) return + // Only the user's *explicitly configured* kind-10063 servers (flow), NOT the + // DEFAULT_MEDIA_SERVERS fallback that hostNameFlow injects — we must never fan + // uploads out to public defaults the user never opted into. val primaryDomain = BlossomServerUrl.domain(primaryServerBaseUrl) val targets = - account.blossomServers.hostNameFlow.value - .filter { it.type == ServerType.Blossom && BlossomServerUrl.domain(it.baseUrl) != primaryDomain } - .map { it.baseUrl } + account.blossomServers.flow.value + .filter { BlossomServerUrl.domain(it) != primaryDomain } .distinct() if (targets.isEmpty()) return diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/mediaServers/BlossomBlobManagerViewModel.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/mediaServers/BlossomBlobManagerViewModel.kt index baf6f84481..39acd1ee82 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/mediaServers/BlossomBlobManagerViewModel.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/actions/mediaServers/BlossomBlobManagerViewModel.kt @@ -80,10 +80,11 @@ class BlossomBlobManagerViewModel : ViewModel() { private fun clientFor(server: String) = BlossomClient(Amethyst.instance.roleBasedHttpClientBuilder.okHttpClientForUploads(server)) + // The user's explicitly configured kind-10063 servers (empty if they never set + // a list) — not the DEFAULT_MEDIA_SERVERS fallback, so the matrix reflects the + // servers the user actually chose. private fun servers(): List = - account.blossomServers.hostNameFlow.value - .filter { it.type == ServerType.Blossom } - .map { it.baseUrl } + account.blossomServers.flow.value .distinct() fun refresh() {