Skip to content

Commit a2dcd60

Browse files
Back out "Back out "[react-native-github] Remove UIManagerCommitHookManager 2/2"" (#54393)
Summary: Changelog: [Internal] Differential Revision: D86139801
1 parent 30370f6 commit a2dcd60

File tree

8 files changed

+32
-68
lines changed

8 files changed

+32
-68
lines changed

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/FabricUIManager.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -964,15 +964,15 @@ public void runGuarded() {
964964
* by an ImageView.
965965
*/
966966
@UnstableReactNativeAPI
967-
public void experimental_prefetchResources(
968-
int surfaceId, String componentName, ReadableMapBuffer params) {
967+
public void experimental_prefetchResource(
968+
int surfaceId, String componentName, ReadableMapBuffer params, int tag) {
969969
if (ReactNativeFeatureFlags.enableImagePrefetchingOnUiThreadAndroid()) {
970970
mMountItemDispatcher.addMountItem(
971-
new PrefetchResourcesMountItem(surfaceId, componentName, params));
971+
new PrefetchResourcesMountItem(surfaceId, componentName, params, tag));
972972
} else {
973973
SurfaceMountingManager surfaceMountingManager = mMountingManager.getSurfaceManager(surfaceId);
974974
if (surfaceMountingManager != null) {
975-
surfaceMountingManager.experimental_prefetchResources(surfaceId, componentName, params);
975+
surfaceMountingManager.experimental_prefetchResource(surfaceId, componentName, params, tag);
976976
}
977977
}
978978
}

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/SurfaceMountingManager.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -817,19 +817,20 @@ private void updateProps(
817817
* @param surfaceId surface ID
818818
* @param componentName
819819
* @param params prefetch request params defined in C++
820+
* @param tag react tag of the component
820821
*/
821822
@SuppressLint("FunctionName")
822823
@AnyThread
823824
@UnstableReactNativeAPI
824-
public void experimental_prefetchResources(
825-
int surfaceId, String componentName, MapBuffer params) {
825+
public void experimental_prefetchResource(
826+
int surfaceId, String componentName, MapBuffer params, int tag) {
826827
if (isStopped()) {
827828
return;
828829
}
829830
mViewManagerRegistry
830831
.get(componentName)
831-
.experimental_prefetchResources(
832-
surfaceId, Assertions.assertNotNull(mThemedReactContext), params);
832+
.experimental_prefetchResource(
833+
surfaceId, Assertions.assertNotNull(mThemedReactContext), params, tag);
833834
}
834835

835836
@Deprecated

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/fabric/mounting/mountitems/PrefetchResourcesMountItem.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,18 @@ internal class PrefetchResourcesMountItem(
1616
private val surfaceId: Int,
1717
private val componentName: String,
1818
private val params: ReadableMapBuffer,
19+
private val tag: Int,
1920
) : MountItem {
2021

2122
@OptIn(UnstableReactNativeAPI::class, FrameworkAPI::class)
2223
override fun execute(mountingManager: MountingManager) {
2324
mountingManager
2425
.getSurfaceManager(surfaceId)
25-
?.experimental_prefetchResources(
26+
?.experimental_prefetchResource(
2627
surfaceId,
2728
componentName,
2829
params,
30+
tag,
2931
)
3032
}
3133

packages/react-native/ReactAndroid/src/main/java/com/facebook/react/uimanager/ViewManager.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -489,10 +489,11 @@ public void onSurfaceStopped(int surfaceId) {
489489
* @param surfaceId surface ID
490490
* @param reactContext {@link com.facebook.react.bridge.ReactContext} used for the view.
491491
* @param params {@link MapBuffer} prefetch request params defined in C++
492+
* @param tag react tag of the component
492493
*/
493494
@UnstableReactNativeAPI
494-
public void experimental_prefetchResources(
495-
int surfaceId, ThemedReactContext reactContext, MapBuffer params) {
495+
public void experimental_prefetchResource(
496+
int surfaceId, ThemedReactContext reactContext, MapBuffer params, int tag) {
496497
return;
497498
}
498499

packages/react-native/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.cpp

Lines changed: 13 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -21,40 +21,26 @@ ImageRequest ImageFetcher::requestImage(
2121
SurfaceId surfaceId,
2222
const ImageRequestParams& imageRequestParams,
2323
Tag tag) {
24-
items_[surfaceId].emplace_back(
25-
ImageRequestItem{
26-
.imageSource = imageSource,
27-
.imageRequestParams = imageRequestParams,
28-
.tag = tag});
29-
3024
auto telemetry = std::make_shared<ImageTelemetry>(surfaceId);
3125

32-
flushImageRequests();
33-
34-
return {imageSource, telemetry};
35-
}
36-
37-
void ImageFetcher::flushImageRequests() {
38-
if (items_.empty()) {
39-
return;
40-
}
41-
4226
auto fabricUIManager_ =
4327
contextContainer_->at<jni::global_ref<jobject>>("FabricUIManager");
44-
static auto prefetchResources =
28+
static auto prefetchResource =
4529
fabricUIManager_->getClass()
4630
->getMethod<void(
47-
SurfaceId, std::string, JReadableMapBuffer::javaobject)>(
48-
"experimental_prefetchResources");
31+
SurfaceId, std::string, JReadableMapBuffer::javaobject, Tag)>(
32+
"experimental_prefetchResource");
33+
34+
auto readableMapBuffer = JReadableMapBuffer::createWithContents(
35+
serializeImageRequest(imageSource, imageRequestParams));
36+
prefetchResource(
37+
fabricUIManager_,
38+
surfaceId,
39+
"RCTImageView",
40+
readableMapBuffer.get(),
41+
tag);
4942

50-
for (auto& [surfaceId, surfaceImageRequests] : items_) {
51-
auto readableMapBuffer = JReadableMapBuffer::createWithContents(
52-
serializeImageRequests(surfaceImageRequests));
53-
prefetchResources(
54-
fabricUIManager_, surfaceId, "RCTImageView", readableMapBuffer.get());
55-
}
56-
57-
items_.clear();
43+
return {imageSource, telemetry};
5844
}
5945

6046
} // namespace facebook::react

packages/react-native/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageFetcher.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@
1111
#include <react/renderer/imagemanager/ImageRequestParams.h>
1212
#include <react/utils/ContextContainer.h>
1313
#include <memory>
14-
#include <unordered_map>
15-
#include <vector>
1614

1715
namespace facebook::react {
1816

@@ -32,9 +30,6 @@ class ImageFetcher {
3230
Tag tag);
3331

3432
private:
35-
void flushImageRequests();
36-
37-
std::unordered_map<SurfaceId, std::vector<ImageRequestItem>> items_;
3833
std::shared_ptr<const ContextContainer> contextContainer_;
3934
};
4035
} // namespace facebook::react

packages/react-native/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/ImageRequestParams.h

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -95,10 +95,4 @@ class ImageRequestParams {
9595
}
9696
};
9797

98-
struct ImageRequestItem {
99-
ImageSource imageSource;
100-
ImageRequestParams imageRequestParams;
101-
Tag tag{};
102-
};
103-
10498
} // namespace facebook::react

packages/react-native/ReactCommon/react/renderer/imagemanager/platform/android/react/renderer/imagemanager/conversions.h

Lines changed: 4 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
#include <react/renderer/mapbuffer/MapBuffer.h>
1414
#include <react/renderer/mapbuffer/MapBufferBuilder.h>
1515
#include <react/utils/to_underlying.h>
16-
#include <vector>
1716

1817
namespace facebook::react {
1918

@@ -34,7 +33,6 @@ constexpr MapBuffer::Key IS_KEY_FADE_DURATION = 11;
3433
constexpr MapBuffer::Key IS_KEY_PROGRESSIVE_RENDERING_ENABLED = 12;
3534
constexpr MapBuffer::Key IS_KEY_LOADING_INDICATOR_SRC = 13;
3635
constexpr MapBuffer::Key IS_KEY_ANALYTIC_TAG = 14;
37-
constexpr MapBuffer::Key IS_KEY_TAG = 15;
3836

3937
inline void serializeImageSource(MapBufferBuilder &builder, const ImageSource &imageSource)
4038
{
@@ -63,26 +61,13 @@ inline void serializeImageRequestParams(MapBufferBuilder &builder, const ImageRe
6361
builder.putString(IS_KEY_ANALYTIC_TAG, imageRequestParams.analyticTag);
6462
}
6563

66-
inline MapBuffer serializeImageRequest(const ImageRequestItem &item)
67-
{
68-
auto builder = MapBufferBuilder();
69-
serializeImageSource(builder, item.imageSource);
70-
serializeImageRequestParams(builder, item.imageRequestParams);
71-
builder.putInt(IS_KEY_TAG, item.tag);
72-
return builder.build();
73-
}
74-
7564
} // namespace
7665

77-
inline MapBuffer serializeImageRequests(const std::vector<ImageRequestItem> &items)
66+
inline MapBuffer serializeImageRequest(const ImageSource &imageSource, const ImageRequestParams &imageRequestParams)
7867
{
79-
std::vector<MapBuffer> mapBufferList;
80-
mapBufferList.reserve(items.size());
81-
for (const auto &item : items) {
82-
mapBufferList.emplace_back(serializeImageRequest(item));
83-
}
84-
MapBufferBuilder builder;
85-
builder.putMapBufferList(0, mapBufferList);
68+
auto builder = MapBufferBuilder();
69+
serializeImageSource(builder, imageSource);
70+
serializeImageRequestParams(builder, imageRequestParams);
8671
return builder.build();
8772
}
8873

0 commit comments

Comments
 (0)