Hey guys, i am trying to receive location updates ...
# android
s
Hey guys, i am trying to receive location updates using this example https://conorsmith.dev/post/kotlin_flow_location_updates/ I found online. But I have no idea how to Provide the fusedLocationProviderClient to the viewModel, so I tried Providing this way:
Copy code
@Singleton
@Provides
fun ComponentActivity.FusedLocationProvider(): FusedLocationProviderClient{
    return LocationServices.getFusedLocationProviderClient(this)
}
But then I get this error:
Copy code
/Users/tolusolomon/AndroidStudioProjects/Link/androidLink/build/generated/source/kapt/debug/com/example/link/android/Application_HiltComponents.java:125: error: [Dagger/MissingBinding] androidx.activity.ComponentActivity cannot be provided without an @Inject constructor or an @Provides-annotated method.
  public abstract static class SingletonC implements Application_GeneratedInjector,
                         ^
      androidx.activity.ComponentActivity is injected at
          com.example.link.android.Di.AppModules.FusedLocationProvider($this$FusedLocationProvider)
      com.google.android.gms.location.FusedLocationProviderClient is injected at
          com.example.link.android.LocationBusiness(fusedLocationProvider)
      com.example.link.android.LocationBusiness is injected at
          com.example.link.android.Presentation.screen.Place.PlaceViewModel(locationBusiness)
      com.example.link.android.Presentation.screen.Place.PlaceViewModel is injected at
          com.example.link.android.Presentation.screen.Place.PlaceViewModel_HiltModules.BindsModule.binds(vm)
      @dagger.hilt.android.internal.lifecycle.HiltViewModelMap java.util.Map<java.lang.String,javax.inject.Provider<androidx.lifecycle.ViewModel>> is requested at
  dagger.hilt.android.internal.lifecycle.HiltViewModelFactory.ViewModelFactoriesEntryPoint.getHiltViewModelMap() [com.example.link.android.Application_HiltComponents.SingletonC → com.example.link.android.Application_HiltComponents.ActivityRetainedC → com.example.link.android.Application_HiltComponents.ViewModelC]
Any idea about how to provide the fusedLocationProviderClient to the ViewModel using Hilt? Thanks
n
Try this. This is what I use and it works for me
Copy code
@Singleton
    @Provides
    fun provideFuseClient(@ApplicationContext context: Context) =
        LocationServices.getFusedLocationProviderClient(context)
s
I still got huge errors.. Do you have an implementation of the code?
I got it to work by passing:
Copy code
@ActivityContext context: Context
as a dependency the the class that used the fusedLocationProviderClient to get the activity context
👍🏽 1
222 Views