From 5a38eebb5aab5ac9771475eb88b6797ace0b55d5 Mon Sep 17 00:00:00 2001 From: Gijs Weterings Date: Mon, 20 May 2024 03:39:46 -0700 Subject: [PATCH 1/4] [skip ci] Configure ViewHierarchy dump for RNTester Summary: Changelog: [Android][Added] add FBEndToEndDumpsysHelper stub to RNTester Android to be able to dump ViewHierarcies internally. Reviewed By: makovkastar Differential Revision: D54662739 --- .../facebook/react/FBEndToEndDumpsysHelper.kt | 16 ++++++++++++++++ .../com/facebook/react/uiapp/RNTesterActivity.kt | 12 ++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 packages/rn-tester/android/app/src/main/java/com/facebook/react/FBEndToEndDumpsysHelper.kt diff --git a/packages/rn-tester/android/app/src/main/java/com/facebook/react/FBEndToEndDumpsysHelper.kt b/packages/rn-tester/android/app/src/main/java/com/facebook/react/FBEndToEndDumpsysHelper.kt new file mode 100644 index 00000000000000..d5ba25052210c7 --- /dev/null +++ b/packages/rn-tester/android/app/src/main/java/com/facebook/react/FBEndToEndDumpsysHelper.kt @@ -0,0 +1,16 @@ +/* + * 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.react + +import java.io.PrintWriter + +object FBEndToEndDumpsysHelper { + fun maybeDump(prefix: String, writer: PrintWriter, args: Array?) { + // no-op This is an empty implementation to stub out Meta's internal dumpsys helper. + } +} diff --git a/packages/rn-tester/android/app/src/main/java/com/facebook/react/uiapp/RNTesterActivity.kt b/packages/rn-tester/android/app/src/main/java/com/facebook/react/uiapp/RNTesterActivity.kt index ad9bff582193b4..1b954ed1efe243 100644 --- a/packages/rn-tester/android/app/src/main/java/com/facebook/react/uiapp/RNTesterActivity.kt +++ b/packages/rn-tester/android/app/src/main/java/com/facebook/react/uiapp/RNTesterActivity.kt @@ -8,9 +8,12 @@ package com.facebook.react.uiapp import android.os.Bundle +import com.facebook.react.FBEndToEndDumpsysHelper import com.facebook.react.ReactActivity import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled import com.facebook.react.defaults.DefaultReactActivityDelegate +import java.io.FileDescriptor +import java.io.PrintWriter class RNTesterActivity : ReactActivity() { class RNTesterActivityDelegate(val activity: ReactActivity, mainComponentName: String) : @@ -37,4 +40,13 @@ class RNTesterActivity : ReactActivity() { override fun createReactActivityDelegate() = RNTesterActivityDelegate(this, mainComponentName) override fun getMainComponentName() = "RNTesterApp" + + override fun dump( + prefix: String, + fd: FileDescriptor?, + writer: PrintWriter, + args: Array? + ) { + FBEndToEndDumpsysHelper.maybeDump(prefix, writer, args) + } } From 86741f45916eae41d592f629d0b870c84a600abe Mon Sep 17 00:00:00 2001 From: Gijs Weterings Date: Mon, 20 May 2024 03:39:46 -0700 Subject: [PATCH 2/4] [skip ci] Allow Deeplinking via Linking.getInitialURL() (#44552) Summary: Changelog: [Android][Fixed] If the RNTester app is started with a deeplink intent, we now correctly navigate there for Android to facilitate e2e testing. This already worked on ios. Reviewed By: javache Differential Revision: D54662737 --- packages/rn-tester/js/RNTesterAppShared.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/rn-tester/js/RNTesterAppShared.js b/packages/rn-tester/js/RNTesterAppShared.js index 2dd0eb9cb49326..a693a0768792cd 100644 --- a/packages/rn-tester/js/RNTesterAppShared.js +++ b/packages/rn-tester/js/RNTesterAppShared.js @@ -199,6 +199,10 @@ const RNTesterApp = ({ [dispatch], ); React.useEffect(() => { + // Initial deeplink + Linking.getInitialURL() + .then(url => url != null && handleOpenUrlRequest({url: url})) + .catch(_ => {}); const subscription = Linking.addEventListener('url', handleOpenUrlRequest); return () => subscription.remove(); }, [handleOpenUrlRequest]); From 961cf38da47f6520417e578593d93c1b863ab183 Mon Sep 17 00:00:00 2001 From: Gijs Weterings Date: Mon, 20 May 2024 03:39:46 -0700 Subject: [PATCH 3/4] [skip ci] default the RNTTestDetails to collapsed by default Summary: tsia. Done to allow for easier interaction of the examples, especially those with long descriptions Changelog: [Internal] Reviewed By: NickGerleman Differential Revision: D57278607 --- packages/rn-tester/js/components/RNTTestDetails.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/rn-tester/js/components/RNTTestDetails.js b/packages/rn-tester/js/components/RNTTestDetails.js index 7ca2bf52069fb7..8cf46bce804036 100644 --- a/packages/rn-tester/js/components/RNTTestDetails.js +++ b/packages/rn-tester/js/components/RNTTestDetails.js @@ -23,7 +23,7 @@ function RNTTestDetails({ title: string, theme: RNTesterTheme, }): React.Node { - const [collapsed, setCollapsed] = React.useState(false); + const [collapsed, setCollapsed] = React.useState(true); const content = ( <> From ce42e0ece60093ffb44672143288c94f6a198edf Mon Sep 17 00:00:00 2001 From: Gijs Weterings Date: Mon, 20 May 2024 03:39:46 -0700 Subject: [PATCH 4/4] Deduplicate test case for TextExample in preparation of rntester android onboarding Summary: D57197676 reordered the TextExample test cases, but accidentally reused the same string as the case in packages/rn-tester/js/examples/Text/TextInlineViewsExample.js Changelog: [Internal] Reviewed By: rshest Differential Revision: D57279961 --- packages/rn-tester/js/examples/Text/TextExample.android.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/rn-tester/js/examples/Text/TextExample.android.js b/packages/rn-tester/js/examples/Text/TextExample.android.js index 56383c78431015..f5bbc0727e9898 100644 --- a/packages/rn-tester/js/examples/Text/TextExample.android.js +++ b/packages/rn-tester/js/examples/Text/TextExample.android.js @@ -1211,7 +1211,7 @@ const examples = [ }, { title: 'Inline views', - name: 'inlineViews', + name: 'inlineViewsBasic', render: function (): React.Node { return ; },