From 9065666f855f9e564020b87e6cb7b0297ad6fceb Mon Sep 17 00:00:00 2001 From: Ramanpreet Nara Date: Mon, 21 Aug 2023 11:38:04 -0700 Subject: [PATCH] Refactor: Use get/setCurrentActivity in ReactHost (#38998) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/38998 Instead of using the mActivity reference directly, let's just use getCurrentActivity() and setCurrentActivity(). Changelog: [Internal] Differential Revision: https://internalfb.com/D48076896 fbshipit-source-id: f5abf64baef31c9a0e21fe27128e6c41a3655655 --- .../react/bridgeless/ReactHostImpl.java | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridgeless/ReactHostImpl.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridgeless/ReactHostImpl.java index 79baa4efb7aae0..b5b8ebb474934b 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridgeless/ReactHostImpl.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/bridgeless/ReactHostImpl.java @@ -276,11 +276,11 @@ public void onHostResume(final @Nullable Activity activity) { final String method = "onHostResume(activity)"; log(method); - mActivity.set(activity); + setCurrentActivity(activity); ReactContext currentContext = getCurrentReactContext(); // TODO(T137233065): Enable DevSupportManager here - mReactLifecycleStateManager.moveToOnHostResume(currentContext, mActivity.get()); + mReactLifecycleStateManager.moveToOnHostResume(currentContext, getCurrentActivity()); } @ThreadConfined(UI) @@ -291,7 +291,7 @@ public void onHostPause(final @Nullable Activity activity) { ReactContext currentContext = getCurrentReactContext(); - Activity currentActivity = mActivity.get(); + Activity currentActivity = getCurrentActivity(); if (currentActivity != null) { String currentActivityClass = currentActivity.getClass().getSimpleName(); String activityClass = activity == null ? "null" : activity.getClass().getSimpleName(); @@ -321,7 +321,7 @@ public void onHostPause() { // TODO(T137233065): Disable DevSupportManager here mDefaultHardwareBackBtnHandler = null; - mReactLifecycleStateManager.moveToOnHostPause(currentContext, mActivity.get()); + mReactLifecycleStateManager.moveToOnHostPause(currentContext, getCurrentActivity()); } /** To be called when the host activity is destroyed. */ @@ -341,7 +341,7 @@ public void onHostDestroy(@Nullable Activity activity) { final String method = "onHostDestroy(activity)"; log(method); - Activity currentActivity = mActivity.get(); + Activity currentActivity = getCurrentActivity(); // TODO(T137233065): Disable DevSupportManager here if (currentActivity == activity) { @@ -504,6 +504,10 @@ private MemoryPressureListener createMemoryPressureListener(ReactInstance reactI return mActivity.get(); } + private void setCurrentActivity(@Nullable Activity activity) { + mActivity.set(activity); + } + /** * Get the {@link EventDispatcher} from the {@link FabricUIManager}. This always returns an * EventDispatcher, even if the instance isn't alive; in that case, it returns a {@link @@ -726,7 +730,7 @@ private Task newStart() { @ThreadConfined(UI) private void moveToHostDestroy(@Nullable ReactContext currentContext) { mReactLifecycleStateManager.moveToOnHostDestroy(currentContext); - mActivity.set(null); + setCurrentActivity(null); } private void raiseSoftException(String method, String message) { @@ -946,14 +950,15 @@ class Result { * screen in the past, or (2) We must be on a React Native screen. */ if (isReloading && !isManagerResumed) { - mReactLifecycleStateManager.moveToOnHostResume(reactContext, mActivity.get()); + mReactLifecycleStateManager.moveToOnHostResume( + reactContext, getCurrentActivity()); } else { /** * Call ReactContext.onHostResume() only when already in the resumed state * which aligns with the bridge https://fburl.com/diffusion/2qhxmudv. */ mReactLifecycleStateManager.resumeReactContextIfHostResumed( - reactContext, mActivity.get()); + reactContext, getCurrentActivity()); } ReactInstanceEventListener[] listeners = @@ -1033,7 +1038,7 @@ private Task oldGetOrCreateReactInstanceTask() { aligns with the bridge https://fburl.com/diffusion/2qhxmudv. */ mReactLifecycleStateManager.resumeReactContextIfHostResumed( - reactContext, mActivity.get()); + reactContext, getCurrentActivity()); ReactInstanceEventListener[] listeners = new ReactInstanceEventListener[mReactInstanceEventListeners.size()]; @@ -1410,7 +1415,7 @@ private Task newGetOrCreateDestroyTask(final String reason, @Nullable Exce } // Reset current activity - mActivity.set(null); + setCurrentActivity(null); // Clear ResourceIdleDrawableIdMap ResourceDrawableIdHelper.getInstance().clear();