Improve Textview descriptor

Summary: Also removed button descriptor as android doesnt expose anything usefull

Reviewed By: lblasa

Differential Revision: D39732772

fbshipit-source-id: 38d5d2290abf7103650e4260ae1169d8d53b1d9b
This commit is contained in:
Luke De Feo
2022-09-29 05:31:18 -07:00
committed by Facebook GitHub Bot
parent 740f4b3fdc
commit 277d730f77
4 changed files with 47 additions and 29 deletions

View File

@@ -1,23 +0,0 @@
/*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
package com.facebook.flipper.plugins.uidebugger.descriptors
import android.widget.Button
import com.facebook.flipper.plugins.uidebugger.common.InspectableObject
object ButtonDescriptor : ChainedDescriptor<Button>() {
override fun onGetName(node: Button): String {
return node.javaClass.simpleName
}
override fun onGetData(
node: Button,
attributeSections: MutableMap<SectionName, InspectableObject>
) {}
}

View File

@@ -13,7 +13,6 @@ import android.graphics.drawable.Drawable
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.view.Window import android.view.Window
import android.widget.Button
import android.widget.TextView import android.widget.TextView
import androidx.viewpager.widget.ViewPager import androidx.viewpager.widget.ViewPager
import com.facebook.flipper.plugins.uidebugger.common.UIDebuggerException import com.facebook.flipper.plugins.uidebugger.common.UIDebuggerException
@@ -33,7 +32,6 @@ class DescriptorRegister {
mapping.register(ViewGroup::class.java, ViewGroupDescriptor) mapping.register(ViewGroup::class.java, ViewGroupDescriptor)
mapping.register(View::class.java, ViewDescriptor) mapping.register(View::class.java, ViewDescriptor)
mapping.register(TextView::class.java, TextViewDescriptor) mapping.register(TextView::class.java, TextViewDescriptor)
mapping.register(Button::class.java, ButtonDescriptor)
mapping.register(ViewPager::class.java, ViewPagerDescriptor) mapping.register(ViewPager::class.java, ViewPagerDescriptor)
mapping.register(Drawable::class.java, DrawableDescriptor) mapping.register(Drawable::class.java, DrawableDescriptor)
mapping.register(ColorDrawable::class.java, ColorDrawableDescriptor) mapping.register(ColorDrawable::class.java, ColorDrawableDescriptor)

View File

@@ -7,17 +7,47 @@
package com.facebook.flipper.plugins.uidebugger.descriptors package com.facebook.flipper.plugins.uidebugger.descriptors
import android.os.Build
import android.widget.TextView import android.widget.TextView
import com.facebook.flipper.plugins.uidebugger.common.Inspectable
import com.facebook.flipper.plugins.uidebugger.common.InspectableObject import com.facebook.flipper.plugins.uidebugger.common.InspectableObject
import com.facebook.flipper.plugins.uidebugger.common.InspectableValue
object TextViewDescriptor : ChainedDescriptor<TextView>() { object TextViewDescriptor : ChainedDescriptor<TextView>() {
override fun onGetName(node: TextView): String { override fun onGetName(node: TextView): String = node.javaClass.simpleName
return node.javaClass.simpleName
}
override fun onGetData( override fun onGetData(
node: TextView, node: TextView,
attributeSections: MutableMap<SectionName, InspectableObject> attributeSections: MutableMap<SectionName, InspectableObject>
) {} ) {
val typeface = node.typeface
val props =
mutableMapOf<String, Inspectable>(
"text" to InspectableValue.Text(node.text.toString(), false),
"textSize" to InspectableValue.Number(node.textSize, false),
"textColor" to InspectableValue.Color(node.getTextColors().getDefaultColor(), false))
val typeFace =
mutableMapOf<String, InspectableValue>(
"isBold" to InspectableValue.Boolean(typeface.isBold, false),
"isItalic" to InspectableValue.Boolean(typeface.isItalic, false),
)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
typeFace["weight"] = InspectableValue.Number(typeface.weight, false)
}
props["typeface"] = InspectableObject(typeFace)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
props["minLines"] = InspectableValue.Number(node.minLines, false)
props["maxLines"] = InspectableValue.Number(node.maxLines, false)
props["minWidth"] = InspectableValue.Number(node.minWidth, false)
props["maxWidth"] = InspectableValue.Number(node.maxWidth, false)
}
attributeSections.put("TextView", InspectableObject(props))
}
} }

View File

@@ -8,10 +8,23 @@
package com.facebook.flipper.plugins.uidebugger.descriptors package com.facebook.flipper.plugins.uidebugger.descriptors
import androidx.viewpager.widget.ViewPager import androidx.viewpager.widget.ViewPager
import com.facebook.flipper.plugins.uidebugger.common.InspectableObject
import com.facebook.flipper.plugins.uidebugger.common.InspectableValue
object ViewPagerDescriptor : ChainedDescriptor<ViewPager>() { object ViewPagerDescriptor : ChainedDescriptor<ViewPager>() {
override fun onGetName(node: ViewPager): String = node.javaClass.simpleName override fun onGetName(node: ViewPager): String = node.javaClass.simpleName
override fun onGetActiveChild(node: ViewPager): Any? = node.getChildAt(node.currentItem) override fun onGetActiveChild(node: ViewPager): Any? = node.getChildAt(node.currentItem)
override fun onGetData(
node: ViewPager,
attributeSections: MutableMap<SectionName, InspectableObject>
) {
val props =
InspectableObject(
mapOf("currentItemIndex" to InspectableValue.Number(node.currentItem, false)))
attributeSections.put("ViewPager", props)
}
} }