diff --git a/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerDialogModule.java b/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerDialogModule.java index 429fca86644..e6971464889 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerDialogModule.java +++ b/ReactAndroid/src/main/java/com/facebook/react/modules/datepicker/DatePickerDialogModule.java @@ -101,7 +101,7 @@ public class DatePickerDialogModule extends NativeDatePickerAndroidSpec { * If the action is dismiss, year, month and date are undefined. */ @Override - public void open(@Nullable final ReadableMap options, Promise promise) { + public void open(@Nullable final ReadableMap options, final Promise promise) { Activity raw_activity = getCurrentActivity(); if (raw_activity == null || !(raw_activity instanceof FragmentActivity)) { promise.reject( @@ -112,20 +112,26 @@ public class DatePickerDialogModule extends NativeDatePickerAndroidSpec { FragmentActivity activity = (FragmentActivity) raw_activity; - FragmentManager fragmentManager = activity.getSupportFragmentManager(); + final FragmentManager fragmentManager = activity.getSupportFragmentManager(); DialogFragment oldFragment = (DialogFragment) fragmentManager.findFragmentByTag(FRAGMENT_TAG); if (oldFragment != null) { oldFragment.dismiss(); } - DatePickerDialogFragment fragment = new DatePickerDialogFragment(); - if (options != null) { - final Bundle args = createFragmentArguments(options); - fragment.setArguments(args); - } - final DatePickerDialogListener listener = new DatePickerDialogListener(promise); - fragment.setOnDismissListener(listener); - fragment.setOnDateSetListener(listener); - fragment.show(fragmentManager, FRAGMENT_TAG); + activity.runOnUiThread( + new Runnable() { + @Override + public void run() { + DatePickerDialogFragment fragment = new DatePickerDialogFragment(); + if (options != null) { + final Bundle args = createFragmentArguments(options); + fragment.setArguments(args); + } + final DatePickerDialogListener listener = new DatePickerDialogListener(promise); + fragment.setOnDismissListener(listener); + fragment.setOnDateSetListener(listener); + fragment.show(fragmentManager, FRAGMENT_TAG); + } + }); } private Bundle createFragmentArguments(ReadableMap options) {