1818import android .view .Window ;
1919import androidx .annotation .Nullable ;
2020import com .facebook .infer .annotation .Assertions ;
21+ import com .facebook .infer .annotation .Nullsafe ;
2122import com .facebook .react .bridge .Callback ;
2223import com .facebook .react .bridge .ReactContext ;
23- import com .facebook .react .common .annotations .DeprecatedInNewArchitecture ;
2424import com .facebook .react .interfaces .fabric .ReactSurface ;
2525import com .facebook .react .internal .featureflags .ReactNativeNewArchitectureFeatureFlags ;
2626import com .facebook .react .modules .core .PermissionListener ;
2727import com .facebook .react .views .view .WindowUtilKt ;
2828import com .facebook .systrace .Systrace ;
29+ import java .util .Objects ;
2930
3031/**
3132 * Delegate class for {@link ReactActivity}. You can subclass this to provide custom implementations
3233 * for e.g. {@link #getReactNativeHost()}, if your Application class doesn't implement {@link
3334 * ReactApplication}.
3435 */
36+ @ Nullsafe (Nullsafe .Mode .LOCAL )
3537public class ReactActivityDelegate {
3638
3739 private final @ Nullable Activity mActivity ;
@@ -86,8 +88,11 @@ public ReactActivityDelegate(
8688 * ReactApplication#getReactNativeHost()}. Override this method if your application class does not
8789 * implement {@code ReactApplication} or you simply have a different mechanism for storing a
8890 * {@code ReactNativeHost}, e.g. as a static field somewhere.
91+ *
92+ * @deprecated "Do not access {@link ReactNativeHost} directly. This class is going away in the
93+ * New Architecture. You should access {@link ReactHost} instead."
8994 */
90- @ DeprecatedInNewArchitecture ( message = "Use getReactHost()" )
95+ @ Deprecated
9196 protected ReactNativeHost getReactNativeHost () {
9297 return ((ReactApplication ) getPlainActivity ().getApplication ()).getReactNativeHost ();
9398 }
@@ -107,16 +112,21 @@ protected ReactNativeHost getReactNativeHost() {
107112 return mReactDelegate ;
108113 }
109114
110- @ DeprecatedInNewArchitecture (message = "Use getReactHost()" )
115+ /**
116+ * @deprecated @deprecated "Do not access {@link ReactInstanceManager} directly. This class is
117+ * going away in the New Architecture. You should access {@link ReactHost} instead."
118+ * @noinspection deprecation
119+ */
111120 public ReactInstanceManager getReactInstanceManager () {
112- return mReactDelegate .getReactInstanceManager ();
121+ return Objects . requireNonNull ( mReactDelegate ) .getReactInstanceManager ();
113122 }
114123
124+ @ Nullable
115125 public String getMainComponentName () {
116126 return mMainComponentName ;
117127 }
118128
119- public void onCreate (Bundle savedInstanceState ) {
129+ public void onCreate (@ Nullable Bundle savedInstanceState ) {
120130 Systrace .traceSection (
121131 Systrace .TRACE_TAG_REACT ,
122132 "ReactActivityDelegate.onCreate::init" ,
@@ -147,6 +157,7 @@ public void onCreate(Bundle savedInstanceState) {
147157 launchOptions ,
148158 isFabricEnabled ()) {
149159 @ Override
160+ @ Nullable
150161 protected ReactRootView createRootView () {
151162 ReactRootView rootView = ReactActivityDelegate .this .createRootView ();
152163 if (rootView == null ) {
@@ -163,30 +174,28 @@ protected ReactRootView createRootView() {
163174 }
164175
165176 protected void loadApp (String appKey ) {
166- mReactDelegate .loadApp (appKey );
177+ Objects . requireNonNull ( mReactDelegate ) .loadApp (appKey );
167178 getPlainActivity ().setContentView (mReactDelegate .getReactRootView ());
168179 }
169180
170181 public void setReactSurface (ReactSurface reactSurface ) {
171- mReactDelegate .setReactSurface (reactSurface );
182+ Objects . requireNonNull ( mReactDelegate ) .setReactSurface (reactSurface );
172183 }
173184
174185 public void setReactRootView (ReactRootView reactRootView ) {
175- mReactDelegate .setReactRootView (reactRootView );
186+ Objects . requireNonNull ( mReactDelegate ) .setReactRootView (reactRootView );
176187 }
177188
178189 public void onUserLeaveHint () {
179- if (mReactDelegate != null ) {
180- mReactDelegate .onUserLeaveHint ();
181- }
190+ Objects .requireNonNull (mReactDelegate ).onUserLeaveHint ();
182191 }
183192
184193 public void onPause () {
185- mReactDelegate .onHostPause ();
194+ Objects . requireNonNull ( mReactDelegate ) .onHostPause ();
186195 }
187196
188197 public void onResume () {
189- mReactDelegate .onHostResume ();
198+ Objects . requireNonNull ( mReactDelegate ) .onHostResume ();
190199
191200 if (mPermissionsCallback != null ) {
192201 mPermissionsCallback .invoke ();
@@ -195,43 +204,43 @@ public void onResume() {
195204 }
196205
197206 public void onDestroy () {
198- mReactDelegate .onHostDestroy ();
207+ Objects . requireNonNull ( mReactDelegate ) .onHostDestroy ();
199208 }
200209
201- public void onActivityResult (int requestCode , int resultCode , Intent data ) {
202- mReactDelegate .onActivityResult (requestCode , resultCode , data , true );
210+ public void onActivityResult (int requestCode , int resultCode , @ Nullable Intent data ) {
211+ Objects . requireNonNull ( mReactDelegate ) .onActivityResult (requestCode , resultCode , data , true );
203212 }
204213
205214 public boolean onKeyDown (int keyCode , KeyEvent event ) {
206- return mReactDelegate .onKeyDown (keyCode , event );
215+ return Objects . requireNonNull ( mReactDelegate ) .onKeyDown (keyCode , event );
207216 }
208217
209218 public boolean onKeyUp (int keyCode , KeyEvent event ) {
210- return mReactDelegate .shouldShowDevMenuOrReload (keyCode , event );
219+ return Objects . requireNonNull ( mReactDelegate ) .shouldShowDevMenuOrReload (keyCode , event );
211220 }
212221
213222 public boolean onKeyLongPress (int keyCode , KeyEvent event ) {
214- return mReactDelegate .onKeyLongPress (keyCode );
223+ return Objects . requireNonNull ( mReactDelegate ) .onKeyLongPress (keyCode );
215224 }
216225
217226 public boolean onBackPressed () {
218- return mReactDelegate .onBackPressed ();
227+ return Objects . requireNonNull ( mReactDelegate ) .onBackPressed ();
219228 }
220229
221230 public boolean onNewIntent (Intent intent ) {
222- return mReactDelegate .onNewIntent (intent );
231+ return Objects . requireNonNull ( mReactDelegate ) .onNewIntent (intent );
223232 }
224233
225234 public void onWindowFocusChanged (boolean hasFocus ) {
226- mReactDelegate .onWindowFocusChanged (hasFocus );
235+ Objects . requireNonNull ( mReactDelegate ) .onWindowFocusChanged (hasFocus );
227236 }
228237
229238 public void onConfigurationChanged (Configuration newConfig ) {
230- mReactDelegate .onConfigurationChanged (newConfig );
239+ Objects . requireNonNull ( mReactDelegate ) .onConfigurationChanged (newConfig );
231240 }
232241
233242 public void requestPermissions (
234- String [] permissions , int requestCode , PermissionListener listener ) {
243+ String [] permissions , int requestCode , @ Nullable PermissionListener listener ) {
235244 mPermissionListener = listener ;
236245 getPlainActivity ().requestPermissions (permissions , requestCode );
237246 }
@@ -267,7 +276,7 @@ protected ReactActivity getReactActivity() {
267276 * context will no longer be valid.
268277 */
269278 public @ Nullable ReactContext getCurrentReactContext () {
270- return mReactDelegate .getCurrentReactContext ();
279+ return Objects . requireNonNull ( mReactDelegate ) .getCurrentReactContext ();
271280 }
272281
273282 /**
0 commit comments