Merge branch 'master' of gitlab.com:stax-river/poker-analytics

dev_raz_wip
Razmig Sarkissian 7 years ago
commit 6d1ef24952
  1. 10
      app/src/main/java/net/pokeranalytics/android/ui/adapter/components/DynamicListAdapter.kt
  2. 11
      app/src/main/java/net/pokeranalytics/android/ui/fragment/EditableDataFragment.kt
  3. 2
      app/src/main/java/net/pokeranalytics/android/ui/fragment/NewSessionFragment.kt
  4. 27
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/DateTimePickerManager.kt

@ -76,4 +76,14 @@ class DynamicListAdapter(var delegate: DynamicRowDelegate, var callBackDelegate:
(holder as DynamicHolder).bind(dynamicRow, this.delegate, listener, actionListener) (holder as DynamicHolder).bind(dynamicRow, this.delegate, listener, actionListener)
} }
/**
* Refresh the row in the adapter
*/
fun refreshRow(row: DynamicRowInterface) {
val index = rows.indexOf(row)
if (index >= 0) {
notifyItemChanged(index)
}
}
} }

@ -1,7 +1,6 @@
package net.pokeranalytics.android.ui.fragment package net.pokeranalytics.android.ui.fragment
import android.os.Bundle import android.os.Bundle
import android.text.InputType
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
@ -13,19 +12,17 @@ import kotlinx.android.synthetic.main.fragment_editable_data.*
import kotlinx.android.synthetic.main.fragment_editable_data.view.* import kotlinx.android.synthetic.main.fragment_editable_data.view.*
import net.pokeranalytics.android.R import net.pokeranalytics.android.R
import net.pokeranalytics.android.model.DataList import net.pokeranalytics.android.model.DataList
import net.pokeranalytics.android.model.realm.Bankroll
import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity import net.pokeranalytics.android.ui.activity.components.PokerAnalyticsActivity
import net.pokeranalytics.android.ui.adapter.components.* import net.pokeranalytics.android.ui.adapter.components.*
import net.pokeranalytics.android.ui.fragment.components.BottomSheetData
import net.pokeranalytics.android.ui.fragment.components.BottomSheetDelegate import net.pokeranalytics.android.ui.fragment.components.BottomSheetDelegate
import net.pokeranalytics.android.ui.fragment.components.BottomSheetFragment import net.pokeranalytics.android.ui.fragment.components.BottomSheetFragment
import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment
import java.util.*
class EditableDataFragment : PokerAnalyticsFragment(), DynamicRowCallback, BottomSheetDelegate { class EditableDataFragment : PokerAnalyticsFragment(), DynamicRowCallback, BottomSheetDelegate {
private lateinit var item: RealmObject private lateinit var item: RealmObject
private lateinit var dataType: DataList private lateinit var dataType: DataList
private lateinit var dynamicListAdapter: DynamicListAdapter
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_editable_data, container, false) return inflater.inflate(R.layout.fragment_editable_data, container, false)
@ -52,9 +49,9 @@ class EditableDataFragment : PokerAnalyticsFragment(), DynamicRowCallback, Botto
override fun setValue(value: Any, row: DynamicRowInterface) { override fun setValue(value: Any, row: DynamicRowInterface) {
(this.item as EditableDataSource).setBottomSheetValue(value, row) (this.item as EditableDataSource).setBottomSheetValue(value, row)
this.getRealm().executeTransaction { this.getRealm().executeTransaction {
it.copyToRealm(this.item) it.copyToRealmOrUpdate(this.item)
} }
Toast.makeText(requireContext(), "Callback for ${row.localizedTitle(requireContext())} ($value)", Toast.LENGTH_SHORT).show() dynamicListAdapter.refreshRow(row)
} }
private fun initData() { private fun initData() {
@ -92,7 +89,7 @@ class EditableDataFragment : PokerAnalyticsFragment(), DynamicRowCallback, Botto
this.item = this.dataType.updateOrCreate(realm, primaryKey) this.item = this.dataType.updateOrCreate(realm, primaryKey)
val dynamicListAdapter = DynamicListAdapter((this.item as DynamicRowDelegate), this) this.dynamicListAdapter = DynamicListAdapter((this.item as DynamicRowDelegate), this)
this.recyclerView.adapter = dynamicListAdapter this.recyclerView.adapter = dynamicListAdapter
} }

@ -68,6 +68,8 @@ class NewSessionFragment : PokerAnalyticsFragment(), DynamicRowCallback, BottomS
currentSession.cgBigBlind = null currentSession.cgBigBlind = null
} }
SessionRow.COMMENT -> currentSession.comment = "" SessionRow.COMMENT -> currentSession.comment = ""
SessionRow.START_DATE -> currentSession.timeFrame?.setDate(Date(), null)
SessionRow.END_DATE -> currentSession.timeFrame?.setDate(Date(), null)
} }
sessionAdapter.notifyItemChanged(SessionRow.values().indexOf(row)) sessionAdapter.notifyItemChanged(SessionRow.values().indexOf(row))
} }

@ -3,9 +3,11 @@ package net.pokeranalytics.android.ui.fragment.components
import android.app.DatePickerDialog import android.app.DatePickerDialog
import android.app.TimePickerDialog import android.app.TimePickerDialog
import android.content.Context import android.content.Context
import android.content.DialogInterface
import android.text.format.DateFormat import android.text.format.DateFormat
import android.widget.DatePicker import android.widget.DatePicker
import android.widget.TimePicker import android.widget.TimePicker
import net.pokeranalytics.android.R
import net.pokeranalytics.android.ui.adapter.components.DynamicRowInterface import net.pokeranalytics.android.ui.adapter.components.DynamicRowInterface
import java.util.* import java.util.*
@ -13,11 +15,10 @@ class DateTimePickerManager : DatePickerDialog.OnDateSetListener,
TimePickerDialog.OnTimeSetListener { TimePickerDialog.OnTimeSetListener {
private var context: Context? = null private var context: Context? = null
private val calendar = Calendar.getInstance()
lateinit var row: DynamicRowInterface lateinit var row: DynamicRowInterface
lateinit var bottomSheetDelegate: BottomSheetDelegate lateinit var bottomSheetDelegate: BottomSheetDelegate
lateinit var calendar: Calendar
companion object { companion object {
fun create( fun create(
@ -26,16 +27,22 @@ class DateTimePickerManager : DatePickerDialog.OnDateSetListener,
bottomSheetDelegate: BottomSheetDelegate, bottomSheetDelegate: BottomSheetDelegate,
date: Date? date: Date?
) : DateTimePickerManager { ) : DateTimePickerManager {
val calendar = Calendar.getInstance()
calendar.time = date ?: Date()
val dateTimePickerManager = DateTimePickerManager() val dateTimePickerManager = DateTimePickerManager()
dateTimePickerManager.context = context dateTimePickerManager.context = context
dateTimePickerManager.showDatePicker()
dateTimePickerManager.row = row dateTimePickerManager.row = row
dateTimePickerManager.bottomSheetDelegate = bottomSheetDelegate dateTimePickerManager.bottomSheetDelegate = bottomSheetDelegate
dateTimePickerManager.calendar = calendar
dateTimePickerManager.showDatePicker()
return dateTimePickerManager return dateTimePickerManager
} }
} }
override fun onDateSet(view: DatePicker?, year: Int, month: Int, dayOfMonth: Int) { override fun onDateSet(view: DatePicker?, year: Int, month: Int, dayOfMonth: Int) {
calendar.set(Calendar.YEAR, year) calendar.set(Calendar.YEAR, year)
calendar.set(Calendar.MONTH, month) calendar.set(Calendar.MONTH, month)
@ -58,6 +65,10 @@ class DateTimePickerManager : DatePickerDialog.OnDateSetListener,
val day = calendar.get(Calendar.DAY_OF_MONTH) val day = calendar.get(Calendar.DAY_OF_MONTH)
context?.let { context?.let {
val datePickerDialog = DatePickerDialog(it, this, year, month, day) val datePickerDialog = DatePickerDialog(it, this, year, month, day)
datePickerDialog.setButton(DialogInterface.BUTTON_NEGATIVE, it.getString(R.string.clear)) { dialog, _ ->
bottomSheetDelegate.clickOnClear(row)
dialog.dismiss()
}
datePickerDialog.show() datePickerDialog.show()
} }
} }
@ -66,10 +77,14 @@ class DateTimePickerManager : DatePickerDialog.OnDateSetListener,
* Show the time picker * Show the time picker
*/ */
private fun showTimePicker() { private fun showTimePicker() {
val hour = calendar.get(Calendar.YEAR) val hour = calendar.get(Calendar.HOUR_OF_DAY)
val minute = calendar.get(Calendar.MONTH) val minute = calendar.get(Calendar.MINUTE)
context?.let { context?.let {
val timePickerDialog = TimePickerDialog(context, this, hour, minute, DateFormat.is24HourFormat(context)) val timePickerDialog = TimePickerDialog(context, this, hour, minute, DateFormat.is24HourFormat(context))
timePickerDialog.setButton(DialogInterface.BUTTON_NEGATIVE, it.getString(R.string.clear)) { dialog, _ ->
bottomSheetDelegate.clickOnClear(row)
dialog.dismiss()
}
timePickerDialog.show() timePickerDialog.show()
} }
} }
Loading…
Cancel
Save