* Use cached preview as thumbnail in ViewImageFragment, fix #1267 * Use cached preview as thumbnail in ViewImageFragment, fix #1267
This commit is contained in:
parent
70b3ce7487
commit
9805a985b2
7 changed files with 164 additions and 111 deletions
|
@ -3,12 +3,10 @@ package com.keylesspalace.tusky.pager
|
|||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.FragmentManager
|
||||
import androidx.fragment.app.FragmentPagerAdapter
|
||||
|
||||
import com.keylesspalace.tusky.SharedElementTransitionListener
|
||||
import com.keylesspalace.tusky.fragment.ViewMediaFragment
|
||||
import java.lang.IllegalStateException
|
||||
|
||||
class AvatarImagePagerAdapter(fragmentManager: FragmentManager, private val avatarUrl: String) : FragmentPagerAdapter(fragmentManager) {
|
||||
|
||||
class AvatarImagePagerAdapter(fragmentManager: FragmentManager, private val avatarUrl: String) : FragmentPagerAdapter(fragmentManager), SharedElementTransitionListener {
|
||||
override fun getItem(position: Int): Fragment {
|
||||
return if (position == 0) {
|
||||
ViewMediaFragment.newAvatarInstance(avatarUrl)
|
||||
|
@ -19,4 +17,6 @@ class AvatarImagePagerAdapter(fragmentManager: FragmentManager, private val avat
|
|||
|
||||
override fun getCount() = 1
|
||||
|
||||
override fun onTransitionEnd() {
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,20 +1,26 @@
|
|||
package com.keylesspalace.tusky.pager
|
||||
|
||||
import android.view.ViewGroup
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.fragment.app.FragmentManager
|
||||
import androidx.fragment.app.FragmentStatePagerAdapter
|
||||
|
||||
import com.keylesspalace.tusky.SharedElementTransitionListener
|
||||
import com.keylesspalace.tusky.entity.Attachment
|
||||
import com.keylesspalace.tusky.fragment.ViewMediaFragment
|
||||
import java.lang.IllegalStateException
|
||||
|
||||
import java.util.Locale
|
||||
import java.util.*
|
||||
|
||||
class ImagePagerAdapter(
|
||||
fragmentManager: FragmentManager,
|
||||
private val attachments: List<Attachment>,
|
||||
private val initialPosition: Int
|
||||
) : FragmentStatePagerAdapter(fragmentManager) {
|
||||
) : FragmentStatePagerAdapter(fragmentManager), SharedElementTransitionListener {
|
||||
|
||||
private var primaryItem: ViewMediaFragment? = null
|
||||
|
||||
override fun setPrimaryItem(container: ViewGroup, position: Int, item: Any) {
|
||||
super.setPrimaryItem(container, position, item)
|
||||
this.primaryItem = item as ViewMediaFragment
|
||||
}
|
||||
|
||||
override fun getItem(position: Int): Fragment {
|
||||
return if (position >= 0 && position < attachments.size) {
|
||||
|
@ -31,4 +37,8 @@ class ImagePagerAdapter(
|
|||
override fun getPageTitle(position: Int): CharSequence {
|
||||
return String.format(Locale.getDefault(), "%d/%d", position + 1, attachments.size)
|
||||
}
|
||||
|
||||
override fun onTransitionEnd() {
|
||||
primaryItem?.onTransitionEnd()
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue