There is a system default provider in DateTimeZoneProviders. This should really be a non-null getter because it should always be set (otherwise it makes no sense to call it a default). For some strange reason it's not a future, while all other getters are futures.
Since DateTimeZoneProviders acts as global singleton, the best way to fix this is to instantiate it as singleton in TimeMachine.initialize, have TimeMachine.initialize choose the correct implementation (this would also allow injection of a different provider by enum or by instance) and assign that to the default provider.
There is a system default provider in
DateTimeZoneProviders. This should really be a non-null getter because it should always be set (otherwise it makes no sense to call it a default). For some strange reason it's not a future, while all other getters are futures.Since
DateTimeZoneProvidersacts as global singleton, the best way to fix this is to instantiate it as singleton inTimeMachine.initialize, haveTimeMachine.initializechoose the correct implementation (this would also allow injection of a different provider by enum or by instance) and assign that to the default provider.