fix issue with settings data creation

dev_raz_wip
Razmig Sarkissian 7 years ago
parent 9a4f194564
commit 89ba7c3312
  1. 11
      app/src/main/java/net/pokeranalytics/android/model/realm/Game.kt
  2. 14
      app/src/main/java/net/pokeranalytics/android/ui/adapter/components/DynamicRowInterface.kt
  3. 25
      app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt
  4. 83
      app/src/main/res/layout/fragment_editable_data.xml
  5. 5
      app/src/main/res/values/strings.xml

@ -2,10 +2,13 @@ package net.pokeranalytics.android.model.realm
import io.realm.RealmObject
import io.realm.annotations.PrimaryKey
import net.pokeranalytics.android.ui.adapter.components.BankrollRow
import net.pokeranalytics.android.ui.adapter.components.DisplayableDataSource
import net.pokeranalytics.android.ui.adapter.components.DynamicRowDelegate
import net.pokeranalytics.android.ui.adapter.components.DynamicRowInterface
import java.util.*
open class Game : RealmObject(), DisplayableDataSource {
open class Game : RealmObject(), DynamicRowDelegate, DisplayableDataSource {
@PrimaryKey
var id = UUID.randomUUID().toString()
@ -20,4 +23,10 @@ open class Game : RealmObject(), DisplayableDataSource {
get() {
return name
}
override fun adapterRows(): ArrayList<DynamicRowInterface> {
val rows = ArrayList<DynamicRowInterface>()
rows.addAll(BankrollRow.values())
return rows
}
}

@ -62,15 +62,21 @@ enum class SessionRow(val resId: Int) : DynamicRowInterface {
}
enum class BankrollRow(val resId: Int) : DynamicRowInterface {
NAME(R.string.app_name),
LIVE(R.string.app_name),
CURRENCY(R.string.app_name);
NAME(R.string.name),
LIVE(R.string.live),
CURRENCY(R.string.currency);
override fun localizedTitle(context: Context): String {
return context.getString(this.resId)
}
override var viewType: Int = 1
override var viewType: Int = RowViewType.HEADER.ordinal
get() {
return when (this) {
NAME, LIVE, CURRENCY -> RowViewType.TITLE_VALUE.ordinal
}
}
override var bottomSheetType: BottomSheetType = BottomSheetType.NONE
get() {
return when (this) {

@ -8,11 +8,12 @@ import android.widget.Toast
import androidx.recyclerview.widget.LinearLayoutManager
import io.realm.Realm
import io.realm.RealmObject
import kotlinx.android.synthetic.main.fragment_new_session.*
import kotlinx.android.synthetic.main.bottom_sheet_bankroll.*
import kotlinx.android.synthetic.main.fragment_editable_data.*
import net.pokeranalytics.android.R
import net.pokeranalytics.android.ui.adapter.components.DynamicRowCallback
import net.pokeranalytics.android.ui.adapter.components.DynamicRowInterface
import net.pokeranalytics.android.ui.adapter.components.SettingRow
import net.pokeranalytics.android.model.realm.Bankroll
import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity
import net.pokeranalytics.android.ui.adapter.components.*
import net.pokeranalytics.android.ui.fragment.components.BottomSheetDelegate
import net.pokeranalytics.android.ui.fragment.components.BottomSheetFragment
import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment
@ -23,9 +24,8 @@ class EditableDataFragment : PokerAnalyticsFragment(), DynamicRowCallback, Botto
private lateinit var item: RealmObject
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)
return inflater.inflate(R.layout.fragment_editable_data, container, false)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
@ -44,12 +44,15 @@ class EditableDataFragment : PokerAnalyticsFragment(), DynamicRowCallback, Botto
}
private fun initData() {
}
}
/**
* Init UI
*/
private fun initUI() {
val activity = activity as PokerAnalyticsActivity
activity.setSupportActionBar(toolbar)
activity.supportActionBar?.setDisplayHomeAsUpEnabled(true)
val viewManager = LinearLayoutManager(requireContext())
@ -63,6 +66,7 @@ class EditableDataFragment : PokerAnalyticsFragment(), DynamicRowCallback, Botto
* Set fragment data
*/
fun setData(dataType: Int, primaryKey: String?) {
this.dataType = SettingRow.values()[dataType]
val realm = Realm.getDefaultInstance()
var _item : RealmObject? = null
@ -77,12 +81,13 @@ class EditableDataFragment : PokerAnalyticsFragment(), DynamicRowCallback, Botto
_item?.let {
this.item = realm.copyFromRealm(it)
} ?: run {
this.item = realm.createObject(this.dataType.clazz(), UUID.randomUUID().toString())
this.item = realm.createObject(Bankroll::class.java, UUID.randomUUID().toString())
}
realm.commitTransaction()
//TODO: Crash happens here
//val dynamicListAdapter = DynamicListAdapter((this.item as DynamicRowDelegate), this)
//this.recyclerView.adapter = dynamicListAdapter
val dynamicListAdapter = DynamicListAdapter((this.item as DynamicRowDelegate), this)
this.recyclerView.adapter = dynamicListAdapter
}
}

@ -1,68 +1,57 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.core.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="400dp">
android:layout_height="match_parent"
android:fillViewport="true"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/title"
style="@style/PokerAnalyticsTheme.TextView.Title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:text="Edit Data"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_marginTop="8dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/title" />
android:id="@+id/recyclerView"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.core.widget.NestedScrollView>
<com.google.android.material.appbar.AppBarLayout
android:id="@+id/appBar"
android:layout_width="match_parent"
android:layout_height="128dp"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
android:id="@+id/appBar"
android:layout_width="match_parent"
android:layout_height="128dp"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<com.google.android.material.appbar.CollapsingToolbarLayout
android:id="@+id/collapsingToolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleGravity="bottom"
app:layout_scrollFlags="scroll|exitUntilCollapsed|snap">
android:id="@+id/collapsingToolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleGravity="bottom"
app:expandedTitleMarginStart="72dp"
app:expandedTitleTextAppearance="@style/PokerAnalyticsTheme.Toolbar.ExpandedTitleAppearance"
app:collapsedTitleTextAppearance="@style/PokerAnalyticsTheme.Toolbar.CollapsedTitleAppearance"
app:layout_scrollFlags="scroll|exitUntilCollapsed|snap">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:title="Poker Analytics"
app:titleTextColor="@color/white"
app:layout_collapseMode="pin" />
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:title="Poker Analytics"
app:titleTextColor="@color/white"
app:layout_collapseMode="pin" />
</com.google.android.material.appbar.CollapsingToolbarLayout>

@ -12,4 +12,9 @@
<string name="tournament_type">Tournament Type</string>
<string name="transaction_type">Transaction Type</string>
<string name="name">Name</string>
<string name="live">Live</string>
<string name="currency">Currency</string>
</resources>

Loading…
Cancel
Save