Merge "Fix assert fail during onSaveInstanceState()"

This commit is contained in:
Treehugger Robot
2020-03-31 19:02:43 +00:00
committed by Gerrit Code Review

View File

@@ -339,11 +339,23 @@ public class DraftMessageData extends BindableData implements ReadDraftDataActio
*/ */
private boolean addOneAttachmentNoNotify(final MessagePartData attachment) { private boolean addOneAttachmentNoNotify(final MessagePartData attachment) {
Assert.isTrue(attachment.isAttachment()); Assert.isTrue(attachment.isAttachment());
// Check duplication.
for (final MessagePartData existingAttachment : mAttachments) {
if (existingAttachment.getContentUri().equals(attachment.getContentUri())) {
// Destroy existing attachment and replace with new attachment instead of destroying
// new one so that mSelectedImages in GalleryGridView could be maintained correctly.
mAttachments.remove(existingAttachment);
existingAttachment.destroyAsync();
addAttachment(attachment, null /*pendingAttachment*/);
return false;
}
}
final boolean reachedLimit = getAttachmentCount() >= getAttachmentLimit(); final boolean reachedLimit = getAttachmentCount() >= getAttachmentLimit();
if (reachedLimit || containsAttachment(attachment.getContentUri())) { if (reachedLimit) {
// Never go over the limit. Never add duplicated attachments. // Never go over the limit.
attachment.destroyAsync(); attachment.destroyAsync();
return reachedLimit; return true;
} else { } else {
addAttachment(attachment, null /*pendingAttachment*/); addAttachment(attachment, null /*pendingAttachment*/);
return false; return false;