diff --git a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/common/BitmapPool.kt b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/common/BitmapPool.kt index d4d21d2a7..778fc2e7c 100644 --- a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/common/BitmapPool.kt +++ b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/common/BitmapPool.kt @@ -17,6 +17,7 @@ class BitmapPool(private val config: Bitmap.Config = Bitmap.Config.RGB_565) { interface ReusableBitmap { val bitmap: Bitmap? + fun readyForReuse() } diff --git a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/common/EnumMapping.kt b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/common/EnumMapping.kt index 12c685d8e..5468dc901 100644 --- a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/common/EnumMapping.kt +++ b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/common/EnumMapping.kt @@ -41,6 +41,7 @@ open class EnumMapping(private val mapping: Map) { fun toInspectable(value: T): InspectableValue.Enum { return InspectableValue.Enum(getStringRepresentation(value)) } + companion object { const val NoMapping = "__UNKNOWN_ENUM_VALUE__" } diff --git a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/core/ActivityTracker.kt b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/core/ActivityTracker.kt index 7ce62b94e..15e707cb8 100644 --- a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/core/ActivityTracker.kt +++ b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/core/ActivityTracker.kt @@ -19,7 +19,9 @@ import java.lang.reflect.Method object ActivityTracker : Application.ActivityLifecycleCallbacks { interface ActivityStackChangedListener { fun onActivityAdded(activity: Activity, stack: List) + fun onActivityStackChanged(stack: List) + fun onActivityDestroyed(activity: Activity, stack: List) } diff --git a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/core/RootViewResolver.kt b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/core/RootViewResolver.kt index 34961cde6..dc5ea1a2f 100644 --- a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/core/RootViewResolver.kt +++ b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/core/RootViewResolver.kt @@ -34,7 +34,9 @@ class RootViewResolver { interface Listener { fun onRootViewAdded(rootView: View) + fun onRootViewRemoved(rootView: View) + fun onRootViewsChanged(rootViews: List) } @@ -105,6 +107,7 @@ class RootViewResolver { class ObservableViewArrayList : ArrayList() { private var listener: Listener? = null + fun setListener(listener: Listener?) { this.listener = listener } diff --git a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/descriptors/OffsetChildDescriptor.kt b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/descriptors/OffsetChildDescriptor.kt index 59c1a4511..2471c86c0 100644 --- a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/descriptors/OffsetChildDescriptor.kt +++ b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/descriptors/OffsetChildDescriptor.kt @@ -42,6 +42,7 @@ object OffsetChildDescriptor : NodeDescriptor { node.descriptor.getAttributes(node.child) override fun getTags(node: OffsetChild): Set = node.descriptor.getTags(node.child) + override fun getSnapshot(node: OffsetChild, bitmap: Bitmap?): Bitmap? = node.descriptor.getSnapshot(node.child, bitmap) } diff --git a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/descriptors/ViewGroupDescriptor.kt b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/descriptors/ViewGroupDescriptor.kt index 3c5e1f8a9..dc199f7ec 100644 --- a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/descriptors/ViewGroupDescriptor.kt +++ b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/descriptors/ViewGroupDescriptor.kt @@ -28,6 +28,7 @@ object ViewGroupDescriptor : ChainedDescriptor() { private const val NAMESPACE = "ViewGroup" private var SectionId = MetadataRegister.register(MetadataRegister.TYPE_ATTRIBUTE, NAMESPACE, NAMESPACE) + override fun onGetName(node: ViewGroup): String { return node.javaClass.simpleName } diff --git a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/descriptors/ViewPagerDescriptor.kt b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/descriptors/ViewPagerDescriptor.kt index cdd10c885..c322c25cc 100644 --- a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/descriptors/ViewPagerDescriptor.kt +++ b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/descriptors/ViewPagerDescriptor.kt @@ -18,6 +18,7 @@ object ViewPagerDescriptor : ChainedDescriptor() { private const val NAMESPACE = "ViewPager" private var SectionId = MetadataRegister.register(MetadataRegister.TYPE_ATTRIBUTE, NAMESPACE, NAMESPACE) + override fun onGetName(node: ViewPager): String = node.javaClass.simpleName override fun onGetActiveChild(node: ViewPager): Any? { @@ -31,6 +32,7 @@ object ViewPagerDescriptor : ChainedDescriptor() { private val CurrentItemIndexAttributeId = MetadataRegister.register(MetadataRegister.TYPE_ATTRIBUTE, NAMESPACE, "currentItemIndex") + override fun onGetAttributes( node: ViewPager, attributeSections: MutableMap diff --git a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/model/Types.kt b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/model/Types.kt index abb447526..a14137eb3 100644 --- a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/model/Types.kt +++ b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/model/Types.kt @@ -38,6 +38,7 @@ data class Color(val r: Int, val g: Int, val b: Int, val a: Int) { val blue: Int = (color shr 0) and 0xFF return Color(red, green, blue, alpha) } + fun fromColor(color: android.graphics.Color): Color { return fromColor(color.toArgb()) } diff --git a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/observers/TreeObserverFactory.kt b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/observers/TreeObserverFactory.kt index 769a09813..33f480156 100644 --- a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/observers/TreeObserverFactory.kt +++ b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/observers/TreeObserverFactory.kt @@ -11,6 +11,7 @@ import com.facebook.flipper.plugins.uidebugger.core.UIDContext interface TreeObserverBuilder { fun canBuildFor(node: Any): Boolean + fun build(context: UIDContext): TreeObserver } diff --git a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/util/MaybeDeferred.kt b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/util/MaybeDeferred.kt index 057a47209..cd84f3387 100644 --- a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/util/MaybeDeferred.kt +++ b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/util/MaybeDeferred.kt @@ -26,6 +26,7 @@ class Immediate(private val value: T) : MaybeDeferred() { class Deferred(private val lazyLoader: () -> T) : MaybeDeferred() { override fun value(): T = lazyLoader() + override fun map(fn: (T) -> U): MaybeDeferred { return Deferred { fn(lazyLoader()) } } diff --git a/android/src/test/java/com/facebook/flipper/plugins/uidebugger/UIDebuggerFlipperPluginTest.kt b/android/src/test/java/com/facebook/flipper/plugins/uidebugger/UIDebuggerFlipperPluginTest.kt index a7ba21948..573dc6072 100644 --- a/android/src/test/java/com/facebook/flipper/plugins/uidebugger/UIDebuggerFlipperPluginTest.kt +++ b/android/src/test/java/com/facebook/flipper/plugins/uidebugger/UIDebuggerFlipperPluginTest.kt @@ -28,6 +28,7 @@ class UIDebuggerFlipperPluginTest { Mockito.`when`(app.applicationContext).thenReturn(app) Mockito.`when`(app.packageName).thenReturn("com.facebook.flipper") } + @Throws(Exception::class) @Test fun emptyTest() { diff --git a/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/MarineMammals.kt b/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/MarineMammals.kt index bd429cf7e..c34d3db5c 100644 --- a/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/MarineMammals.kt +++ b/android/tutorial/src/main/java/com/facebook/flipper/sample/tutorial/MarineMammals.kt @@ -14,14 +14,18 @@ object MarineMammals { listOf( MarineMammal( "Polar Bear", - "https://upload.wikimedia.org/wikipedia/commons/thumb/8/84/Ursus_maritimus_4_1996-08-04.jpg/190px-Ursus_maritimus_4_1996-08-04.jpg".toUri()), + "https://upload.wikimedia.org/wikipedia/commons/thumb/8/84/Ursus_maritimus_4_1996-08-04.jpg/190px-Ursus_maritimus_4_1996-08-04.jpg" + .toUri()), MarineMammal( "Sea Otter", - "https://upload.wikimedia.org/wikipedia/commons/thumb/1/15/Sea_otter_cropped.jpg/220px-Sea_otter_cropped.jpg".toUri()), + "https://upload.wikimedia.org/wikipedia/commons/thumb/1/15/Sea_otter_cropped.jpg/220px-Sea_otter_cropped.jpg" + .toUri()), MarineMammal( "West Indian Manatee", - "https://upload.wikimedia.org/wikipedia/commons/thumb/6/6f/FL_fig04.jpg/230px-FL_fig04.jpg".toUri()), + "https://upload.wikimedia.org/wikipedia/commons/thumb/6/6f/FL_fig04.jpg/230px-FL_fig04.jpg" + .toUri()), MarineMammal( "Bottlenose Dolphin", - "https://upload.wikimedia.org/wikipedia/commons/thumb/1/10/Tursiops_truncatus_01.jpg/220px-Tursiops_truncatus_01.jpg".toUri())) + "https://upload.wikimedia.org/wikipedia/commons/thumb/1/10/Tursiops_truncatus_01.jpg/220px-Tursiops_truncatus_01.jpg" + .toUri())) }