Useful to develop a standalone library
//from anywhere
val application = ApplicationProvider.application
//from anywhere
val currentActivity = ActivityProvider.currentActivity
dependencies {
implementation 'com.github.florent37:applicationprovider:(lastest version)'
}
You do not need to override the Application now
class MyApplication : Application() {
override fun onCreate(){
Stetho.initializeWithDefaults(application)
}
}
Note that you can include it directly on your library's aar
class StethoInitializer : ProviderInitializer() {
override fun initialize(): (Application) -> Unit = {
Stetho.initializeWithDefaults(application)
}
}
<provider
android:name=".timber.TimberInitializer"
android:authorities="${applicationId}.StethoInitializer" />
val InitializeStetho by lazy {
ApplicationProvider.listen { application ->
Stetho.initializeWithDefaults(application)
}
}
class MainActivity : AppCompatActivity() {
init {
InitializeStetho
}
override fun onCreate(savedInstanceState: Bundle?) {
...
}
}