Skip to content

Commit fb98253

Browse files
committed
fix date and time selection on api 21
1 parent 8221473 commit fb98253

File tree

3 files changed

+18
-0
lines changed

3 files changed

+18
-0
lines changed

feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/dateTime/DateDialogFragment.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,10 @@ class DateDialogFragment : Fragment() {
4949
}
5050
}
5151

52+
fun getSelectedDate(): Triple<Int, Int, Int> {
53+
return Triple(datePicker.year, datePicker.month, datePicker.dayOfMonth)
54+
}
55+
5256
companion object {
5357
private const val ARGS_TIMESTAMP = "args_timestamp"
5458

feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/dateTime/DateTimeDialogFragment.kt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ class DateTimeDialogFragment : AppCompatDialogFragment(),
2323
DateDialogFragment.OnDateSetListener,
2424
TimeDialogFragment.OnTimeSetListener {
2525

26+
private var timeDialogFragment: TimeDialogFragment? = null
27+
private var dateDialogFragment: DateDialogFragment? = null
2628
private var dateTimeDialogListeners: MutableList<DateTimeDialogListener> = mutableListOf()
2729
private val dialogTag: String? by lazy {
2830
arguments?.getString(ARGS_TAG)
@@ -68,6 +70,12 @@ class DateTimeDialogFragment : AppCompatDialogFragment(),
6870
initTabs()
6971

7072
btnDateTimeDialogPositive.setOnClickListener {
73+
timeDialogFragment?.getSelectedTime()?.let { (hour, minute) ->
74+
onTimeSet(hour, minute)
75+
}
76+
dateDialogFragment?.getSelectedDate()?.let { (year, month, day) ->
77+
onDateSet(year, month, day)
78+
}
7179
dateTimeDialogListeners.forEach { it.onDateTimeSet(newTimestamp, dialogTag) }
7280
dismiss()
7381
}
@@ -98,6 +106,7 @@ class DateTimeDialogFragment : AppCompatDialogFragment(),
98106
R.id.datePickerContainer,
99107
DateDialogFragment.newInstance(timestamp)
100108
.apply { listener = this@DateTimeDialogFragment }
109+
.also { dateDialogFragment = it }
101110
)
102111
}
103112

@@ -107,6 +116,7 @@ class DateTimeDialogFragment : AppCompatDialogFragment(),
107116
R.id.timePickerContainer,
108117
TimeDialogFragment.newInstance(timestamp)
109118
.apply { listener = this@DateTimeDialogFragment }
119+
.also { timeDialogFragment = it }
110120
)
111121
}
112122
}

feature_dialogs/src/main/java/com/example/util/simpletimetracker/feature_dialogs/dateTime/TimeDialogFragment.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,10 @@ class TimeDialogFragment : Fragment() {
5050
}
5151
}
5252

53+
fun getSelectedTime(): Pair<Int, Int> {
54+
return timePicker.currentHour to timePicker.currentMinute
55+
}
56+
5357
companion object {
5458
private const val ARGS_TIMESTAMP = "args_timestamp"
5559

0 commit comments

Comments
 (0)