Fragment bounds

Reviewed By: lblasa

Differential Revision: D41220272

fbshipit-source-id: e3ff054c7aa8c290e3c04e70a71cb7d752393cfe
This commit is contained in:
Luke De Feo
2022-11-14 07:05:58 -08:00
committed by Facebook GitHub Bot
parent 477eae1993
commit f70b2a2d1e
3 changed files with 21 additions and 6 deletions

View File

@@ -38,8 +38,9 @@ class DescriptorRegister {
mapping.register(Drawable::class.java, DrawableDescriptor) mapping.register(Drawable::class.java, DrawableDescriptor)
mapping.register(ColorDrawable::class.java, ColorDrawableDescriptor) mapping.register(ColorDrawable::class.java, ColorDrawableDescriptor)
mapping.register(OffsetChild::class.java, OffsetChildDescriptor) mapping.register(OffsetChild::class.java, OffsetChildDescriptor)
mapping.register(android.app.Fragment::class.java, FragmentFrameworkDescriptor) mapping.register(android.app.Fragment::class.java, FragmentFrameworkDescriptor(mapping))
mapping.register(androidx.fragment.app.Fragment::class.java, FragmentSupportDescriptor) mapping.register(
androidx.fragment.app.Fragment::class.java, FragmentSupportDescriptor(mapping))
return mapping return mapping
} }

View File

@@ -8,14 +8,18 @@
package com.facebook.flipper.plugins.uidebugger.descriptors package com.facebook.flipper.plugins.uidebugger.descriptors
import android.os.Bundle 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.Inspectable
import com.facebook.flipper.plugins.uidebugger.model.InspectableObject import com.facebook.flipper.plugins.uidebugger.model.InspectableObject
import com.facebook.flipper.plugins.uidebugger.model.InspectableValue import com.facebook.flipper.plugins.uidebugger.model.InspectableValue
import com.facebook.flipper.plugins.uidebugger.model.MetadataId import com.facebook.flipper.plugins.uidebugger.model.MetadataId
object FragmentFrameworkDescriptor : ChainedDescriptor<android.app.Fragment>() { class FragmentFrameworkDescriptor(val register: DescriptorRegister) :
ChainedDescriptor<android.app.Fragment>() {
private val NAMESPACE = "Fragment"
private const val NAMESPACE = "Fragment"
private var SectionId = private var SectionId =
MetadataRegister.register(MetadataRegister.TYPE_ATTRIBUTE, NAMESPACE, NAMESPACE) MetadataRegister.register(MetadataRegister.TYPE_ATTRIBUTE, NAMESPACE, NAMESPACE)
@@ -23,6 +27,9 @@ object FragmentFrameworkDescriptor : ChainedDescriptor<android.app.Fragment>() {
return node.javaClass.simpleName 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<Any> = override fun onGetChildren(node: android.app.Fragment): List<Any> =
node.view?.let { view -> listOf(view) } ?: listOf() node.view?.let { view -> listOf(view) } ?: listOf()

View File

@@ -7,14 +7,18 @@
package com.facebook.flipper.plugins.uidebugger.descriptors 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.Inspectable
import com.facebook.flipper.plugins.uidebugger.model.InspectableObject import com.facebook.flipper.plugins.uidebugger.model.InspectableObject
import com.facebook.flipper.plugins.uidebugger.model.InspectableValue import com.facebook.flipper.plugins.uidebugger.model.InspectableValue
import com.facebook.flipper.plugins.uidebugger.model.MetadataId import com.facebook.flipper.plugins.uidebugger.model.MetadataId
object FragmentSupportDescriptor : ChainedDescriptor<androidx.fragment.app.Fragment>() { class FragmentSupportDescriptor(val register: DescriptorRegister) :
ChainedDescriptor<androidx.fragment.app.Fragment>() {
private val NAMESPACE = "Fragment"
private const val NAMESPACE = "Fragment"
private var SectionId = private var SectionId =
MetadataRegister.register(MetadataRegister.TYPE_ATTRIBUTE, NAMESPACE, NAMESPACE) MetadataRegister.register(MetadataRegister.TYPE_ATTRIBUTE, NAMESPACE, NAMESPACE)
@@ -22,6 +26,9 @@ object FragmentSupportDescriptor : ChainedDescriptor<androidx.fragment.app.Fragm
return node.javaClass.simpleName return node.javaClass.simpleName
} }
override fun onGetBounds(node: Fragment): Bounds? =
node.view?.let { register.descriptorForClassUnsafe(it.javaClass).getBounds(it) }
override fun onGetChildren(node: androidx.fragment.app.Fragment): List<Any> = override fun onGetChildren(node: androidx.fragment.app.Fragment): List<Any> =
node.view?.let { view -> listOf(view) } ?: listOf() node.view?.let { view -> listOf(view) } ?: listOf()