I am using Kotlin and fragments in my app. I created a secondary constructor to keep primary constructor empty in order to avoid the error of could not find fragment constructor. I assigned late initialize variable in secondary constructor of fragment but it is null when called, causing null pointer exception. Here is the code sequence:
class VideoFragment(
) : Fragment(),
VideoFileListener {
private lateinit var mainContext: Context
private lateinit var itemClickListener: ItemClickListener
constructor(
    mainContext: Context,
    itemClickListener: ItemClickListener
) : this() {
    this.mainContext = mainContext
    this.itemClickListener = itemClickListener
}
}
companion object {
    @JvmStatic
    fun newInstance(
        mainContext: Context,
        itemClickListener: ItemClickListener
    ) =
        VideoFragment(mainContext, itemClickListener)
}
I access my fragment with static newInstance function. Why these variables are not initialized in secondary constructor?
 
    