/// abstraction for manipulation of stored app preferences abstract class PreferencesDataSource { /// should onboarding be shown Future getOnboardingFlag(); /// should onboarding be shown Future setOnboardingFlag(final bool newValue); // TODO: should probably deprecate the following, instead add the // getThemeMode and setThemeMode methods, which store one value instead of // flags. /// should system theme mode be enabled Future getSystemThemeModeFlag(); /// should system theme mode be enabled Future setSystemThemeModeFlag(final bool newValue); /// should dark theme be enabled Future getDarkThemeModeFlag(); /// should dark theme be enabled Future setDarkThemeModeFlag(final bool newValue); /// locale, as set by user /// /// /// when null, app takes system locale Future getLocale(); /// locale, as set by user /// /// /// when null, app takes system locale Future setLocale(final String newLocale); }