Fix media transitions, reduce code duplication between media fragments (#894)

* Fix media transitions, reduce code duplication between media fragments

* Remove redundant helper

* Fix occasional crash when swiping between mixed media

* Hide controls when swiping between media
This commit is contained in:
Levi Bard 2018-11-01 14:52:22 +01:00 committed by Konrad Pozniak
commit 4ba6b4adfe
4 changed files with 45 additions and 73 deletions

View file

@ -16,15 +16,22 @@
package com.keylesspalace.tusky.fragment
import android.os.Bundle
import android.text.TextUtils
import android.widget.TextView
import com.keylesspalace.tusky.ViewMediaActivity
import com.keylesspalace.tusky.entity.Attachment
import com.keylesspalace.tusky.util.visible
abstract class ViewMediaFragment : BaseFragment() {
private var toolbarVisibiltyDisposable: Function0<Boolean>? = null
abstract fun setupMediaView(url: String)
abstract fun onToolbarVisibilityChange(visible: Boolean)
abstract val descriptionView : TextView
protected var showingDescription = false
protected var isDescriptionVisible = false
companion object {
@JvmStatic protected val ARG_START_POSTPONED_TRANSITION = "startPostponedTransition"
@ -60,7 +67,16 @@ abstract class ViewMediaFragment : BaseFragment() {
}
}
protected fun setupToolbarVisibilityListener() {
protected fun finalizeViewSetup(url: String, description: String?) {
val mediaActivity = activity as ViewMediaActivity
setupMediaView(url)
descriptionView.text = description ?: ""
showingDescription = !TextUtils.isEmpty(description)
isDescriptionVisible = showingDescription
descriptionView.visible(showingDescription && mediaActivity.isToolbarVisible())
toolbarVisibiltyDisposable = (activity as ViewMediaActivity).addToolbarVisibilityListener(object: ViewMediaActivity.ToolbarVisibilityListener {
override fun onToolbarVisiblityChanged(isVisible: Boolean) {
onToolbarVisibilityChange(isVisible)