From e81c6a12e11ac2cb943529b71ba3226658ac9cac Mon Sep 17 00:00:00 2001 From: sidorchukandrew <36050911+sidorchukandrew@users.noreply.github.com> Date: Mon, 3 Feb 2025 13:51:16 -0500 Subject: [PATCH] feat(android): material 3 pickers (#952) * Support Kotlin files Android Studio recommended these settings for supporting Kotlin in the project. * Add Material dependency * Extract re-usable picker argument utilities The new Material pickers will utilize these utilities as well. * Set up new specs/modules * Accept new arguments for Material pickers The pickers will allow the user to set a title for the dialog and specify if the initial input mode should be a text input or calendar/clock. * Implement MaterialDatePicker This also adds a utility function to RNDate to get the date in milliseconds. * Implement MaterialTimePicker * Create JS connectors that call the native modules * Choose native module based on `design` prop If the `design` is "material", then use the Material modules. Otherwise, use the default modules. * Validate Material 3 props not used with default pickers * Update components to pass new props to modules * Update types * Update example app * Fix typo in existing docs * Add dummy files to prevent tests from failing The tests were trying to access the native modules. These dummy files will make sure the tests don't try accessing the real implementations that end with `.android.js`. * Update README * Update E2E specs Since there are multiple "default" options on the screen now, I've specified to tap the first one. I also had to make sure to scroll the screen before tapping the show picker button. * Make example app inherit from Material3 theme * Move post-install into `start` script --- README.md | 52 +++++ android/build.gradle | 6 + .../rndatetimepicker/Common.java | 61 ++++++ .../rndatetimepicker/DatePickerModule.java | 32 +-- .../MaterialDatePickerModule.kt | 44 +++++ .../MaterialTimePickerModule.kt | 49 +++++ .../rndatetimepicker/RNConstants.java | 3 + .../rndatetimepicker/RNDate.java | 1 + .../RNDateTimePickerPackage.java | 26 +++ .../rndatetimepicker/RNMaterialDatePicker.kt | 179 +++++++++++++++++ .../rndatetimepicker/RNMaterialInputMode.java | 6 + .../rndatetimepicker/RNMaterialTimePicker.kt | 155 +++++++++++++++ .../rndatetimepicker/TimePickerModule.java | 24 +-- .../NativeModuleMaterialDatePickerSpec.java | 36 ++++ .../NativeModuleMaterialTimePickerSpec.java | 36 ++++ docs/images/android_material_date.jpg | Bin 0 -> 92790 bytes docs/images/android_material_time.jpg | Bin 0 -> 94042 bytes example/App.js | 46 +++++ example/e2e/detoxTest.spec.js | 3 + example/e2e/utils/actions.js | 3 +- package.json | 4 +- patches/react-native-test-app+4.0.7.patch | 13 ++ src/DateTimePickerAndroid.android.js | 23 ++- src/androidUtils.js | 47 ++++- src/datetimepicker.android.js | 12 +- src/index.d.ts | 28 +++ src/materialdatepicker.android.js | 57 ++++++ src/materialdatepicker.js | 6 + src/materialtimepicker.android.js | 51 +++++ src/materialtimepicker.js | 6 + src/specs/NativeModuleMaterialDatePicker.js | 33 ++++ src/specs/NativeModuleMaterialTimePicker.js | 28 +++ src/timepicker.android.js | 2 +- src/types.js | 39 +++- yarn.lock | 186 +++++++++++++++++- 35 files changed, 1229 insertions(+), 68 deletions(-) create mode 100644 android/src/main/java/com/reactcommunity/rndatetimepicker/MaterialDatePickerModule.kt create mode 100644 android/src/main/java/com/reactcommunity/rndatetimepicker/MaterialTimePickerModule.kt create mode 100644 android/src/main/java/com/reactcommunity/rndatetimepicker/RNMaterialDatePicker.kt create mode 100644 android/src/main/java/com/reactcommunity/rndatetimepicker/RNMaterialInputMode.java create mode 100644 android/src/main/java/com/reactcommunity/rndatetimepicker/RNMaterialTimePicker.kt create mode 100644 android/src/paper/java/com/reactcommunity/rndatetimepicker/NativeModuleMaterialDatePickerSpec.java create mode 100644 android/src/paper/java/com/reactcommunity/rndatetimepicker/NativeModuleMaterialTimePickerSpec.java create mode 100644 docs/images/android_material_date.jpg create mode 100644 docs/images/android_material_time.jpg create mode 100644 patches/react-native-test-app+4.0.7.patch create mode 100644 src/materialdatepicker.android.js create mode 100644 src/materialdatepicker.js create mode 100644 src/materialtimepicker.android.js create mode 100644 src/materialtimepicker.js create mode 100644 src/specs/NativeModuleMaterialDatePicker.js create mode 100644 src/specs/NativeModuleMaterialTimePicker.js diff --git a/README.md b/README.md index 19f7d7c9..9a6542cc 100644 --- a/README.md +++ b/README.md @@ -51,6 +51,10 @@ React Native date & time picker component for iOS, Android and Windows (please n

+ +

+

+ Windows

@@ -77,6 +81,10 @@ React Native date & time picker component for iOS, Android and Windows (please n - [Props / params](#component-props--params-of-the-android-imperative-api) - [`mode` (`optional`)](#mode-optional) - [`display` (`optional`)](#display-optional) + - [`design` (`optional`, `Android only`)](#design-optional) + - [`initialInputMode` (`optional`, `Android only`)](#initialinputmode-optional-android-only) + - [`title` (`optional`, `Android only`)](#title-optional-android-only) + - [`fullscreen` (`optional`, `Android only`)](#fullscreen-optional-android-only) - [`onChange` (`optional`)](#onchange-optional) - [`value` (`required`)](#value-required) - [`maximumDate` (`optional`)](#maximumdate-optional) @@ -287,6 +295,8 @@ The reason we recommend the imperative API is: on Android, the date/time picker ### Android styling +If you'd like to use the Material pickers, your app theme will need to inherit from `Theme.Material3.DayNight.NoActionBar` in `styles.xml`. + Styling of the dialogs on Android can be easily customized by using the provided config plugin, provided that you use a [Expo development build](https://docs.expo.dev/develop/development-builds/introduction/). The plugin allows you to configure color properties that cannot be set at runtime and requires building a new app binary to take effect. Refer to this documentation for more information: [android-styling.md](/docs/android-styling.md). @@ -334,6 +344,19 @@ List of possible values for iOS (maps to [preferredDatePickerStyle](https://deve ``` +#### `design` (`optional`, `Android only`) + +Defines if the picker should use Material 3 components or the default picker. The default value is `"default"`. + +List of possible values + +- `"default"` +- `"material"` + +```js + +``` + #### `onChange` (`optional`) Date change handler. @@ -482,6 +505,35 @@ Allows changing of the time picker to a 24-hour format. By default, this value i ``` +#### `initialInputMode` (`optional`, `Android only`) + +:warning: Has effect only when `design` is "material". Allows setting the initial input mode of the picker. + +List of possible values: + +- `"default"` - Recommended. Date pickers will show the calendar view by default, and time pickers will show the clock view by default. +- `"keyboard"` - Both pickers will show an input where the user can type the date or time. + +```js + +``` + +#### `title` (`optional`, `Android only`) + +:warning: Has effect only when `design` is "material". Allows setting the title of the dialog for the pickers. + +```js + +``` + +#### `fullscreen` (`optional`, `Android only`) + +:warning: Has effect only when `design` is "material". Allows setting the date picker dialog to be fullscreen. + +```js + +``` + #### `positiveButton` (`optional`, `Android only`) Set the positive button label and text color. diff --git a/android/build.gradle b/android/build.gradle index 20cc6954..af810e8e 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -18,6 +18,7 @@ def isNewArchitectureEnabled() { } apply plugin: 'com.android.library' +apply plugin: 'org.jetbrains.kotlin.android' if (isNewArchitectureEnabled()) { apply plugin: "com.facebook.react" } @@ -53,6 +54,9 @@ android { } } } + kotlinOptions { + jvmTarget = '17' + } } repositories { @@ -64,4 +68,6 @@ repositories { dependencies { //noinspection GradleDynamicVersion implementation 'com.facebook.react:react-native:+' + implementation 'com.google.android.material:material:1.12.0' + implementation 'androidx.core:core-ktx:1.13.1' } diff --git a/android/src/main/java/com/reactcommunity/rndatetimepicker/Common.java b/android/src/main/java/com/reactcommunity/rndatetimepicker/Common.java index 0bfc4c21..ca6b2e06 100644 --- a/android/src/main/java/com/reactcommunity/rndatetimepicker/Common.java +++ b/android/src/main/java/com/reactcommunity/rndatetimepicker/Common.java @@ -17,6 +17,7 @@ import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentManager; +import com.facebook.react.bridge.Arguments; import com.facebook.react.bridge.Promise; import com.facebook.react.bridge.ReadableMap; import com.facebook.react.util.RNLog; @@ -205,6 +206,66 @@ public static Bundle createFragmentArguments(ReadableMap options) { if (options.hasKey(RNConstants.ARG_TZ_NAME) && !options.isNull(RNConstants.ARG_TZ_NAME)) { args.putString(RNConstants.ARG_TZ_NAME, options.getString(RNConstants.ARG_TZ_NAME)); } + if (options.hasKey(RNConstants.ARG_TITLE) && !options.isNull(RNConstants.ARG_TITLE)) { + args.putString(RNConstants.ARG_TITLE, options.getString(RNConstants.ARG_TITLE)); + } + if (options.hasKey(RNConstants.ARG_INITIAL_INPUT_MODE) && !options.isNull(RNConstants.ARG_INITIAL_INPUT_MODE)) { + args.putString(RNConstants.ARG_INITIAL_INPUT_MODE, options.getString(RNConstants.ARG_INITIAL_INPUT_MODE)); + } + + return args; + } + + public static Bundle createDatePickerArguments(ReadableMap options) { + final Bundle args = Common.createFragmentArguments(options); + + if (options.hasKey(RNConstants.ARG_MINDATE) && !options.isNull(RNConstants.ARG_MINDATE)) { + args.putLong(RNConstants.ARG_MINDATE, (long) options.getDouble(RNConstants.ARG_MINDATE)); + } + if (options.hasKey(RNConstants.ARG_MAXDATE) && !options.isNull(RNConstants.ARG_MAXDATE)) { + args.putLong(RNConstants.ARG_MAXDATE, (long) options.getDouble(RNConstants.ARG_MAXDATE)); + } + if (options.hasKey(RNConstants.ARG_DISPLAY) && !options.isNull(RNConstants.ARG_DISPLAY)) { + args.putString(RNConstants.ARG_DISPLAY, options.getString(RNConstants.ARG_DISPLAY)); + } + if (options.hasKey(RNConstants.ARG_DIALOG_BUTTONS) && !options.isNull(RNConstants.ARG_DIALOG_BUTTONS)) { + args.putBundle(RNConstants.ARG_DIALOG_BUTTONS, Arguments.toBundle(options.getMap(RNConstants.ARG_DIALOG_BUTTONS))); + } + if (options.hasKey(RNConstants.ARG_TZOFFSET_MINS) && !options.isNull(RNConstants.ARG_TZOFFSET_MINS)) { + args.putLong(RNConstants.ARG_TZOFFSET_MINS, (long) options.getDouble(RNConstants.ARG_TZOFFSET_MINS)); + } + if (options.hasKey(RNConstants.ARG_TESTID) && !options.isNull(RNConstants.ARG_TESTID)) { + args.putString(RNConstants.ARG_TESTID, options.getString(RNConstants.ARG_TESTID)); + } + if (options.hasKey(RNConstants.ARG_FULLSCREEN) && !options.isNull(RNConstants.ARG_FULLSCREEN)) { + args.putBoolean(RNConstants.ARG_FULLSCREEN, options.getBoolean(RNConstants.ARG_FULLSCREEN)); + } + if (options.hasKey(RNConstants.FIRST_DAY_OF_WEEK) && !options.isNull(RNConstants.FIRST_DAY_OF_WEEK)) { + // FIRST_DAY_OF_WEEK is 0-indexed, since it uses the same constants DAY_OF_WEEK used in the Windows implementation + // Android DatePicker uses 1-indexed values, SUNDAY being 1 and SATURDAY being 7, so the +1 is necessary in this case + args.putInt(RNConstants.FIRST_DAY_OF_WEEK, options.getInt(RNConstants.FIRST_DAY_OF_WEEK)+1); + } + return args; + } + + public static Bundle createTimePickerArguments(ReadableMap options) { + final Bundle args = Common.createFragmentArguments(options); + + if (options.hasKey(RNConstants.ARG_IS24HOUR) && !options.isNull(RNConstants.ARG_IS24HOUR)) { + args.putBoolean(RNConstants.ARG_IS24HOUR, options.getBoolean(RNConstants.ARG_IS24HOUR)); + } + if (options.hasKey(RNConstants.ARG_DISPLAY) && !options.isNull(RNConstants.ARG_DISPLAY)) { + args.putString(RNConstants.ARG_DISPLAY, options.getString(RNConstants.ARG_DISPLAY)); + } + if (options.hasKey(RNConstants.ARG_DIALOG_BUTTONS) && !options.isNull(RNConstants.ARG_DIALOG_BUTTONS)) { + args.putBundle(RNConstants.ARG_DIALOG_BUTTONS, Arguments.toBundle(options.getMap(RNConstants.ARG_DIALOG_BUTTONS))); + } + if (options.hasKey(RNConstants.ARG_INTERVAL) && !options.isNull(RNConstants.ARG_INTERVAL)) { + args.putInt(RNConstants.ARG_INTERVAL, options.getInt(RNConstants.ARG_INTERVAL)); + } + if (options.hasKey(RNConstants.ARG_TZOFFSET_MINS) && !options.isNull(RNConstants.ARG_TZOFFSET_MINS)) { + args.putLong(RNConstants.ARG_TZOFFSET_MINS, (long) options.getDouble(RNConstants.ARG_TZOFFSET_MINS)); + } return args; } diff --git a/android/src/main/java/com/reactcommunity/rndatetimepicker/DatePickerModule.java b/android/src/main/java/com/reactcommunity/rndatetimepicker/DatePickerModule.java index 6eec370b..d043e4f9 100644 --- a/android/src/main/java/com/reactcommunity/rndatetimepicker/DatePickerModule.java +++ b/android/src/main/java/com/reactcommunity/rndatetimepicker/DatePickerModule.java @@ -21,6 +21,7 @@ import com.facebook.react.common.annotations.VisibleForTesting; import com.facebook.react.module.annotations.ReactModule; +import static com.reactcommunity.rndatetimepicker.Common.createDatePickerArguments; import static com.reactcommunity.rndatetimepicker.Common.dismissDialog; import java.util.Calendar; @@ -144,7 +145,7 @@ public void open(final ReadableMap options, final Promise promise) { RNDatePickerDialogFragment oldFragment = (RNDatePickerDialogFragment) fragmentManager.findFragmentByTag(NAME); - Bundle arguments = createFragmentArguments(options); + Bundle arguments = createDatePickerArguments(options); if (oldFragment != null) { oldFragment.update(arguments); @@ -162,33 +163,4 @@ public void open(final ReadableMap options, final Promise promise) { fragment.show(fragmentManager, NAME); }); } - - private Bundle createFragmentArguments(ReadableMap options) { - final Bundle args = Common.createFragmentArguments(options); - - if (options.hasKey(RNConstants.ARG_MINDATE) && !options.isNull(RNConstants.ARG_MINDATE)) { - args.putLong(RNConstants.ARG_MINDATE, (long) options.getDouble(RNConstants.ARG_MINDATE)); - } - if (options.hasKey(RNConstants.ARG_MAXDATE) && !options.isNull(RNConstants.ARG_MAXDATE)) { - args.putLong(RNConstants.ARG_MAXDATE, (long) options.getDouble(RNConstants.ARG_MAXDATE)); - } - if (options.hasKey(RNConstants.ARG_DISPLAY) && !options.isNull(RNConstants.ARG_DISPLAY)) { - args.putString(RNConstants.ARG_DISPLAY, options.getString(RNConstants.ARG_DISPLAY)); - } - if (options.hasKey(RNConstants.ARG_DIALOG_BUTTONS) && !options.isNull(RNConstants.ARG_DIALOG_BUTTONS)) { - args.putBundle(RNConstants.ARG_DIALOG_BUTTONS, Arguments.toBundle(options.getMap(RNConstants.ARG_DIALOG_BUTTONS))); - } - if (options.hasKey(RNConstants.ARG_TZOFFSET_MINS) && !options.isNull(RNConstants.ARG_TZOFFSET_MINS)) { - args.putLong(RNConstants.ARG_TZOFFSET_MINS, (long) options.getDouble(RNConstants.ARG_TZOFFSET_MINS)); - } - if (options.hasKey(RNConstants.ARG_TESTID) && !options.isNull(RNConstants.ARG_TESTID)) { - args.putString(RNConstants.ARG_TESTID, options.getString(RNConstants.ARG_TESTID)); - } - if (options.hasKey(RNConstants.FIRST_DAY_OF_WEEK) && !options.isNull(RNConstants.FIRST_DAY_OF_WEEK)) { - // FIRST_DAY_OF_WEEK is 0-indexed, since it uses the same constants DAY_OF_WEEK used in the Windows implementation - // Android DatePicker uses 1-indexed values, SUNDAY being 1 and SATURDAY being 7, so the +1 is necessary in this case - args.putInt(RNConstants.FIRST_DAY_OF_WEEK, options.getInt(RNConstants.FIRST_DAY_OF_WEEK)+1); - } - return args; - } } diff --git a/android/src/main/java/com/reactcommunity/rndatetimepicker/MaterialDatePickerModule.kt b/android/src/main/java/com/reactcommunity/rndatetimepicker/MaterialDatePickerModule.kt new file mode 100644 index 00000000..2cb28ade --- /dev/null +++ b/android/src/main/java/com/reactcommunity/rndatetimepicker/MaterialDatePickerModule.kt @@ -0,0 +1,44 @@ +package com.reactcommunity.rndatetimepicker + +import androidx.fragment.app.FragmentActivity +import com.facebook.react.bridge.Promise +import com.facebook.react.bridge.ReactApplicationContext +import com.facebook.react.bridge.ReadableMap +import com.facebook.react.bridge.UiThreadUtil +import com.reactcommunity.rndatetimepicker.Common.createDatePickerArguments +import com.reactcommunity.rndatetimepicker.Common.dismissDialog + +class MaterialDatePickerModule(reactContext: ReactApplicationContext): NativeModuleMaterialDatePickerSpec(reactContext) { + companion object { + const val NAME = "RNCMaterialDatePicker" + } + + override fun getName(): String { + return NAME + } + + override fun dismiss(promise: Promise?) { + val activity = currentActivity as FragmentActivity? + dismissDialog(activity, NAME, promise) + } + + override fun open(params: ReadableMap, promise: Promise) { + val activity = currentActivity as FragmentActivity? + if (activity == null) { + promise.reject( + RNConstants.ERROR_NO_ACTIVITY, + "Tried to open a MaterialDatePicker dialog while not attached to an Activity" + ) + return + } + + val fragmentManager = activity.supportFragmentManager + + UiThreadUtil.runOnUiThread { + val arguments = createDatePickerArguments(params) + val datePicker = + RNMaterialDatePicker(arguments, promise, fragmentManager, reactApplicationContext) + datePicker.open() + } + } +} diff --git a/android/src/main/java/com/reactcommunity/rndatetimepicker/MaterialTimePickerModule.kt b/android/src/main/java/com/reactcommunity/rndatetimepicker/MaterialTimePickerModule.kt new file mode 100644 index 00000000..b3e75669 --- /dev/null +++ b/android/src/main/java/com/reactcommunity/rndatetimepicker/MaterialTimePickerModule.kt @@ -0,0 +1,49 @@ +package com.reactcommunity.rndatetimepicker + +import androidx.fragment.app.FragmentActivity +import com.facebook.react.bridge.Promise +import com.facebook.react.bridge.ReactApplicationContext +import com.facebook.react.bridge.ReadableMap +import com.facebook.react.bridge.UiThreadUtil +import com.reactcommunity.rndatetimepicker.Common.createTimePickerArguments +import com.reactcommunity.rndatetimepicker.Common.dismissDialog + +class MaterialTimePickerModule(reactContext: ReactApplicationContext) : + NativeModuleMaterialTimePickerSpec(reactContext) { + companion object { + const val NAME = "RNCMaterialTimePicker" + } + + override fun getName(): String { + return NAME + } + + override fun dismiss(promise: Promise?) { + val activity = currentActivity as FragmentActivity? + dismissDialog(activity, NAME, promise) + } + + override fun open(params: ReadableMap, promise: Promise) { + val activity = currentActivity as FragmentActivity? + if (activity == null) { + promise.reject( + RNConstants.ERROR_NO_ACTIVITY, + "Tried to open a MaterialTimePicker dialog while not attached to an Activity" + ) + } + + val fragmentManager = activity!!.supportFragmentManager + + UiThreadUtil.runOnUiThread { + val arguments = + createTimePickerArguments(params) + val materialPicker = RNMaterialTimePicker( + arguments, + promise, + fragmentManager, + reactApplicationContext + ) + materialPicker.open() + } + } +} diff --git a/android/src/main/java/com/reactcommunity/rndatetimepicker/RNConstants.java b/android/src/main/java/com/reactcommunity/rndatetimepicker/RNConstants.java index acb56cb9..07220b79 100644 --- a/android/src/main/java/com/reactcommunity/rndatetimepicker/RNConstants.java +++ b/android/src/main/java/com/reactcommunity/rndatetimepicker/RNConstants.java @@ -14,6 +14,9 @@ public final class RNConstants { public static final String ARG_TZOFFSET_MINS = "timeZoneOffsetInMinutes"; public static final String ARG_TZ_NAME = "timeZoneName"; public static final String ARG_TESTID = "testID"; + public static final String ARG_TITLE = "title"; + public static final String ARG_INITIAL_INPUT_MODE = "initialInputMode"; + public static final String ARG_FULLSCREEN = "fullscreen"; public static final String ACTION_DATE_SET = "dateSetAction"; public static final String ACTION_TIME_SET = "timeSetAction"; public static final String ACTION_DISMISSED = "dismissedAction"; diff --git a/android/src/main/java/com/reactcommunity/rndatetimepicker/RNDate.java b/android/src/main/java/com/reactcommunity/rndatetimepicker/RNDate.java index 137869a9..f5dc0f64 100644 --- a/android/src/main/java/com/reactcommunity/rndatetimepicker/RNDate.java +++ b/android/src/main/java/com/reactcommunity/rndatetimepicker/RNDate.java @@ -23,4 +23,5 @@ public RNDate(Bundle args) { public int day() { return now.get(Calendar.DAY_OF_MONTH); } public int hour() { return now.get(Calendar.HOUR_OF_DAY); } public int minute() { return now.get(Calendar.MINUTE); } + public Long timestamp() { return now.getTimeInMillis(); } } diff --git a/android/src/main/java/com/reactcommunity/rndatetimepicker/RNDateTimePickerPackage.java b/android/src/main/java/com/reactcommunity/rndatetimepicker/RNDateTimePickerPackage.java index ceafa6ba..417183e4 100644 --- a/android/src/main/java/com/reactcommunity/rndatetimepicker/RNDateTimePickerPackage.java +++ b/android/src/main/java/com/reactcommunity/rndatetimepicker/RNDateTimePickerPackage.java @@ -20,6 +20,10 @@ public NativeModule getModule(String name, ReactApplicationContext reactContext) return new DatePickerModule(reactContext); } else if (name.equals(TimePickerModule.NAME)) { return new TimePickerModule(reactContext); + } else if (name.equals(MaterialDatePickerModule.NAME)) { + return new MaterialDatePickerModule(reactContext); + } else if (name.equals(MaterialTimePickerModule.NAME)) { + return new MaterialTimePickerModule(reactContext); } else { return null; } @@ -52,6 +56,28 @@ public ReactModuleInfoProvider getReactModuleInfoProvider() { false, // isCxxModule isTurboModule // isTurboModule )); + moduleInfos.put( + MaterialDatePickerModule.NAME, + new ReactModuleInfo( + MaterialDatePickerModule.NAME, + MaterialDatePickerModule.NAME, + false, // canOverrideExistingModule + false, // needsEagerInit + false, // hasConstants + false, // isCxxModule + isTurboModule // isTurboModule + )); + moduleInfos.put( + MaterialTimePickerModule.NAME, + new ReactModuleInfo( + MaterialTimePickerModule.NAME, + MaterialTimePickerModule.NAME, + false, // canOverrideExistingModule + false, // needsEagerInit + false, // hasConstants + false, // isCxxModule + isTurboModule // isTurboModule + )); return moduleInfos; }; } diff --git a/android/src/main/java/com/reactcommunity/rndatetimepicker/RNMaterialDatePicker.kt b/android/src/main/java/com/reactcommunity/rndatetimepicker/RNMaterialDatePicker.kt new file mode 100644 index 00000000..3e0d88b7 --- /dev/null +++ b/android/src/main/java/com/reactcommunity/rndatetimepicker/RNMaterialDatePicker.kt @@ -0,0 +1,179 @@ +package com.reactcommunity.rndatetimepicker + +import android.content.DialogInterface +import android.os.Bundle +import androidx.fragment.app.FragmentManager +import com.facebook.react.bridge.Promise +import com.facebook.react.bridge.ReactApplicationContext +import com.facebook.react.bridge.WritableNativeMap +import com.google.android.material.datepicker.CalendarConstraints +import com.google.android.material.datepicker.CalendarConstraints.DateValidator +import com.google.android.material.datepicker.CompositeDateValidator +import com.google.android.material.datepicker.DateValidatorPointBackward +import com.google.android.material.datepicker.DateValidatorPointForward +import com.google.android.material.datepicker.MaterialDatePicker +import com.google.android.material.datepicker.MaterialPickerOnPositiveButtonClickListener +import java.util.Calendar + +class RNMaterialDatePicker( + private val args: Bundle, + private val promise: Promise, + private val fragmentManager: FragmentManager, + private val reactContext: ReactApplicationContext +) { + private var promiseResolved = false + private var datePicker: MaterialDatePicker? = null + private var builder = MaterialDatePicker.Builder.datePicker() + + fun open() { + createDatePicker() + addListeners() + show() + } + + private fun createDatePicker() { + setInitialDate() + setTitle() + setInputMode() + setButtons() + setConstraints() + setFullscreen() + + datePicker = builder.build() + } + + private fun setInitialDate() { + val initialDate = RNDate(args) + builder.setSelection(initialDate.timestamp()) + } + + private fun setTitle() { + val title = args.getString(RNConstants.ARG_TITLE) + if (!title.isNullOrEmpty()) { + builder.setTitleText(args.getString(RNConstants.ARG_TITLE)) + } + } + + private fun setInputMode() { + if (args.getString(RNConstants.ARG_INITIAL_INPUT_MODE).isNullOrEmpty()) { + builder.setInputMode(MaterialDatePicker.INPUT_MODE_CALENDAR) + return + } + + val inputMode = + RNMaterialInputMode.valueOf( + args.getString(RNConstants.ARG_INITIAL_INPUT_MODE)!!.uppercase() + ) + + if (inputMode == RNMaterialInputMode.KEYBOARD) { + builder.setInputMode(MaterialDatePicker.INPUT_MODE_TEXT) + } else { + builder.setInputMode(MaterialDatePicker.INPUT_MODE_CALENDAR) + } + } + + private fun setConstraints() { + val constraintsBuilder = CalendarConstraints.Builder() + + if (args.containsKey(RNConstants.FIRST_DAY_OF_WEEK)) { + constraintsBuilder.setFirstDayOfWeek(args.getInt(RNConstants.FIRST_DAY_OF_WEEK)) + } + + val validators = mutableListOf() + + if (args.containsKey(RNConstants.ARG_MINDATE)) { + val minDate = Common.minDateWithTimeZone(args) + validators.add(DateValidatorPointForward.from(minDate)) + } + + if (args.containsKey(RNConstants.ARG_MAXDATE)) { + val maxDate = Common.maxDateWithTimeZone(args) + validators.add(DateValidatorPointBackward.before(maxDate)) + } + + constraintsBuilder.setValidator(CompositeDateValidator.allOf(validators)) + builder.setCalendarConstraints(constraintsBuilder.build()) + } + + private fun setFullscreen() { + val isFullscreen = args.getBoolean(RNConstants.ARG_FULLSCREEN) + + if (isFullscreen) { + builder.setTheme(com.google.android.material.R.style.ThemeOverlay_Material3_MaterialCalendar_Fullscreen) + } else { + builder.setTheme(com.google.android.material.R.style.ThemeOverlay_Material3_MaterialCalendar) + } + } + + private fun addListeners() { + val listeners = Listeners() + datePicker!!.addOnPositiveButtonClickListener(listeners) + datePicker!!.addOnDismissListener(listeners) + } + + private fun show() { + datePicker!!.show(fragmentManager, MaterialDatePickerModule.NAME) + } + + private fun setButtons() { + val buttons = args.getBundle(RNConstants.ARG_DIALOG_BUTTONS) ?: return + + val negativeButton = buttons.getBundle(Common.NEGATIVE) + val positiveButton = buttons.getBundle(Common.POSITIVE) + + if (negativeButton != null) { + builder.setNegativeButtonText(negativeButton.getString(Common.LABEL)) + } + + if (positiveButton != null) { + builder.setPositiveButtonText(positiveButton.getString(Common.LABEL)) + } + } + + private inner class Listeners : MaterialPickerOnPositiveButtonClickListener, + DialogInterface.OnDismissListener { + override fun onDismiss(dialog: DialogInterface) { + if (promiseResolved || !reactContext.hasActiveReactInstance()) return + + val result = WritableNativeMap() + result.putString("action", RNConstants.ACTION_DISMISSED) + promise.resolve(result) + promiseResolved = true + } + + override fun onPositiveButtonClick(selection: Long) { + if (promiseResolved || !reactContext.hasActiveReactInstance()) return + + val newCalendar = createNewCalendar(selection) + val result = WritableNativeMap() + + result.putString("action", RNConstants.ACTION_DATE_SET) + result.putDouble("timestamp", newCalendar.timeInMillis.toDouble()) + result.putDouble( + "utcOffset", + newCalendar.timeZone.getOffset(newCalendar.timeInMillis).toDouble() / 1000 / 60 + ) + + promise.resolve(result) + promiseResolved = true + } + + private fun createNewCalendar(selection: Long): Calendar { + val initialDate = RNDate(args) + val newCalendar = Calendar.getInstance( + Common.getTimeZone( + args + ) + ) + + newCalendar.timeInMillis = selection + + newCalendar[Calendar.HOUR_OF_DAY] = initialDate.hour() + newCalendar[Calendar.MINUTE] = initialDate.minute() + newCalendar[Calendar.SECOND] = 0 + newCalendar[Calendar.MILLISECOND] = 0 + + return newCalendar + } + } +} diff --git a/android/src/main/java/com/reactcommunity/rndatetimepicker/RNMaterialInputMode.java b/android/src/main/java/com/reactcommunity/rndatetimepicker/RNMaterialInputMode.java new file mode 100644 index 00000000..5952b0a2 --- /dev/null +++ b/android/src/main/java/com/reactcommunity/rndatetimepicker/RNMaterialInputMode.java @@ -0,0 +1,6 @@ +package com.reactcommunity.rndatetimepicker; + +public enum RNMaterialInputMode { + DEFAULT, + KEYBOARD +} diff --git a/android/src/main/java/com/reactcommunity/rndatetimepicker/RNMaterialTimePicker.kt b/android/src/main/java/com/reactcommunity/rndatetimepicker/RNMaterialTimePicker.kt new file mode 100644 index 00000000..9ff384bf --- /dev/null +++ b/android/src/main/java/com/reactcommunity/rndatetimepicker/RNMaterialTimePicker.kt @@ -0,0 +1,155 @@ +package com.reactcommunity.rndatetimepicker + +import android.content.DialogInterface +import android.os.Bundle +import android.text.format.DateFormat +import android.view.View +import androidx.fragment.app.FragmentManager +import com.facebook.react.bridge.Promise +import com.facebook.react.bridge.ReactApplicationContext +import com.facebook.react.bridge.WritableMap +import com.facebook.react.bridge.WritableNativeMap +import com.google.android.material.timepicker.MaterialTimePicker +import com.google.android.material.timepicker.TimeFormat +import java.util.Calendar + +class RNMaterialTimePicker( + private val args: Bundle, + private val promise: Promise, + private val fragmentManager: FragmentManager, + private val reactContext: ReactApplicationContext +) { + private var promiseResolved = false + private var timePicker: MaterialTimePicker? = null + private var builder = MaterialTimePicker.Builder() + + fun open() { + createTimePicker() + addListeners() + show() + } + + private fun createTimePicker() { + setInitialDate() + setTitle() + setInputMode() + setButtons() + setTimeFormat() + + timePicker = builder.build() + } + + private fun setInitialDate() { + val initialDate = RNDate(args) + + builder.setHour(initialDate.hour()) + .setMinute(initialDate.minute()) + } + + private fun setTitle() { + val title = args.getString(RNConstants.ARG_TITLE) + if (!title.isNullOrEmpty()) { + builder.setTitleText(args.getString(RNConstants.ARG_TITLE)) + } + } + + private fun setInputMode() { + if (args.getString(RNConstants.ARG_INITIAL_INPUT_MODE).isNullOrEmpty()) { + builder.setInputMode(MaterialTimePicker.INPUT_MODE_CLOCK) + return + } + + val inputMode = + RNMaterialInputMode.valueOf( + args.getString(RNConstants.ARG_INITIAL_INPUT_MODE)!!.uppercase() + ) + + if (inputMode == RNMaterialInputMode.KEYBOARD) { + builder.setInputMode(MaterialTimePicker.INPUT_MODE_KEYBOARD) + } else { + builder.setInputMode(MaterialTimePicker.INPUT_MODE_CLOCK) + } + } + + private fun setButtons() { + val buttons = args.getBundle(RNConstants.ARG_DIALOG_BUTTONS) ?: return + + val negativeButton = buttons.getBundle(Common.NEGATIVE) + val positiveButton = buttons.getBundle(Common.POSITIVE) + + if (negativeButton != null) { + builder.setNegativeButtonText(negativeButton.getString(Common.LABEL)) + } + + if (positiveButton != null) { + builder.setPositiveButtonText(positiveButton.getString(Common.LABEL)) + } + } + + private fun setTimeFormat() { + if (args.getBoolean(RNConstants.ARG_IS24HOUR)) { + builder.setTimeFormat(TimeFormat.CLOCK_24H) + return + } + + if (DateFormat.is24HourFormat(reactContext)) { + builder.setTimeFormat(TimeFormat.CLOCK_24H) + } else { + builder.setTimeFormat(TimeFormat.CLOCK_12H) + } + } + + private fun addListeners() { + val listeners = Listeners() + timePicker!!.addOnPositiveButtonClickListener(listeners) + timePicker!!.addOnDismissListener(listeners) + } + + private fun show() { + timePicker!!.show(fragmentManager, MaterialTimePickerModule.NAME) + } + + private inner class Listeners : View.OnClickListener, DialogInterface.OnDismissListener { + override fun onDismiss(dialog: DialogInterface) { + if (promiseResolved || !reactContext.hasActiveReactInstance()) return + + val result: WritableMap = WritableNativeMap() + result.putString("action", RNConstants.ACTION_DISMISSED) + promise.resolve(result) + promiseResolved = true + } + + override fun onClick(v: View) { + if (promiseResolved || !reactContext.hasActiveReactInstance()) return + + val newCalendar = createNewCalendar() + val result = WritableNativeMap() + + result.putString("action", RNConstants.ACTION_DATE_SET) + result.putDouble("timestamp", newCalendar.timeInMillis.toDouble()) + result.putDouble( + "utcOffset", + newCalendar.timeZone.getOffset(newCalendar.timeInMillis).toDouble() / 1000 / 60 + ) + + promise.resolve(result) + promiseResolved = true + } + + private fun createNewCalendar(): Calendar { + val initialDate = RNDate(args) + val calendar = Calendar.getInstance( + Common.getTimeZone( + args + ) + ) + + calendar[initialDate.year(), initialDate.month(), initialDate.day(), timePicker!!.hour, timePicker!!.minute] = + 0 + + calendar[Calendar.MILLISECOND] = 0 + + return calendar + } + } +} diff --git a/android/src/main/java/com/reactcommunity/rndatetimepicker/TimePickerModule.java b/android/src/main/java/com/reactcommunity/rndatetimepicker/TimePickerModule.java index 877b37b1..46dd5e41 100644 --- a/android/src/main/java/com/reactcommunity/rndatetimepicker/TimePickerModule.java +++ b/android/src/main/java/com/reactcommunity/rndatetimepicker/TimePickerModule.java @@ -23,6 +23,7 @@ import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentManager; +import static com.reactcommunity.rndatetimepicker.Common.createTimePickerArguments; import static com.reactcommunity.rndatetimepicker.Common.dismissDialog; import java.util.Calendar; @@ -119,7 +120,7 @@ public void open(final ReadableMap options, final Promise promise) { RNTimePickerDialogFragment oldFragment = (RNTimePickerDialogFragment) fragmentManager.findFragmentByTag(NAME); - Bundle arguments = createFragmentArguments(options); + Bundle arguments = createTimePickerArguments(options); if (oldFragment != null) { oldFragment.update(arguments); @@ -137,25 +138,4 @@ public void open(final ReadableMap options, final Promise promise) { fragment.show(fragmentManager, NAME); }); } - - private Bundle createFragmentArguments(ReadableMap options) { - final Bundle args = Common.createFragmentArguments(options); - - if (options.hasKey(RNConstants.ARG_IS24HOUR) && !options.isNull(RNConstants.ARG_IS24HOUR)) { - args.putBoolean(RNConstants.ARG_IS24HOUR, options.getBoolean(RNConstants.ARG_IS24HOUR)); - } - if (options.hasKey(RNConstants.ARG_DISPLAY) && !options.isNull(RNConstants.ARG_DISPLAY)) { - args.putString(RNConstants.ARG_DISPLAY, options.getString(RNConstants.ARG_DISPLAY)); - } - if (options.hasKey(RNConstants.ARG_DIALOG_BUTTONS) && !options.isNull(RNConstants.ARG_DIALOG_BUTTONS)) { - args.putBundle(RNConstants.ARG_DIALOG_BUTTONS, Arguments.toBundle(options.getMap(RNConstants.ARG_DIALOG_BUTTONS))); - } - if (options.hasKey(RNConstants.ARG_INTERVAL) && !options.isNull(RNConstants.ARG_INTERVAL)) { - args.putInt(RNConstants.ARG_INTERVAL, options.getInt(RNConstants.ARG_INTERVAL)); - } - if (options.hasKey(RNConstants.ARG_TZOFFSET_MINS) && !options.isNull(RNConstants.ARG_TZOFFSET_MINS)) { - args.putLong(RNConstants.ARG_TZOFFSET_MINS, (long) options.getDouble(RNConstants.ARG_TZOFFSET_MINS)); - } - return args; - } } diff --git a/android/src/paper/java/com/reactcommunity/rndatetimepicker/NativeModuleMaterialDatePickerSpec.java b/android/src/paper/java/com/reactcommunity/rndatetimepicker/NativeModuleMaterialDatePickerSpec.java new file mode 100644 index 00000000..4db46bff --- /dev/null +++ b/android/src/paper/java/com/reactcommunity/rndatetimepicker/NativeModuleMaterialDatePickerSpec.java @@ -0,0 +1,36 @@ + +/** + * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen). + * + * Then it was commited. It is here to support the old architecture. + * If you use the new architecture, this file won't be included and instead will be generated by the codegen. + * + * @generated by codegen project: GenerateModuleJavaSpec.js + * + * @nolint + */ + +package com.reactcommunity.rndatetimepicker; + +import com.facebook.proguard.annotations.DoNotStrip; +import com.facebook.react.bridge.Promise; +import com.facebook.react.bridge.ReactApplicationContext; +import com.facebook.react.bridge.ReactContextBaseJavaModule; +import com.facebook.react.bridge.ReactMethod; +import com.facebook.react.bridge.ReactModuleWithSpec; +import com.facebook.react.bridge.ReadableMap; +import com.facebook.react.turbomodule.core.interfaces.TurboModule; + +public abstract class NativeModuleMaterialDatePickerSpec extends ReactContextBaseJavaModule implements ReactModuleWithSpec, TurboModule { + public NativeModuleMaterialDatePickerSpec(ReactApplicationContext reactContext) { + super(reactContext); + } + + @ReactMethod + @DoNotStrip + public abstract void dismiss(Promise promise); + + @ReactMethod + @DoNotStrip + public abstract void open(ReadableMap params, Promise promise); +} diff --git a/android/src/paper/java/com/reactcommunity/rndatetimepicker/NativeModuleMaterialTimePickerSpec.java b/android/src/paper/java/com/reactcommunity/rndatetimepicker/NativeModuleMaterialTimePickerSpec.java new file mode 100644 index 00000000..a59a8cda --- /dev/null +++ b/android/src/paper/java/com/reactcommunity/rndatetimepicker/NativeModuleMaterialTimePickerSpec.java @@ -0,0 +1,36 @@ + +/** + * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen). + * + * Then it was commited. It is here to support the old architecture. + * If you use the new architecture, this file won't be included and instead will be generated by the codegen. + * + * @generated by codegen project: GenerateModuleJavaSpec.js + * + * @nolint + */ + +package com.reactcommunity.rndatetimepicker; + +import com.facebook.proguard.annotations.DoNotStrip; +import com.facebook.react.bridge.Promise; +import com.facebook.react.bridge.ReactApplicationContext; +import com.facebook.react.bridge.ReactContextBaseJavaModule; +import com.facebook.react.bridge.ReactMethod; +import com.facebook.react.bridge.ReactModuleWithSpec; +import com.facebook.react.bridge.ReadableMap; +import com.facebook.react.turbomodule.core.interfaces.TurboModule; + +public abstract class NativeModuleMaterialTimePickerSpec extends ReactContextBaseJavaModule implements ReactModuleWithSpec, TurboModule { + public NativeModuleMaterialTimePickerSpec(ReactApplicationContext reactContext) { + super(reactContext); + } + + @ReactMethod + @DoNotStrip + public abstract void dismiss(Promise promise); + + @ReactMethod + @DoNotStrip + public abstract void open(ReadableMap params, Promise promise); +} diff --git a/docs/images/android_material_date.jpg b/docs/images/android_material_date.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8930cb10fe632ceeb95415b87f960660ba184f6c GIT binary patch literal 92790 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 Z_{>|VF1CzIygNw)G0zsLWzio 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 { // Sat, 13 Nov 2021 10:00:00 GMT (local: Saturday, November 13, 2021 11:00:00 AM GMT+01:00) @@ -103,8 +105,14 @@ export const App = () => { const [interval, setMinInterval] = useState(1); const [neutralButtonLabel, setNeutralButtonLabel] = useState(undefined); const [disabled, setDisabled] = useState(false); + const [isFullscreen, setIsFullscreen] = useState(false); const [minimumDate, setMinimumDate] = useState(); const [maximumDate, setMaximumDate] = useState(); + const [design, setDesign] = useState(DESIGNS[0]); + const [inputMode, setInputMode] = useState(INPUT_MODES[0]); + const [title, setTitle] = useState(''); + + const isMaterialDesign = design === 'material'; // Windows-specific const [time, setTime] = useState(undefined); @@ -312,6 +320,32 @@ export const App = () => { ); }} /> + Design (android only): + { + setDesign(DESIGNS[event.nativeEvent.selectedSegmentIndex]); + }} + /> + Input mode (android only): + { + setInputMode(INPUT_MODES[event.nativeEvent.selectedSegmentIndex]); + }} + /> + + + title (android only) + + + text color (iOS only) @@ -344,6 +378,14 @@ export const App = () => { + + + fullscreen (android only) + + + + + neutralButtonLabel (android only) @@ -455,6 +497,10 @@ export const App = () => { negativeButton={{label: 'Cancel', textColor: 'red'}} disabled={disabled} firstDayOfWeek={firstDayOfWeek} + title={isMaterialDesign ? title : undefined} + initialInputMode={isMaterialDesign ? inputMode : undefined} + design={design} + fullscreen={isMaterialDesign ? isFullscreen : undefined} /> )} diff --git a/example/e2e/detoxTest.spec.js b/example/e2e/detoxTest.spec.js index 3ea6dbf2..8961720a 100644 --- a/example/e2e/detoxTest.spec.js +++ b/example/e2e/detoxTest.spec.js @@ -168,6 +168,7 @@ describe('e2e tests', () => { await expect(elementById('overriddenTzName')).toHaveText('Europe/Prague'); let timeZone = 'America/Vancouver'; + await elementById('DateTimePickerScrollView').scrollTo('bottom'); await waitFor(elementById('timezone')).toBeVisible().withTimeout(1000); await userSwipesTimezoneListUntilDesiredIsVisible(timeZone); @@ -192,6 +193,7 @@ describe('e2e tests', () => { it('daylight saving should work properly', async () => { let timeZone = 'America/Vancouver'; + await elementById('DateTimePickerScrollView').scrollTo('bottom'); await waitFor(elementById('timezone')).toBeVisible().withTimeout(1000); await userSwipesTimezoneListUntilDesiredIsVisible(timeZone); @@ -373,6 +375,7 @@ describe('e2e tests', () => { }); it(':android: when component unmounts, dialog is dismissed', async () => { + await elementById('DateTimePickerScrollView').scrollTo('bottom'); await elementById('showAndDismissPickerButton').tap(); await waitFor(getDatePickerAndroid()).toExist().withTimeout(4000); await wait(6000); diff --git a/example/e2e/utils/actions.js b/example/e2e/utils/actions.js index 4a70cbdd..6e18b360 100644 --- a/example/e2e/utils/actions.js +++ b/example/e2e/utils/actions.js @@ -35,7 +35,7 @@ async function userOpensPicker({ await elementById('DateTimePickerScrollView').scrollTo('top'); await element(by.text(mode)).tap(); - await element(by.text(display)).tap(); + await element(by.text(display)).atIndex(0).tap(); if (interval) { await element(by.text(String(interval))).tap(); } @@ -47,6 +47,7 @@ async function userOpensPicker({ if (firstDayOfWeek) { await element(by.id(firstDayOfWeek)).tap(); } + await elementById('DateTimePickerScrollView').scrollTo('bottom'); await element(by.id('showPickerButton')).tap(); } diff --git a/package.json b/package.json index eccb0a73..9802aba7 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "access": "public" }, "scripts": { - "start": "react-native start", + "start": "patch-package && react-native start", "start:android": "react-native run-android", "start:ios": "react-native run-ios", "start:windows": "react-native run-windows --sln example/windows/date-time-picker-example.sln", @@ -91,6 +91,8 @@ "jest": "^29.5.0", "moment": "^2.24.0", "moment-timezone": "^0.5.41", + "patch-package": "^8.0.0", + "postinstall-postinstall": "^2.1.0", "prettier": "^2.8.8", "react": "18.3.1", "react-native": "^0.75.4", diff --git a/patches/react-native-test-app+4.0.7.patch b/patches/react-native-test-app+4.0.7.patch new file mode 100644 index 00000000..eff131ce --- /dev/null +++ b/patches/react-native-test-app+4.0.7.patch @@ -0,0 +1,13 @@ +diff --git a/node_modules/react-native-test-app/android/app/src/main/res/values/styles.xml b/node_modules/react-native-test-app/android/app/src/main/res/values/styles.xml +index e58cbf3..ba878cb 100644 +--- a/node_modules/react-native-test-app/android/app/src/main/res/values/styles.xml ++++ b/node_modules/react-native-test-app/android/app/src/main/res/values/styles.xml +@@ -1,7 +1,7 @@ + + + +-