From 57466bd8dc5c69900a4117cf558d067e40187b86 Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Fri, 12 Apr 2019 11:19:37 +0200 Subject: [PATCH 1/8] Add new drawables --- app/src/main/res/drawable/ic_outline_calendar.xml | 9 +++++++++ app/src/main/res/drawable/ic_outline_chart.xml | 9 +++++++++ app/src/main/res/drawable/ic_outline_lock.xml | 9 +++++++++ app/src/main/res/drawable/ic_outline_more.xml | 9 +++++++++ 4 files changed, 36 insertions(+) create mode 100644 app/src/main/res/drawable/ic_outline_calendar.xml create mode 100644 app/src/main/res/drawable/ic_outline_chart.xml create mode 100644 app/src/main/res/drawable/ic_outline_lock.xml create mode 100644 app/src/main/res/drawable/ic_outline_more.xml diff --git a/app/src/main/res/drawable/ic_outline_calendar.xml b/app/src/main/res/drawable/ic_outline_calendar.xml new file mode 100644 index 00000000..9307b8fd --- /dev/null +++ b/app/src/main/res/drawable/ic_outline_calendar.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_outline_chart.xml b/app/src/main/res/drawable/ic_outline_chart.xml new file mode 100644 index 00000000..0d4f8c3f --- /dev/null +++ b/app/src/main/res/drawable/ic_outline_chart.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_outline_lock.xml b/app/src/main/res/drawable/ic_outline_lock.xml new file mode 100644 index 00000000..d4968533 --- /dev/null +++ b/app/src/main/res/drawable/ic_outline_lock.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_outline_more.xml b/app/src/main/res/drawable/ic_outline_more.xml new file mode 100644 index 00000000..64325fda --- /dev/null +++ b/app/src/main/res/drawable/ic_outline_more.xml @@ -0,0 +1,9 @@ + + + From d7fdb4113bc93495d681b4092513d9050953720f Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Fri, 12 Apr 2019 11:20:11 +0200 Subject: [PATCH 2/8] Add, update and clean layouts --- app/src/main/res/layout/activity_bankroll.xml | 15 +++ app/src/main/res/layout/activity_home.xml | 11 +-- app/src/main/res/layout/activity_settings.xml | 15 +++ app/src/main/res/layout/fragment_bankroll.xml | 56 +++++++++++ app/src/main/res/layout/fragment_calendar.xml | 18 ++++ app/src/main/res/layout/fragment_more.xml | 18 ++++ app/src/main/res/layout/fragment_reports.xml | 18 ++++ app/src/main/res/layout/fragment_session.xml | 94 +------------------ app/src/main/res/layout/fragment_settings.xml | 60 ++++++++++-- app/src/main/res/layout/row_title_arrow.xml | 3 +- .../main/res/layout/row_title_icon_arrow.xml | 59 ++++++++++++ 11 files changed, 257 insertions(+), 110 deletions(-) create mode 100644 app/src/main/res/layout/activity_bankroll.xml create mode 100644 app/src/main/res/layout/activity_settings.xml create mode 100644 app/src/main/res/layout/fragment_bankroll.xml create mode 100644 app/src/main/res/layout/fragment_calendar.xml create mode 100644 app/src/main/res/layout/fragment_more.xml create mode 100644 app/src/main/res/layout/fragment_reports.xml create mode 100644 app/src/main/res/layout/row_title_icon_arrow.xml diff --git a/app/src/main/res/layout/activity_bankroll.xml b/app/src/main/res/layout/activity_bankroll.xml new file mode 100644 index 00000000..eb1d8184 --- /dev/null +++ b/app/src/main/res/layout/activity_bankroll.xml @@ -0,0 +1,15 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_home.xml b/app/src/main/res/layout/activity_home.xml index 09f1bbc4..275db019 100644 --- a/app/src/main/res/layout/activity_home.xml +++ b/app/src/main/res/layout/activity_home.xml @@ -15,16 +15,6 @@ app:layout_constraintTop_toTopOf="parent" app:title="@string/app_name" /> - - + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_bankroll.xml b/app/src/main/res/layout/fragment_bankroll.xml new file mode 100644 index 00000000..0cf1c9b1 --- /dev/null +++ b/app/src/main/res/layout/fragment_bankroll.xml @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_calendar.xml b/app/src/main/res/layout/fragment_calendar.xml new file mode 100644 index 00000000..aaa1d704 --- /dev/null +++ b/app/src/main/res/layout/fragment_calendar.xml @@ -0,0 +1,18 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_more.xml b/app/src/main/res/layout/fragment_more.xml new file mode 100644 index 00000000..aaa1d704 --- /dev/null +++ b/app/src/main/res/layout/fragment_more.xml @@ -0,0 +1,18 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_reports.xml b/app/src/main/res/layout/fragment_reports.xml new file mode 100644 index 00000000..aaa1d704 --- /dev/null +++ b/app/src/main/res/layout/fragment_reports.xml @@ -0,0 +1,18 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_session.xml b/app/src/main/res/layout/fragment_session.xml index 53457fd3..872fc2f6 100644 --- a/app/src/main/res/layout/fragment_session.xml +++ b/app/src/main/res/layout/fragment_session.xml @@ -11,102 +11,18 @@ android:fillViewport="true" app:layout_behavior="@string/appbar_scrolling_view_behavior"> - - - - - - - - - - - - - - - + android:paddingBottom="96dp" /> - + diff --git a/app/src/main/res/layout/fragment_settings.xml b/app/src/main/res/layout/fragment_settings.xml index 8b6825d0..8542d548 100644 --- a/app/src/main/res/layout/fragment_settings.xml +++ b/app/src/main/res/layout/fragment_settings.xml @@ -1,17 +1,57 @@ - - + - \ No newline at end of file + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/row_title_arrow.xml b/app/src/main/res/layout/row_title_arrow.xml index a1d94800..1d73205b 100644 --- a/app/src/main/res/layout/row_title_arrow.xml +++ b/app/src/main/res/layout/row_title_arrow.xml @@ -12,10 +12,11 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginTop="16dp" + android:layout_marginEnd="16dp" android:layout_marginBottom="16dp" android:textSize="16sp" app:layout_constraintBottom_toBottomOf="parent" - app:layout_constraintEnd_toEndOf="@+id/guidelineEnd" + app:layout_constraintEnd_toStartOf="@+id/nextArrow" app:layout_constraintStart_toStartOf="@+id/guidelineStart" app:layout_constraintTop_toTopOf="parent" tools:text="Data Type Title" /> diff --git a/app/src/main/res/layout/row_title_icon_arrow.xml b/app/src/main/res/layout/row_title_icon_arrow.xml new file mode 100644 index 00000000..950ad915 --- /dev/null +++ b/app/src/main/res/layout/row_title_icon_arrow.xml @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + \ No newline at end of file From f182d982ff20793dc6076aafd429c958170f0cfa Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Fri, 12 Apr 2019 11:20:22 +0200 Subject: [PATCH 3/8] Add string --- app/src/main/res/values/strings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 5e551563..b4ceffc5 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -5,6 +5,7 @@ Please set a start date for the session Hour Minute + More From 274bc2f8deb2bef6ac013e5c81e12a7be8d1e2a9 Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Fri, 12 Apr 2019 11:20:34 +0200 Subject: [PATCH 4/8] Update navigation --- app/src/main/AndroidManifest.xml | 16 +++- .../pokeranalytics/android/model/MoreItem.kt | 31 +++++++ .../android/ui/activity/BankrollActivity.kt | 33 +++++++ .../android/ui/activity/HomeActivity.kt | 61 ++++++++++--- .../android/ui/activity/SettingsActivity.kt | 33 +++++++ .../android/ui/adapter/HomePagerAdapter.kt | 25 ++++-- .../android/ui/fragment/BankrollFragment.kt | 73 +++++++++++++++ .../android/ui/fragment/CalendarFragment.kt | 63 +++++++++++++ .../android/ui/fragment/MoreFragment.kt | 88 +++++++++++++++++++ .../android/ui/fragment/ReportsFragment.kt | 63 +++++++++++++ .../android/ui/fragment/SessionFragment.kt | 5 -- .../android/ui/fragment/SettingsFragment.kt | 26 ++++-- .../android/ui/view/RowRepresentable.kt | 13 ++- .../android/ui/view/RowViewType.kt | 10 ++- app/src/main/res/menu/navigation.xml | 56 +++++++++--- 15 files changed, 546 insertions(+), 50 deletions(-) create mode 100644 app/src/main/java/net/pokeranalytics/android/model/MoreItem.kt create mode 100644 app/src/main/java/net/pokeranalytics/android/ui/activity/BankrollActivity.kt create mode 100644 app/src/main/java/net/pokeranalytics/android/ui/activity/SettingsActivity.kt create mode 100644 app/src/main/java/net/pokeranalytics/android/ui/fragment/BankrollFragment.kt create mode 100644 app/src/main/java/net/pokeranalytics/android/ui/fragment/CalendarFragment.kt create mode 100644 app/src/main/java/net/pokeranalytics/android/ui/fragment/MoreFragment.kt create mode 100644 app/src/main/java/net/pokeranalytics/android/ui/fragment/ReportsFragment.kt diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f304e967..b593e589 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -34,6 +34,16 @@ android:screenOrientation="portrait" android:windowSoftInputMode="adjustNothing" /> + + + + + android:name=".ui.activity.GraphActivity" + android:launchMode="singleTop" + android:screenOrientation="portrait" /> R.string.bankroll + SETTINGS -> R.string.services + } + } + + override val imageRes: Int? + get() { + return when(this) { + BANKROLL -> R.drawable.ic_outline_lock + SETTINGS -> R.drawable.ic_outline_settings + } + } + + override val viewType: Int = RowViewType.TITLE_ICON_ARROW.ordinal +} \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/ui/activity/BankrollActivity.kt b/app/src/main/java/net/pokeranalytics/android/ui/activity/BankrollActivity.kt new file mode 100644 index 00000000..e1b6ea05 --- /dev/null +++ b/app/src/main/java/net/pokeranalytics/android/ui/activity/BankrollActivity.kt @@ -0,0 +1,33 @@ +package net.pokeranalytics.android.ui.activity + +import android.content.Context +import android.content.Intent +import android.os.Bundle +import androidx.fragment.app.Fragment +import net.pokeranalytics.android.R +import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity + +class BankrollActivity : PokerAnalyticsActivity() { + + companion object { + fun newInstance(context: Context) { + val intent = Intent(context, BankrollActivity::class.java) + context.startActivity(intent) + } + + /** + * Create a new instance for result + */ + fun newInstanceForResult(fragment: Fragment, requestCode: Int) { + val intent = Intent(fragment.requireContext(), BankrollActivity::class.java) + fragment.startActivityForResult(intent, requestCode) + } + + } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_bankroll) + } + +} \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/ui/activity/HomeActivity.kt b/app/src/main/java/net/pokeranalytics/android/ui/activity/HomeActivity.kt index 39602da7..096a6de5 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/activity/HomeActivity.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/activity/HomeActivity.kt @@ -32,20 +32,35 @@ class HomeActivity : PokerAnalyticsActivity() { private val mOnNavigationItemSelectedListener = BottomNavigationView.OnNavigationItemSelectedListener { item -> when (item.itemId) { - net.pokeranalytics.android.R.id.navigation_history -> { + //CLEAN + /* + R.id.navigation_history -> { displayFragment(0) - return@OnNavigationItemSelectedListener true } - net.pokeranalytics.android.R.id.navigation_stats -> { + R.id.navigation_stats -> { displayFragment(1) - return@OnNavigationItemSelectedListener true } - net.pokeranalytics.android.R.id.navigation_settings -> { + R.id.navigation_settings -> { displayFragment(2) - return@OnNavigationItemSelectedListener true + } + */ + R.id.navigation_history -> { + displayFragment(0) + } + R.id.navigation_stats -> { + displayFragment(1) + } + R.id.navigation_calendar -> { + displayFragment(2) + } + R.id.navigation_reports -> { + displayFragment(3) + } + R.id.navigation_more -> { + displayFragment(4) } } - false + return@OnNavigationItemSelectedListener true } override fun onCreate(savedInstanceState: Bundle?) { @@ -97,7 +112,7 @@ class HomeActivity : PokerAnalyticsActivity() { setSupportActionBar(toolbar) navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener) - navigation.selectedItemId = net.pokeranalytics.android.R.id.navigation_history + navigation.selectedItemId = R.id.navigation_history val homePagerAdapter = HomePagerAdapter(supportFragmentManager) viewPager.offscreenPageLimit = 5 @@ -134,9 +149,10 @@ class HomeActivity : PokerAnalyticsActivity() { */ private fun updateToolbar(index: Int) { when (index) { + //CLEAN + /* 0 -> { toolbar.title = getString(R.string.feed) - //TODO: Change filter button visibility homeMenu?.findItem(R.id.filter)?.isVisible = false } 1 -> { @@ -147,6 +163,28 @@ class HomeActivity : PokerAnalyticsActivity() { toolbar.title = getString(R.string.services) homeMenu?.findItem(R.id.filter)?.isVisible = false } + */ + + 0 -> { + toolbar.title = getString(R.string.feed) + homeMenu?.findItem(R.id.filter)?.isVisible = true + } + 1 -> { + toolbar.title = getString(R.string.stats) + homeMenu?.findItem(R.id.filter)?.isVisible = true + } + 2 -> { + toolbar.title = getString(R.string.calendar) + homeMenu?.findItem(R.id.filter)?.isVisible = false + } + 3 -> { + toolbar.title = getString(R.string.reports) + homeMenu?.findItem(R.id.filter)?.isVisible = false + } + 4 -> { + toolbar.title = getString(R.string.more) + homeMenu?.findItem(R.id.filter)?.isVisible = false + } } } @@ -171,18 +209,15 @@ class HomeActivity : PokerAnalyticsActivity() { .setCancelable(true) .setItems(choices.toTypedArray()) { _, which -> Timber.d("Click on $which") - - when(which) { + when (which) { 0 -> FiltersActivity.newInstance(this@HomeActivity) } - } .setNegativeButton(R.string.cancel) { _, _ -> Timber.d("Click on cancel") } builder.show() - } } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/activity/SettingsActivity.kt b/app/src/main/java/net/pokeranalytics/android/ui/activity/SettingsActivity.kt new file mode 100644 index 00000000..56a1701d --- /dev/null +++ b/app/src/main/java/net/pokeranalytics/android/ui/activity/SettingsActivity.kt @@ -0,0 +1,33 @@ +package net.pokeranalytics.android.ui.activity + +import android.content.Context +import android.content.Intent +import android.os.Bundle +import androidx.fragment.app.Fragment +import net.pokeranalytics.android.R +import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity + +class SettingsActivity : PokerAnalyticsActivity() { + + companion object { + fun newInstance(context: Context) { + val intent = Intent(context, SettingsActivity::class.java) + context.startActivity(intent) + } + + /** + * Create a new instance for result + */ + fun newInstanceForResult(fragment: Fragment, requestCode: Int) { + val intent = Intent(fragment.requireContext(), SettingsActivity::class.java) + fragment.startActivityForResult(intent, requestCode) + } + + } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_settings) + } + +} \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/ui/adapter/HomePagerAdapter.kt b/app/src/main/java/net/pokeranalytics/android/ui/adapter/HomePagerAdapter.kt index 17a16d3a..5e504fb1 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/adapter/HomePagerAdapter.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/adapter/HomePagerAdapter.kt @@ -4,9 +4,7 @@ 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.* import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment import java.lang.ref.WeakReference @@ -19,15 +17,23 @@ class HomePagerAdapter(fragmentManager: FragmentManager) : FragmentStatePagerAda override fun getItem(position: Int): PokerAnalyticsFragment { return when (position) { + //CLEAN + /* 0 -> HistoryFragment.newInstance() 1 -> StatsFragment.newInstance() 2 -> SettingsFragment.newInstance() + */ + 0 -> HistoryFragment.newInstance() + 1 -> StatsFragment.newInstance() + 2 -> CalendarFragment.newInstance() + 3 -> ReportsFragment.newInstance() + 4 -> MoreFragment.newInstance() else -> HistoryFragment.newInstance() } } override fun getCount(): Int { - return 3 + return 5//3 } override fun destroyItem(container: ViewGroup, position: Int, `object`: Any) { @@ -42,11 +48,18 @@ class HomePagerAdapter(fragmentManager: FragmentManager) : FragmentStatePagerAda } override fun getItemPosition(obj: Any): Int { - val fragment = obj as PokerAnalyticsFragment - return when (fragment) { + 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 } } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/BankrollFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/BankrollFragment.kt new file mode 100644 index 00000000..b0c06521 --- /dev/null +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/BankrollFragment.kt @@ -0,0 +1,73 @@ +package net.pokeranalytics.android.ui.fragment + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.recyclerview.widget.LinearLayoutManager +import kotlinx.android.synthetic.main.fragment_bankroll.* +import kotlinx.android.synthetic.main.fragment_stats.recyclerView +import net.pokeranalytics.android.R +import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity +import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment + +class BankrollFragment : PokerAnalyticsFragment() { + + companion object { + + /** + * Create new instance + */ + fun newInstance(): BankrollFragment { + val fragment = BankrollFragment() + val bundle = Bundle() + fragment.arguments = bundle + return fragment + } + } + + private lateinit var parentActivity: PokerAnalyticsActivity + + // Life Cycle + + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { + return inflater.inflate(R.layout.fragment_bankroll, container, false) + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + initData() + initUI() + } + + + // Business + + /** + * Init data + */ + private fun initData() { + + } + + /** + * Init UI + */ + private fun initUI() { + + parentActivity = activity as PokerAnalyticsActivity + + parentActivity.setSupportActionBar(toolbar) + parentActivity.supportActionBar?.setDisplayHomeAsUpEnabled(true) + setHasOptionsMenu(true) + + val viewManager = LinearLayoutManager(requireContext()) + + recyclerView.apply { + setHasFixedSize(true) + layoutManager = viewManager + //adapter = statsAdapter + } + } + +} \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/CalendarFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/CalendarFragment.kt new file mode 100644 index 00000000..b05d036f --- /dev/null +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/CalendarFragment.kt @@ -0,0 +1,63 @@ +package net.pokeranalytics.android.ui.fragment + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.recyclerview.widget.LinearLayoutManager +import kotlinx.android.synthetic.main.fragment_stats.* +import net.pokeranalytics.android.R +import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment + +class CalendarFragment : PokerAnalyticsFragment() { + + companion object { + + /** + * Create new instance + */ + fun newInstance(): CalendarFragment { + val fragment = CalendarFragment() + val bundle = Bundle() + fragment.arguments = bundle + return fragment + } + } + + // Life Cycle + + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { + return inflater.inflate(R.layout.fragment_calendar, container, false) + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + initData() + initUI() + } + + + // Business + + /** + * Init data + */ + private fun initData() { + + } + + /** + * Init UI + */ + private fun initUI() { + + val viewManager = LinearLayoutManager(requireContext()) + + recyclerView.apply { + setHasFixedSize(true) + layoutManager = viewManager + //adapter = statsAdapter + } + } + +} \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/MoreFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/MoreFragment.kt new file mode 100644 index 00000000..9baa6e2e --- /dev/null +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/MoreFragment.kt @@ -0,0 +1,88 @@ +package net.pokeranalytics.android.ui.fragment + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.recyclerview.widget.LinearLayoutManager +import kotlinx.android.synthetic.main.fragment_stats.* +import net.pokeranalytics.android.R +import net.pokeranalytics.android.model.MoreItem +import net.pokeranalytics.android.ui.activity.BankrollActivity +import net.pokeranalytics.android.ui.activity.SettingsActivity +import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter +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 + +class MoreFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataSource, RowRepresentableDelegate { + + companion object { + + /** + * Create new instance + */ + fun newInstance(): MoreFragment { + val fragment = MoreFragment() + val bundle = Bundle() + fragment.arguments = bundle + return fragment + } + } + + private lateinit var moreAdapter: RowRepresentableAdapter + + private var rowRepresentables: ArrayList = ArrayList() + + + // Life Cycle + + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { + return inflater.inflate(R.layout.fragment_calendar, container, false) + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + initData() + initUI() + } + + // Rows + override fun adapterRows(): List? { + return rowRepresentables + } + + override fun onRowSelected(position: Int, row: RowRepresentable, fromAction: Boolean) { + super.onRowSelected(position, row, fromAction) + when(row) { + MoreItem.BANKROLL -> BankrollActivity.newInstance(requireContext()) + MoreItem.SETTINGS -> SettingsActivity.newInstance(requireContext()) + } + } + + // Business + + /** + * Init data + */ + private fun initData() { + rowRepresentables.addAll(MoreItem.values()) + moreAdapter = RowRepresentableAdapter(this, this) + } + + /** + * Init UI + */ + private fun initUI() { + + val viewManager = LinearLayoutManager(requireContext()) + + recyclerView.apply { + setHasFixedSize(true) + layoutManager = viewManager + adapter = moreAdapter + } + } + +} \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/ReportsFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/ReportsFragment.kt new file mode 100644 index 00000000..06e30b5a --- /dev/null +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/ReportsFragment.kt @@ -0,0 +1,63 @@ +package net.pokeranalytics.android.ui.fragment + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import androidx.recyclerview.widget.LinearLayoutManager +import kotlinx.android.synthetic.main.fragment_stats.* +import net.pokeranalytics.android.R +import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment + +class ReportsFragment : PokerAnalyticsFragment() { + + companion object { + + /** + * Create new instance + */ + fun newInstance(): ReportsFragment { + val fragment = ReportsFragment() + val bundle = Bundle() + fragment.arguments = bundle + return fragment + } + } + + // Life Cycle + + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { + return inflater.inflate(R.layout.fragment_reports, container, false) + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + initData() + initUI() + } + + + // Business + + /** + * Init data + */ + private fun initData() { + + } + + /** + * Init UI + */ + private fun initUI() { + + val viewManager = LinearLayoutManager(requireContext()) + + recyclerView.apply { + setHasFixedSize(true) + layoutManager = viewManager + //adapter = statsAdapter + } + } + +} \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/SessionFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/SessionFragment.kt index a0f6893a..b318e54b 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/SessionFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/SessionFragment.kt @@ -6,7 +6,6 @@ import android.view.* import android.view.animation.OvershootInterpolator import android.widget.Toast import androidx.appcompat.app.AlertDialog -import androidx.core.content.ContextCompat import androidx.interpolator.view.animation.FastOutSlowInInterpolator import androidx.recyclerview.widget.DiffUtil import io.realm.kotlin.where @@ -169,7 +168,6 @@ class SessionFragment : PokerAnalyticsFragment(), RowRepresentableDelegate { when (currentSession.getState()) { SessionState.PENDING, SessionState.PLANNED -> { - state.setTextColor(ContextCompat.getColor(requireContext(), R.color.white)) sessionMenu?.findItem(R.id.restart)?.isVisible = false floatingActionButton.setImageResource(R.drawable.ic_outline_play) sessionMenu?.findItem(R.id.stop)?.isVisible = false @@ -178,7 +176,6 @@ class SessionFragment : PokerAnalyticsFragment(), RowRepresentableDelegate { .setInterpolator(OvershootInterpolator()).start() } SessionState.STARTED -> { - state.setTextColor(ContextCompat.getColor(requireContext(), R.color.green)) sessionMenu?.findItem(R.id.restart)?.isVisible = true floatingActionButton.setImageResource(R.drawable.ic_outline_pause) sessionMenu?.findItem(R.id.stop)?.isVisible = true @@ -188,7 +185,6 @@ class SessionFragment : PokerAnalyticsFragment(), RowRepresentableDelegate { handler.postDelayed(refreshTimer, 30000) } SessionState.PAUSED -> { - state.setTextColor(ContextCompat.getColor(requireContext(), R.color.blue)) sessionMenu?.findItem(R.id.restart)?.isVisible = true floatingActionButton.setImageResource(R.drawable.ic_outline_play) sessionMenu?.findItem(R.id.stop)?.isVisible = true @@ -197,7 +193,6 @@ class SessionFragment : PokerAnalyticsFragment(), RowRepresentableDelegate { .setInterpolator(OvershootInterpolator()).start() } SessionState.FINISHED -> { - state.setTextColor(ContextCompat.getColor(requireContext(), R.color.white)) sessionMenu?.findItem(R.id.restart)?.isVisible = true sessionMenu?.findItem(R.id.stop)?.isVisible = false floatingActionButton.animate().scaleX(0f).scaleY(0f).alpha(0f) diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/SettingsFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/SettingsFragment.kt index 8b6a3802..97090c0d 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/SettingsFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/SettingsFragment.kt @@ -65,16 +65,17 @@ class SettingsFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Sta override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { - return inflater.inflate(net.pokeranalytics.android.R.layout.fragment_settings, container, false) + return inflater.inflate(R.layout.fragment_settings, container, false) } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) initData() + initUI() } override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { - if (requestCode == SettingsFragment.REQUEST_CODE_CURRENCY && resultCode == Activity.RESULT_OK) { + if (requestCode == REQUEST_CODE_CURRENCY && resultCode == Activity.RESULT_OK) { data?.let { Preferences.setCurrencyCode(data.getStringExtra(CurrenciesFragment.INTENT_CURRENCY_CODE), requireContext()) settingsAdapterRow.refreshRow(SettingRow.CURRENCY) @@ -83,7 +84,7 @@ class SettingsFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Sta } override fun adapterRows(): List? { - return SettingsFragment.rowRepresentation + return rowRepresentation } override fun onRowSelected(position: Int, row: RowRepresentable, fromAction: Boolean) { @@ -92,7 +93,7 @@ class SettingsFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Sta SettingRow.RATE_APP -> parentActivity.openPlayStorePage() SettingRow.CONTACT_US -> parentActivity.openContactMail(R.string.contact) SettingRow.BUG_REPORT -> parentActivity.openContactMail(R.string.bug_report_subject) - SettingRow.CURRENCY -> CurrenciesActivity.newInstanceForResult(this@SettingsFragment, SettingsFragment.REQUEST_CODE_CURRENCY) + SettingRow.CURRENCY -> CurrenciesActivity.newInstanceForResult(this@SettingsFragment, REQUEST_CODE_CURRENCY) SettingRow.FOLLOW_US -> { when (position) { 0 -> parentActivity.openUrl(URL.BLOG.value) @@ -112,24 +113,35 @@ class SettingsFragment : PokerAnalyticsFragment(), RowRepresentableDelegate, Sta } /** - * Init data + * Init UI */ - private fun initData() { + private fun initUI() { parentActivity = activity as PokerAnalyticsActivity + parentActivity.setSupportActionBar(toolbar) + parentActivity.supportActionBar?.setDisplayHomeAsUpEnabled(true) + setHasOptionsMenu(true) + val viewManager = LinearLayoutManager(requireContext()) settingsAdapterRow = RowRepresentableAdapter( this, this ) - customRecyclerView.apply { + recyclerView.apply { setHasFixedSize(true) layoutManager = viewManager adapter = settingsAdapterRow } } + /** + * Init data + */ + private fun initData() { + + } + /** * Open GDPR Activity */ diff --git a/app/src/main/java/net/pokeranalytics/android/ui/view/RowRepresentable.kt b/app/src/main/java/net/pokeranalytics/android/ui/view/RowRepresentable.kt index ba8b6b90..0aa25f23 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/view/RowRepresentable.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/view/RowRepresentable.kt @@ -8,7 +8,7 @@ import net.pokeranalytics.android.util.NULL_TEXT /** * An interface extending Displayable to add a way to represent an object as a String */ -interface RowRepresentable : Displayable, EditDataSource { +interface RowRepresentable : Displayable, EditDataSource, ImageDecorator { fun getDisplayName(): String { return NULL_TEXT @@ -28,6 +28,17 @@ interface DefaultEditDataSource : EditDataSource, Localizable { } } +/** + * An interface to add an image to a row + */ +interface ImageDecorator { + + val imageRes: Int? + get() { + return null + } +} + /** * An interface used so that enums numericValues can be represented visually * as rows in RecyclerViews diff --git a/app/src/main/java/net/pokeranalytics/android/ui/view/RowViewType.kt b/app/src/main/java/net/pokeranalytics/android/ui/view/RowViewType.kt index c887ff71..5757a64d 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/view/RowViewType.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/view/RowViewType.kt @@ -43,6 +43,7 @@ enum class RowViewType(private var layoutRes: Int) { // Row TITLE(R.layout.row_title), TITLE_ARROW(R.layout.row_title_arrow), + TITLE_ICON_ARROW(R.layout.row_title_icon_arrow), TITLE_VALUE(R.layout.row_title_value), TITLE_VALUE_ARROW(R.layout.row_title_value_arrow), TITLE_SWITCH(R.layout.row_title_switch), @@ -75,7 +76,7 @@ enum class RowViewType(private var layoutRes: Int) { // Row View Holder HEADER_TITLE, HEADER_TITLE_VALUE, HEADER_TITLE_AMOUNT, HEADER_TITLE_AMOUNT_BIG, LOCATION_TITLE, INFO, - TITLE, TITLE_ARROW, TITLE_VALUE, TITLE_VALUE_ARROW, TITLE_GRID, TITLE_SWITCH, TITLE_CHECK, TITLE_VALUE_CHECK, + TITLE, TITLE_ARROW, TITLE_ICON_ARROW, TITLE_VALUE, TITLE_VALUE_ARROW, TITLE_GRID, TITLE_SWITCH, TITLE_CHECK, TITLE_VALUE_CHECK, DATA, BOTTOM_SHEET_DATA, LOADER -> RowViewHolder(layout) // Row Session @@ -157,6 +158,13 @@ enum class RowViewType(private var layoutRes: Int) { it.text = adapter.dataSource.stringForRow(row, itemView.context) } + // Icon + itemView.findViewById(R.id.icon)?.let { imageView -> + row.imageRes?.let { imageRes -> + imageView.setImageResource(imageRes) + } + } + // Listener val listener = View.OnClickListener { itemView.findViewById(R.id.switchView)?.let { diff --git a/app/src/main/res/menu/navigation.xml b/app/src/main/res/menu/navigation.xml index 762f9cdb..6ac0f33b 100644 --- a/app/src/main/res/menu/navigation.xml +++ b/app/src/main/res/menu/navigation.xml @@ -1,19 +1,47 @@ - - - - - + + + + + + + + + + + From b539a23f3df0b5f875678343a25d7fe2534658df Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Fri, 12 Apr 2019 11:25:05 +0200 Subject: [PATCH 5/8] Refactor enum name --- .../model/{MoreItem.kt => MoreTabRepresentable.kt} | 2 +- .../pokeranalytics/android/ui/fragment/MoreFragment.kt | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) rename app/src/main/java/net/pokeranalytics/android/model/{MoreItem.kt => MoreTabRepresentable.kt} (92%) diff --git a/app/src/main/java/net/pokeranalytics/android/model/MoreItem.kt b/app/src/main/java/net/pokeranalytics/android/model/MoreTabRepresentable.kt similarity index 92% rename from app/src/main/java/net/pokeranalytics/android/model/MoreItem.kt rename to app/src/main/java/net/pokeranalytics/android/model/MoreTabRepresentable.kt index 8db1463e..4d95a32e 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/MoreItem.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/MoreTabRepresentable.kt @@ -7,7 +7,7 @@ import net.pokeranalytics.android.ui.view.RowViewType /** * An enum managing the rows in the more tabs */ -enum class MoreItem : RowRepresentable { +enum class MoreTabRepresentable : RowRepresentable { BANKROLL, SETTINGS; diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/MoreFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/MoreFragment.kt index 9baa6e2e..cc2f2173 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/MoreFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/MoreFragment.kt @@ -7,7 +7,7 @@ import android.view.ViewGroup import androidx.recyclerview.widget.LinearLayoutManager import kotlinx.android.synthetic.main.fragment_stats.* import net.pokeranalytics.android.R -import net.pokeranalytics.android.model.MoreItem +import net.pokeranalytics.android.model.MoreTabRepresentable import net.pokeranalytics.android.ui.activity.BankrollActivity import net.pokeranalytics.android.ui.activity.SettingsActivity import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter @@ -56,8 +56,8 @@ class MoreFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataSource, override fun onRowSelected(position: Int, row: RowRepresentable, fromAction: Boolean) { super.onRowSelected(position, row, fromAction) when(row) { - MoreItem.BANKROLL -> BankrollActivity.newInstance(requireContext()) - MoreItem.SETTINGS -> SettingsActivity.newInstance(requireContext()) + MoreTabRepresentable.BANKROLL -> BankrollActivity.newInstance(requireContext()) + MoreTabRepresentable.SETTINGS -> SettingsActivity.newInstance(requireContext()) } } @@ -67,7 +67,7 @@ class MoreFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataSource, * Init data */ private fun initData() { - rowRepresentables.addAll(MoreItem.values()) + rowRepresentables.addAll(MoreTabRepresentable.values()) moreAdapter = RowRepresentableAdapter(this, this) } From 4b666468c821b602b0c36ce426652ae85cd7d88b Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Fri, 12 Apr 2019 11:30:52 +0200 Subject: [PATCH 6/8] Add ReportRow and refactor MoreTabRow --- .../android/ui/fragment/MoreFragment.kt | 8 ++--- .../view/rowrepresentable/MoreTabRow.kt} | 4 +-- .../ui/view/rowrepresentable/ReportRow.kt | 35 +++++++++++++++++++ app/src/main/res/values/strings.xml | 1 + 4 files changed, 42 insertions(+), 6 deletions(-) rename app/src/main/java/net/pokeranalytics/android/{model/MoreTabRepresentable.kt => ui/view/rowrepresentable/MoreTabRow.kt} (85%) create mode 100644 app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/ReportRow.kt diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/MoreFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/MoreFragment.kt index cc2f2173..990a2a57 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/MoreFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/MoreFragment.kt @@ -7,7 +7,7 @@ import android.view.ViewGroup import androidx.recyclerview.widget.LinearLayoutManager import kotlinx.android.synthetic.main.fragment_stats.* import net.pokeranalytics.android.R -import net.pokeranalytics.android.model.MoreTabRepresentable +import net.pokeranalytics.android.ui.view.rowrepresentable.MoreTabRow import net.pokeranalytics.android.ui.activity.BankrollActivity import net.pokeranalytics.android.ui.activity.SettingsActivity import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter @@ -56,8 +56,8 @@ class MoreFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataSource, override fun onRowSelected(position: Int, row: RowRepresentable, fromAction: Boolean) { super.onRowSelected(position, row, fromAction) when(row) { - MoreTabRepresentable.BANKROLL -> BankrollActivity.newInstance(requireContext()) - MoreTabRepresentable.SETTINGS -> SettingsActivity.newInstance(requireContext()) + MoreTabRow.BANKROLL -> BankrollActivity.newInstance(requireContext()) + MoreTabRow.SETTINGS -> SettingsActivity.newInstance(requireContext()) } } @@ -67,7 +67,7 @@ class MoreFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataSource, * Init data */ private fun initData() { - rowRepresentables.addAll(MoreTabRepresentable.values()) + rowRepresentables.addAll(MoreTabRow.values()) moreAdapter = RowRepresentableAdapter(this, this) } diff --git a/app/src/main/java/net/pokeranalytics/android/model/MoreTabRepresentable.kt b/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/MoreTabRow.kt similarity index 85% rename from app/src/main/java/net/pokeranalytics/android/model/MoreTabRepresentable.kt rename to app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/MoreTabRow.kt index 4d95a32e..4e2fe8bc 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/MoreTabRepresentable.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/MoreTabRow.kt @@ -1,4 +1,4 @@ -package net.pokeranalytics.android.model +package net.pokeranalytics.android.ui.view.rowrepresentable import net.pokeranalytics.android.R import net.pokeranalytics.android.ui.view.RowRepresentable @@ -7,7 +7,7 @@ import net.pokeranalytics.android.ui.view.RowViewType /** * An enum managing the rows in the more tabs */ -enum class MoreTabRepresentable : RowRepresentable { +enum class MoreTabRow : RowRepresentable { BANKROLL, SETTINGS; diff --git a/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/ReportRow.kt b/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/ReportRow.kt new file mode 100644 index 00000000..2a46ce2a --- /dev/null +++ b/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/ReportRow.kt @@ -0,0 +1,35 @@ +package net.pokeranalytics.android.ui.view.rowrepresentable + +import net.pokeranalytics.android.R +import net.pokeranalytics.android.ui.view.RowRepresentable +import net.pokeranalytics.android.ui.view.RowViewType + +/** + * An enum managing the report rows + */ +enum class ReportRow : RowRepresentable { + BLINDS, + BUY_IN, + DAY_OF_WEEKS, + GENERAL, + LOCATIONS, + NUMBER_OF_TABLES, + TOURNAMENT_TYPES, + VARIANT; + + override val resId: Int? + get() { + return when(this) { + BLINDS -> R.string.blinds + BUY_IN -> R.string.buyin + DAY_OF_WEEKS -> R.string.day_of_the_week + GENERAL -> R.string.general + LOCATIONS -> R.string.locations + NUMBER_OF_TABLES -> R.string.number_of_tables + TOURNAMENT_TYPES -> R.string.tournament_type_complete + VARIANT -> R.string.variant_ + } + } + + override val viewType: Int = RowViewType.TITLE_ARROW.ordinal +} \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b4ceffc5..958ed4bf 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -6,6 +6,7 @@ Hour Minute More + Variant From 0946d3f3db7536dfc4fae37c49543ebac4dfdcac Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Fri, 12 Apr 2019 11:35:24 +0200 Subject: [PATCH 7/8] Improve and refactor More & Reports fragments --- .../android/ui/fragment/MoreFragment.kt | 17 ++++++---- .../android/ui/fragment/ReportsFragment.kt | 31 ++++++++++++++++--- .../ui/view/rowrepresentable/ReportRow.kt | 15 ++++++++- 3 files changed, 51 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/MoreFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/MoreFragment.kt index 990a2a57..406a0fa7 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/MoreFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/MoreFragment.kt @@ -7,7 +7,6 @@ import android.view.ViewGroup import androidx.recyclerview.widget.LinearLayoutManager import kotlinx.android.synthetic.main.fragment_stats.* import net.pokeranalytics.android.R -import net.pokeranalytics.android.ui.view.rowrepresentable.MoreTabRow import net.pokeranalytics.android.ui.activity.BankrollActivity import net.pokeranalytics.android.ui.activity.SettingsActivity import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter @@ -15,6 +14,7 @@ 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 MoreFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataSource, RowRepresentableDelegate { @@ -29,12 +29,17 @@ class MoreFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataSource, fragment.arguments = bundle return fragment } + + val rowRepresentation: List by lazy { + val rows = ArrayList() + rows.addAll(MoreTabRow.values()) + rows + } + } private lateinit var moreAdapter: RowRepresentableAdapter - private var rowRepresentables: ArrayList = ArrayList() - // Life Cycle @@ -50,7 +55,7 @@ class MoreFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataSource, // Rows override fun adapterRows(): List? { - return rowRepresentables + return rowRepresentation } override fun onRowSelected(position: Int, row: RowRepresentable, fromAction: Boolean) { @@ -67,8 +72,6 @@ class MoreFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataSource, * Init data */ private fun initData() { - rowRepresentables.addAll(MoreTabRow.values()) - moreAdapter = RowRepresentableAdapter(this, this) } /** @@ -76,6 +79,8 @@ class MoreFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataSource, */ private fun initUI() { + moreAdapter = RowRepresentableAdapter(this, this) + val viewManager = LinearLayoutManager(requireContext()) recyclerView.apply { diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/ReportsFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/ReportsFragment.kt index 06e30b5a..8dc97324 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/ReportsFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/ReportsFragment.kt @@ -7,9 +7,14 @@ import android.view.ViewGroup import androidx.recyclerview.widget.LinearLayoutManager import kotlinx.android.synthetic.main.fragment_stats.* import net.pokeranalytics.android.R +import net.pokeranalytics.android.ui.adapter.RowRepresentableAdapter +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.ReportRow -class ReportsFragment : PokerAnalyticsFragment() { +class ReportsFragment : PokerAnalyticsFragment(), StaticRowRepresentableDataSource, RowRepresentableDelegate { companion object { @@ -22,9 +27,18 @@ class ReportsFragment : PokerAnalyticsFragment() { fragment.arguments = bundle return fragment } + + val rowRepresentation: List by lazy { + val rows = ArrayList() + rows.addAll(ReportRow.getRows()) + rows + } } - // Life Cycle + private lateinit var reportsAdapter: RowRepresentableAdapter + + + // Life Cycle override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { return inflater.inflate(R.layout.fragment_reports, container, false) @@ -36,14 +50,19 @@ class ReportsFragment : PokerAnalyticsFragment() { initUI() } + // Rows + + override fun adapterRows(): List? { + return rowRepresentation + } + - // Business + // Business /** * Init data */ private fun initData() { - } /** @@ -51,12 +70,14 @@ class ReportsFragment : PokerAnalyticsFragment() { */ private fun initUI() { + reportsAdapter = RowRepresentableAdapter(this, this) + val viewManager = LinearLayoutManager(requireContext()) recyclerView.apply { setHasFixedSize(true) layoutManager = viewManager - //adapter = statsAdapter + adapter = reportsAdapter } } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/ReportRow.kt b/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/ReportRow.kt index 2a46ce2a..e9d7a6dc 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/ReportRow.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/ReportRow.kt @@ -17,9 +17,22 @@ enum class ReportRow : RowRepresentable { TOURNAMENT_TYPES, VARIANT; + + companion object { + /** + * Return the report rows + */ + fun getRows(): ArrayList { + val rows = ArrayList() + rows.add(CustomizableRowRepresentable(customViewType = RowViewType.HEADER_TITLE, resId = R.string.comparison)) + rows.addAll(values()) + return rows + } + } + override val resId: Int? get() { - return when(this) { + return when (this) { BLINDS -> R.string.blinds BUY_IN -> R.string.buyin DAY_OF_WEEKS -> R.string.day_of_the_week From ec8355fae48a30654c8f42e2f930c01654d5b4b2 Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Fri, 12 Apr 2019 11:36:07 +0200 Subject: [PATCH 8/8] Fix string --- .../android/ui/view/rowrepresentable/ReportRow.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/ReportRow.kt b/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/ReportRow.kt index e9d7a6dc..12209607 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/ReportRow.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/view/rowrepresentable/ReportRow.kt @@ -40,7 +40,7 @@ enum class ReportRow : RowRepresentable { LOCATIONS -> R.string.locations NUMBER_OF_TABLES -> R.string.number_of_tables TOURNAMENT_TYPES -> R.string.tournament_type_complete - VARIANT -> R.string.variant_ + VARIANT -> R.string.variant } }