Skip to content

Instantly share code, notes, and snippets.

@ryanamaral
Created July 25, 2018 21:11
Show Gist options
  • Save ryanamaral/658583c020622e0fae70caf3fed9867b to your computer and use it in GitHub Desktop.
Save ryanamaral/658583c020622e0fae70caf3fed9867b to your computer and use it in GitHub Desktop.
DaggerBottomSheetDialogFragment
import android.content.Context
import android.support.design.widget.BottomSheetDialogFragment
import android.support.v4.app.Fragment
import dagger.android.AndroidInjector
import dagger.android.DispatchingAndroidInjector
import dagger.android.support.AndroidSupportInjection
import dagger.android.support.HasSupportFragmentInjector
import javax.inject.Inject
/**
* A [BottomSheetDialogFragment] that injects its members in [onAttach] and can be used to inject
* child [BottomSheetDialogFragment]s attached to it.
* Note that when this fragment gets reattached, its members will be injected again.
*
* @author Ryan Amaral
*/
open class DaggerBottomSheetDialogFragment : BottomSheetDialogFragment(), HasSupportFragmentInjector {
@Inject lateinit var mChildFragmentInjector: DispatchingAndroidInjector<Fragment>
override fun onAttach(context: Context) {
AndroidSupportInjection.inject(this)
super.onAttach(context)
}
override fun supportFragmentInjector(): AndroidInjector<Fragment> {
return mChildFragmentInjector;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment