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 e18dc9fca..f794e7f1b 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 @@ -24,12 +24,12 @@ object ActivityDescriptor : AbstractChainedDescriptor() { override fun onGetChildren(activity: Activity, children: MutableList) { activity.window?.let { window -> children.add(activity.window) } - var fragments = getFragments(FragmentCompat.supportInstance, activity) + var fragments = getDialogFragments(FragmentCompat.supportInstance, activity) for (fragment in fragments) { children.add(fragment) } - fragments = getFragments(FragmentCompat.frameworkInstance, activity) + fragments = getDialogFragments(FragmentCompat.frameworkInstance, activity) for (fragment in fragments) { children.add(fragment) } @@ -40,11 +40,14 @@ object ActivityDescriptor : AbstractChainedDescriptor() { attributeSections: MutableMap ) {} - private fun getFragments(compat: FragmentCompat<*, *, *, *>?, activity: Activity): List { + private fun getDialogFragments( + compat: FragmentCompat<*, *, *, *>?, + activity: Activity + ): List { if (compat == null) { return emptyList() } - return compat?.getFragments(activity) + return compat.getDialogFragments(activity) } } diff --git a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/stetho/FragmentCompat.kt b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/stetho/FragmentCompat.kt index a06c2aa69..f0b47cc77 100644 --- a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/stetho/FragmentCompat.kt +++ b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/stetho/FragmentCompat.kt @@ -103,7 +103,7 @@ abstract class FragmentCompat< abstract fun forFragmentManager(): FragmentManagerAccessor? abstract fun forFragmentActivity(): FragmentActivityAccessor? - abstract fun getFragments(activity: Activity): List + abstract fun getDialogFragments(activity: Activity): List abstract fun findFragmentForViewInActivity(activity: Activity, view: View): Any? abstract fun findFragmentForViewInFragment(fragment: Any, view: View): Any? @@ -117,10 +117,8 @@ abstract class FragmentCompat< if (fieldMAdded == null) { fragmentManager?.let { manager -> val field = manager::class.java.getDeclaredField("mAdded") - if (field != null) { - field.isAccessible = true - fieldMAdded = field - } + field.isAccessible = true + fieldMAdded = field } } diff --git a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/stetho/FragmentCompatFramework.kt b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/stetho/FragmentCompatFramework.kt index cbbba5eb4..5b670a681 100644 --- a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/stetho/FragmentCompatFramework.kt +++ b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/stetho/FragmentCompatFramework.kt @@ -64,7 +64,7 @@ class FragmentCompatFramework : return fragmentActivityAccessor } - override fun getFragments(activity: Activity): List { + override fun getDialogFragments(activity: Activity): List { if (!fragmentActivityClass.isInstance(activity)) { return emptyList() } @@ -79,11 +79,13 @@ class FragmentCompatFramework : } catch (e: Exception) {} if (addedFragments != null) { - val N = addedFragments.size - 1 + val n = addedFragments.size - 1 val dialogFragments = mutableListOf() - for (i in 0..N) { + for (i in 0..n) { val fragment = addedFragments[i] - dialogFragmentClass?.isInstance(fragment)?.let { fragment -> dialogFragments.add(fragment) } + if (fragment != null && dialogFragmentClass.isInstance(fragment)) { + dialogFragments.add(fragment) + } } return dialogFragments } @@ -113,8 +115,8 @@ class FragmentCompatFramework : } catch (e: Exception) {} if (fragments != null) { - val N = fragments.size - 1 - for (i in 0..N) { + val n = fragments.size - 1 + for (i in 0..n) { val fragment = fragments[i] val result = findFragmentForViewInFragment(fragment, view) if (result != null) { diff --git a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/stetho/FragmentCompatSupportLib.kt b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/stetho/FragmentCompatSupportLib.kt index dcda39127..aa7b71b15 100644 --- a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/stetho/FragmentCompatSupportLib.kt +++ b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/stetho/FragmentCompatSupportLib.kt @@ -41,7 +41,7 @@ class FragmentCompatSupportLib : return fragmentActivityAccessor } - override fun getFragments(activity: Activity): List { + override fun getDialogFragments(activity: Activity): List { if (!fragmentActivityClass.isInstance(activity)) { return emptyList() } @@ -57,11 +57,13 @@ class FragmentCompatSupportLib : } catch (e: Exception) {} if (addedFragments != null) { - val N = addedFragments.size - 1 + val n = addedFragments.size - 1 val dialogFragments = mutableListOf() - for (i in 0..N) { + for (i in 0..n) { val fragment = addedFragments[i] - dialogFragmentClass?.isInstance(fragment)?.let { fragment -> dialogFragments.add(fragment) } + if (fragment != null && dialogFragmentClass.isInstance(fragment)) { + dialogFragments.add(fragment) + } } return dialogFragments } @@ -92,8 +94,8 @@ class FragmentCompatSupportLib : } catch (e: Exception) {} if (fragments != null) { - val N = fragments.size - 1 - for (i in 0..N) { + val n = fragments.size - 1 + for (i in 0..n) { val fragment = fragments[i] val result = findFragmentForViewInFragment(fragment, view) if (result != null) { diff --git a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/stetho/ReflectionUtil.kt b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/stetho/ReflectionUtil.kt index 92e9c3252..b2e640472 100644 --- a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/stetho/ReflectionUtil.kt +++ b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/stetho/ReflectionUtil.kt @@ -10,7 +10,7 @@ package com.facebook.flipper.plugins.uidebugger.stetho import java.lang.reflect.Field object ReflectionUtil { - inline fun tryGetClassForName(className: String): Class<*>? { + fun tryGetClassForName(className: String): Class<*>? { return try { Class.forName(className) } catch (e: ClassNotFoundException) { @@ -18,7 +18,7 @@ object ReflectionUtil { } } - inline fun tryGetDeclaredField(theClass: Class<*>, fieldName: String): Field? { + fun tryGetDeclaredField(theClass: Class<*>, fieldName: String): Field? { return try { theClass.getDeclaredField(fieldName) } catch (e: NoSuchFieldException) { @@ -26,7 +26,7 @@ object ReflectionUtil { } } - inline fun getFieldValue(field: Field, target: Any?): Any? { + fun getFieldValue(field: Field, target: Any?): Any? { return try { field[target] } catch (e: IllegalAccessException) { diff --git a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/stetho/ResourcesUtil.kt b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/stetho/ResourcesUtil.kt index 120164762..d5d4e5e03 100644 --- a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/stetho/ResourcesUtil.kt +++ b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/stetho/ResourcesUtil.kt @@ -14,11 +14,10 @@ import javax.annotation.Nonnull object ResourcesUtil { @Nonnull fun getIdStringQuietly(idContext: Any, r: Resources?, resourceId: Int): String { - try { - return getIdString(r, resourceId) + return try { + getIdString(r, resourceId) } catch (e: NotFoundException) { - val idString = getFallbackIdString(resourceId) - return idString + getFallbackIdString(resourceId) } } diff --git a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/stetho/ViewUtil.kt b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/stetho/ViewUtil.kt index b1bcf3e00..324a884f9 100644 --- a/android/src/main/java/com/facebook/flipper/plugins/uidebugger/stetho/ViewUtil.kt +++ b/android/src/main/java/com/facebook/flipper/plugins/uidebugger/stetho/ViewUtil.kt @@ -31,15 +31,19 @@ object ViewUtil { } private fun tryGetActivity(context: Context): Activity? { - var context: Context? = context - while (context != null) { - context = - if (context is Activity) { - return context - } else if (context is ContextWrapper) { - context.baseContext - } else { - return null + var ctx: Context? = context + while (ctx != null) { + ctx = + when (ctx) { + is Activity -> { + return ctx + } + is ContextWrapper -> { + ctx.baseContext + } + else -> { + return null + } } } return null