Track down issues around empty preupload results.

This commit is contained in:
Greyson Parrelli 2021-09-27 09:38:36 -04:00 committed by Cody Henthorne
parent e268887255
commit fbabab0b70
2 changed files with 12 additions and 4 deletions

View file

@ -79,9 +79,10 @@ public class MediaUploadRepository {
public void applyMediaUpdates(@NonNull Map<Media, Media> oldToNew, @Nullable Recipient recipient) {
executor.execute(() -> {
for (Map.Entry<Media, Media> entry : oldToNew.entrySet()) {
Media oldMedia = entry.getKey();
Media newMedia = entry.getValue();
boolean same = oldMedia.equals(newMedia) && hasSameTransformProperties(oldMedia, newMedia);
Media oldMedia = entry.getKey();
Media newMedia = entry.getValue();
boolean same = oldMedia.equals(newMedia) && hasSameTransformProperties(oldMedia, newMedia);
if (!same || !uploadResults.containsKey(newMedia)) {
cancelUploadInternal(oldMedia);
uploadMediaInternal(newMedia, recipient);

View file

@ -77,6 +77,10 @@ class MediaSelectionRepository(context: Context) {
throw IllegalStateException("Provided recipients to send to, but this is SMS!")
}
if (selectedMedia.isEmpty()) {
throw IllegalStateException("No selected media!")
}
return Maybe.create<MediaSendActivityResult> { emitter ->
val trimmedBody: String = if (isViewOnce) "" else message?.toString()?.trim() ?: ""
val trimmedMentions: List<Mention> = if (isViewOnce) emptyList() else mentions
@ -120,8 +124,11 @@ class MediaSelectionRepository(context: Context) {
sendMessages(recipients, splitBody, uploadResults, trimmedMentions, isViewOnce)
uploadRepository.deleteAbandonedAttachments()
emitter.onComplete()
} else {
} else if (uploadResults.isNotEmpty()) {
emitter.onSuccess(MediaSendActivityResult.forPreUpload(requireNotNull(singleRecipient).id, uploadResults, splitBody, transport, isViewOnce, trimmedMentions))
} else {
Log.w(TAG, "Got empty upload results! isSms: $isSms, updatedMedia.size(): ${updatedMedia.size}, isViewOnce: $isViewOnce, target: $singleRecipientId")
emitter.onSuccess(MediaSendActivityResult.forTraditionalSend(requireNotNull(singleRecipient).id, updatedMedia, trimmedBody, transport, isViewOnce, trimmedMentions))
}
}
}