46 lines
1.5 KiB
Kotlin
46 lines
1.5 KiB
Kotlin
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<Fragment>
|
|
@Inject
|
|
lateinit var frameworkFragmentInjector: DispatchingAndroidInjector<android.app.Fragment>
|
|
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
job = Job()
|
|
super.onCreate(savedInstanceState)
|
|
}
|
|
|
|
override fun supportFragmentInjector(): AndroidInjector<androidx.fragment.app.Fragment>? {
|
|
return supportFragmentInjector
|
|
}
|
|
|
|
override fun fragmentInjector(): AndroidInjector<android.app.Fragment>? {
|
|
return frameworkFragmentInjector
|
|
}
|
|
} |