Chris Fillmore
@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) } } }
A modern programming language that makes developers happier.