diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 1b0bb87e..be419c96 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -20,7 +20,7 @@
-
+
diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/Bankroll.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/Bankroll.kt
index 56b403ec..46ac57e8 100644
--- a/app/src/main/java/net/pokeranalytics/android/model/realm/Bankroll.kt
+++ b/app/src/main/java/net/pokeranalytics/android/model/realm/Bankroll.kt
@@ -4,13 +4,14 @@ import android.content.Context
import io.realm.RealmList
import io.realm.RealmObject
import io.realm.annotations.PrimaryKey
+import net.pokeranalytics.android.ui.adapter.components.DisplayableData
import net.pokeranalytics.android.ui.adapter.components.DynamicRowInterface
import net.pokeranalytics.android.ui.adapter.components.RowViewType
import net.pokeranalytics.android.ui.fragment.components.BottomSheetType
import java.util.*
-open class Bankroll(name: String = "") : RealmObject() {
+open class Bankroll(name: String = "") : RealmObject(), DisplayableData {
@PrimaryKey
var id = UUID.randomUUID().toString()
@@ -28,4 +29,6 @@ open class Bankroll(name: String = "") : RealmObject() {
var currency: Currency? = null
// @todo rate management
+
+ override var title: String = this.name
}
\ No newline at end of file
diff --git a/app/src/main/java/net/pokeranalytics/android/ui/adapter/components/DataListAdapter.kt b/app/src/main/java/net/pokeranalytics/android/ui/adapter/components/DataListAdapter.kt
index 3ac5cbb5..37b35ca5 100644
--- a/app/src/main/java/net/pokeranalytics/android/ui/adapter/components/DataListAdapter.kt
+++ b/app/src/main/java/net/pokeranalytics/android/ui/adapter/components/DataListAdapter.kt
@@ -1,28 +1,40 @@
package net.pokeranalytics.android.ui.adapter.components
+import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView
+import kotlinx.android.synthetic.main.row_session.view.*
+import net.pokeranalytics.android.R
interface DataRowDelegate {
- var viewType: RowViewType
- fun data(position: Int) : DynamicRowInterface
- fun size() : Int { return 0 }
+ fun data(position: Int) : DisplayableData
+ fun size() : Int
}
interface DataRowCallback {
fun onRowSelected(position: Int)
}
+interface DisplayableData {
+ var title: String
+}
+
class DataListAdapter(var delegate: DataRowDelegate, var callBackDelegate: DataRowCallback? = null) : RecyclerView.Adapter() {
+ inner class DataViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
+ fun bind(row: DisplayableData, listener: View.OnClickListener) {
+ itemView.title.text = row.title
+ itemView.container.setOnClickListener(listener)
+ }
+ }
+
override fun getItemViewType(position: Int): Int {
- return delegate.viewType.ordinal
+ return RowViewType.TITLE.ordinal
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
- val rowViewType: RowViewType = RowViewType.values()[viewType]
- return rowViewType.viewHolder(parent)
+ return DataViewHolder(LayoutInflater.from(parent.context).inflate(R.layout.row_title, parent, false))
}
override fun getItemCount(): Int {
@@ -33,7 +45,7 @@ class DataListAdapter(var delegate: DataRowDelegate, var callBackDelegate: DataR
val listener = View.OnClickListener {
callBackDelegate?.onRowSelected(position)
}
- (holder as DynamicHolder).bind(this.delegate.data(position), null, listener)
+ (holder as DataViewHolder).bind(this.delegate.data(position), listener)
}
}
\ No newline at end of file
diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/DataListFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/DataListFragment.kt
index ef60341f..b771d810 100644
--- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/DataListFragment.kt
+++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/DataListFragment.kt
@@ -6,42 +6,48 @@ import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.LinearLayoutManager
import io.realm.Realm
+import io.realm.RealmObject
+import io.realm.RealmResults
import io.realm.Sort
import kotlinx.android.synthetic.main.fragment_new_session.*
import net.pokeranalytics.android.R
import net.pokeranalytics.android.model.realm.*
import net.pokeranalytics.android.ui.adapter.components.*
import net.pokeranalytics.android.util.PokerAnalyticsFragment
+import net.pokeranalytics.android.util.data.sessionDao
+import java.util.*
+import kotlin.collections.ArrayList
class DataListFragment : PokerAnalyticsFragment(), DataRowDelegate, DataRowCallback {
private lateinit var dataType: DataObjectRowType
+ private lateinit var realmObjects: ArrayList
+
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
return inflater.inflate(R.layout.fragment_data_list, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
-
initData()
initUI()
}
- override var viewType: RowViewType
- get() = TODO("not implemented") //To change initializer of created properties use File | Settings | File Templates.
- set(value) {}
-
- override fun data(position: Int): DynamicRowInterface {
- TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
+ override fun data(position: Int): DisplayableData {
+ return (realmObjects[position] as DisplayableData)
}
override fun onRowSelected(position: Int) {
TODO("not implemented") //To change body of created functions use File | Settings | File Templates.
}
- private fun initData() {
- }
+ override fun size(): Int {
+ return realmObjects.size
+ }
+
+ private fun initData() {
+ }
/**
* Init UI
@@ -64,5 +70,14 @@ class DataListFragment : PokerAnalyticsFragment(), DataRowDelegate, DataRowCallb
*/
fun setData(dataType: Int) {
this.dataType = DataObjectRowType.values()[dataType]
+ val realm = Realm.getDefaultInstance()
+
+ realmObjects = ArrayList( when (DataObjectRowType.values()[dataType]) {
+ DataObjectRowType.BANKROLL -> realm.where(Bankroll::class.java).findAll().sort("name", Sort.DESCENDING)
+ DataObjectRowType.GAME-> realm.where(Game::class.java).findAll().sort("name", Sort.DESCENDING)
+ DataObjectRowType.LOCATION -> realm.where(Location::class.java).findAll().sort("name", Sort.DESCENDING)
+ DataObjectRowType.TOURNAMENT_TYPE -> realm.where(TournamentFeature::class.java).findAll().sort("name", Sort.DESCENDING)
+ DataObjectRowType.TRANSACTION_TYPE -> realm.where(TransactionType::class.java).findAll().sort("name", Sort.DESCENDING)
+ })
}
}
\ No newline at end of file
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 dd55a229..5b78f727 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
@@ -8,6 +8,8 @@ import android.widget.Toast
import androidx.recyclerview.widget.LinearLayoutManager
import kotlinx.android.synthetic.main.fragment_settings.*
import net.pokeranalytics.android.R
+import net.pokeranalytics.android.ui.activity.DataListActivity
+import net.pokeranalytics.android.ui.activity.NewSessionActivity
import net.pokeranalytics.android.ui.adapter.components.*
import net.pokeranalytics.android.util.PokerAnalyticsFragment
@@ -45,7 +47,7 @@ class SettingsFragment : PokerAnalyticsFragment(), DynamicRowDelegate, DynamicRo
}
override fun onRowSelected(row: DynamicRowInterface) {
- //val bottomSheetFragment = openBottomSheet(row)
+ DataListActivity.newInstance(requireContext(), (row as DataObjectRowType).ordinal)
}
/**