|
|
|
@ -9,13 +9,19 @@ import androidx.recyclerview.widget.LinearLayoutManager |
|
|
|
import io.realm.RealmResults |
|
|
|
import io.realm.RealmResults |
|
|
|
import kotlinx.android.synthetic.main.fragment_history.* |
|
|
|
import kotlinx.android.synthetic.main.fragment_history.* |
|
|
|
import net.pokeranalytics.android.R |
|
|
|
import net.pokeranalytics.android.R |
|
|
|
|
|
|
|
import net.pokeranalytics.android.model.ObjectSavable |
|
|
|
import net.pokeranalytics.android.model.realm.Session |
|
|
|
import net.pokeranalytics.android.model.realm.Session |
|
|
|
import net.pokeranalytics.android.ui.activity.SessionActivity |
|
|
|
import net.pokeranalytics.android.ui.activity.SessionActivity |
|
|
|
import net.pokeranalytics.android.ui.adapter.HistoryAdapter |
|
|
|
import net.pokeranalytics.android.ui.adapter.HistoryAdapter |
|
|
|
|
|
|
|
import net.pokeranalytics.android.ui.adapter.components.RowRepresentableAdapter |
|
|
|
|
|
|
|
import net.pokeranalytics.android.ui.adapter.components.RowRepresentableDataSource |
|
|
|
|
|
|
|
import net.pokeranalytics.android.ui.adapter.components.RowRepresentableDelegate |
|
|
|
import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment |
|
|
|
import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment |
|
|
|
|
|
|
|
import net.pokeranalytics.android.ui.view.RowRepresentable |
|
|
|
|
|
|
|
import net.pokeranalytics.android.ui.view.RowViewType |
|
|
|
import net.pokeranalytics.android.util.data.sessionDao |
|
|
|
import net.pokeranalytics.android.util.data.sessionDao |
|
|
|
|
|
|
|
|
|
|
|
class HistoryFragment : PokerAnalyticsFragment() { |
|
|
|
class HistoryFragment : PokerAnalyticsFragment(), RowRepresentableDataSource, RowRepresentableDelegate { |
|
|
|
|
|
|
|
|
|
|
|
companion object { |
|
|
|
companion object { |
|
|
|
fun newInstance(): HistoryFragment { |
|
|
|
fun newInstance(): HistoryFragment { |
|
|
|
@ -26,8 +32,8 @@ class HistoryFragment : PokerAnalyticsFragment() { |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private lateinit var historyAdapter: HistoryAdapter |
|
|
|
private lateinit var historyAdapter: RowRepresentableAdapter |
|
|
|
private var realmSessions: RealmResults<Session>? = null |
|
|
|
private lateinit var realmSessions: RealmResults<Session> |
|
|
|
|
|
|
|
|
|
|
|
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { |
|
|
|
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { |
|
|
|
return inflater.inflate(R.layout.fragment_history, container, false) |
|
|
|
return inflater.inflate(R.layout.fragment_history, container, false) |
|
|
|
@ -41,7 +47,7 @@ class HistoryFragment : PokerAnalyticsFragment() { |
|
|
|
|
|
|
|
|
|
|
|
override fun onDestroyView() { |
|
|
|
override fun onDestroyView() { |
|
|
|
super.onDestroyView() |
|
|
|
super.onDestroyView() |
|
|
|
realmSessions?.removeAllChangeListeners() |
|
|
|
realmSessions.removeAllChangeListeners() |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
@ -70,28 +76,34 @@ class HistoryFragment : PokerAnalyticsFragment() { |
|
|
|
* Init data |
|
|
|
* Init data |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
private fun initData() { |
|
|
|
private fun initData() { |
|
|
|
|
|
|
|
|
|
|
|
realmSessions = getRealm().sessionDao().findAllSessions() |
|
|
|
realmSessions = getRealm().sessionDao().findAllSessions() |
|
|
|
realmSessions?.let { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
val viewManager = LinearLayoutManager(requireContext()) |
|
|
|
val viewManager = LinearLayoutManager(requireContext()) |
|
|
|
historyAdapter = HistoryAdapter(it) |
|
|
|
historyAdapter = RowRepresentableAdapter(this, this) |
|
|
|
|
|
|
|
|
|
|
|
recyclerView.apply { |
|
|
|
recyclerView.apply { |
|
|
|
setHasFixedSize(true) |
|
|
|
setHasFixedSize(true) |
|
|
|
layoutManager = viewManager |
|
|
|
layoutManager = viewManager |
|
|
|
adapter = historyAdapter |
|
|
|
adapter = historyAdapter |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
historyAdapter.onClickOnSession = {position, session -> |
|
|
|
override fun rowRepresentableForPosition(position: Int): RowRepresentable { |
|
|
|
SessionActivity.newInstance(requireContext(), sessionId = session.id) |
|
|
|
return this.realmSessions[position] as RowRepresentable |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
it.addChangeListener { newSessions -> |
|
|
|
override fun numberOfRows(): Int { |
|
|
|
historyAdapter.notifyDataSetChanged() |
|
|
|
return this.realmSessions.size |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
override fun viewTypeForPosition(position: Int): Int { |
|
|
|
|
|
|
|
return RowViewType.ROW_SESSION.ordinal |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
override fun indexForRow(row: RowRepresentable): Int { |
|
|
|
|
|
|
|
return this.realmSessions.indexOf(row) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
override fun onRowSelected(row: RowRepresentable) { |
|
|
|
|
|
|
|
SessionActivity.newInstance(requireContext(), sessionId = (row as ObjectSavable).uniqueIdentifier()) |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |