Add initial thumbnail restore for message backup.

This commit is contained in:
Clark
2024-05-15 14:58:29 -04:00
committed by Nicholas Tinsley
parent 757c0fd2ea
commit b72d586748
25 changed files with 397 additions and 50 deletions

View File

@@ -22,6 +22,9 @@ class ArchivedAttachment : Attachment {
@JvmField
val archiveMediaId: String
@JvmField
val archiveThumbnailMediaId: String
constructor(
contentType: String?,
size: Long,
@@ -31,6 +34,7 @@ class ArchivedAttachment : Attachment {
archiveCdn: Int?,
archiveMediaName: String,
archiveMediaId: String,
archiveThumbnailMediaId: String,
digest: ByteArray,
incrementalMac: ByteArray?,
incrementalMacChunkSize: Int?,
@@ -70,12 +74,14 @@ class ArchivedAttachment : Attachment {
this.archiveCdn = archiveCdn ?: Cdn.CDN_3.cdnNumber
this.archiveMediaName = archiveMediaName
this.archiveMediaId = archiveMediaId
this.archiveThumbnailMediaId = archiveThumbnailMediaId
}
constructor(parcel: Parcel) : super(parcel) {
archiveCdn = parcel.readInt()
archiveMediaName = parcel.readString()!!
archiveMediaId = parcel.readString()!!
archiveThumbnailMediaId = parcel.readString()!!
}
override fun writeToParcel(dest: Parcel, flags: Int) {
@@ -83,8 +89,10 @@ class ArchivedAttachment : Attachment {
dest.writeInt(archiveCdn)
dest.writeString(archiveMediaName)
dest.writeString(archiveMediaId)
dest.writeString(archiveThumbnailMediaId)
}
override val uri: Uri? = null
override val publicUri: Uri? = null
override val thumbnailUri: Uri? = null
}

View File

@@ -70,6 +70,7 @@ abstract class Attachment(
abstract val uri: Uri?
abstract val publicUri: Uri?
abstract val thumbnailUri: Uri?
protected constructor(parcel: Parcel) : this(
contentType = parcel.readString()!!,
@@ -129,7 +130,7 @@ abstract class Attachment(
}
val isInProgress: Boolean
get() = transferState != AttachmentTable.TRANSFER_PROGRESS_DONE && transferState != AttachmentTable.TRANSFER_PROGRESS_FAILED && transferState != AttachmentTable.TRANSFER_PROGRESS_PERMANENT_FAILURE
get() = transferState != AttachmentTable.TRANSFER_PROGRESS_DONE && transferState != AttachmentTable.TRANSFER_PROGRESS_FAILED && transferState != AttachmentTable.TRANSFER_PROGRESS_PERMANENT_FAILURE && transferState != AttachmentTable.TRANSFER_RESTORE_OFFLOADED
val isPermanentlyFailed: Boolean
get() = transferState == AttachmentTable.TRANSFER_PROGRESS_PERMANENT_FAILURE

View File

@@ -28,12 +28,16 @@ class DatabaseAttachment : Attachment {
@JvmField
val archiveCdn: Int
@JvmField
val archiveThumbnailCdn: Int
@JvmField
val archiveMediaName: String?
@JvmField
val archiveMediaId: String?
private val hasArchiveThumbnail: Boolean
private val hasThumbnail: Boolean
val displayOrder: Int
@@ -42,6 +46,7 @@ class DatabaseAttachment : Attachment {
mmsId: Long,
hasData: Boolean,
hasThumbnail: Boolean,
hasArchiveThumbnail: Boolean,
contentType: String?,
transferProgress: Int,
size: Long,
@@ -68,6 +73,7 @@ class DatabaseAttachment : Attachment {
uploadTimestamp: Long,
dataHash: String?,
archiveCdn: Int,
archiveThumbnailCdn: Int,
archiveMediaName: String?,
archiveMediaId: String?
) : super(
@@ -99,8 +105,10 @@ class DatabaseAttachment : Attachment {
this.hasData = hasData
this.dataHash = dataHash
this.hasThumbnail = hasThumbnail
this.hasArchiveThumbnail = hasArchiveThumbnail
this.displayOrder = displayOrder
this.archiveCdn = archiveCdn
this.archiveThumbnailCdn = archiveThumbnailCdn
this.archiveMediaName = archiveMediaName
this.archiveMediaId = archiveMediaId
}
@@ -113,8 +121,10 @@ class DatabaseAttachment : Attachment {
mmsId = parcel.readLong()
displayOrder = parcel.readInt()
archiveCdn = parcel.readInt()
archiveThumbnailCdn = parcel.readInt()
archiveMediaName = parcel.readString()
archiveMediaId = parcel.readString()
hasArchiveThumbnail = ParcelUtil.readBoolean(parcel)
}
override fun writeToParcel(dest: Parcel, flags: Int) {
@@ -126,8 +136,10 @@ class DatabaseAttachment : Attachment {
dest.writeLong(mmsId)
dest.writeInt(displayOrder)
dest.writeInt(archiveCdn)
dest.writeInt(archiveThumbnailCdn)
dest.writeString(archiveMediaName)
dest.writeString(archiveMediaId)
ParcelUtil.writeBoolean(dest, hasArchiveThumbnail)
}
override val uri: Uri?
@@ -144,6 +156,13 @@ class DatabaseAttachment : Attachment {
null
}
override val thumbnailUri: Uri?
get() = if (hasArchiveThumbnail) {
PartAuthority.getAttachmentThumbnailUri(attachmentId)
} else {
null
}
override fun equals(other: Any?): Boolean {
return other != null &&
other is DatabaseAttachment && other.attachmentId == attachmentId

View File

@@ -66,6 +66,7 @@ class PointerAttachment : Attachment {
override val uri: Uri? = null
override val publicUri: Uri? = null
override val thumbnailUri: Uri? = null
companion object {
@JvmStatic

View File

@@ -80,4 +80,5 @@ class TombstoneAttachment : Attachment {
override val uri: Uri? = null
override val publicUri: Uri? = null
override val thumbnailUri: Uri? = null
}

View File

@@ -98,6 +98,7 @@ class UriAttachment : Attachment {
override val uri: Uri
override val publicUri: Uri? = null
override val thumbnailUri: Uri? = null
override fun writeToParcel(dest: Parcel, flags: Int) {
super.writeToParcel(dest, flags)