diff options
Diffstat (limited to 'app/src/main/java/moe/yuuta/workmode/LifecycleUIUpdateReceiver.kt')
-rw-r--r-- | app/src/main/java/moe/yuuta/workmode/LifecycleUIUpdateReceiver.kt | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/app/src/main/java/moe/yuuta/workmode/LifecycleUIUpdateReceiver.kt b/app/src/main/java/moe/yuuta/workmode/LifecycleUIUpdateReceiver.kt new file mode 100644 index 0000000..63cebc6 --- /dev/null +++ b/app/src/main/java/moe/yuuta/workmode/LifecycleUIUpdateReceiver.kt @@ -0,0 +1,36 @@ +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) + } + } +}
\ No newline at end of file |