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)
}
/**
* 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
import android.os.Bundle
import android.text.InputType
import android.view.LayoutInflater
import android.view.View
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 net.pokeranalytics.android.R
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.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.BottomSheetFragment
import net.pokeranalytics.android.ui.fragment.components.PokerAnalyticsFragment
import java.util.*
class EditableDataFragment : PokerAnalyticsFragment(), DynamicRowCallback, BottomSheetDelegate {
private lateinit var item: RealmObject
private lateinit var dataType: DataList
private lateinit var dynamicListAdapter: DynamicListAdapter
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
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) {
(this.item as EditableDataSource).setBottomSheetValue(value, row)
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() {
@ -92,7 +89,7 @@ class EditableDataFragment : PokerAnalyticsFragment(), DynamicRowCallback, Botto
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
}

@ -68,6 +68,8 @@ class NewSessionFragment : PokerAnalyticsFragment(), DynamicRowCallback, BottomS
currentSession.cgBigBlind = null
}
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))
}

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