initializeDateFormatting function

Future<void> initializeDateFormatting(
  1. String locale,
  2. String url
)

This should be called for at least one locale before any date formatting methods are called. It sets up the lookup for date symbols using url. The url parameter should end with a "/". For example, "http://localhost:8000/dates/"

Implementation

Future<void> initializeDateFormatting(String locale, String url) {
  //Initialize symbols
  var symbolReader = HttpRequestDataReader('${url}symbols/');
  LazyLocaleData symbolsInitializer() => LazyLocaleData(
        symbolReader,
        _createDateSymbol,
        availableLocalesForDateFormatting,
      );
  initializeDateSymbols(symbolsInitializer);

  //Initialize patterns
  var patternsReader = HttpRequestDataReader('${url}patterns/');
  LazyLocaleData patternsInitializer() => LazyLocaleData(
        patternsReader,
        (x) => x,
        availableLocalesForDateFormatting,
      );
  initializeDatePatterns(patternsInitializer);

  var actualLocale = Intl.verifiedLocale(
    locale,
    availableLocalesForDateFormatting.contains,
  )!;

  //Initialize locale for both symbols and patterns
  Future<List<void>> initLocale(
    LazyLocaleData symbols,
    LazyLocaleData patterns,
  ) {
    return Future.wait([
      symbols.initLocale(actualLocale),
      patterns.initLocale(actualLocale),
    ]);
  }

  return initializeIndividualLocaleDateFormatting(initLocale);
}