Skip to content

Support reload in ReactDelegate - #43521

Closed
arushikesarwani94 wants to merge 1 commit into
react:mainfrom
arushikesarwani94:export-D54967602
Closed

Support reload in ReactDelegate#43521
arushikesarwani94 wants to merge 1 commit into
react:mainfrom
arushikesarwani94:export-D54967602

Conversation

@arushikesarwani94

Copy link
Copy Markdown
Contributor

Summary:
Changelog:
[Android] [Added] - Support reload() in ReactDelegate

Differential Revision: D54967602

@facebook-github-botfacebook-github-bot added CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. p: Facebook Partner: Facebook Partner labels Mar 16, 2024
@facebook-github-bot

Copy link
Copy Markdown
Contributor

This pull request was exported from Phabricator. Differential Revision: D54967602

@analysis-bot

analysis-bot commented Mar 16, 2024

Copy link
Copy Markdown
PlatformEngineArchSize (bytes)Diff
androidhermesarm64-v8a18,125,879-1
androidhermesarmeabi-v7an/a--
androidhermesx86n/a--
androidhermesx86_64n/a--
androidjscarm64-v8a21,491,247-1
androidjscarmeabi-v7an/a--
androidjscx86n/a--
androidjscx86_64n/a--

Base commit: ff5e1a6
Branch: main

Summary:
Changelog:
[Android] [Added] - Support reload() in ReactDelegate
Differential Revision: D54967602
@facebook-github-bot

Copy link
Copy Markdown
Contributor

This pull request was exported from Phabricator. Differential Revision: D54967602

@facebook-github-botfacebook-github-bot added the Merged This PR has been merged. label Mar 19, 2024
@facebook-github-bot

Copy link
Copy Markdown
Contributor

This pull request has been merged in d97741a.

arushikesarwani94 added a commit to arushikesarwani94/react-native that referenced this pull request Mar 21, 2024
Summary:
Supported `reload()` in Bridgeless through ReactDelegate in react#43521 in order to unblock react-native-restart
https://github.com/avishayil/react-native-restart/blob/134cabd5b3f355ffe551e5dd1be1dd46d870fe13/android/src/main/java/com/reactnativerestart/RestartModule.java#L54
which can access React Delegate through :
```
if(currentActivity instanceof ReactActivity) {
ReactActivity reactActivity = (ReactActivity) currentActivity;
ReactDelegate reactDelegate = reactActivity.getReactDelegate();
reactDelegate.reload()
}
```
Changelog:
[Android][Added] Expose ReactDelegate in ReactActivity
Differential Revision: D55166962
facebook-github-bot pushed a commit that referenced this pull request Mar 21, 2024
Summary:
Pull Request resolved: #43588
Supported `reload()` in Bridgeless through ReactDelegate in #43521 in order to unblock react-native-restart
https://github.com/avishayil/react-native-restart/blob/134cabd5b3f355ffe551e5dd1be1dd46d870fe13/android/src/main/java/com/reactnativerestart/RestartModule.java#L54
which can access React Delegate through :
```
if(currentActivity instanceof ReactActivity) {
ReactActivity reactActivity = (ReactActivity) currentActivity;
ReactDelegate reactDelegate = reactActivity.getReactDelegate();
reactDelegate.reload()
}
```
Changelog:
[Android][Added] Expose ReactDelegate in ReactActivity
Reviewed By: cortinico
Differential Revision: D55166962
fbshipit-source-id: 5d8dfd7ad61edbcb5233014800eb66a538842ca5
cortinico pushed a commit that referenced this pull request Mar 25, 2024
Summary:
Pull Request resolved: #43521
Changelog:
[Android] [Added] - Support reload() in ReactDelegate
Reviewed By: cortinico
Differential Revision: D54967602
fbshipit-source-id: adfa200cabcbecf9507775ac38f17c9d01b2671a
cortinico pushed a commit that referenced this pull request Mar 25, 2024
Summary:
Pull Request resolved: #43588
Supported `reload()` in Bridgeless through ReactDelegate in #43521 in order to unblock react-native-restart
https://github.com/avishayil/react-native-restart/blob/134cabd5b3f355ffe551e5dd1be1dd46d870fe13/android/src/main/java/com/reactnativerestart/RestartModule.java#L54
which can access React Delegate through :
```
if(currentActivity instanceof ReactActivity) {
ReactActivity reactActivity = (ReactActivity) currentActivity;
ReactDelegate reactDelegate = reactActivity.getReactDelegate();
reactDelegate.reload()
}
```
Changelog:
[Android][Added] Expose ReactDelegate in ReactActivity
Reviewed By: cortinico
Differential Revision: D55166962
fbshipit-source-id: 5d8dfd7ad61edbcb5233014800eb66a538842ca5
arushikesarwani94 added a commit to arushikesarwani94/react-native that referenced this pull request Mar 26, 2024
Summary:
react#43521 & react#43588 aimed to fix `react-native-restart`, however in release `handleReloadJS()` is a no-op in [DisabledDevSupportManager](https://github.com/facebook/react-native/blob/ac714b1c3300d3a169bdcfec05d556e18a7b83ff/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/DisabledDevSupportManager.java#L139) which is why this should not work. Fixing it by relying on `ReactHostImpl.reload()` instead for Bridgeless.
Adding implementation of `DisabledDevSupportManager.handleReloadJS()` won't work as it would mean introducing circular dependency `devsupport` -> `runtime`
Reviewed By: cortinico
Differential Revision: D55342296
facebook-github-bot pushed a commit that referenced this pull request Mar 27, 2024
Summary:
Pull Request resolved: #43645#43521 & #43588 aimed to fix `react-native-restart`, however in release `handleReloadJS()` is a no-op in [DisabledDevSupportManager](https://github.com/facebook/react-native/blob/ac714b1c3300d3a169bdcfec05d556e18a7b83ff/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/DisabledDevSupportManager.java#L139) which is why this should not work. Fixing it by relying on `ReactHostImpl.reload()` instead for Bridgeless.
Adding implementation of `DisabledDevSupportManager.handleReloadJS()` won't work as it would mean introducing circular dependency `devsupport` -> `runtime`
Reviewed By: cortinico
Differential Revision: D55342296
fbshipit-source-id: ee6fba68586a2bdd1163522f75e6beb1b7736f6c
huntie pushed a commit that referenced this pull request Apr 2, 2024
Summary:
Pull Request resolved: #43645#43521 & #43588 aimed to fix `react-native-restart`, however in release `handleReloadJS()` is a no-op in [DisabledDevSupportManager](https://github.com/facebook/react-native/blob/ac714b1c3300d3a169bdcfec05d556e18a7b83ff/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/devsupport/DisabledDevSupportManager.java#L139) which is why this should not work. Fixing it by relying on `ReactHostImpl.reload()` instead for Bridgeless.
Adding implementation of `DisabledDevSupportManager.handleReloadJS()` won't work as it would mean introducing circular dependency `devsupport` -> `runtime`
Reviewed By: cortinico
Differential Revision: D55342296
fbshipit-source-id: ee6fba68586a2bdd1163522f75e6beb1b7736f6c
facebook-github-bot pushed a commit that referenced this pull request May 1, 2024
Summary:
fixing some problem for `ReactActivity.getReactDelegate().reload()` from #43521:
- the `reload()` does not work for bridge mode on release build
## Changelog:
[ANDROID] [FIXED] - Fixed app reloading for `ReactActivity.getReactDelegate().reload()`.
Pull Request resolved: #44223
Test Plan:
tried to temporary change toast.show as reload and test from rn-tester
```diff
--- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/toast/ToastModule.kt
+++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/toast/ToastModule.kt
@@ -10,6 +10,7 @@ package com.facebook.react.modules.toast
import android.view.Gravity
import android.widget.Toast
import com.facebook.fbreact.specs.NativeToastAndroidSpec
+import com.facebook.react.ReactActivity
import com.facebook.react.bridge.NativeModule
import com.facebook.react.bridge.ReactApplicationContext
import com.facebook.react.bridge.UiThreadUtil
@@ -30,9 +31,11 @@ public class ToastModule(reactContext: ReactApplicationContext) :
)
override public fun show(message: String?, durationDouble: Double) {
- val duration = durationDouble.toInt()
- UiThreadUtil.runOnUiThread(
- Runnable { Toast.makeText(getReactApplicationContext(), message, duration).show() })
+// val duration = durationDouble.toInt()
+// UiThreadUtil.runOnUiThread(
+// Runnable { Toast.makeText(getReactApplicationContext(), message, duration).show() })
+ val activity = reactApplicationContext.currentActivity as? ReactActivity
+ activity?.reactDelegate?.reload()
}
override public fun showWithGravity(
```
tried for different mode
- [x] bridge mode + debug build
- [x] bridgeless mode + debug build
- [x] bridge mode + release build
- [x] bridgeless mode + release build
Reviewed By: fkgozali
Differential Revision: D56795975
Pulled By: arushikesarwani94
fbshipit-source-id: 895eab1927ba6db748ebb32c0fd5313f19cf9d1b
cipolleschi pushed a commit that referenced this pull request May 2, 2024
Summary:
fixing some problem for `ReactActivity.getReactDelegate().reload()` from #43521:
- the `reload()` does not work for bridge mode on release build
[ANDROID] [FIXED] - Fixed app reloading for `ReactActivity.getReactDelegate().reload()`.
Pull Request resolved: #44223
Test Plan:
tried to temporary change toast.show as reload and test from rn-tester
```diff
--- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/toast/ToastModule.kt
+++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/toast/ToastModule.kt
@@ -10,6 +10,7 @@ package com.facebook.react.modules.toast
import android.view.Gravity
import android.widget.Toast
import com.facebook.fbreact.specs.NativeToastAndroidSpec
+import com.facebook.react.ReactActivity
import com.facebook.react.bridge.NativeModule
import com.facebook.react.bridge.ReactApplicationContext
import com.facebook.react.bridge.UiThreadUtil
@@ -30,9 +31,11 @@ public class ToastModule(reactContext: ReactApplicationContext) :
)
override public fun show(message: String?, durationDouble: Double) {
- val duration = durationDouble.toInt()
- UiThreadUtil.runOnUiThread(
- Runnable { Toast.makeText(getReactApplicationContext(), message, duration).show() })
+// val duration = durationDouble.toInt()
+// UiThreadUtil.runOnUiThread(
+// Runnable { Toast.makeText(getReactApplicationContext(), message, duration).show() })
+ val activity = reactApplicationContext.currentActivity as? ReactActivity
+ activity?.reactDelegate?.reload()
}
override public fun showWithGravity(
```
tried for different mode
- [x] bridge mode + debug build
- [x] bridgeless mode + debug build
- [x] bridge mode + release build
- [x] bridgeless mode + release build
Reviewed By: fkgozali
Differential Revision: D56795975
Pulled By: arushikesarwani94
fbshipit-source-id: 895eab1927ba6db748ebb32c0fd5313f19cf9d1b
kosmydel pushed a commit to kosmydel/react-native that referenced this pull request May 6, 2024
Summary:
fixing some problem for `ReactActivity.getReactDelegate().reload()` from react#43521:
- the `reload()` does not work for bridge mode on release build
## Changelog:
[ANDROID] [FIXED] - Fixed app reloading for `ReactActivity.getReactDelegate().reload()`.
Pull Request resolved: react#44223
Test Plan:
tried to temporary change toast.show as reload and test from rn-tester
```diff
--- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/toast/ToastModule.kt
+++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/toast/ToastModule.kt
@@ -10,6 +10,7 @@ package com.facebook.react.modules.toast
import android.view.Gravity
import android.widget.Toast
import com.facebook.fbreact.specs.NativeToastAndroidSpec
+import com.facebook.react.ReactActivity
import com.facebook.react.bridge.NativeModule
import com.facebook.react.bridge.ReactApplicationContext
import com.facebook.react.bridge.UiThreadUtil
@@ -30,9 +31,11 @@ public class ToastModule(reactContext: ReactApplicationContext) :
)
override public fun show(message: String?, durationDouble: Double) {
- val duration = durationDouble.toInt()
- UiThreadUtil.runOnUiThread(
- Runnable { Toast.makeText(getReactApplicationContext(), message, duration).show() })
+// val duration = durationDouble.toInt()
+// UiThreadUtil.runOnUiThread(
+// Runnable { Toast.makeText(getReactApplicationContext(), message, duration).show() })
+ val activity = reactApplicationContext.currentActivity as? ReactActivity
+ activity?.reactDelegate?.reload()
}
override public fun showWithGravity(
```
tried for different mode
- [x] bridge mode + debug build
- [x] bridgeless mode + debug build
- [x] bridge mode + release build
- [x] bridgeless mode + release build
Reviewed By: fkgozali
Differential Revision: D56795975
Pulled By: arushikesarwani94
fbshipit-source-id: 895eab1927ba6db748ebb32c0fd5313f19cf9d1b
kosmydel pushed a commit to kosmydel/react-native that referenced this pull request Jun 11, 2024
Summary:
fixing some problem for `ReactActivity.getReactDelegate().reload()` from react#43521:
- the `reload()` does not work for bridge mode on release build
## Changelog:
[ANDROID] [FIXED] - Fixed app reloading for `ReactActivity.getReactDelegate().reload()`.
Pull Request resolved: react#44223
Test Plan:
tried to temporary change toast.show as reload and test from rn-tester
```diff
--- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/toast/ToastModule.kt
+++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/toast/ToastModule.kt
@@ -10,6 +10,7 @@ package com.facebook.react.modules.toast
import android.view.Gravity
import android.widget.Toast
import com.facebook.fbreact.specs.NativeToastAndroidSpec
+import com.facebook.react.ReactActivity
import com.facebook.react.bridge.NativeModule
import com.facebook.react.bridge.ReactApplicationContext
import com.facebook.react.bridge.UiThreadUtil
@@ -30,9 +31,11 @@ public class ToastModule(reactContext: ReactApplicationContext) :
)
override public fun show(message: String?, durationDouble: Double) {
- val duration = durationDouble.toInt()
- UiThreadUtil.runOnUiThread(
- Runnable { Toast.makeText(getReactApplicationContext(), message, duration).show() })
+// val duration = durationDouble.toInt()
+// UiThreadUtil.runOnUiThread(
+// Runnable { Toast.makeText(getReactApplicationContext(), message, duration).show() })
+ val activity = reactApplicationContext.currentActivity as? ReactActivity
+ activity?.reactDelegate?.reload()
}
override public fun showWithGravity(
```
tried for different mode
- [x] bridge mode + debug build
- [x] bridgeless mode + debug build
- [x] bridge mode + release build
- [x] bridgeless mode + release build
Reviewed By: fkgozali
Differential Revision: D56795975
Pulled By: arushikesarwani94
fbshipit-source-id: 895eab1927ba6db748ebb32c0fd5313f19cf9d1b
This was referenced Jun 28, 2024
@cipolleschicipolleschi mentioned this pull request Jul 22, 2024
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA SignedThis label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed.fb-exportedMergedThis PR has been merged.p: FacebookPartner: FacebookPartner

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@arushikesarwani94@facebook-github-bot@analysis-bot