Skip to content

Commit d23930a

Browse files
Fix year section display logic.
- Remove no force unwrap - Add a guard clause - Add observer cleanup #1004 (comment)
1 parent fe3ebaa commit d23930a

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

android/src/main/java/com/reactcommunity/rndatetimepicker/RNMaterialDatePicker.kt

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -120,22 +120,25 @@ class RNMaterialDatePicker(
120120
val initialDate = RNDate(args)
121121
val activity = reactContext.currentActivity as? AppCompatActivity
122122
activity?.let { lifecycleOwner ->
123-
datePicker!!.viewLifecycleOwnerLiveData.observe(lifecycleOwner) { owner ->
124-
if (owner != null) {
125-
datePicker?.requireDialog()?.window?.decorView?.post {
126-
val root = datePicker!!.dialog?.window?.decorView ?: return@post
123+
val picker = datePicker ?: return@let
124+
val liveData = picker.viewLifecycleOwnerLiveData
125+
liveData.observe(lifecycleOwner) { owner ->
126+
if (owner == null) return@observe
127+
picker.requireDialog().window?.decorView?.post {
128+
val root = picker.dialog?.window?.decorView ?: return@post
127129

128130
val yearText = initialDate.year().toString()
129131
val hit = findViewBy(root) { v ->
130-
v is TextView && v.isShown && v.isClickable && v.text?.toString()?.contains(yearText) == true
132+
v is TextView && v.isShown && v.isClickable && v.text?.toString()
133+
?.contains(yearText) == true
131134
}
132135
if (hit != null) {
133136
hit.performClick()
134137
return@post
135138
}
139+
liveData.removeObservers(lifecycleOwner)
136140
}
137141
}
138-
}
139142
}
140143
}
141144

0 commit comments

Comments
 (0)