AppTheme class

App Theme

This is the service provider that controls the themes for the entire app. It is implemented with:

  • MockAppTheme which has no persistency between app reloads and it is used for local development and unit testing.
  • ProdAppTheme which has some backend to help persist configurations between app reloads and it is used in the production application.
Implementers

Constructors

AppTheme({ThemeType themeType: ThemeType.LIGHT, bool useSystem: true })
The ctor takes in override values for the initial theme type and system settings preference.

Properties

themeType ThemeType
A flag to indicate the currently select theme.
read / write
useSystem ↔ bool
A flag to indicate whether to honor system theme settings over the user-defined theme settings.
read / write
hashCode → int
The hash code for this object. [...]
read-only, inherited
hasListeners → bool
Whether any listeners are currently registered. [...]
@protected, read-only, inherited
runtimeType → Type
A representation of the runtime type of the object.
read-only, inherited

Methods

getCustomTheme() → ThemeData
Returns theme corresponding to themeType which is used when the system theme settings are not honored.
getDarkTheme() → ThemeData
Returns the default dark theme if system theme settings are honored and returns getCustomTheme if the system theme settings are not honored.
getLightTheme() → ThemeData
Returns the default light theme if system theme settings are honored and returns getCustomTheme if the system theme settings are not honored.
getRequiredService() ThemeBackendType
Returns the required services by the concret theme service object. [...]
loadSettings() → Future<void>
Loads theme settings from a backend.
saveSettings() → Future<void>
Saves theme settings to a backend.
setThemeType(ThemeType type) → void
Used by the UI to switch between themes. It will notify all the widgets that depends on the service to rebuild.
setUseSystem(bool val) → void
Used by the UI to switch between using and not using system (iOS/Android/Chrome) theme settings. It will notify all the widgets that depends on the service to rebuild.
addListener(VoidCallback listener) → void
Register a closure to be called when the object changes. [...]
inherited
dispose() → void
Discards any resources used by the object. After this is called, the object is not in a usable state and should be discarded (calls to addListener and removeListener will throw after the object is disposed). [...]
@mustCallSuper, inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a non-existent method or property is accessed. [...]
inherited
notifyListeners() → void
Call all the registered listeners. [...]
@protected, @visibleForTesting, inherited
removeListener(VoidCallback listener) → void
Remove a previously registered closure from the list of closures that are notified when the object changes. [...]
inherited
toString() → String
Returns a string representation of this object.
inherited

Operators

operator ==(dynamic other) → bool
The equality operator. [...]
inherited