Application, window and activity all inherit window bounds

Reviewed By: lblasa

Differential Revision: D41218326

fbshipit-source-id: aa0fad5c80e482629a70240da81c347217d12ea7
This commit is contained in:
Luke De Feo
2022-11-14 07:05:58 -08:00
committed by Facebook GitHub Bot
parent 7626453f55
commit a4d3167fae
4 changed files with 28 additions and 5 deletions

View File

@@ -9,9 +9,13 @@ package com.facebook.flipper.plugins.uidebugger.descriptors
import android.app.Activity import android.app.Activity
import com.facebook.flipper.plugins.uidebugger.core.FragmentTracker import com.facebook.flipper.plugins.uidebugger.core.FragmentTracker
import com.facebook.flipper.plugins.uidebugger.model.Bounds
import com.facebook.flipper.plugins.uidebugger.util.DisplayMetrics
object ActivityDescriptor : ChainedDescriptor<Activity>() { object ActivityDescriptor : ChainedDescriptor<Activity>() {
override fun onGetBounds(node: Activity): Bounds = DisplayMetrics.getDisplayBounds()
override fun onGetName(node: Activity): String { override fun onGetName(node: Activity): String {
return node.javaClass.simpleName return node.javaClass.simpleName
} }

View File

@@ -8,10 +8,10 @@
package com.facebook.flipper.plugins.uidebugger.descriptors package com.facebook.flipper.plugins.uidebugger.descriptors
import android.app.Activity import android.app.Activity
import android.content.res.Resources
import android.view.View import android.view.View
import com.facebook.flipper.plugins.uidebugger.core.ApplicationRef import com.facebook.flipper.plugins.uidebugger.core.ApplicationRef
import com.facebook.flipper.plugins.uidebugger.model.Bounds import com.facebook.flipper.plugins.uidebugger.model.Bounds
import com.facebook.flipper.plugins.uidebugger.util.DisplayMetrics
object ApplicationRefDescriptor : ChainedDescriptor<ApplicationRef>() { object ApplicationRefDescriptor : ChainedDescriptor<ApplicationRef>() {
@@ -19,10 +19,7 @@ object ApplicationRefDescriptor : ChainedDescriptor<ApplicationRef>() {
return if (node.activitiesStack.isNotEmpty()) node.activitiesStack.last() else null return if (node.activitiesStack.isNotEmpty()) node.activitiesStack.last() else null
} }
override fun onGetBounds(node: ApplicationRef): Bounds { override fun onGetBounds(node: ApplicationRef): Bounds = DisplayMetrics.getDisplayBounds()
val displayMetrics = Resources.getSystem().displayMetrics
return Bounds(0, 0, displayMetrics.widthPixels, displayMetrics.heightPixels)
}
override fun onGetName(node: ApplicationRef): String { override fun onGetName(node: ApplicationRef): String {
val applicationInfo = node.application.applicationInfo val applicationInfo = node.application.applicationInfo

View File

@@ -10,11 +10,13 @@ package com.facebook.flipper.plugins.uidebugger.descriptors
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.util.TypedValue import android.util.TypedValue
import android.view.Window import android.view.Window
import com.facebook.flipper.plugins.uidebugger.model.Bounds
import com.facebook.flipper.plugins.uidebugger.model.Color import com.facebook.flipper.plugins.uidebugger.model.Color
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
import com.facebook.flipper.plugins.uidebugger.util.DisplayMetrics
import java.lang.reflect.Field import java.lang.reflect.Field
object WindowDescriptor : ChainedDescriptor<Window>() { object WindowDescriptor : ChainedDescriptor<Window>() {
@@ -31,6 +33,8 @@ object WindowDescriptor : ChainedDescriptor<Window>() {
return node.javaClass.simpleName return node.javaClass.simpleName
} }
override fun onGetBounds(node: Window): Bounds = DisplayMetrics.getDisplayBounds()
override fun onGetChildren(node: Window): List<Any> = listOf(node.decorView) override fun onGetChildren(node: Window): List<Any> = listOf(node.decorView)
@SuppressLint("PrivateApi") @SuppressLint("PrivateApi")

View File

@@ -0,0 +1,18 @@
/*
* 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.util
import android.content.res.Resources
import com.facebook.flipper.plugins.uidebugger.model.Bounds
object DisplayMetrics {
fun getDisplayBounds(): Bounds {
val displayMetrics = Resources.getSystem().displayMetrics
return Bounds(0, 0, displayMetrics.widthPixels, displayMetrics.heightPixels)
}
}