From 79a4bc10d1b2ac601907e6c101524d6c14cdfa1e Mon Sep 17 00:00:00 2001 From: Aurelien Hubert Date: Tue, 19 Feb 2019 09:19:52 +0100 Subject: [PATCH] Update Date & DoubleEditText bottom sheet --- .../components/BottomSheetDateFragment.kt | 89 +++++++++++++++++-- .../fragment/components/DatePickerFragment.kt | 26 ------ .../fragment/components/TimePickerFragment.kt | 26 ------ 3 files changed, 80 insertions(+), 61 deletions(-) delete mode 100644 app/src/main/java/net/pokeranalytics/android/ui/fragment/components/DatePickerFragment.kt delete mode 100644 app/src/main/java/net/pokeranalytics/android/ui/fragment/components/TimePickerFragment.kt diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetDateFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetDateFragment.kt index 2b4a28b1..e31aecff 100644 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetDateFragment.kt +++ b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/BottomSheetDateFragment.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() } } \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/DatePickerFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/DatePickerFragment.kt deleted file mode 100644 index f40099be..00000000 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/DatePickerFragment.kt +++ /dev/null @@ -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 - } -} \ No newline at end of file diff --git a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/TimePickerFragment.kt b/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/TimePickerFragment.kt deleted file mode 100644 index e01a5f59..00000000 --- a/app/src/main/java/net/pokeranalytics/android/ui/fragment/components/TimePickerFragment.kt +++ /dev/null @@ -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 - } -} \ No newline at end of file