diff --git a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/descriptors/DescriptorRegister.kt b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/descriptors/DescriptorRegister.kt index 24acae582..d7fbaedca 100644 --- a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/descriptors/DescriptorRegister.kt +++ b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/descriptors/DescriptorRegister.kt @@ -38,30 +38,35 @@ class DescriptorRegister { mapping.register(android.app.Fragment::class.java, FragmentFrameworkDescriptor) mapping.register(androidx.fragment.app.Fragment::class.java, FragmentSupportDescriptor) - @Suppress("unchecked_cast") - for (clazz in mapping.register.keys) { - val maybeDescriptor: NodeDescriptor<*>? = mapping.register[clazz] - maybeDescriptor?.let { descriptor -> - if (descriptor is ChainedDescriptor<*>) { - val chainedDescriptor = descriptor as ChainedDescriptor - val superClass: Class<*> = clazz.superclass - val maybeSuperDescriptor: NodeDescriptor<*>? = mapping.descriptorForClass(superClass) - - maybeSuperDescriptor?.let { superDescriptor -> - if (superDescriptor is ChainedDescriptor<*>) { - chainedDescriptor.setSuper(superDescriptor as ChainedDescriptor) - } - } - } - } - } - return mapping } } fun register(clazz: Class, descriptor: NodeDescriptor) { register[clazz] = descriptor + setSuper() + } + + private fun setSuper() { + @Suppress("unchecked_cast") + for (clazz in this.register.keys) { + val maybeDescriptor: NodeDescriptor<*>? = this.register[clazz] + maybeDescriptor?.let { descriptor -> + if (descriptor is ChainedDescriptor<*>) { + + val chainedDescriptor = descriptor as ChainedDescriptor + val superClass: Class<*> = clazz.superclass + + val maybeSuperDescriptor: NodeDescriptor<*>? = this.descriptorForClass(superClass) + + maybeSuperDescriptor?.let { superDescriptor -> + if (superDescriptor is ChainedDescriptor<*>) { + chainedDescriptor.setSuper(superDescriptor as ChainedDescriptor) + } + } + } + } + } } fun descriptorForClass(clazz: Class): NodeDescriptor? {