btelman96/letsrobot-android

View on GitHub
letsrobotandroid-api/src/main/java/tv/letsrobot/android/api/utils/InlineBroadcastReceiver.kt

Summary

Maintainability
A
0 mins
Test Coverage
package tv.letsrobot.android.api.utils

import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.content.IntentFilter

/**
 * Helper for BroadcastReceiver
 */
class InlineBroadcastReceiver(val intentFilter: String,
                              val callback : (context: Context?, intent: Intent?) -> Unit) {
    private var receiver : Receiver? = null

    fun register(context: Context){
        receiver = Receiver(callback)
        context.registerReceiver(receiver, IntentFilter(intentFilter))
    }

    fun unregister(context: Context){
        context.unregisterReceiver(receiver)
        receiver = null
    }

    private class Receiver(val callback : (context: Context?, intent: Intent?) -> Unit) : BroadcastReceiver() {
        override fun onReceive(context: Context?, intent: Intent?) {
            callback(context, intent)
        }
    }
}