diff --git a/feature/media-send/src/main/java/org/signal/mediasend/MediaSendFlowViewModel.kt b/feature/media-send/src/main/java/org/signal/mediasend/MediaSendFlowViewModel.kt index 554f6064bf..a3faf34722 100644 --- a/feature/media-send/src/main/java/org/signal/mediasend/MediaSendFlowViewModel.kt +++ b/feature/media-send/src/main/java/org/signal/mediasend/MediaSendFlowViewModel.kt @@ -711,23 +711,6 @@ class MediaSendFlowViewModel( } } - /** - * Applies updates to selected media (old -> new). - */ - fun applyMediaUpdates(oldToNew: Map) { - if (oldToNew.isEmpty()) return - - mutateSelection { - val snapshot = state.value - val updatedSelection = snapshot.selectedMedia.map { oldToNew[it] ?: it } - updateState { copy(selectedMedia = updatedSelection) } - - preUploadController.applyMediaUpdates(oldToNew, snapshot.recipientId) - preUploadController.updateCaptions(updatedSelection) - preUploadController.updateDisplayOrder(updatedSelection) - } - } - /** * Sets the current ordering of selected media. */ @@ -1324,8 +1307,8 @@ class MediaSendFlowViewModel( /** * A flow that picks its destination mid-flight has nothing to attribute an upload to yet, so it waits for the send. */ - private fun shouldPreUpload(metered: Boolean): Boolean { - return !metered && args.mode != MediaSendFlowActivityContract.Mode.ChooseAfterMediaSelection + private fun MediaSendFlowState.shouldPreUpload(metered: Boolean): Boolean { + return !metered && !isContactSelectionRequired } //endregion diff --git a/feature/media-send/src/main/java/org/signal/mediasend/preupload/PreUploadController.kt b/feature/media-send/src/main/java/org/signal/mediasend/preupload/PreUploadController.kt index 609529f759..8c66c2b5ca 100644 --- a/feature/media-send/src/main/java/org/signal/mediasend/preupload/PreUploadController.kt +++ b/feature/media-send/src/main/java/org/signal/mediasend/preupload/PreUploadController.kt @@ -72,41 +72,6 @@ class PreUploadController { } } - /** - * Given a map of old->new, cancel medias that were changed and upload their replacements. Will - * also upload any media in the map that wasn't yet uploaded. - * - * @param oldToNew A mapping of prior media objects to their updated equivalents. - * @param recipientId Optional recipient identifier. Used by the callback to apply recipient-specific behavior. - */ - fun applyMediaUpdates(oldToNew: Map, recipientId: MediaRecipientId?) { - executor.execute { - for ((oldMedia, newMedia) in oldToNew) { - val same = oldMedia == newMedia && hasSameTransformProperties(oldMedia, newMedia) - - if (!same || !uploadResults.containsKey(newMedia.uri)) { - Log.d(TAG, "Canceling existing preuploads.") - cancelUploadInternal(oldMedia.uri) - Log.d(TAG, "Applying media updates.") - uploadMediaInternal(newMedia, recipientId) - } - } - } - } - - private fun hasSameTransformProperties(oldMedia: Media, newMedia: Media): Boolean { - val oldProperties = oldMedia.transformProperties - val newProperties = newMedia.transformProperties - - if (oldProperties == null || newProperties == null) { - return oldProperties == newProperties - } - - // Matches legacy behavior: if the new media is "video edited", we treat it as different. - // Otherwise, we treat it as the same if only the sent quality matches. - return !newProperties.videoEdited && oldProperties.sentMediaQuality == newProperties.sentMediaQuality - } - /** * Cancels the pre-upload (if present) for [media] and deletes any associated attachment state. *