DRY again

This commit is contained in:
Benoit Marty 2020-11-10 15:33:24 +01:00
parent bfcd4b8250
commit 45e534bbf5
3 changed files with 9 additions and 12 deletions

View File

@ -37,7 +37,8 @@ import org.matrix.android.sdk.api.session.file.FileService
import org.matrix.android.sdk.api.session.room.timeline.TimelineEvent import org.matrix.android.sdk.api.session.room.timeline.TimelineEvent
import java.io.File import java.io.File
abstract class BaseAttachmentProvider( abstract class BaseAttachmentProvider<Type>(
protected val attachments: List<Type>,
private val imageContentRenderer: ImageContentRenderer, private val imageContentRenderer: ImageContentRenderer,
protected val fileService: FileService, protected val fileService: FileService,
private val dateFormatter: VectorDateFormatter, private val dateFormatter: VectorDateFormatter,
@ -53,7 +54,9 @@ abstract class BaseAttachmentProvider(
var interactionListener: InteractionListener? = null var interactionListener: InteractionListener? = null
protected var overlayView: AttachmentOverlayView? = null private var overlayView: AttachmentOverlayView? = null
final override fun getItemCount() = attachments.size
final override fun overlayViewAtPosition(context: Context, position: Int): View? { final override fun overlayViewAtPosition(context: Context, position: Int): View? {
if (position == -1) return null if (position == -1) return null

View File

@ -26,15 +26,13 @@ import org.matrix.android.sdk.api.session.room.timeline.TimelineEvent
import java.io.File import java.io.File
class DataAttachmentRoomProvider( class DataAttachmentRoomProvider(
private val attachments: List<AttachmentData>, attachments: List<AttachmentData>,
private val room: Room?, private val room: Room?,
imageContentRenderer: ImageContentRenderer, imageContentRenderer: ImageContentRenderer,
dateFormatter: VectorDateFormatter, dateFormatter: VectorDateFormatter,
fileService: FileService, fileService: FileService,
stringProvider: StringProvider stringProvider: StringProvider
) : BaseAttachmentProvider(imageContentRenderer, fileService, dateFormatter, stringProvider) { ) : BaseAttachmentProvider<AttachmentData>(attachments, imageContentRenderer, fileService, dateFormatter, stringProvider) {
override fun getItemCount(): Int = attachments.size
override fun getAttachmentInfoAt(position: Int): AttachmentInfo { override fun getAttachmentInfoAt(position: Int): AttachmentInfo {
return attachments[position].let { return attachments[position].let {

View File

@ -32,16 +32,12 @@ import org.matrix.android.sdk.internal.crypto.attachments.toElementToDecrypt
import java.io.File import java.io.File
class RoomEventsAttachmentProvider( class RoomEventsAttachmentProvider(
private val attachments: List<TimelineEvent>, attachments: List<TimelineEvent>,
imageContentRenderer: ImageContentRenderer, imageContentRenderer: ImageContentRenderer,
dateFormatter: VectorDateFormatter, dateFormatter: VectorDateFormatter,
fileService: FileService, fileService: FileService,
stringProvider: StringProvider stringProvider: StringProvider
) : BaseAttachmentProvider(imageContentRenderer, fileService, dateFormatter, stringProvider) { ) : BaseAttachmentProvider<TimelineEvent>(attachments, imageContentRenderer, fileService, dateFormatter, stringProvider) {
override fun getItemCount(): Int {
return attachments.size
}
override fun getAttachmentInfoAt(position: Int): AttachmentInfo { override fun getAttachmentInfoAt(position: Int): AttachmentInfo {
return attachments[position].let { return attachments[position].let {