Skip to content

Instantly share code, notes, and snippets.

@KatieBarnett
Last active October 29, 2024 10:44
Show Gist options
  • Save KatieBarnett/349352b14c35d5ed23a65e174d4a21ea to your computer and use it in GitHub Desktop.
Save KatieBarnett/349352b14c35d5ed23a65e174d4a21ea to your computer and use it in GitHub Desktop.
Listener to check wallpaper color every time the wallpaper changes
@Composable
fun MotivateMeGlanceTheme(
context: Context,
content: @Composable (Boolean) -> Unit,
) {
val wallpaperManager = WallpaperManager.getInstance(context)
val colors = wallpaperManager.getWallpaperColors(FLAG_SYSTEM)
var useDarkColorOnWallpaper by remember {
mutableStateOf(
getUseDarkColorOnWallpaper(colors, FLAG_SYSTEM) ?: false
)
}
DisposableEffect(wallpaperManager) {
val listener = WallpaperManager.OnColorsChangedListener { colors, type ->
getUseDarkColorOnWallpaper(colors, type)?.let {
useDarkColorOnWallpaper = it
}
}
wallpaperManager.addOnColorsChangedListener(
listener,
Handler(Looper.getMainLooper())
)
onDispose {
wallpaperManager.removeOnColorsChangedListener(listener)
}
}
...
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment