aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java/moe/yuuta/workmode/LifecycleUIUpdateReceiver.kt
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/moe/yuuta/workmode/LifecycleUIUpdateReceiver.kt')
-rw-r--r--app/src/main/java/moe/yuuta/workmode/LifecycleUIUpdateReceiver.kt36
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