I have this code where I show Dialog Fragment when clicking a viewHolder item in Adapter
SpecialRequestNotFoundBottomSheetDialog {
requestItem?.specialRequestEntity?.id?.let { id -> onCancelReasonsSelected(id, it) }
}.show(itemView.context as AppCompatActivity).supportFragmentManager)
recently I'm migrating to Hilt and I got class cast exception, looks like Hilt wrapping the context and I can't get the parent Activity to get the required FragmentManager to show the Dialog
I read source code find this solution FragmentComponentManager.findActivity(view.context) as Activity
I may found a workaround to this crash by checking the Context type and getting the BaseContext. Here's what I'm using now. I don't know if there's a better way to do it with Hilt.
private fun activityContext(): Context? {
val context = itemView.context
return if (context is ViewComponentManager.FragmentContextWrapper) {
context.baseContext
} else context
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With