Guest User

Untitled

a guest
Mar 24th, 2018
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 1.71 KB | None | 0 0
  1. class FragmentTabsPager(fm: FragmentManager) : FragmentStatePagerAdapter(fm) {
  2.  
  3.     private var myPhotosFragment = WeakReference<MyPhotosFragment>(null)
  4.     private var receivedPhotosFragment = WeakReference<ReceivedPhotosFragment>(null)
  5.     private var galleryFragment = WeakReference<GalleryFragment>(null)
  6.  
  7.     fun getMyPhotosFragment(): MyPhotosFragment? {
  8.         return myPhotosFragment.get()
  9.     }
  10.  
  11.     override fun getItem(position: Int): Fragment {
  12.         when (position) {
  13.             0 -> {
  14.                 Timber.e("Page 0")
  15.  
  16.                 if (myPhotosFragment.get() != null) {
  17.                     return myPhotosFragment.get()!!
  18.                 }
  19.  
  20.                 val fragment = MyPhotosFragment.newInstance()
  21.                 myPhotosFragment = WeakReference(fragment)
  22.                 return fragment
  23.             }
  24.             1 -> {
  25.                 Timber.e("Page 1")
  26.  
  27.                 if (receivedPhotosFragment.get() != null) {
  28.                     return receivedPhotosFragment.get()!!
  29.                 }
  30.  
  31.                 val fragment = ReceivedPhotosFragment.newInstance()
  32.                 receivedPhotosFragment = WeakReference(fragment)
  33.                 return fragment
  34.             }
  35.             2 -> {
  36.                 Timber.e("Page 2")
  37.  
  38.                 if (galleryFragment.get() != null) {
  39.                     return galleryFragment.get()!!
  40.                 }
  41.  
  42.                 val fragment = GalleryFragment.newInstance()
  43.                 galleryFragment = WeakReference(fragment)
  44.                 return fragment
  45.             }
  46.             else -> throw IllegalArgumentException("No fragment for the current position $position")
  47.         }
  48.     }
  49.  
  50.     override fun getCount(): Int = 3
  51. }
Add Comment
Please, Sign In to add comment