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 bb10b2f8..b4cf3d48 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 @@ -3,16 +3,13 @@ package net.pokeranalytics.android.model.realm import io.realm.* import io.realm.annotations.Ignore import io.realm.annotations.PrimaryKey -import net.pokeranalytics.android.ui.adapter.components.DisplayableData -import net.pokeranalytics.android.ui.adapter.components.DynamicRowDelegate -import net.pokeranalytics.android.ui.adapter.components.DynamicRowInterface -import net.pokeranalytics.android.ui.adapter.components.SessionRow +import net.pokeranalytics.android.ui.adapter.components.* import net.pokeranalytics.android.util.data.sessionDao import java.util.* import kotlin.collections.ArrayList -open class Session(comment: String = "") : RealmObject(), DynamicRowDelegate, DisplayableData { +open class Session(comment: String = "") : RealmObject(), DynamicRowDelegate, DisplayableDataSource { @PrimaryKey var id = UUID.randomUUID().toString() 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 new file mode 100644 index 00000000..9547d252 --- /dev/null +++ b/app/src/main/java/net/pokeranalytics/android/ui/activity/EditableDataActivity.kt @@ -0,0 +1,47 @@ +package net.pokeranalytics.android.ui.activity + +import android.content.Context +import android.content.Intent +import android.os.Bundle +import io.realm.Realm +import io.realm.kotlin.where +import kotlinx.android.synthetic.main.activity_data_list.* +import kotlinx.android.synthetic.main.activity_editable_data.* +import net.pokeranalytics.android.R +import net.pokeranalytics.android.model.realm.Session +import net.pokeranalytics.android.ui.fragment.DataListFragment +import net.pokeranalytics.android.ui.fragment.EditableDataFragment +import net.pokeranalytics.android.util.PokerAnalyticsActivity +import net.pokeranalytics.android.util.data.sessionDao +import java.util.* + +class EditableDataActivity : PokerAnalyticsActivity() { + + companion object { + fun newInstance(context: Context, dataType: Int, primaryKey:String?) { + val intent = Intent(context, EditableDataActivity::class.java) + intent.putExtra("dataType", dataType) + primaryKey?.let { + intent.putExtra("primaryKey", it) + } + context.startActivity(intent) + } + } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + setContentView(R.layout.activity_editable_data) + initUI() + } + + /** + * Init UI + */ + private fun initUI() { + + val dataType = intent.getIntExtra("dataType", 0) + val primaryKey = intent.getStringExtra("primaryKey") + val fragment = editableDataFragment as EditableDataFragment + fragment.setData(dataType, primaryKey) + } +} \ 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 0131e1a3..5a7997d7 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 @@ -12,6 +12,8 @@ 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.activity.DataListActivity +import net.pokeranalytics.android.ui.activity.EditableDataActivity import net.pokeranalytics.android.ui.adapter.components.* import net.pokeranalytics.android.util.PokerAnalyticsFragment @@ -36,7 +38,7 @@ class DataListFragment : PokerAnalyticsFragment(), DisplayableDelegate { } override fun onRowSelected(position: Int) { - TODO("not implemented") //To change body of created functions use File | Settings | File Templates. + EditableDataActivity.newInstance(requireContext(), this.dataType.ordinal, null) } override fun size(): Int { 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 new file mode 100644 index 00000000..f67d0346 --- /dev/null +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt @@ -0,0 +1,66 @@ +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 io.realm.Realm +import io.realm.RealmObject +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 + +class EditableDataFragment : PokerAnalyticsFragment() { + + private var item: RealmObject? = null + private var dataType: SettingRow = SettingRow.BANKROLL + + + 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() + } + + private fun initData() { + } + + /** + * Init UI + */ + private fun initUI() { + + val viewManager = LinearLayoutManager(requireContext()) +// val dynamicListAdapter = DynamicListAdapter(this, this) + + recyclerView.apply { + setHasFixedSize(true) + layoutManager = viewManager +// adapter = dynamicListAdapter + } + } + + /** + * Set fragment data + */ + fun setData(dataType: Int, primaryKey: String?) { + this.dataType = SettingRow.values()[dataType] + primaryKey?.let { + val realm = Realm.getDefaultInstance() + this.item = realm.copyFromRealm( when (this.dataType) { + SettingRow.BANKROLL -> realm.where(Bankroll::class.java).equalTo("id", it).findFirst() + SettingRow.GAME -> realm.where(Game::class.java).equalTo("id", it).findFirst() + SettingRow.LOCATION -> realm.where(Location::class.java).equalTo("id", it).findFirst() + SettingRow.TOURNAMENT_TYPE -> realm.where(TournamentFeature::class.java).equalTo("id", it).findFirst() + SettingRow.TRANSACTION_TYPE-> realm.where(TransactionType::class.java).equalTo("id", it).findFirst() + }) + } + } +} \ No newline at end of file diff --git a/app/src/main/res/layout/activity_editable_data.xml b/app/src/main/res/layout/activity_editable_data.xml new file mode 100644 index 00000000..479e51ea --- /dev/null +++ b/app/src/main/res/layout/activity_editable_data.xml @@ -0,0 +1,13 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_editable_data.xml b/app/src/main/res/layout/fragment_editable_data.xml new file mode 100644 index 00000000..7d50fb8c --- /dev/null +++ b/app/src/main/res/layout/fragment_editable_data.xml @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file