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