Ejemplo n.º 1
0
        public override Widget build(BuildContext context)
        {
            D.assert(material_.debugCheckHasMaterialLocalizations(context));
            string name    = widget.applicationName ?? material_._defaultApplicationName(context);
            string version = widget.applicationVersion ?? material_._defaultApplicationVersion(context);
            Widget icon    = widget.applicationIcon ?? material_._defaultApplicationIcon(context);
            MaterialLocalizations localizations = MaterialLocalizations.of(context);
            var list = new List <Widget>();

            list.Add(new Text(name, style: Theme.of(context).textTheme.headline5, textAlign: TextAlign.center));

            if (icon != null)
            {
                list.Add(new IconTheme(data: Theme.of(context).iconTheme, child: icon));
            }

            list.Add(new Text(version, style: Theme.of(context).textTheme.bodyText2, textAlign: TextAlign.center));
            list.Add(new Container(height: 18.0f));
            list.Add(new Text(widget.applicationLegalese ?? "", style: Theme.of(context).textTheme.caption,
                              textAlign: TextAlign.center));
            list.Add(new Container(height: 18.0f));
            list.Add(new Text("Powered by Flutter", style: Theme.of(context).textTheme.bodyText2,
                              textAlign: TextAlign.center));
            list.Add(new Container(height: 24.0f));
            list.AddRange(_licenses);
            if (!_loaded)
            {
                list.Add(new Padding(
                             padding: EdgeInsets.symmetric(vertical: 24.0f),
                             child: new Center(
                                 child: new CircularProgressIndicator()
                                 )
                             ));
            }

            return(new Scaffold(
                       appBar: new AppBar(
                           title: new Text(localizations.licensesPageTitle)
                           ),
                       // All of the licenses page text is English. We don"t want localized text
                       // or text direction.
                       body: Localizations.overrides(
                           locale: new Locale("en", "US"),
                           context: context,
                           child: new DefaultTextStyle(
                               style: Theme.of(context).textTheme.caption,
                               child: new SafeArea(
                                   bottom: false,
                                   child: new Scrollbar(
                                       child: new ListView(
                                           padding: EdgeInsets.symmetric(horizontal: 8.0f, vertical: 12.0f),
                                           children: list
                                           )
                                       )
                                   )
                               )
                           )
                       ));
        }
Ejemplo n.º 2
0
        public static IPromise <object> showDatePicker(
            BuildContext context,
            DateTime initialDate,
            DateTime firstDate,
            DateTime lastDate,
            SelectableDayPredicate selectableDayPredicate = null,
            DatePickerMode initialDatePickerMode          = DatePickerMode.day,
            Locale locale             = null,
            TransitionBuilder builder = null
            )
        {
            D.assert(initialDate >= firstDate, () => "initialDate must be on or after firstDate");
            D.assert(initialDate <= lastDate, () => "initialDate must be on or before lastDate");
            D.assert(firstDate <= lastDate, () => "lastDate must be on or after firstDate");
            D.assert(
                selectableDayPredicate == null || selectableDayPredicate(initialDate),
                () => "Provided initialDate must satisfy provided selectableDayPredicate"
                );
            D.assert(context != null);
            D.assert(MaterialD.debugCheckHasMaterialLocalizations(context));

            Widget child = new _DatePickerDialog(
                initialDate: initialDate,
                firstDate: firstDate,
                lastDate: lastDate,
                selectableDayPredicate: selectableDayPredicate,
                initialDatePickerMode: initialDatePickerMode
                );

            if (locale != null)
            {
                child = Localizations.overrides(
                    context: context,
                    locale: locale,
                    child: child
                    );
            }

            return(DialogUtils.showDialog(
                       context: context,
                       builder: (BuildContext _context) => { return builder == null ? child : builder(_context, child); }
                       ));
        }
        public static Future <DateTime> showDatePicker(
            BuildContext context,
            DateTime initialDate,
            DateTime firstDate,
            DateTime lastDate,
            DatePickerEntryMode initialEntryMode = DatePickerEntryMode.calendar,
            material_.SelectableDayPredicate selectableDayPredicate = null,
            string helpText                      = null,
            string cancelText                    = null,
            string confirmText                   = null,
            Locale locale                        = null,
            bool useRootNavigator                = true,
            RouteSettings routeSettings          = null,
            TextDirection?textDirection          = null,
            TransitionBuilder builder            = null,
            DatePickerMode initialDatePickerMode = DatePickerMode.day,
            string errorFormatText               = null,
            string errorInvalidText              = null,
            string fieldHintText                 = null,
            string fieldLabelText                = null
            )
        {
            D.assert(context != null);
            initialDate = utils.dateOnly(initialDate);
            firstDate   = utils.dateOnly(firstDate);
            lastDate    = utils.dateOnly(lastDate);

            D.assert(
                !lastDate.isBefore(firstDate),
                () => $"lastDate {lastDate} must be on or after firstDate {firstDate}."
                );
            D.assert(
                !initialDate.isBefore(firstDate),
                () => $"initialDate {initialDate} must be on or after firstDate {firstDate}."
                );
            D.assert(
                !initialDate.isAfter(lastDate),
                () => $"initialDate {initialDate} must be on or before lastDate {lastDate}."
                );
            D.assert(
                selectableDayPredicate == null || selectableDayPredicate(initialDate),
                () => $"Provided initialDate {initialDate} must satisfy provided selectableDayPredicate."
                );

            D.assert(initialEntryMode != null);
            D.assert(initialDatePickerMode != null);
            D.assert(material_.debugCheckHasMaterialLocalizations(context));

            Widget dialog = new _DatePickerDialog(
                initialDate: initialDate,
                firstDate: firstDate,
                lastDate: lastDate,
                initialEntryMode: initialEntryMode,
                selectableDayPredicate: selectableDayPredicate,
                helpText: helpText,
                cancelText: cancelText,
                confirmText: confirmText,
                initialCalendarMode: initialDatePickerMode,
                errorFormatText: errorFormatText,
                errorInvalidText: errorInvalidText,
                fieldHintText: fieldHintText,
                fieldLabelText: fieldLabelText
                );

            if (textDirection != null)
            {
                dialog = new Directionality(
                    textDirection: textDirection.Value,
                    child: dialog
                    );
            }

            if (locale != null)
            {
                dialog = Localizations.overrides(
                    context: context,
                    locale: locale,
                    child: dialog
                    );
            }

            return(material_.showDialog <DateTime>(
                       context: context,
                       useRootNavigator: useRootNavigator,
                       routeSettings: routeSettings,
                       builder: (BuildContext subContext) => { return builder == null ? dialog : builder(subContext, dialog); }
                       ));
        }