все, что вам нужно, чтобы передать контекст в любое место, где вы хотите получить текущее местоположение с устройства.
создайте модуль приложения, который предоставляет контекст
@Module
class ApplicationModule(var app: App) {
@Provides
@Singleton
fun provideApp(): App = app
@Provides
@Singleton
fun provideContext(): Context = app.applicationContext
}
и создайте компонент
@Singleton
@Component(modules = arrayOf(ApplicationModule::class))
interface ApplicationComponent {
fun context(): Context
}
и, наконец, вы должны создать экземпляр компонента
val component by lazy {
DaggerApplicationComponent.builder()
.applicationModule(ApplicationModule(this))
.build()
}
class LocationUtils(app: Application) {
@Inject
lateinit var context: Context
init {
(app as? App)?.component?.inject(this)
}
fusedLocationClient = LocationServices.getFusedLocationProviderClient(context)
}