package moe.yuuta.workmode import android.content.BroadcastReceiver import android.content.Context import android.content.Intent import android.content.IntentFilter import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleObserver import androidx.lifecycle.OnLifecycleEvent import moe.yuuta.workmode.access.AccessorStarter class LifecycleUIUpdateReceiver(val context: Context, val callback: Callback) : LifecycleObserver { @OnLifecycleEvent(Lifecycle.Event.ON_CREATE) fun onCreate() { val filter = IntentFilter(AccessorStarter.ACTION_UPDATE_UI_STATE) filter.addAction(AccessorStarter.ACTION_UPDATE_UI_PROGRESS) context.registerReceiver(mUIUpdateReceiver, filter) } @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY) fun onDestroy() { context.unregisterReceiver(mUIUpdateReceiver) } interface Callback { fun updateUI(intent: Intent) } private val mUIUpdateReceiver = object : BroadcastReceiver() { override fun onReceive(context: Context?, intent: Intent?) { if (intent == null) return callback.updateUI(intent) } } }