This commit is contained in:
Benoit Marty 2020-11-10 15:15:42 +01:00
parent 83467b8597
commit ca70ddb810

View File

@ -70,7 +70,7 @@ class VectorAttachmentViewerActivity : AttachmentViewerActivity(), BaseAttachmen
private var initialIndex = 0 private var initialIndex = 0
private var isAnimatingOut = false private var isAnimatingOut = false
var currentSourceProvider: BaseAttachmentProvider? = null private var currentSourceProvider: BaseAttachmentProvider? = null
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
@ -117,32 +117,22 @@ class VectorAttachmentViewerActivity : AttachmentViewerActivity(), BaseAttachmen
val room = args.roomId?.let { session.getRoom(it) } val room = args.roomId?.let { session.getRoom(it) }
val inMemoryData = intent.getParcelableArrayListExtra<AttachmentData>(EXTRA_IN_MEMORY_DATA) val inMemoryData = intent.getParcelableArrayListExtra<AttachmentData>(EXTRA_IN_MEMORY_DATA)
if (inMemoryData != null) { val sourceProvider = if (inMemoryData != null) {
val sourceProvider = dataSourceFactory.createProvider(inMemoryData, room)
initialIndex = inMemoryData.indexOfFirst { it.eventId == args.eventId }.coerceAtLeast(0) initialIndex = inMemoryData.indexOfFirst { it.eventId == args.eventId }.coerceAtLeast(0)
sourceProvider.interactionListener = this dataSourceFactory.createProvider(inMemoryData, room)
setSourceProvider(sourceProvider)
this.currentSourceProvider = sourceProvider
if (savedInstanceState == null) {
pager2.setCurrentItem(initialIndex, false)
// The page change listener is not notified of the change...
pager2.post {
onSelectedPositionChanged(initialIndex)
}
}
} else { } else {
val events = room?.getAttachmentMessages().orEmpty() val events = room?.getAttachmentMessages().orEmpty()
initialIndex = events.indexOfFirst { it.eventId == args.eventId }.coerceAtLeast(0) initialIndex = events.indexOfFirst { it.eventId == args.eventId }.coerceAtLeast(0)
val sourceProvider = dataSourceFactory.createProvider(events) dataSourceFactory.createProvider(events)
sourceProvider.interactionListener = this }
setSourceProvider(sourceProvider) sourceProvider.interactionListener = this
this.currentSourceProvider = sourceProvider setSourceProvider(sourceProvider)
if (savedInstanceState == null) { currentSourceProvider = sourceProvider
pager2.setCurrentItem(initialIndex, false) if (savedInstanceState == null) {
// The page change listener is not notified of the change... pager2.setCurrentItem(initialIndex, false)
pager2.post { // The page change listener is not notified of the change...
onSelectedPositionChanged(initialIndex) pager2.post {
} onSelectedPositionChanged(initialIndex)
} }
} }
@ -274,7 +264,7 @@ class VectorAttachmentViewerActivity : AttachmentViewerActivity(), BaseAttachmen
} }
override fun onShareTapped() { override fun onShareTapped() {
this.currentSourceProvider?.getFileForSharing(currentPosition) { data -> currentSourceProvider?.getFileForSharing(currentPosition) { data ->
if (data != null && lifecycle.currentState.isAtLeast(Lifecycle.State.RESUMED)) { if (data != null && lifecycle.currentState.isAtLeast(Lifecycle.State.RESUMED)) {
shareMedia(this@VectorAttachmentViewerActivity, data, getMimeTypeFromUri(this@VectorAttachmentViewerActivity, data.toUri())) shareMedia(this@VectorAttachmentViewerActivity, data, getMimeTypeFromUri(this@VectorAttachmentViewerActivity, data.toUri()))
} }