Update Date & DoubleEditText bottom sheet

dev_raz_wip
Aurelien Hubert 7 years ago
parent 3c8ca3171a
commit 79a4bc10d1
  1. 89
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetDateFragment.kt
  2. 26
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/DatePickerFragment.kt
  3. 26
      app/src/main/java/net/pokeranalytics/android/ui/fragment/components/TimePickerFragment.kt

@ -1,13 +1,31 @@
package net.pokeranalytics.android.ui.fragment.components
import android.app.DatePickerDialog
import android.app.TimePickerDialog
import android.os.Bundle
import android.text.format.DateFormat
import android.view.LayoutInflater
import android.view.View
import android.widget.DatePicker
import android.widget.TimePicker
import kotlinx.android.synthetic.main.bottom_sheet_date.*
import kotlinx.android.synthetic.main.fragment_bottom_sheet.view.*
import net.pokeranalytics.android.R
import timber.log.Timber
import java.util.*
class BottomSheetDateFragment : BottomSheetFragment() {
class BottomSheetDateFragment : BottomSheetFragment(), DatePickerDialog.OnDateSetListener, TimePickerDialog.OnTimeSetListener {
enum class DateEdition {
START,
END
}
private val calendar = Calendar.getInstance()
private val calendarStart = Calendar.getInstance()
private val calendarEnd = Calendar.getInstance()
private var currentDateEdition = DateEdition.START
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
@ -15,6 +33,40 @@ class BottomSheetDateFragment : BottomSheetFragment() {
initUI()
}
override fun onDateSet(view: DatePicker?, year: Int, month: Int, dayOfMonth: Int) {
when(currentDateEdition) {
DateEdition.START -> {
calendarStart.set(Calendar.YEAR, year)
calendarStart.set(Calendar.MONTH, month)
calendarStart.set(Calendar.DAY_OF_MONTH, dayOfMonth)
}
DateEdition.END -> {
calendarEnd.set(Calendar.YEAR, year)
calendarEnd.set(Calendar.MONTH, month)
calendarEnd.set(Calendar.DAY_OF_MONTH, dayOfMonth)
}
}
showTimePicker()
}
override fun onTimeSet(view: TimePicker?, hourOfDay: Int, minute: Int) {
when(currentDateEdition) {
DateEdition.START -> {
calendarStart.set(Calendar.HOUR_OF_DAY, hourOfDay)
calendarStart.set(Calendar.MINUTE, minute)
}
DateEdition.END -> {
calendarEnd.set(Calendar.HOUR_OF_DAY, hourOfDay)
calendarEnd.set(Calendar.MINUTE, minute)
}
}
Timber.d("Start date: ${calendarStart.time}")
Timber.d("End date: ${calendarEnd.time}")
}
/**
* Init data
*/
@ -27,22 +79,41 @@ class BottomSheetDateFragment : BottomSheetFragment() {
*/
private fun initUI() {
LayoutInflater.from(requireContext()).inflate(R.layout.bottom_sheet_date, view?.bottomSheetContainer, true)
LayoutInflater.from(requireContext()).inflate(net.pokeranalytics.android.R.layout.bottom_sheet_date, view?.bottomSheetContainer, true)
setAddButtonVisible(false)
startDate.setOnClickListener {
val dateFragment = DatePickerFragment()
dateFragment.show(fragmentManager, "datePicker")
currentDateEdition = DateEdition.START
showDatePicker()
}
endDate.setOnClickListener {
val timeFragment = TimePickerFragment()
timeFragment.show(fragmentManager, "timePicker")
currentDateEdition = DateEdition.END
showDatePicker()
}
//data.startDate = Date()
//data.endDate = Date()
}
/**
* Show the date picker
*/
private fun showDatePicker() {
val year = calendar.get(Calendar.YEAR)
val month = calendar.get(Calendar.MONTH)
val day = calendar.get(Calendar.DAY_OF_MONTH)
val datePickerDialog = DatePickerDialog(requireContext(), this, year, month, day)
datePickerDialog.show()
}
/**
* Show the time picker
*/
private fun showTimePicker() {
val hour = calendar.get(Calendar.YEAR)
val minute = calendar.get(Calendar.MONTH)
val timePickerDialog = TimePickerDialog(activity, this, hour, minute, DateFormat.is24HourFormat(activity))
timePickerDialog.show()
}
}

@ -1,26 +0,0 @@
package net.pokeranalytics.android.ui.fragment.components
import android.app.DatePickerDialog
import android.app.Dialog
import android.os.Bundle
import android.widget.DatePicker
import androidx.fragment.app.DialogFragment
import java.util.*
class DatePickerFragment : DialogFragment(), DatePickerDialog.OnDateSetListener {
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
// Use the current date as the default date in the picker
val c = Calendar.getInstance()
val year = c.get(Calendar.YEAR)
val month = c.get(Calendar.MONTH)
val day = c.get(Calendar.DAY_OF_MONTH)
// Create a new instance of DatePickerDialog and return it
return DatePickerDialog(activity, this, year, month, day)
}
override fun onDateSet(view: DatePicker, year: Int, month: Int, day: Int) {
// Do something with the date chosen by the user
}
}

@ -1,26 +0,0 @@
package net.pokeranalytics.android.ui.fragment.components
import android.app.Dialog
import android.app.TimePickerDialog
import android.os.Bundle
import android.text.format.DateFormat
import android.widget.TimePicker
import androidx.fragment.app.DialogFragment
import java.util.*
class TimePickerFragment : DialogFragment(), TimePickerDialog.OnTimeSetListener {
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
// Use the current time as the default values for the picker
val c = Calendar.getInstance()
val hour = c.get(Calendar.HOUR_OF_DAY)
val minute = c.get(Calendar.MINUTE)
// Create a new instance of TimePickerDialog and return it
return TimePickerDialog(activity, this, hour, minute, DateFormat.is24HourFormat(activity))
}
override fun onTimeSet(view: TimePicker, hourOfDay: Int, minute: Int) {
// Do something with the time chosen by the user
}
}
Loading…
Cancel
Save