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:
parent
1792a14bb0
commit
4ba6b4adfe
4 changed files with 45 additions and 73 deletions
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue