diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/DataList.kt b/app/src/main/java/net/pokeranalytics/android/model/DataList.kt similarity index 94% rename from app/src/main/java/net/pokeranalytics/android/model/realm/DataList.kt rename to app/src/main/java/net/pokeranalytics/android/model/DataList.kt index a7f8fda5..38a5afed 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/realm/DataList.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/DataList.kt @@ -1,13 +1,13 @@ -package net.pokeranalytics.android.model.realm +package net.pokeranalytics.android.model import io.realm.Realm import io.realm.RealmObject import io.realm.RealmResults import io.realm.Sort +import net.pokeranalytics.android.model.realm.* import java.util.* enum class DataList { - NONE, BANKROLL, GAME, LOCATION, @@ -25,7 +25,6 @@ enum class DataList { private val relatedEntity: Class < out RealmObject > get() { return when (this) { - NONE -> RealmObject::class.java BANKROLL -> Bankroll::class.java GAME -> Game::class.java LOCATION -> Location::class.java diff --git a/app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt b/app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt index c494ede4..ee50ad61 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/realm/Session.kt @@ -6,6 +6,7 @@ import io.realm.annotations.Ignore import io.realm.annotations.PrimaryKey import net.pokeranalytics.android.R import net.pokeranalytics.android.calculus.SessionInterface +import net.pokeranalytics.android.model.DataList import net.pokeranalytics.android.ui.adapter.components.* import net.pokeranalytics.android.ui.fragment.components.BottomSheetData import net.pokeranalytics.android.util.data.sessionDao diff --git a/app/src/main/java/net/pokeranalytics/android/ui/activity/DataListActivity.kt b/app/src/main/java/net/pokeranalytics/android/ui/activity/DataListActivity.kt index 58584e18..3b492ebd 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/activity/DataListActivity.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/activity/DataListActivity.kt @@ -9,11 +9,14 @@ import net.pokeranalytics.android.ui.fragment.DataListFragment import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity class DataListActivity : PokerAnalyticsActivity() { + enum class IntentKey(val keyName : String) { + DATATYPE("DATATYPE"), + } companion object { fun newInstance(context: Context, dataType: Int) { val intent = Intent(context, DataListActivity::class.java) - intent.putExtra("dataType", dataType) + intent.putExtra(IntentKey.DATATYPE.keyName, dataType) context.startActivity(intent) } } @@ -30,7 +33,7 @@ class DataListActivity : PokerAnalyticsActivity() { */ private fun initUI() { - val dataType = intent.getIntExtra("dataType", 0) + val dataType = intent.getIntExtra(IntentKey.DATATYPE.keyName, 0) val fragment = dataListFragment as DataListFragment fragment.setData(dataType) } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/activity/EditableDataActivity.kt b/app/src/main/java/net/pokeranalytics/android/ui/activity/EditableDataActivity.kt index 80805141..28b7f8ff 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/activity/EditableDataActivity.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/activity/EditableDataActivity.kt @@ -9,13 +9,17 @@ import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity import net.pokeranalytics.android.ui.fragment.EditableDataFragment class EditableDataActivity : PokerAnalyticsActivity() { + enum class IntentKey(val keyName : String) { + DATATYPE("DATATYPE"), + PRIMARYKEY("PRIMARYKEY"); + } companion object { fun newInstance(context: Context, dataType: Int, primaryKey: String? = null) { val intent = Intent(context, EditableDataActivity::class.java) - intent.putExtra("dataType", dataType) + intent.putExtra(IntentKey.DATATYPE.keyName, dataType) primaryKey?.let { - intent.putExtra("primaryKey", it) + intent.putExtra(IntentKey.PRIMARYKEY.keyName, it) } context.startActivity(intent) } @@ -32,8 +36,8 @@ class EditableDataActivity : PokerAnalyticsActivity() { */ private fun initUI() { - val dataType = intent.getIntExtra("dataType", 0) - val primaryKey = intent.getStringExtra("primaryKey") + val dataType = intent.getIntExtra(IntentKey.DATATYPE.keyName, 0) + val primaryKey = intent.getStringExtra(IntentKey.PRIMARYKEY.keyName) val fragment = editableDataFragment as EditableDataFragment fragment.setData(dataType, primaryKey) } diff --git a/app/src/main/java/net/pokeranalytics/android/ui/adapter/components/DynamicRowInterface.kt b/app/src/main/java/net/pokeranalytics/android/ui/adapter/components/DynamicRowInterface.kt index daea6641..4cc87c22 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/adapter/components/DynamicRowInterface.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/adapter/components/DynamicRowInterface.kt @@ -2,14 +2,14 @@ package net.pokeranalytics.android.ui.adapter.components import android.content.Context import net.pokeranalytics.android.R -import net.pokeranalytics.android.model.realm.DataList +import net.pokeranalytics.android.model.DataList import net.pokeranalytics.android.ui.fragment.components.BottomSheetType interface DynamicRowInterface { fun localizedTitle(context: Context): String val viewType: Int - get() { + get() { return 0 } @@ -18,9 +18,9 @@ interface DynamicRowInterface { return BottomSheetType.NONE } - val relatedDataList: DataList + val relatedDataList: DataList? get() { - return DataList.NONE + return null } } @@ -195,7 +195,7 @@ enum class SettingRow(val resId: Int) : DynamicRowInterface { override val viewType: Int = RowViewType.TITLE.ordinal - override val relatedDataList : DataList + override val relatedDataList : DataList? get() { return when (this) { BANKROLL -> DataList.BANKROLL 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 a75395be..f1bde12b 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 @@ -36,7 +36,9 @@ class DataListFragment : PokerAnalyticsFragment(), DisplayableDelegate { } override fun onRowSelected(position: Int) { - EditableDataActivity.newInstance(requireContext(), this.dataType.relatedDataList.ordinal, this.data(position).primaryKey) + this.dataType.relatedDataList?.let { + EditableDataActivity.newInstance(requireContext(), it.ordinal, this.data(position).primaryKey) + } } override fun size(): Int { @@ -61,7 +63,13 @@ class DataListFragment : PokerAnalyticsFragment(), DisplayableDelegate { } this.addButton.setOnClickListener { - EditableDataActivity.newInstance(requireContext(), dataType = this.dataType.relatedDataList.ordinal, primaryKey = null) + this.dataType.relatedDataList?.let { + EditableDataActivity.newInstance( + requireContext(), + dataType = it.ordinal, + primaryKey = null + ) + } } } @@ -74,10 +82,13 @@ class DataListFragment : PokerAnalyticsFragment(), DisplayableDelegate { this.dataType = SettingRow.values()[dataType] this.title.text = this.dataType.name.toLowerCase().capitalize() val realm = Realm.getDefaultInstance() - this.items = this.dataType.relatedDataList.items(realm) - this.items.addChangeListener { newItems -> - Timber.d("newItems: ${newItems.size}") - this.recyclerView.adapter?.notifyDataSetChanged() + + this.dataType.relatedDataList?.let { + this.items = it.items(realm) + this.items.addChangeListener { newItems -> + Timber.d("newItems: ${newItems.size}") + this.recyclerView.adapter?.notifyDataSetChanged() + } } } } \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt index 0cffb39e..67e63e8e 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt @@ -11,7 +11,7 @@ import io.realm.RealmObject import kotlinx.android.synthetic.main.fragment_editable_data.* import kotlinx.android.synthetic.main.fragment_editable_data.view.* import net.pokeranalytics.android.R -import net.pokeranalytics.android.model.realm.DataList +import net.pokeranalytics.android.model.DataList import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity import net.pokeranalytics.android.ui.adapter.components.DynamicListAdapter import net.pokeranalytics.android.ui.adapter.components.DynamicRowCallback @@ -25,7 +25,7 @@ import java.util.* class EditableDataFragment : PokerAnalyticsFragment(), DynamicRowCallback, BottomSheetDelegate { private lateinit var item: RealmObject - private var dataType: DataList = DataList.NONE + private lateinit var dataType: DataList override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { return inflater.inflate(R.layout.fragment_editable_data, container, false) diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/NewSessionFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/NewSessionFragment.kt index 5a0f1db0..47ad0601 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/NewSessionFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/NewSessionFragment.kt @@ -9,6 +9,7 @@ import androidx.recyclerview.widget.LinearLayoutManager import kotlinx.android.synthetic.main.fragment_new_session.* import net.pokeranalytics.android.R import net.pokeranalytics.android.model.realm.* +import net.pokeranalytics.android.model.DataList import net.pokeranalytics.android.ui.activity.EditableDataActivity import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity import net.pokeranalytics.android.ui.adapter.components.DynamicListAdapter