Skip to content

Instantly share code, notes, and snippets.

@krossovochkin
Created January 18, 2020 12:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save krossovochkin/483b21423421180b0cfa3ae217744402 to your computer and use it in GitHub Desktop.
Save krossovochkin/483b21423421180b0cfa3ae217744402 to your computer and use it in GitHub Desktop.
Theme_1
object ThemeManager {
private val listeners = mutableSetOf<ThemeChangedListener>()
var theme = Theme.LIGHT
set(value) {
field = value
listeners.forEach { listener -> listener.onThemeChanged(value) }
}
interface ThemeChangedListener {
fun onThemeChanged(theme: Theme)
}
fun addListener(listener: ThemeChangedListener) {
listeners.add(listener)
}
fun removeListener(listener: ThemeChangedListener) {
listeners.remove(listener)
}
// ...
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment