From 38980285c26eed4be0d70ec49a3b2fd2d7adec40 Mon Sep 17 00:00:00 2001 From: Dulmandakh Date: Mon, 11 Feb 2019 10:54:24 +0800 Subject: [PATCH 01/14] cleanup Dialog module --- .../react/modules/dialog/AlertFragment.java | 2 +- .../react/modules/dialog/DialogModule.java | 75 ++++++------------- .../modules/dialog/SupportAlertFragment.java | 56 -------------- 3 files changed, 22 insertions(+), 111 deletions(-) delete mode 100644 ReactAndroid/src/main/java/com/facebook/react/modules/dialog/SupportAlertFragment.java diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/AlertFragment.java b/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/AlertFragment.java index 08d10e6cd88eac..8fa8f59b73a736 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/AlertFragment.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/AlertFragment.java @@ -12,10 +12,10 @@ import android.annotation.SuppressLint; import android.app.AlertDialog; import android.app.Dialog; -import android.app.DialogFragment; import android.content.DialogInterface; import android.content.Context; import android.os.Bundle; +import android.support.v4.app.DialogFragment; /** * A fragment used to display the dialog. diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/DialogModule.java b/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/DialogModule.java index 19400d897f68ef..99ee4fa6cb7b4f 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/DialogModule.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/DialogModule.java @@ -12,8 +12,10 @@ import android.content.DialogInterface.OnClickListener; import android.content.DialogInterface.OnDismissListener; import android.os.Bundle; -import android.support.v4.app.FragmentActivity; +import android.support.v4.app.FragmentManager; + import com.facebook.common.logging.FLog; +import com.facebook.react.ReactActivity; import com.facebook.react.bridge.Callback; import com.facebook.react.bridge.LifecycleEventListener; import com.facebook.react.bridge.ReactApplicationContext; @@ -25,6 +27,8 @@ import com.facebook.react.common.MapBuilder; import com.facebook.react.module.annotations.ReactModule; import java.util.Map; + +import javax.annotation.Nonnull; import javax.annotation.Nullable; @ReactModule(name = DialogModule.NAME) @@ -59,7 +63,7 @@ public DialogModule(ReactApplicationContext reactContext) { } @Override - public String getName() { + public @Nonnull String getName() { return NAME; } @@ -72,22 +76,13 @@ public String getName() { private class FragmentManagerHelper { // Exactly one of the two is null - private final @Nullable android.app.FragmentManager mFragmentManager; - private final @Nullable android.support.v4.app.FragmentManager mSupportFragmentManager; + private final @Nullable FragmentManager mFragmentManager; +// private final @Nullable android.support.v4.app.FragmentManager mSupportFragmentManager; private @Nullable Object mFragmentToShow; - private boolean isUsingSupportLibrary() { - return mSupportFragmentManager != null; - } - - public FragmentManagerHelper(android.support.v4.app.FragmentManager supportFragmentManager) { - mFragmentManager = null; - mSupportFragmentManager = supportFragmentManager; - } - public FragmentManagerHelper(android.app.FragmentManager fragmentManager) { + public FragmentManagerHelper(FragmentManager fragmentManager) { mFragmentManager = fragmentManager; - mSupportFragmentManager = null; } public void showPendingAlert() { @@ -95,27 +90,15 @@ public void showPendingAlert() { if (mFragmentToShow == null) { return; } - if (isUsingSupportLibrary()) { - ((SupportAlertFragment) mFragmentToShow).show(mSupportFragmentManager, FRAGMENT_TAG); - } else { - ((AlertFragment) mFragmentToShow).show(mFragmentManager, FRAGMENT_TAG); - } + ((AlertFragment) mFragmentToShow).show(mFragmentManager, FRAGMENT_TAG); mFragmentToShow = null; } private void dismissExisting() { - if (isUsingSupportLibrary()) { - SupportAlertFragment oldFragment = - (SupportAlertFragment) mSupportFragmentManager.findFragmentByTag(FRAGMENT_TAG); - if (oldFragment != null && oldFragment.isResumed()) { - oldFragment.dismiss(); - } - } else { - AlertFragment oldFragment = - (AlertFragment) mFragmentManager.findFragmentByTag(FRAGMENT_TAG); - if (oldFragment != null && oldFragment.isResumed()) { - oldFragment.dismiss(); - } + AlertFragment oldFragment = + (AlertFragment) mFragmentManager.findFragmentByTag(FRAGMENT_TAG); + if (oldFragment != null && oldFragment.isResumed()) { + oldFragment.dismiss(); } } @@ -127,26 +110,14 @@ public void showNewAlert(boolean isInForeground, Bundle arguments, Callback acti AlertFragmentListener actionListener = actionCallback != null ? new AlertFragmentListener(actionCallback) : null; - if (isUsingSupportLibrary()) { - SupportAlertFragment alertFragment = new SupportAlertFragment(actionListener, arguments); - if (isInForeground && !mSupportFragmentManager.isStateSaved()) { - if (arguments.containsKey(KEY_CANCELABLE)) { - alertFragment.setCancelable(arguments.getBoolean(KEY_CANCELABLE)); - } - alertFragment.show(mSupportFragmentManager, FRAGMENT_TAG); - } else { - mFragmentToShow = alertFragment; + AlertFragment alertFragment = new AlertFragment(actionListener, arguments); + if (isInForeground && !mFragmentManager.isStateSaved()) { + if (arguments.containsKey(KEY_CANCELABLE)) { + alertFragment.setCancelable(arguments.getBoolean(KEY_CANCELABLE)); } + alertFragment.show(mFragmentManager, FRAGMENT_TAG); } else { - AlertFragment alertFragment = new AlertFragment(actionListener, arguments); - if (isInForeground) { - if (arguments.containsKey(KEY_CANCELABLE)) { - alertFragment.setCancelable(arguments.getBoolean(KEY_CANCELABLE)); - } - alertFragment.show(mFragmentManager, FRAGMENT_TAG); - } else { - mFragmentToShow = alertFragment; - } + mFragmentToShow = alertFragment; } } } @@ -273,10 +244,6 @@ public void run() { if (activity == null) { return null; } - if (activity instanceof FragmentActivity) { - return new FragmentManagerHelper(((FragmentActivity) activity).getSupportFragmentManager()); - } else { - return new FragmentManagerHelper(activity.getFragmentManager()); - } + return new FragmentManagerHelper(((ReactActivity) activity).getSupportFragmentManager()); } } diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/SupportAlertFragment.java b/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/SupportAlertFragment.java deleted file mode 100644 index 5892a8502268e3..00000000000000 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/SupportAlertFragment.java +++ /dev/null @@ -1,56 +0,0 @@ -/** - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -package com.facebook.react.modules.dialog; - -import javax.annotation.Nullable; - -import android.annotation.SuppressLint; -import android.app.Dialog; -import android.content.DialogInterface; -import android.os.Bundle; - -import android.support.v4.app.DialogFragment; - -/** - * {@link AlertFragment} for apps that use the Support FragmentActivity and FragmentManager - * for legacy reasons. - */ -public class SupportAlertFragment extends DialogFragment implements DialogInterface.OnClickListener { - - private final @Nullable DialogModule.AlertFragmentListener mListener; - - public SupportAlertFragment() { - mListener = null; - } - - @SuppressLint("ValidFragment") - public SupportAlertFragment(@Nullable DialogModule.AlertFragmentListener listener, Bundle arguments) { - mListener = listener; - setArguments(arguments); - } - - @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { - return AlertFragment.createDialog(getActivity(), getArguments(), this); - } - - @Override - public void onClick(DialogInterface dialog, int which) { - if (mListener != null) { - mListener.onClick(dialog, which); - } - } - - @Override - public void onDismiss(DialogInterface dialog) { - super.onDismiss(dialog); - if (mListener != null) { - mListener.onDismiss(dialog); - } - } -} From aa54e6697b9207a826d6adeb96d5e60d28e4e753 Mon Sep 17 00:00:00 2001 From: Dulmandakh Date: Mon, 11 Feb 2019 10:56:04 +0800 Subject: [PATCH 02/14] cleanup DialogModule --- .../com/facebook/react/modules/dialog/DialogModule.java | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/DialogModule.java b/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/DialogModule.java index 99ee4fa6cb7b4f..74e09bbc01ed26 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/DialogModule.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/DialogModule.java @@ -74,14 +74,11 @@ public DialogModule(ReactApplicationContext reactContext) { * code duplication. */ private class FragmentManagerHelper { - - // Exactly one of the two is null - private final @Nullable FragmentManager mFragmentManager; -// private final @Nullable android.support.v4.app.FragmentManager mSupportFragmentManager; + private final @Nonnull FragmentManager mFragmentManager; private @Nullable Object mFragmentToShow; - public FragmentManagerHelper(FragmentManager fragmentManager) { + public FragmentManagerHelper(@Nonnull FragmentManager fragmentManager) { mFragmentManager = fragmentManager; } From 99ce23d607b65802256ce84b8a344d52edbc7b4f Mon Sep 17 00:00:00 2001 From: Dulmandakh Date: Mon, 11 Feb 2019 11:04:59 +0800 Subject: [PATCH 03/14] add ReactActivity to BUCK --- .../src/main/java/com/facebook/react/modules/dialog/BUCK | 1 + 1 file changed, 1 insertion(+) diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/BUCK b/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/BUCK index 6736b020638945..a68085b51cb88f 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/BUCK +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/BUCK @@ -13,6 +13,7 @@ rn_android_library( react_native_dep("libraries/fbcore/src/main/java/com/facebook/common/logging:logging"), react_native_dep("third-party/java/infer-annotations:infer-annotations"), react_native_dep("third-party/java/jsr-305:jsr-305"), + react_native_target("java/com/facebook/react:react"), react_native_target("java/com/facebook/react/bridge:bridge"), react_native_target("java/com/facebook/react/common:common"), react_native_target("java/com/facebook/react/module/annotations:annotations"), From d443cf6b26c8d5f371622cdc359b189d603c15ce Mon Sep 17 00:00:00 2001 From: Dulmandakh Date: Mon, 11 Feb 2019 11:11:45 +0800 Subject: [PATCH 04/14] add appcompat to BUCK --- .../src/main/java/com/facebook/react/modules/dialog/BUCK | 1 + 1 file changed, 1 insertion(+) diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/BUCK b/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/BUCK index a68085b51cb88f..4dc005e1a98ff6 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/BUCK +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/BUCK @@ -5,6 +5,7 @@ rn_android_library( srcs = glob(["**/*.java"]), provided_deps = [ react_native_dep("third-party/android/support/v4:lib-support-v4"), + react_native_dep("third-party/android/support/v7/appcompat-orig:appcompat"), ], visibility = [ "PUBLIC", From 19f5d8702eb20367389814ddf3de8e2eb13a8867 Mon Sep 17 00:00:00 2001 From: Dulmandakh Date: Mon, 11 Feb 2019 11:19:31 +0800 Subject: [PATCH 05/14] add modules/core to BUCK --- .../src/main/java/com/facebook/react/modules/dialog/BUCK | 1 + 1 file changed, 1 insertion(+) diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/BUCK b/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/BUCK index 4dc005e1a98ff6..4108394f137ed0 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/BUCK +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/BUCK @@ -18,5 +18,6 @@ rn_android_library( react_native_target("java/com/facebook/react/bridge:bridge"), react_native_target("java/com/facebook/react/common:common"), react_native_target("java/com/facebook/react/module/annotations:annotations"), + react_native_target("java/com/facebook/react/modules/core:core"), ], ) From 062b60547fb08308ea2db4ec6bb4101dad3e4926 Mon Sep 17 00:00:00 2001 From: Dulmandakh Date: Mon, 11 Feb 2019 12:07:47 +0800 Subject: [PATCH 06/14] fix DialogModuleTest --- .../src/test/java/com/facebook/react/modules/BUCK | 1 + .../react/modules/dialog/DialogModuleTest.java | 14 ++++++++------ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/ReactAndroid/src/test/java/com/facebook/react/modules/BUCK b/ReactAndroid/src/test/java/com/facebook/react/modules/BUCK index 2206284f930891..74599219c13e68 100644 --- a/ReactAndroid/src/test/java/com/facebook/react/modules/BUCK +++ b/ReactAndroid/src/test/java/com/facebook/react/modules/BUCK @@ -12,6 +12,7 @@ rn_robolectric_test( YOGA_TARGET, react_native_dep("libraries/fbcore/src/test/java/com/facebook/powermock:powermock"), react_native_dep("third-party/android/support/v4:lib-support-v4"), + react_native_dep("third-party/android/support/v7/appcompat-orig:appcompat"), react_native_dep("third-party/java/fest:fest"), react_native_dep("third-party/java/jsr-305:jsr-305"), react_native_dep("third-party/java/junit:junit"), diff --git a/ReactAndroid/src/test/java/com/facebook/react/modules/dialog/DialogModuleTest.java b/ReactAndroid/src/test/java/com/facebook/react/modules/dialog/DialogModuleTest.java index d551959eed502c..53bd048a9fcbc5 100644 --- a/ReactAndroid/src/test/java/com/facebook/react/modules/dialog/DialogModuleTest.java +++ b/ReactAndroid/src/test/java/com/facebook/react/modules/dialog/DialogModuleTest.java @@ -8,8 +8,9 @@ package com.facebook.react.modules.dialog; import android.app.AlertDialog; +import android.app.RobolectricActivityManager; import android.content.DialogInterface; -import android.app.Activity; +import android.support.v7.app.AppCompatActivity; import com.facebook.react.bridge.Callback; import com.facebook.react.bridge.ReactApplicationContext; @@ -26,14 +27,15 @@ import org.robolectric.util.ActivityController; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; @RunWith(RobolectricTestRunner.class) @PowerMockIgnore({"org.mockito.*", "org.robolectric.*", "android.*"}) public class DialogModuleTest { - private ActivityController mActivityController; - private Activity mActivity; + private ActivityController mActivityController; + private AppCompatActivity mActivity; private DialogModule mDialogModule; final static class SimpleCallback implements Callback { @@ -57,7 +59,7 @@ public Object[] getArgs() { @Before public void setUp() throws Exception { - mActivityController = Robolectric.buildActivity(Activity.class); + mActivityController = Robolectric.buildActivity(AppCompatActivity.class); mActivity = mActivityController .create() .start() @@ -94,7 +96,7 @@ public void testAllOptions() { final AlertFragment fragment = getFragment(); assertNotNull("Fragment was not displayed", fragment); - assertEquals(false, fragment.isCancelable()); + assertFalse(fragment.isCancelable()); final AlertDialog dialog = (AlertDialog) fragment.getDialog(); assertEquals("OK", dialog.getButton(DialogInterface.BUTTON_POSITIVE).getText().toString()); @@ -164,7 +166,7 @@ public void testCallbackDismiss() { } private AlertFragment getFragment() { - return (AlertFragment) mActivity.getFragmentManager() + return (AlertFragment) mActivity.getSupportFragmentManager() .findFragmentByTag(DialogModule.FRAGMENT_TAG); } } From 8262c667414fcc3d2fda2cb82b44938c461f3811 Mon Sep 17 00:00:00 2001 From: Dulmandakh Date: Mon, 11 Feb 2019 12:22:22 +0800 Subject: [PATCH 07/14] DialogModule use AppCompatActivity --- .../src/main/java/com/facebook/react/modules/dialog/BUCK | 1 - .../java/com/facebook/react/modules/dialog/DialogModule.java | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/BUCK b/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/BUCK index 4108394f137ed0..0d423bbb3e95de 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/BUCK +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/BUCK @@ -14,7 +14,6 @@ rn_android_library( react_native_dep("libraries/fbcore/src/main/java/com/facebook/common/logging:logging"), react_native_dep("third-party/java/infer-annotations:infer-annotations"), react_native_dep("third-party/java/jsr-305:jsr-305"), - react_native_target("java/com/facebook/react:react"), react_native_target("java/com/facebook/react/bridge:bridge"), react_native_target("java/com/facebook/react/common:common"), react_native_target("java/com/facebook/react/module/annotations:annotations"), diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/DialogModule.java b/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/DialogModule.java index 74e09bbc01ed26..7ed1ac8f9a887f 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/DialogModule.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/DialogModule.java @@ -13,9 +13,9 @@ import android.content.DialogInterface.OnDismissListener; import android.os.Bundle; import android.support.v4.app.FragmentManager; +import android.support.v7.app.AppCompatActivity; import com.facebook.common.logging.FLog; -import com.facebook.react.ReactActivity; import com.facebook.react.bridge.Callback; import com.facebook.react.bridge.LifecycleEventListener; import com.facebook.react.bridge.ReactApplicationContext; @@ -241,6 +241,6 @@ public void run() { if (activity == null) { return null; } - return new FragmentManagerHelper(((ReactActivity) activity).getSupportFragmentManager()); + return new FragmentManagerHelper(((AppCompatActivity) activity).getSupportFragmentManager()); } } From 431ff061a6d199fe00dcaa026dbdf6bf76a5d81a Mon Sep 17 00:00:00 2001 From: Dulmandakh Date: Mon, 11 Feb 2019 12:35:25 +0800 Subject: [PATCH 08/14] use FragmentActivity in DialogModule --- .../src/main/java/com/facebook/react/modules/dialog/BUCK | 1 - .../com/facebook/react/modules/dialog/DialogModule.java | 4 ++-- .../facebook/react/modules/dialog/DialogModuleTest.java | 9 ++++----- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/BUCK b/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/BUCK index 0d423bbb3e95de..e4597df6eb692e 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/BUCK +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/BUCK @@ -5,7 +5,6 @@ rn_android_library( srcs = glob(["**/*.java"]), provided_deps = [ react_native_dep("third-party/android/support/v4:lib-support-v4"), - react_native_dep("third-party/android/support/v7/appcompat-orig:appcompat"), ], visibility = [ "PUBLIC", diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/DialogModule.java b/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/DialogModule.java index 7ed1ac8f9a887f..8554ba4569b804 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/DialogModule.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/DialogModule.java @@ -12,8 +12,8 @@ import android.content.DialogInterface.OnClickListener; import android.content.DialogInterface.OnDismissListener; import android.os.Bundle; +import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; -import android.support.v7.app.AppCompatActivity; import com.facebook.common.logging.FLog; import com.facebook.react.bridge.Callback; @@ -241,6 +241,6 @@ public void run() { if (activity == null) { return null; } - return new FragmentManagerHelper(((AppCompatActivity) activity).getSupportFragmentManager()); + return new FragmentManagerHelper(((FragmentActivity) activity).getSupportFragmentManager()); } } diff --git a/ReactAndroid/src/test/java/com/facebook/react/modules/dialog/DialogModuleTest.java b/ReactAndroid/src/test/java/com/facebook/react/modules/dialog/DialogModuleTest.java index 53bd048a9fcbc5..03952ab68274d3 100644 --- a/ReactAndroid/src/test/java/com/facebook/react/modules/dialog/DialogModuleTest.java +++ b/ReactAndroid/src/test/java/com/facebook/react/modules/dialog/DialogModuleTest.java @@ -8,9 +8,8 @@ package com.facebook.react.modules.dialog; import android.app.AlertDialog; -import android.app.RobolectricActivityManager; import android.content.DialogInterface; -import android.support.v7.app.AppCompatActivity; +import android.support.v4.app.FragmentActivity; import com.facebook.react.bridge.Callback; import com.facebook.react.bridge.ReactApplicationContext; @@ -34,8 +33,8 @@ @PowerMockIgnore({"org.mockito.*", "org.robolectric.*", "android.*"}) public class DialogModuleTest { - private ActivityController mActivityController; - private AppCompatActivity mActivity; + private ActivityController mActivityController; + private FragmentActivity mActivity; private DialogModule mDialogModule; final static class SimpleCallback implements Callback { @@ -59,7 +58,7 @@ public Object[] getArgs() { @Before public void setUp() throws Exception { - mActivityController = Robolectric.buildActivity(AppCompatActivity.class); + mActivityController = Robolectric.buildActivity(FragmentActivity.class); mActivity = mActivityController .create() .start() From 33e62c3243297fbfb0adc70dc47ebd09bea42fc9 Mon Sep 17 00:00:00 2001 From: Dulmandakh Date: Mon, 11 Feb 2019 12:35:25 +0800 Subject: [PATCH 09/14] remove old comments --- .../src/main/java/com/facebook/react/modules/dialog/BUCK | 1 - .../com/facebook/react/modules/dialog/DialogModule.java | 4 ++-- .../facebook/react/modules/dialog/DialogModuleTest.java | 9 ++++----- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/BUCK b/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/BUCK index 0d423bbb3e95de..e4597df6eb692e 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/BUCK +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/BUCK @@ -5,7 +5,6 @@ rn_android_library( srcs = glob(["**/*.java"]), provided_deps = [ react_native_dep("third-party/android/support/v4:lib-support-v4"), - react_native_dep("third-party/android/support/v7/appcompat-orig:appcompat"), ], visibility = [ "PUBLIC", diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/DialogModule.java b/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/DialogModule.java index 7ed1ac8f9a887f..8554ba4569b804 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/DialogModule.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/DialogModule.java @@ -12,8 +12,8 @@ import android.content.DialogInterface.OnClickListener; import android.content.DialogInterface.OnDismissListener; import android.os.Bundle; +import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentManager; -import android.support.v7.app.AppCompatActivity; import com.facebook.common.logging.FLog; import com.facebook.react.bridge.Callback; @@ -241,6 +241,6 @@ public void run() { if (activity == null) { return null; } - return new FragmentManagerHelper(((AppCompatActivity) activity).getSupportFragmentManager()); + return new FragmentManagerHelper(((FragmentActivity) activity).getSupportFragmentManager()); } } diff --git a/ReactAndroid/src/test/java/com/facebook/react/modules/dialog/DialogModuleTest.java b/ReactAndroid/src/test/java/com/facebook/react/modules/dialog/DialogModuleTest.java index 53bd048a9fcbc5..03952ab68274d3 100644 --- a/ReactAndroid/src/test/java/com/facebook/react/modules/dialog/DialogModuleTest.java +++ b/ReactAndroid/src/test/java/com/facebook/react/modules/dialog/DialogModuleTest.java @@ -8,9 +8,8 @@ package com.facebook.react.modules.dialog; import android.app.AlertDialog; -import android.app.RobolectricActivityManager; import android.content.DialogInterface; -import android.support.v7.app.AppCompatActivity; +import android.support.v4.app.FragmentActivity; import com.facebook.react.bridge.Callback; import com.facebook.react.bridge.ReactApplicationContext; @@ -34,8 +33,8 @@ @PowerMockIgnore({"org.mockito.*", "org.robolectric.*", "android.*"}) public class DialogModuleTest { - private ActivityController mActivityController; - private AppCompatActivity mActivity; + private ActivityController mActivityController; + private FragmentActivity mActivity; private DialogModule mDialogModule; final static class SimpleCallback implements Callback { @@ -59,7 +58,7 @@ public Object[] getArgs() { @Before public void setUp() throws Exception { - mActivityController = Robolectric.buildActivity(AppCompatActivity.class); + mActivityController = Robolectric.buildActivity(FragmentActivity.class); mActivity = mActivityController .create() .start() From 6c5c4ded14908ed10be054372ca0b632e51191da Mon Sep 17 00:00:00 2001 From: Dulmandakh Date: Tue, 12 Feb 2019 11:42:16 +0800 Subject: [PATCH 10/14] remove old comments --- .../facebook/react/modules/dialog/DialogModule.java | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/DialogModule.java b/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/DialogModule.java index 8554ba4569b804..8854b8e649d41c 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/DialogModule.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/DialogModule.java @@ -67,12 +67,6 @@ public DialogModule(ReactApplicationContext reactContext) { return NAME; } - /** - * Helper to allow this module to work with both the standard FragmentManager - * and the Support FragmentManager (for apps that need to use it for legacy reasons). - * Since the two APIs don't share a common interface there's unfortunately some - * code duplication. - */ private class FragmentManagerHelper { private final @Nonnull FragmentManager mFragmentManager; @@ -230,8 +224,8 @@ public void run() { } /** - * Creates a new helper to work with either the FragmentManager or the legacy support - * FragmentManager transparently. Returns null if we're not attached to an Activity. + * Creates a new helper to work with FragmentManager. + * Returns null if we're not attached to an Activity. * * DO NOT HOLD LONG-LIVED REFERENCES TO THE OBJECT RETURNED BY THIS METHOD, AS THIS WILL CAUSE * MEMORY LEAKS. From ee8040aa9d2fdc0b497abdf290fb47b1a0636378 Mon Sep 17 00:00:00 2001 From: Dulmandakh Date: Wed, 13 Feb 2019 12:18:17 +0800 Subject: [PATCH 11/14] fix typo --- .../src/main/java/com/facebook/react/modules/dialog/BUCK | 1 - .../java/com/facebook/react/modules/dialog/DialogModule.java | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/BUCK b/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/BUCK index e4597df6eb692e..6736b020638945 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/BUCK +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/BUCK @@ -16,6 +16,5 @@ rn_android_library( react_native_target("java/com/facebook/react/bridge:bridge"), react_native_target("java/com/facebook/react/common:common"), react_native_target("java/com/facebook/react/module/annotations:annotations"), - react_native_target("java/com/facebook/react/modules/core:core"), ], ) diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/DialogModule.java b/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/DialogModule.java index d4d681da4b401f..a1c971f95f0a40 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/DialogModule.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/DialogModule.java @@ -109,7 +109,7 @@ public void showNewAlert(Bundle arguments, Callback actionCallback) { actionCallback != null ? new AlertFragmentListener(actionCallback) : null; AlertFragment alertFragment = new AlertFragment(actionListener, arguments); - if (isInForeground && !mFragmentManager.isStateSaved()) { + if (mIsInForeground && !mFragmentManager.isStateSaved()) { if (arguments.containsKey(KEY_CANCELABLE)) { alertFragment.setCancelable(arguments.getBoolean(KEY_CANCELABLE)); } From 57c07fe8b4c30ef4cbb07fb51a85fa96a819616b Mon Sep 17 00:00:00 2001 From: Dulmandakh Date: Mon, 18 Mar 2019 18:57:25 +0000 Subject: [PATCH 12/14] resolve confict --- .../react/modules/dialog/AlertFragment.java | 2 +- .../react/modules/dialog/DialogModule.java | 19 ------------------- 2 files changed, 1 insertion(+), 20 deletions(-) diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/AlertFragment.java b/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/AlertFragment.java index 8fa8f59b73a736..a3bb7ca00d1d4a 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/AlertFragment.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/AlertFragment.java @@ -15,7 +15,7 @@ import android.content.DialogInterface; import android.content.Context; import android.os.Bundle; -import android.support.v4.app.DialogFragment; +import androidx.fragment.app.DialogFragment; /** * A fragment used to display the dialog. diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/DialogModule.java b/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/DialogModule.java index 3631f3bc7408a8..e1881c154f3993 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/DialogModule.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/DialogModule.java @@ -67,30 +67,11 @@ public DialogModule(ReactApplicationContext reactContext) { } private class FragmentManagerHelper { -<<<<<<< HEAD private final @Nonnull FragmentManager mFragmentManager; private @Nullable Object mFragmentToShow; public FragmentManagerHelper(@Nonnull FragmentManager fragmentManager) { -======= - - // Exactly one of the two is null - private final @Nullable android.app.FragmentManager mFragmentManager; - private final @Nullable androidx.fragment.app.FragmentManager mSupportFragmentManager; - - private @Nullable Object mFragmentToShow; - - private boolean isUsingSupportLibrary() { - return mSupportFragmentManager != null; - } - - public FragmentManagerHelper(androidx.fragment.app.FragmentManager supportFragmentManager) { - mFragmentManager = null; - mSupportFragmentManager = supportFragmentManager; - } - public FragmentManagerHelper(android.app.FragmentManager fragmentManager) { ->>>>>>> master mFragmentManager = fragmentManager; } From d367daa17b7b97151a47f54e9cc8a0a41fcacc54 Mon Sep 17 00:00:00 2001 From: Dulmandakh Date: Tue, 19 Mar 2019 09:02:43 +0000 Subject: [PATCH 13/14] import FragmentManager --- .../java/com/facebook/react/modules/dialog/DialogModule.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/DialogModule.java b/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/DialogModule.java index e1881c154f3993..2f7cfc487c0b36 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/DialogModule.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/dialog/DialogModule.java @@ -13,6 +13,8 @@ import android.content.DialogInterface.OnDismissListener; import android.os.Bundle; import androidx.fragment.app.FragmentActivity; +import androidx.fragment.app.FragmentManager; + import com.facebook.common.logging.FLog; import com.facebook.react.bridge.Callback; import com.facebook.react.bridge.LifecycleEventListener; From deb326cbe7b30fab4cb9529dcb8892fa8f99d1dc Mon Sep 17 00:00:00 2001 From: Dulmandakh Date: Tue, 19 Mar 2019 11:09:20 +0000 Subject: [PATCH 14/14] fix DialogModuleTest --- .../com/facebook/react/modules/dialog/DialogModuleTest.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ReactAndroid/src/test/java/com/facebook/react/modules/dialog/DialogModuleTest.java b/ReactAndroid/src/test/java/com/facebook/react/modules/dialog/DialogModuleTest.java index 18ad7f89b25abc..7a9fe4c5e6beb4 100644 --- a/ReactAndroid/src/test/java/com/facebook/react/modules/dialog/DialogModuleTest.java +++ b/ReactAndroid/src/test/java/com/facebook/react/modules/dialog/DialogModuleTest.java @@ -9,7 +9,7 @@ import android.app.AlertDialog; import android.content.DialogInterface; -import android.support.v4.app.FragmentActivity; + import com.facebook.react.bridge.Callback; import com.facebook.react.bridge.ReactApplicationContext; @@ -25,6 +25,8 @@ import org.robolectric.RobolectricTestRunner; import org.robolectric.util.ActivityController; +import androidx.fragment.app.FragmentActivity; + import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull;