TP-72555: Crash fix for Android 6 and below for Dialog (#11675)

Co-authored-by: Kshitij Pramod Ghongadi <kshitij.pramod@navi.com>
This commit is contained in:
Raaj Gopal
2024-07-03 21:35:21 +05:30
committed by GitHub
parent 37e8995276
commit 5ba81e1fc1

View File

@@ -1,6 +1,6 @@
/*
*
* * Copyright © 2023 by Navi Technologies Limited
* * Copyright © 2023-2024 by Navi Technologies Limited
* * All rights reserved. Strictly confidential
*
*/
@@ -8,12 +8,14 @@
package com.navi.naviwidgets.adapters
import android.app.DatePickerDialog
import android.os.Build
import android.text.Editable
import android.text.InputType
import android.text.TextWatcher
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.view.Window
import android.widget.TextView
import androidx.appcompat.widget.AppCompatEditText
import androidx.core.view.isVisible
@@ -223,20 +225,25 @@ class TextEditTextCalendarItemAdapter(
month,
day
)
val parentView =
datePickerDialog.window
?.decorView
?.findViewById<View>(android.R.id.content)
?.rootView as? ViewGroup
parentView?.descendantFocusability = ViewGroup.FOCUS_BLOCK_DESCENDANTS
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.M) {
datePickerDialog?.window?.requestFeature(Window.FEATURE_NO_TITLE)
} else {
val parentView =
datePickerDialog.window
?.decorView
?.findViewById<View>(android.R.id.content)
?.rootView as? ViewGroup
parentView?.descendantFocusability = ViewGroup.FOCUS_BLOCK_DESCENDANTS
}
datePickerDialog.setCancelable(true)
datePickerDialog.datePicker.minDate =
getMaximumAgePossible(datePickerData?.maxDate.orZero())
datePickerDialog.datePicker.maxDate =
datePickerData?.minDate?.let { getMinAgePossible(it) }
?: kotlin.run { getAgeInMonths(datePickerData?.minMonth.orZero()) }
datePickerDialog.show()
if (!datePickerDialog.isShowing) {
datePickerDialog.show()
}
}
private fun getMinAgePossible(maxDate: Int): Long {