From f70b2a2d1ead3bf295983c0d0c435df1f9c6fbaf Mon Sep 17 00:00:00 2001 From: Luke De Feo Date: Mon, 14 Nov 2022 07:05:58 -0800 Subject: [PATCH] Fragment bounds Reviewed By: lblasa Differential Revision: D41220272 fbshipit-source-id: e3ff054c7aa8c290e3c04e70a71cb7d752393cfe --- .../uidebugger/descriptors/DescriptorRegister.kt | 5 +++-- .../descriptors/FragmentFrameworkDescriptor.kt | 11 +++++++++-- .../descriptors/FragmentSupportDescriptor.kt | 11 +++++++++-- 3 files changed, 21 insertions(+), 6 deletions(-) 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 2166946f8..77faea846 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,8 +38,9 @@ class DescriptorRegister { mapping.register(Drawable::class.java, DrawableDescriptor) mapping.register(ColorDrawable::class.java, ColorDrawableDescriptor) mapping.register(OffsetChild::class.java, OffsetChildDescriptor) - mapping.register(android.app.Fragment::class.java, FragmentFrameworkDescriptor) - mapping.register(androidx.fragment.app.Fragment::class.java, FragmentSupportDescriptor) + mapping.register(android.app.Fragment::class.java, FragmentFrameworkDescriptor(mapping)) + mapping.register( + androidx.fragment.app.Fragment::class.java, FragmentSupportDescriptor(mapping)) return mapping } diff --git a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/descriptors/FragmentFrameworkDescriptor.kt b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/descriptors/FragmentFrameworkDescriptor.kt index 7a9135f5b..e76f636dc 100644 --- a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/descriptors/FragmentFrameworkDescriptor.kt +++ b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/descriptors/FragmentFrameworkDescriptor.kt @@ -8,14 +8,18 @@ package com.facebook.flipper.plugins.uidebugger.descriptors import android.os.Bundle +import androidx.fragment.app.Fragment +import com.facebook.flipper.plugins.uidebugger.model.Bounds import com.facebook.flipper.plugins.uidebugger.model.Inspectable import com.facebook.flipper.plugins.uidebugger.model.InspectableObject import com.facebook.flipper.plugins.uidebugger.model.InspectableValue import com.facebook.flipper.plugins.uidebugger.model.MetadataId -object FragmentFrameworkDescriptor : ChainedDescriptor() { +class FragmentFrameworkDescriptor(val register: DescriptorRegister) : + ChainedDescriptor() { + + private val NAMESPACE = "Fragment" - private const val NAMESPACE = "Fragment" private var SectionId = MetadataRegister.register(MetadataRegister.TYPE_ATTRIBUTE, NAMESPACE, NAMESPACE) @@ -23,6 +27,9 @@ object FragmentFrameworkDescriptor : ChainedDescriptor() { return node.javaClass.simpleName } + override fun onGetBounds(node: android.app.Fragment): Bounds? = + node.view?.let { register.descriptorForClassUnsafe(it.javaClass).getBounds(it) } + override fun onGetChildren(node: android.app.Fragment): List = node.view?.let { view -> listOf(view) } ?: listOf() diff --git a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/descriptors/FragmentSupportDescriptor.kt b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/descriptors/FragmentSupportDescriptor.kt index d866e4eff..4c4117f8d 100644 --- a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/descriptors/FragmentSupportDescriptor.kt +++ b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/descriptors/FragmentSupportDescriptor.kt @@ -7,14 +7,18 @@ package com.facebook.flipper.plugins.uidebugger.descriptors +import androidx.fragment.app.Fragment +import com.facebook.flipper.plugins.uidebugger.model.Bounds import com.facebook.flipper.plugins.uidebugger.model.Inspectable import com.facebook.flipper.plugins.uidebugger.model.InspectableObject import com.facebook.flipper.plugins.uidebugger.model.InspectableValue import com.facebook.flipper.plugins.uidebugger.model.MetadataId -object FragmentSupportDescriptor : ChainedDescriptor() { +class FragmentSupportDescriptor(val register: DescriptorRegister) : + ChainedDescriptor() { + + private val NAMESPACE = "Fragment" - private const val NAMESPACE = "Fragment" private var SectionId = MetadataRegister.register(MetadataRegister.TYPE_ATTRIBUTE, NAMESPACE, NAMESPACE) @@ -22,6 +26,9 @@ object FragmentSupportDescriptor : ChainedDescriptor = node.view?.let { view -> listOf(view) } ?: listOf()