Files
Magisk/app/src/main/java/com/topjohnwu/magisk/arch/ViewEvent.kt
2020-10-06 02:04:19 -07:00

27 lines
684 B
Kotlin

package com.topjohnwu.magisk.arch
import android.content.Context
import kotlinx.coroutines.CoroutineScope
/**
* Class for passing events from ViewModels to Activities/Fragments
* (see https://medium.com/google-developers/livedata-with-snackbar-navigation-and-other-events-the-singleliveevent-case-ac2622673150)
*/
abstract class ViewEvent
abstract class ViewEventWithScope: ViewEvent() {
lateinit var scope: CoroutineScope
}
interface ContextExecutor {
operator fun invoke(context: Context)
}
interface ActivityExecutor {
operator fun invoke(activity: BaseUIActivity<*, *>)
}
interface FragmentExecutor {
operator fun invoke(fragment: BaseUIFragment<*, *>)
}