From a4d3167faef9690b7a8e0742f460711315de08c7 Mon Sep 17 00:00:00 2001 From: Luke De Feo Date: Mon, 14 Nov 2022 07:05:58 -0800 Subject: [PATCH] Application, window and activity all inherit window bounds Reviewed By: lblasa Differential Revision: D41218326 fbshipit-source-id: aa0fad5c80e482629a70240da81c347217d12ea7 --- .../descriptors/ActivityDescriptor.kt | 4 ++++ .../descriptors/ApplicationRefDescriptor.kt | 7 ++----- .../uidebugger/descriptors/WindowDescriptor.kt | 4 ++++ .../plugins/uidebugger/util/DisplayMetrics.kt | 18 ++++++++++++++++++ 4 files changed, 28 insertions(+), 5 deletions(-) create mode 100644 android/src/main/java/com/facebook/flipper/plugins/uidebugger/util/DisplayMetrics.kt diff --git a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/descriptors/ActivityDescriptor.kt b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/descriptors/ActivityDescriptor.kt index 51c5ee847..bdc61b947 100644 --- a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/descriptors/ActivityDescriptor.kt +++ b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/descriptors/ActivityDescriptor.kt @@ -9,9 +9,13 @@ package com.facebook.flipper.plugins.uidebugger.descriptors import android.app.Activity 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() { + override fun onGetBounds(node: Activity): Bounds = DisplayMetrics.getDisplayBounds() + override fun onGetName(node: Activity): String { return node.javaClass.simpleName } diff --git a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/descriptors/ApplicationRefDescriptor.kt b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/descriptors/ApplicationRefDescriptor.kt index 38534fb39..aadf19c8f 100644 --- a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/descriptors/ApplicationRefDescriptor.kt +++ b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/descriptors/ApplicationRefDescriptor.kt @@ -8,10 +8,10 @@ package com.facebook.flipper.plugins.uidebugger.descriptors import android.app.Activity -import android.content.res.Resources import android.view.View import com.facebook.flipper.plugins.uidebugger.core.ApplicationRef import com.facebook.flipper.plugins.uidebugger.model.Bounds +import com.facebook.flipper.plugins.uidebugger.util.DisplayMetrics object ApplicationRefDescriptor : ChainedDescriptor() { @@ -19,10 +19,7 @@ object ApplicationRefDescriptor : ChainedDescriptor() { return if (node.activitiesStack.isNotEmpty()) node.activitiesStack.last() else null } - override fun onGetBounds(node: ApplicationRef): Bounds { - val displayMetrics = Resources.getSystem().displayMetrics - return Bounds(0, 0, displayMetrics.widthPixels, displayMetrics.heightPixels) - } + override fun onGetBounds(node: ApplicationRef): Bounds = DisplayMetrics.getDisplayBounds() override fun onGetName(node: ApplicationRef): String { val applicationInfo = node.application.applicationInfo diff --git a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/descriptors/WindowDescriptor.kt b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/descriptors/WindowDescriptor.kt index 47f084a0c..60913a292 100644 --- a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/descriptors/WindowDescriptor.kt +++ b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/descriptors/WindowDescriptor.kt @@ -10,11 +10,13 @@ package com.facebook.flipper.plugins.uidebugger.descriptors import android.annotation.SuppressLint import android.util.TypedValue 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.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 +import com.facebook.flipper.plugins.uidebugger.util.DisplayMetrics import java.lang.reflect.Field object WindowDescriptor : ChainedDescriptor() { @@ -31,6 +33,8 @@ object WindowDescriptor : ChainedDescriptor() { return node.javaClass.simpleName } + override fun onGetBounds(node: Window): Bounds = DisplayMetrics.getDisplayBounds() + override fun onGetChildren(node: Window): List = listOf(node.decorView) @SuppressLint("PrivateApi") diff --git a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/util/DisplayMetrics.kt b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/util/DisplayMetrics.kt new file mode 100644 index 000000000..03fec5f30 --- /dev/null +++ b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/util/DisplayMetrics.kt @@ -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) + } +}