diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index b593e589..acf5f807 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -44,6 +44,11 @@ android:launchMode="singleTop" android:screenOrientation="portrait" /> + + >() + + override fun getItem(position: Int): PokerAnalyticsFragment { + return when (position) { + 0 -> GraphFragment() + 1 -> GraphFragment() + 2 -> CalendarFragment.newInstance() + else -> HistoryFragment.newInstance() + } + } + + override fun getCount(): Int { + return 3 + } + + override fun getPageTitle(position: Int): CharSequence? { + return when(position) { + 0 -> context.getString(R.string.bar) + 1 -> context.getString(R.string.line) + 2-> context.getString(R.string.table) + else -> super.getPageTitle(position) + } + } + + 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 { + return when (obj) { + //CLEAN + /* + HistoryFragment::class.java -> 0 + StatsFragment::class.java -> 1 + SettingsFragment::class.java -> 2 + */ + HistoryFragment::class.java -> 0 + StatsFragment::class.java -> 1 + CalendarFragment::class.java -> 2 + ReportsFragment::class.java -> 3 + MoreFragment::class.java -> 4 + 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 + } + +} \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/ComparisonChartFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/ComparisonChartFragment.kt new file mode 100644 index 00000000..17508584 --- /dev/null +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/ComparisonChartFragment.kt @@ -0,0 +1,100 @@ +package net.pokeranalytics.android.ui.fragment + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import kotlinx.android.synthetic.main.fragment_comparison_chart.* +import net.pokeranalytics.android.R +import net.pokeranalytics.android.ui.activity.BankrollActivity +import net.pokeranalytics.android.ui.activity.SettingsActivity +import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity +import net.pokeranalytics.android.ui.adapter.ComparisonChartPagerAdapter +import net.pokeranalytics.android.ui.adapter.RowRepresentableDelegate +import net.pokeranalytics.android.ui.adapter.StaticRowRepresentableDataSource +import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment +import net.pokeranalytics.android.ui.view.RowRepresentable +import net.pokeranalytics.android.ui.view.rowrepresentable.MoreTabRow + +class ComparisonChartFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataSource, RowRepresentableDelegate { + + companion object { + + /** + * Create new instance + */ + fun newInstance(): ComparisonChartFragment { + val fragment = ComparisonChartFragment() + val bundle = Bundle() + fragment.arguments = bundle + return fragment + } + + val rowRepresentation: List by lazy { + val rows = ArrayList() + rows.addAll(MoreTabRow.values()) + rows + } + + } + + private lateinit var parentActivity: PokerAnalyticsActivity + private lateinit var viewPagerAdapter: ComparisonChartPagerAdapter + + + // Life Cycle + + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { + return inflater.inflate(R.layout.fragment_comparison_chart, container, false) + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + initData() + initUI() + } + + // Rows + override fun adapterRows(): List? { + return rowRepresentation + } + + override fun onRowSelected(position: Int, row: RowRepresentable, fromAction: Boolean) { + super.onRowSelected(position, row, fromAction) + when(row) { + MoreTabRow.BANKROLL -> BankrollActivity.newInstance(requireContext()) + MoreTabRow.SETTINGS -> SettingsActivity.newInstance(requireContext()) + } + } + + // Business + + /** + * Init data + */ + private fun initData() { + } + + /** + * Init UI + */ + private fun initUI() { + + parentActivity = activity as PokerAnalyticsActivity + + toolbar.title = "" + + parentActivity.setSupportActionBar(toolbar) + parentActivity.supportActionBar?.setDisplayHomeAsUpEnabled(true) + setHasOptionsMenu(true) + + toolbar.title = "Comparison chart" + + viewPagerAdapter = ComparisonChartPagerAdapter(requireContext(), parentActivity.supportFragmentManager) + viewPager.adapter = viewPagerAdapter + + tabs.setupWithViewPager(viewPager) + + } + +} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_comparison_chart.xml b/app/src/main/res/layout/activity_comparison_chart.xml new file mode 100644 index 00000000..9ef4638e --- /dev/null +++ b/app/src/main/res/layout/activity_comparison_chart.xml @@ -0,0 +1,15 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_comparison_chart.xml b/app/src/main/res/layout/fragment_comparison_chart.xml new file mode 100644 index 00000000..e24de7cb --- /dev/null +++ b/app/src/main/res/layout/fragment_comparison_chart.xml @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file