Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class InjectingFragmentFactory
- @Inject constructor(
- private val creators: Map<Class<out Fragment>, @JvmSuppressWildcards Provider<Fragment>>
- ) : FragmentFactory() {
- override fun instantiate(classLoader: ClassLoader, className: String): Fragment {
- val fragmentClass = loadFragmentClass(classLoader, className)
- val creator = creators[fragmentClass]
- ?: return createFragmentAsFallback(classLoader, className)
- try {
- return creator.get()
- } catch (e: Exception) {
- throw RuntimeException(e)
- }
- }
- private fun createFragmentAsFallback(classLoader: ClassLoader, className: String): Fragment {
- Timber.w("No creator found for class: $className. Using default constructor")
- return super.instantiate(classLoader, className)
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement