mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
DialogModule supports only FragmentActivity (#23365)
Summary: Now RN has only ReactActivity which extends AppCompatActivity, subclass of FragmentActivity, therefore no need to check if activity is FragmentActivity or not. This PR changes DialogModule to work only with FragmentActivity. Also DialogFragment from Android is deprecated in API 28, and recommends to use DialogFragment from Support Library. Excerpt from DialogFragment documentation. > **This class was deprecated in API level 28.** > Use the Support Library DialogFragment for consistent behavior across all devices and access to Lifecycle. **BREAKING CHANGE**: Brown field apps must extend FragmentActivity or its subclasses. [Android] [Changed] - DialogModule supports only FragmentActivity Pull Request resolved: https://github.com/facebook/react-native/pull/23365 Differential Revision: D14021986 Pulled By: cpojer fbshipit-source-id: b0ede60ef19cec48111a12701659a8bc1f66c331
This commit is contained in:
committed by
Facebook Github Bot
parent
ffc0986a38
commit
243070afe2
@@ -9,7 +9,7 @@ package com.facebook.react.modules.dialog;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.content.DialogInterface;
|
||||
import android.app.Activity;
|
||||
|
||||
|
||||
import com.facebook.react.bridge.Callback;
|
||||
import com.facebook.react.bridge.ReactApplicationContext;
|
||||
@@ -25,15 +25,18 @@ import org.robolectric.Robolectric;
|
||||
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;
|
||||
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
@PowerMockIgnore({"org.mockito.*", "org.robolectric.*", "androidx.*", "android.*"})
|
||||
public class DialogModuleTest {
|
||||
|
||||
private ActivityController<Activity> mActivityController;
|
||||
private Activity mActivity;
|
||||
private ActivityController<FragmentActivity> mActivityController;
|
||||
private FragmentActivity mActivity;
|
||||
private DialogModule mDialogModule;
|
||||
|
||||
final static class SimpleCallback implements Callback {
|
||||
@@ -57,7 +60,7 @@ public class DialogModuleTest {
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
mActivityController = Robolectric.buildActivity(Activity.class);
|
||||
mActivityController = Robolectric.buildActivity(FragmentActivity.class);
|
||||
mActivity = mActivityController
|
||||
.create()
|
||||
.start()
|
||||
@@ -94,7 +97,7 @@ public class DialogModuleTest {
|
||||
|
||||
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 +167,7 @@ public class DialogModuleTest {
|
||||
}
|
||||
|
||||
private AlertFragment getFragment() {
|
||||
return (AlertFragment) mActivity.getFragmentManager()
|
||||
return (AlertFragment) mActivity.getSupportFragmentManager()
|
||||
.findFragmentByTag(DialogModule.FRAGMENT_TAG);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user