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