parent
e036f2dc89
commit
6de5f26733
@ -0,0 +1,64 @@ |
|||||||
|
package net.pokeranalytics.android.ui.adapter |
||||||
|
|
||||||
|
import android.util.SparseArray |
||||||
|
import android.view.ViewGroup |
||||||
|
import androidx.fragment.app.FragmentManager |
||||||
|
import androidx.fragment.app.FragmentStatePagerAdapter |
||||||
|
import net.pokeranalytics.android.ui.fragment.HistoryFragment |
||||||
|
import net.pokeranalytics.android.ui.fragment.SettingsFragment |
||||||
|
import net.pokeranalytics.android.ui.fragment.StatsFragment |
||||||
|
import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment |
||||||
|
import java.lang.ref.WeakReference |
||||||
|
|
||||||
|
/** |
||||||
|
* Home Adapter |
||||||
|
*/ |
||||||
|
class HomePagerAdapter(fragmentManager: FragmentManager) : FragmentStatePagerAdapter(fragmentManager) { |
||||||
|
|
||||||
|
var weakReferences = SparseArray<WeakReference<PokerAnalyticsFragment>>() |
||||||
|
|
||||||
|
override fun getItem(position: Int): PokerAnalyticsFragment { |
||||||
|
return when (position) { |
||||||
|
0 -> HistoryFragment.newInstance() |
||||||
|
1 -> StatsFragment.newInstance() |
||||||
|
2 -> SettingsFragment.newInstance() |
||||||
|
else -> HistoryFragment.newInstance() |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
override fun getCount(): Int { |
||||||
|
return 5 |
||||||
|
} |
||||||
|
|
||||||
|
override fun destroyItem(container: ViewGroup, position: Int, `object`: Any) { |
||||||
|
super.destroyItem(container, position, `object`) |
||||||
|
weakReferences.remove(position) |
||||||
|
} |
||||||
|
|
||||||
|
override fun instantiateItem(container: ViewGroup, position: Int): Any { |
||||||
|
val fragment = super.instantiateItem(container, position) as PokerAnalyticsFragment |
||||||
|
weakReferences.put(position, WeakReference(fragment)) |
||||||
|
return fragment |
||||||
|
} |
||||||
|
|
||||||
|
override fun getItemPosition(obj: Any): Int { |
||||||
|
val fragment = obj as PokerAnalyticsFragment |
||||||
|
return when (fragment) { |
||||||
|
HistoryFragment::class.java -> 0 |
||||||
|
StatsFragment::class.java -> 1 |
||||||
|
SettingsFragment::class.java -> 2 |
||||||
|
else -> -1 |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* Return the fragment at the position key |
||||||
|
*/ |
||||||
|
fun getFragment(key: Int): PokerAnalyticsFragment? { |
||||||
|
if (weakReferences.get(key) != null) { |
||||||
|
return weakReferences.get(key).get() |
||||||
|
} |
||||||
|
return null |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,33 @@ |
|||||||
|
package net.pokeranalytics.android.ui.view |
||||||
|
|
||||||
|
import android.content.Context |
||||||
|
import android.util.AttributeSet |
||||||
|
import android.view.MotionEvent |
||||||
|
import androidx.viewpager.widget.ViewPager |
||||||
|
|
||||||
|
/** |
||||||
|
* Poker Analytics ViewPager |
||||||
|
*/ |
||||||
|
class PokerAnalyticsViewPager(context: Context, attrs: AttributeSet) : ViewPager(context, attrs) { |
||||||
|
|
||||||
|
var enablePaging: Boolean = false |
||||||
|
|
||||||
|
init { |
||||||
|
this.enablePaging = false |
||||||
|
} |
||||||
|
|
||||||
|
override fun onTouchEvent(event: MotionEvent): Boolean { |
||||||
|
return if (this.enablePaging) { |
||||||
|
super.onTouchEvent(event) |
||||||
|
} else false |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
override fun onInterceptTouchEvent(event: MotionEvent): Boolean { |
||||||
|
return if (this.enablePaging) { |
||||||
|
super.onInterceptTouchEvent(event) |
||||||
|
} else false |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
Loading…
Reference in new issue