package cash.z.android.wallet.ui.activity import android.os.Bundle import androidx.fragment.app.Fragment import dagger.android.AndroidInjection import dagger.android.AndroidInjector import dagger.android.DispatchingAndroidInjector import dagger.android.HasFragmentInjector import dagger.android.support.DaggerAppCompatActivity import dagger.android.support.HasSupportFragmentInjector import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Job import javax.inject.Inject import kotlin.coroutines.CoroutineContext abstract class BaseMainActivity : DaggerAppCompatActivity(), CoroutineScope, HasFragmentInjector, HasSupportFragmentInjector { private lateinit var job: Job override val coroutineContext: CoroutineContext get() = job + Dispatchers.Main override fun onDestroy() { super.onDestroy() job.cancel() } @Inject lateinit var supportFragmentInjector: DispatchingAndroidInjector @Inject lateinit var frameworkFragmentInjector: DispatchingAndroidInjector override fun onCreate(savedInstanceState: Bundle?) { job = Job() super.onCreate(savedInstanceState) } override fun supportFragmentInjector(): AndroidInjector? { return supportFragmentInjector } override fun fragmentInjector(): AndroidInjector? { return frameworkFragmentInjector } }