Improve attachment deduping for videos.
This commit is contained in:
parent
ba2d5bce41
commit
7eac9ce1f4
4 changed files with 5 additions and 15 deletions
|
@ -111,15 +111,6 @@ class AttachmentTableTest_deduping {
|
||||||
assertDataFilesAreDifferent(id1, id2)
|
assertDataFilesAreDifferent(id1, id2)
|
||||||
assertDataHashStartMatches(id1, id2)
|
assertDataHashStartMatches(id1, id2)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Non-matching mp4 fast start
|
|
||||||
test {
|
|
||||||
val id1 = insertWithData(DATA_A, TransformProperties(mp4FastStart = true))
|
|
||||||
val id2 = insertWithData(DATA_A, TransformProperties(mp4FastStart = false))
|
|
||||||
|
|
||||||
assertDataFilesAreDifferent(id1, id2)
|
|
||||||
assertDataHashStartMatches(id1, id2)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -199,6 +199,7 @@ import org.thoughtcrime.securesms.conversation.v2.groups.ConversationGroupViewMo
|
||||||
import org.thoughtcrime.securesms.conversation.v2.items.ChatColorsDrawable
|
import org.thoughtcrime.securesms.conversation.v2.items.ChatColorsDrawable
|
||||||
import org.thoughtcrime.securesms.conversation.v2.items.InteractiveConversationElement
|
import org.thoughtcrime.securesms.conversation.v2.items.InteractiveConversationElement
|
||||||
import org.thoughtcrime.securesms.conversation.v2.keyboard.AttachmentKeyboardFragment
|
import org.thoughtcrime.securesms.conversation.v2.keyboard.AttachmentKeyboardFragment
|
||||||
|
import org.thoughtcrime.securesms.database.AttachmentTable
|
||||||
import org.thoughtcrime.securesms.database.DraftTable
|
import org.thoughtcrime.securesms.database.DraftTable
|
||||||
import org.thoughtcrime.securesms.database.model.IdentityRecord
|
import org.thoughtcrime.securesms.database.model.IdentityRecord
|
||||||
import org.thoughtcrime.securesms.database.model.InMemoryMessageRecord
|
import org.thoughtcrime.securesms.database.model.InMemoryMessageRecord
|
||||||
|
@ -1265,7 +1266,7 @@ class ConversationFragment :
|
||||||
videoGif,
|
videoGif,
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
Optional.empty(),
|
||||||
Optional.empty(),
|
Optional.of(AttachmentTable.TransformProperties.forSentMediaQuality(SignalStore.settings.sentMediaQuality.code)),
|
||||||
Optional.empty()
|
Optional.empty()
|
||||||
)
|
)
|
||||||
conversationActivityResultContracts.launchMediaEditor(listOf(media), recipientId, composeText.textTrimmed)
|
conversationActivityResultContracts.launchMediaEditor(listOf(media), recipientId, composeText.textTrimmed)
|
||||||
|
|
|
@ -1950,10 +1950,6 @@ class AttachmentTable(
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
if (newProperties.mp4FastStart != potentialMatchProperties.mp4FastStart) {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,9 @@ import com.annimon.stream.Stream;
|
||||||
import org.signal.core.util.concurrent.SignalExecutors;
|
import org.signal.core.util.concurrent.SignalExecutors;
|
||||||
import org.signal.core.util.logging.Log;
|
import org.signal.core.util.logging.Log;
|
||||||
import org.thoughtcrime.securesms.R;
|
import org.thoughtcrime.securesms.R;
|
||||||
|
import org.thoughtcrime.securesms.database.AttachmentTable;
|
||||||
import org.thoughtcrime.securesms.dependencies.AppDependencies;
|
import org.thoughtcrime.securesms.dependencies.AppDependencies;
|
||||||
|
import org.thoughtcrime.securesms.keyvalue.SignalStore;
|
||||||
import org.thoughtcrime.securesms.mms.PartAuthority;
|
import org.thoughtcrime.securesms.mms.PartAuthority;
|
||||||
import org.thoughtcrime.securesms.util.MediaUtil;
|
import org.thoughtcrime.securesms.util.MediaUtil;
|
||||||
import org.signal.core.util.SqlUtil;
|
import org.signal.core.util.SqlUtil;
|
||||||
|
@ -275,7 +277,7 @@ public class MediaRepository {
|
||||||
long size = cursor.getLong(cursor.getColumnIndexOrThrow(Images.Media.SIZE));
|
long size = cursor.getLong(cursor.getColumnIndexOrThrow(Images.Media.SIZE));
|
||||||
long duration = !isImage ? cursor.getInt(cursor.getColumnIndexOrThrow(Video.Media.DURATION)) : 0;
|
long duration = !isImage ? cursor.getInt(cursor.getColumnIndexOrThrow(Video.Media.DURATION)) : 0;
|
||||||
|
|
||||||
media.add(fixMimeType(context, new Media(uri, mimetype, date, width, height, size, duration, false, false, Optional.of(bucketId), Optional.empty(), Optional.empty(), Optional.empty())));
|
media.add(fixMimeType(context, new Media(uri, mimetype, date, width, height, size, duration, false, false, Optional.of(bucketId), Optional.empty(), Optional.of(AttachmentTable.TransformProperties.forSentMediaQuality(SignalStore.settings().getSentMediaQuality().getCode())), Optional.empty())));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue