diff --git a/lib/src/widgets/blockchain_height_widget.dart b/lib/src/widgets/blockchain_height_widget.dart index 87d64b22..de242d45 100644 --- a/lib/src/widgets/blockchain_height_widget.dart +++ b/lib/src/widgets/blockchain_height_widget.dart @@ -1,3 +1,4 @@ +import 'package:cake_wallet/utils/date_picker.dart'; import 'package:flutter/material.dart'; import 'package:intl/intl.dart'; import 'package:cake_wallet/generated/i18n.dart'; @@ -88,7 +89,7 @@ class BlockchainHeightState extends State { Future _selectDate(BuildContext context) async { final now = DateTime.now(); - final date = await showDatePicker( + final date = await getDate( context: context, initialDate: now.subtract(Duration(days: 1)), firstDate: DateTime(2014, DateTime.april), diff --git a/lib/utils/date_picker.dart b/lib/utils/date_picker.dart new file mode 100644 index 00000000..78e49666 --- /dev/null +++ b/lib/utils/date_picker.dart @@ -0,0 +1,54 @@ +import 'dart:io'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; + +Future getDate({ + @required BuildContext context, + @required DateTime initialDate, + @required DateTime firstDate, + @required DateTime lastDate}) { + + if (Platform.isIOS) { + return _buildCupertinoDataPicker(context, initialDate, firstDate, lastDate); + } + + return _buildMaterialDataPicker(context, initialDate, firstDate, lastDate); +} + +Future _buildMaterialDataPicker( + BuildContext context, + DateTime initialDate, + DateTime firstDate, + DateTime lastDate) async { + return await showDatePicker( + context: context, + initialDate: initialDate, + firstDate: firstDate, + lastDate: lastDate, + helpText: ''); +} + +Future _buildCupertinoDataPicker( + BuildContext context, + DateTime initialDate, + DateTime firstDate, + DateTime lastDate) async { + DateTime date; + await showModalBottomSheet( + context: context, + builder: (_) { + return Container( + height: MediaQuery.of(context).size.height / 3, + child: CupertinoDatePicker( + mode: CupertinoDatePickerMode.date, + onDateTimeChanged: (picked) => date = picked, + initialDateTime: initialDate, + minimumDate: firstDate, + maximumDate: lastDate, + backgroundColor: Colors.white, + ), + ); + } + ); + return date; +} \ No newline at end of file