Chris Fillmore
05/27/2022, 4:48 PM@Composable
fun ScreenOnOffHandler(onChange: (screenOn: Boolean) -> Unit) {
val context = LocalContext.current
DisposableEffect(context) {
val intentFilter = IntentFilter().apply {
addAction(Intent.ACTION_SCREEN_ON)
addAction(Intent.ACTION_SCREEN_OFF)
}
val receiver = object : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
onChange(intent.action == Intent.ACTION_SCREEN_ON)
}
}
context.registerReceiver(receiver, intentFilter)
onDispose {
context.unregisterReceiver(receiver)
}
}
}