Add function set_datetime for updating the datepicker, timepicker.
This commit is contained in:
parent
ebfbf05006
commit
7ef935ca2b
1 changed files with 55 additions and 62 deletions
|
@ -83,6 +83,8 @@ class TrackFragment : Fragment(), MapListener, YesNoDialog.YesNoDialogListener
|
||||||
lateinit var track_query_start_time: TimePicker
|
lateinit var track_query_start_time: TimePicker
|
||||||
lateinit var track_query_end_date: DatePicker
|
lateinit var track_query_end_date: DatePicker
|
||||||
lateinit var track_query_end_time: TimePicker
|
lateinit var track_query_end_time: TimePicker
|
||||||
|
private lateinit var datepicker_changed_listener: DatePicker.OnDateChangedListener
|
||||||
|
private lateinit var timepicker_changed_listener: TimePicker.OnTimeChangedListener
|
||||||
lateinit var delete_selected_trkpt_button: ImageButton
|
lateinit var delete_selected_trkpt_button: ImageButton
|
||||||
lateinit var when_was_i_here_button: ImageButton
|
lateinit var when_was_i_here_button: ImageButton
|
||||||
var track_query_start_time_previous: Int = 0
|
var track_query_start_time_previous: Int = 0
|
||||||
|
@ -114,6 +116,36 @@ class TrackFragment : Fragment(), MapListener, YesNoDialog.YesNoDialogListener
|
||||||
private val handler: Handler = Handler(Looper.getMainLooper())
|
private val handler: Handler = Handler(Looper.getMainLooper())
|
||||||
val RERENDER_DELAY: Long = 1000
|
val RERENDER_DELAY: Long = 1000
|
||||||
|
|
||||||
|
override fun onCreate(savedInstanceState: Bundle?)
|
||||||
|
{
|
||||||
|
super.onCreate(savedInstanceState)
|
||||||
|
datepicker_changed_listener = object: DatePicker.OnDateChangedListener {
|
||||||
|
override fun onDateChanged(p0: DatePicker?, p1: Int, p2: Int, p3: Int)
|
||||||
|
{
|
||||||
|
handler.removeCallbacks(requery_and_render)
|
||||||
|
handler.postDelayed(requery_and_render, RERENDER_DELAY)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
timepicker_changed_listener = object : TimePicker.OnTimeChangedListener{
|
||||||
|
override fun onTimeChanged(p0: TimePicker?, p1: Int, p2: Int)
|
||||||
|
{
|
||||||
|
handler.removeCallbacks(requery_and_render)
|
||||||
|
val newminute = (p1 * 60) + p2
|
||||||
|
Log.i("VOUSSOIR", "End time changed $newminute")
|
||||||
|
if (newminute < track_query_start_time_previous && (track_query_start_time_previous - newminute > 60))
|
||||||
|
{
|
||||||
|
increment_datepicker(track_query_start_date)
|
||||||
|
}
|
||||||
|
else if (newminute > track_query_start_time_previous && (newminute - track_query_start_time_previous > 60))
|
||||||
|
{
|
||||||
|
decrement_datepicker(track_query_start_date)
|
||||||
|
}
|
||||||
|
track_query_start_time_previous = newminute
|
||||||
|
handler.postDelayed(requery_and_render, RERENDER_DELAY)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Overrides onCreateView from Fragment */
|
/* Overrides onCreateView from Fragment */
|
||||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View
|
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View
|
||||||
{
|
{
|
||||||
|
@ -181,74 +213,16 @@ class TrackFragment : Fragment(), MapListener, YesNoDialog.YesNoDialogListener
|
||||||
val actual_end_time: Date = if (track.trkpts.isEmpty()) Date(requested_end_time) else Date(track.trkpts.last().time)
|
val actual_end_time: Date = if (track.trkpts.isEmpty()) Date(requested_end_time) else Date(track.trkpts.last().time)
|
||||||
|
|
||||||
track_query_start_date = rootView.findViewById(R.id.track_query_start_date)
|
track_query_start_date = rootView.findViewById(R.id.track_query_start_date)
|
||||||
val start_cal = GregorianCalendar()
|
|
||||||
start_cal.time = actual_start_time
|
|
||||||
track_query_start_date.init(start_cal.get(Calendar.YEAR), start_cal.get(Calendar.MONTH), start_cal.get(Calendar.DAY_OF_MONTH), object: DatePicker.OnDateChangedListener {
|
|
||||||
override fun onDateChanged(p0: DatePicker?, p1: Int, p2: Int, p3: Int)
|
|
||||||
{
|
|
||||||
handler.removeCallbacks(requery_and_render)
|
|
||||||
handler.postDelayed(requery_and_render, RERENDER_DELAY)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
track_query_start_time = rootView.findViewById(R.id.track_query_start_time)
|
track_query_start_time = rootView.findViewById(R.id.track_query_start_time)
|
||||||
track_query_start_time.setIs24HourView(true)
|
track_query_start_time.setIs24HourView(true)
|
||||||
track_query_start_time.hour = actual_start_time.hours
|
set_datetime(track_query_start_date, track_query_start_time, actual_start_time, _ending=false)
|
||||||
track_query_start_time.minute = actual_start_time.minutes
|
track_query_start_time.setOnTimeChangedListener(timepicker_changed_listener)
|
||||||
track_query_start_time_previous = (actual_start_time.hours * 60) + actual_start_time.minutes
|
|
||||||
track_query_start_time.setOnTimeChangedListener(object : TimePicker.OnTimeChangedListener{
|
|
||||||
override fun onTimeChanged(p0: TimePicker?, p1: Int, p2: Int)
|
|
||||||
{
|
|
||||||
handler.removeCallbacks(requery_and_render)
|
|
||||||
val newminute = (p1 * 60) + p2
|
|
||||||
Log.i("VOUSSOIR", "End time changed $newminute")
|
|
||||||
if (newminute < track_query_start_time_previous && (track_query_start_time_previous - newminute > 60))
|
|
||||||
{
|
|
||||||
increment_datepicker(track_query_start_date)
|
|
||||||
}
|
|
||||||
else if (newminute > track_query_start_time_previous && (newminute - track_query_start_time_previous > 60))
|
|
||||||
{
|
|
||||||
decrement_datepicker(track_query_start_date)
|
|
||||||
}
|
|
||||||
track_query_start_time_previous = newminute
|
|
||||||
handler.postDelayed(requery_and_render, RERENDER_DELAY)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
track_query_end_date = rootView.findViewById(R.id.track_query_end_date)
|
track_query_end_date = rootView.findViewById(R.id.track_query_end_date)
|
||||||
val end_cal = GregorianCalendar()
|
|
||||||
end_cal.time = actual_end_time
|
|
||||||
track_query_end_date.init(end_cal.get(Calendar.YEAR), end_cal.get(Calendar.MONTH), end_cal.get(Calendar.DAY_OF_MONTH), object: DatePicker.OnDateChangedListener {
|
|
||||||
override fun onDateChanged(p0: DatePicker?, p1: Int, p2: Int, p3: Int)
|
|
||||||
{
|
|
||||||
handler.removeCallbacks(requery_and_render)
|
|
||||||
handler.postDelayed(requery_and_render, RERENDER_DELAY)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
track_query_end_time = rootView.findViewById(R.id.track_query_end_time)
|
track_query_end_time = rootView.findViewById(R.id.track_query_end_time)
|
||||||
track_query_end_time.setIs24HourView(true)
|
track_query_end_time.setIs24HourView(true)
|
||||||
track_query_end_time.hour = actual_end_time.hours
|
set_datetime(track_query_end_date, track_query_end_time, actual_end_time, _ending=true)
|
||||||
track_query_end_time.minute = actual_end_time.minutes
|
track_query_end_time.setOnTimeChangedListener(timepicker_changed_listener)
|
||||||
track_query_end_time_previous = (actual_end_time.hours * 60) + actual_end_time.minutes
|
|
||||||
track_query_end_time.setOnTimeChangedListener(object : TimePicker.OnTimeChangedListener{
|
|
||||||
override fun onTimeChanged(p0: TimePicker?, p1: Int, p2: Int)
|
|
||||||
{
|
|
||||||
handler.removeCallbacks(requery_and_render)
|
|
||||||
val newminute = (p1 * 60) + p2
|
|
||||||
Log.i("VOUSSOIR", "End time changed $newminute")
|
|
||||||
if (newminute < track_query_end_time_previous && (track_query_end_time_previous - newminute > 60))
|
|
||||||
{
|
|
||||||
increment_datepicker(track_query_end_date)
|
|
||||||
}
|
|
||||||
else if (newminute > track_query_end_time_previous && (newminute - track_query_end_time_previous > 60))
|
|
||||||
{
|
|
||||||
decrement_datepicker(track_query_end_date)
|
|
||||||
}
|
|
||||||
track_query_end_time_previous = newminute
|
|
||||||
handler.postDelayed(requery_and_render, RERENDER_DELAY)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
selected_trkpt_info = rootView.findViewById(R.id.selected_trkpt_info)
|
selected_trkpt_info = rootView.findViewById(R.id.selected_trkpt_info)
|
||||||
delete_selected_trkpt_button = rootView.findViewById(R.id.delete_selected_trkpt_button)
|
delete_selected_trkpt_button = rootView.findViewById(R.id.delete_selected_trkpt_button)
|
||||||
|
@ -400,6 +374,25 @@ class TrackFragment : Fragment(), MapListener, YesNoDialog.YesNoDialogListener
|
||||||
return pl
|
return pl
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun set_datetime(datepicker: DatePicker, timepicker: TimePicker, setdate: Date, _ending: Boolean)
|
||||||
|
{
|
||||||
|
val start_cal = GregorianCalendar()
|
||||||
|
start_cal.time = setdate
|
||||||
|
datepicker.init(start_cal.get(Calendar.YEAR), start_cal.get(Calendar.MONTH), start_cal.get(Calendar.DAY_OF_MONTH), datepicker_changed_listener)
|
||||||
|
|
||||||
|
timepicker.hour = setdate.hours
|
||||||
|
timepicker.minute = setdate.minutes
|
||||||
|
|
||||||
|
if (_ending)
|
||||||
|
{
|
||||||
|
track_query_end_time_previous = (setdate.hours * 60) + setdate.minutes
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
track_query_start_time_previous = (setdate.hours * 60) + setdate.minutes
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fun get_datetime(datepicker: DatePicker, timepicker: TimePicker, seconds: Int): Date
|
fun get_datetime(datepicker: DatePicker, timepicker: TimePicker, seconds: Int): Date
|
||||||
{
|
{
|
||||||
val cal = GregorianCalendar.getInstance()
|
val cal = GregorianCalendar.getInstance()
|
||||||
|
|
Loading…
Reference in a new issue