From d12b4c00b6366e2f822877179851c01659c80321 Mon Sep 17 00:00:00 2001 From: Dulmandakh Date: Sat, 15 Dec 2018 20:00:24 +0800 Subject: [PATCH 1/8] ReactActivity extends FragmentActivity --- .../src/main/java/com/facebook/react/ReactActivity.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java b/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java index 788148db5c4030..05609205a1cfe8 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java +++ b/ReactAndroid/src/main/java/com/facebook/react/ReactActivity.java @@ -9,9 +9,9 @@ import javax.annotation.Nullable; -import android.app.Activity; import android.content.Intent; import android.os.Bundle; +import android.support.v4.app.FragmentActivity; import android.view.KeyEvent; import com.facebook.react.modules.core.DefaultHardwareBackBtnHandler; @@ -21,7 +21,7 @@ /** * Base Activity for React Native applications. */ -public abstract class ReactActivity extends Activity +public abstract class ReactActivity extends FragmentActivity implements DefaultHardwareBackBtnHandler, PermissionAwareActivity { private final ReactActivityDelegate mDelegate; From aa4a63e1219e0f1d520dfd728db04f1f7fd39828 Mon Sep 17 00:00:00 2001 From: Dulmandakh Date: Sat, 15 Dec 2018 20:18:55 +0800 Subject: [PATCH 2/8] ReactFragmentActivity extends ReactActivity --- .../facebook/react/ReactFragmentActivity.java | 119 +----------------- 1 file changed, 2 insertions(+), 117 deletions(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/ReactFragmentActivity.java b/ReactAndroid/src/main/java/com/facebook/react/ReactFragmentActivity.java index 8676a88ff9c956..029909d47cd0aa 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/ReactFragmentActivity.java +++ b/ReactAndroid/src/main/java/com/facebook/react/ReactFragmentActivity.java @@ -7,126 +7,11 @@ package com.facebook.react; -import javax.annotation.Nullable; - -import android.content.Intent; -import android.os.Bundle; -import android.support.v4.app.FragmentActivity; -import android.view.KeyEvent; - -import com.facebook.react.modules.core.DefaultHardwareBackBtnHandler; -import com.facebook.react.modules.core.PermissionAwareActivity; -import com.facebook.react.modules.core.PermissionListener; - /** * @deprecated - * ReactFragmentActivity will be removed in 0.57 release. + * ReactFragmentActivity will be removed in 0.59 release. * Use {@link ReactActivity} instead. */ @Deprecated -public abstract class ReactFragmentActivity extends FragmentActivity implements - DefaultHardwareBackBtnHandler, PermissionAwareActivity { - - private final ReactActivityDelegate mDelegate; - - protected ReactFragmentActivity() { - mDelegate = createReactActivityDelegate(); - } - - /** - * Returns the name of the main component registered from JavaScript. - * This is used to schedule rendering of the component. - * e.g. "MoviesApp" - */ - protected @Nullable String getMainComponentName() { - return null; - } - - /** - * Called at construction time, override if you have a custom delegate implementation. - */ - protected ReactActivityDelegate createReactActivityDelegate() { - return new ReactActivityDelegate(this, getMainComponentName()); - } - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - mDelegate.onCreate(savedInstanceState); - } - - @Override - protected void onPause() { - super.onPause(); - mDelegate.onPause(); - } - - @Override - protected void onResume() { - super.onResume(); - mDelegate.onResume(); - } - - @Override - protected void onDestroy() { - super.onDestroy(); - mDelegate.onDestroy(); - } - - @Override - public void onActivityResult(int requestCode, int resultCode, Intent data) { - mDelegate.onActivityResult(requestCode, resultCode, data); - } - - @Override - public boolean onKeyUp(int keyCode, KeyEvent event) { - return mDelegate.onKeyUp(keyCode, event) || super.onKeyUp(keyCode, event); - } - - @Override - public void onBackPressed() { - if (!mDelegate.onBackPressed()) { - super.onBackPressed(); - } - } - - @Override - public void invokeDefaultOnBackPressed() { - super.onBackPressed(); - } - - @Override - public void onNewIntent(Intent intent) { - if (!mDelegate.onNewIntent(intent)) { - super.onNewIntent(intent); - } - } - - @Override - public void requestPermissions( - String[] permissions, - int requestCode, - PermissionListener listener) { - mDelegate.requestPermissions(permissions, requestCode, listener); - } - - @Override - public void onRequestPermissionsResult( - int requestCode, - String[] permissions, - int[] grantResults) { - mDelegate.onRequestPermissionsResult(requestCode, permissions, grantResults); - } - - protected final ReactNativeHost getReactNativeHost() { - return mDelegate.getReactNativeHost(); - } - - protected final ReactInstanceManager getReactInstanceManager() { - return mDelegate.getReactInstanceManager(); - } - - protected final void loadApp(String appKey) { - mDelegate.loadApp(appKey); - } +public abstract class ReactFragmentActivity extends ReactActivity { } From e57e4fd35ae2d924c5b4d03ce151b31217702bdc Mon Sep 17 00:00:00 2001 From: Dulmandakh Date: Sat, 15 Dec 2018 20:22:03 +0800 Subject: [PATCH 3/8] remove ReactFragmentActivity reference from ReactActivityDelegate --- .../facebook/react/ReactActivityDelegate.java | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java b/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java index c18ccc473c08b6..65fe972380a180 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +++ b/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java @@ -11,7 +11,6 @@ import android.content.Intent; import android.os.Build; import android.os.Bundle; -import android.support.v4.app.FragmentActivity; import android.view.KeyEvent; import com.facebook.infer.annotation.Assertions; @@ -30,7 +29,6 @@ public class ReactActivityDelegate { private final @Nullable Activity mActivity; - private final @Nullable FragmentActivity mFragmentActivity; private final @Nullable String mMainComponentName; private @Nullable ReactRootView mReactRootView; @@ -41,15 +39,6 @@ public class ReactActivityDelegate { public ReactActivityDelegate(Activity activity, @Nullable String mainComponentName) { mActivity = activity; mMainComponentName = mainComponentName; - mFragmentActivity = null; - } - - public ReactActivityDelegate( - FragmentActivity fragmentActivity, - @Nullable String mainComponentName) { - mFragmentActivity = fragmentActivity; - mMainComponentName = mainComponentName; - mActivity = null; } protected @Nullable Bundle getLaunchOptions() { @@ -206,10 +195,7 @@ public void invoke(Object... args) { } protected Context getContext() { - if (mActivity != null) { - return mActivity; - } - return Assertions.assertNotNull(mFragmentActivity); + return Assertions.assertNotNull(mActivity); } protected Activity getPlainActivity() { From 1a2b58e12f16b49b94164aed535698d36c97d0fd Mon Sep 17 00:00:00 2001 From: Dulmandakh Date: Sat, 12 Jan 2019 11:10:32 +0800 Subject: [PATCH 4/8] deprecation warning for ReactActivityDelegate having FragmentActivity --- .../com/facebook/react/ReactActivityDelegate.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java b/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java index 65fe972380a180..1b35ff47926195 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +++ b/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java @@ -7,6 +7,7 @@ import android.annotation.TargetApi; import android.app.Activity; +import android.support.v4.app.FragmentActivity; import android.content.Context; import android.content.Intent; import android.os.Build; @@ -28,7 +29,7 @@ */ public class ReactActivityDelegate { - private final @Nullable Activity mActivity; + private final @Nullable ReactActivity mActivity; private final @Nullable String mMainComponentName; private @Nullable ReactRootView mReactRootView; @@ -36,11 +37,17 @@ public class ReactActivityDelegate { private @Nullable PermissionListener mPermissionListener; private @Nullable Callback mPermissionsCallback; - public ReactActivityDelegate(Activity activity, @Nullable String mainComponentName) { + public ReactActivityDelegate(ReactActivity activity, @Nullable String mainComponentName) { mActivity = activity; mMainComponentName = mainComponentName; } + @Deprecated + public ReactActivityDelegate(FragmentActivity activity, @Nullable String mainComponentName) { + mActivity = (ReactActivity) activity; + mMainComponentName = mainComponentName; + } + protected @Nullable Bundle getLaunchOptions() { return null; } From 69f45b736d9e39f89d46d30f0f21d530eceffb85 Mon Sep 17 00:00:00 2001 From: Dulmandakh Date: Sat, 12 Jan 2019 11:25:01 +0800 Subject: [PATCH 5/8] RNTester accepts ReactActivity --- .../main/java/com/facebook/react/uiapp/RNTesterActivity.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/RNTester/android/app/src/main/java/com/facebook/react/uiapp/RNTesterActivity.java b/RNTester/android/app/src/main/java/com/facebook/react/uiapp/RNTesterActivity.java index ccb6aec0b7aca9..e7a6e8219dab46 100644 --- a/RNTester/android/app/src/main/java/com/facebook/react/uiapp/RNTesterActivity.java +++ b/RNTester/android/app/src/main/java/com/facebook/react/uiapp/RNTesterActivity.java @@ -20,9 +20,9 @@ public class RNTesterActivity extends ReactActivity { public static class RNTesterActivityDelegate extends ReactActivityDelegate { private static final String PARAM_ROUTE = "route"; private Bundle mInitialProps = null; - private final @Nullable Activity mActivity; + private final @Nullable ReactActivity mActivity; - public RNTesterActivityDelegate(Activity activity, String mainComponentName) { + public RNTesterActivityDelegate(ReactActivity activity, String mainComponentName) { super(activity, mainComponentName); this.mActivity = activity; } From 5b344c498accad013257e1964490ac4086d04e05 Mon Sep 17 00:00:00 2001 From: Dulmandakh Date: Mon, 14 Jan 2019 14:48:25 +0800 Subject: [PATCH 6/8] ReactActivityDelegate: remove constructor with FragmentActivity --- .../java/com/facebook/react/ReactActivityDelegate.java | 7 ------- 1 file changed, 7 deletions(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java b/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java index 1b35ff47926195..ab9e3af9c12abe 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +++ b/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java @@ -7,7 +7,6 @@ import android.annotation.TargetApi; import android.app.Activity; -import android.support.v4.app.FragmentActivity; import android.content.Context; import android.content.Intent; import android.os.Build; @@ -42,12 +41,6 @@ public ReactActivityDelegate(ReactActivity activity, @Nullable String mainCompon mMainComponentName = mainComponentName; } - @Deprecated - public ReactActivityDelegate(FragmentActivity activity, @Nullable String mainComponentName) { - mActivity = (ReactActivity) activity; - mMainComponentName = mainComponentName; - } - protected @Nullable Bundle getLaunchOptions() { return null; } From a3ae63cd245bd88197318b62d5f39a39671da1f4 Mon Sep 17 00:00:00 2001 From: Dulmandakh Date: Wed, 16 Jan 2019 12:14:04 +0800 Subject: [PATCH 7/8] ReactActivityDelegate accepts just Activity --- .../main/java/com/facebook/react/ReactActivityDelegate.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java b/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java index ab9e3af9c12abe..65fe972380a180 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +++ b/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java @@ -28,7 +28,7 @@ */ public class ReactActivityDelegate { - private final @Nullable ReactActivity mActivity; + private final @Nullable Activity mActivity; private final @Nullable String mMainComponentName; private @Nullable ReactRootView mReactRootView; @@ -36,7 +36,7 @@ public class ReactActivityDelegate { private @Nullable PermissionListener mPermissionListener; private @Nullable Callback mPermissionsCallback; - public ReactActivityDelegate(ReactActivity activity, @Nullable String mainComponentName) { + public ReactActivityDelegate(Activity activity, @Nullable String mainComponentName) { mActivity = activity; mMainComponentName = mainComponentName; } From 73585d67829c278b9484100bbcd8cbacca84b1ae Mon Sep 17 00:00:00 2001 From: Dulmandakh Date: Wed, 16 Jan 2019 12:18:19 +0800 Subject: [PATCH 8/8] ReactActivityDelegate has 2 constructors for Activity and ReactActivity --- .../main/java/com/facebook/react/ReactActivityDelegate.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java b/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java index 65fe972380a180..99811b7fefc10d 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java +++ b/ReactAndroid/src/main/java/com/facebook/react/ReactActivityDelegate.java @@ -36,11 +36,17 @@ public class ReactActivityDelegate { private @Nullable PermissionListener mPermissionListener; private @Nullable Callback mPermissionsCallback; + @Deprecated public ReactActivityDelegate(Activity activity, @Nullable String mainComponentName) { mActivity = activity; mMainComponentName = mainComponentName; } + public ReactActivityDelegate(ReactActivity activity, @Nullable String mainComponentName) { + mActivity = activity; + mMainComponentName = mainComponentName; + } + protected @Nullable Bundle getLaunchOptions() { return null; }