We are using Dagger2 as our dependency injection framework.
It has simplest implementation in this project. We have single component and all injection leaves pretty much inside it. App component has 4 modules
Then we have ApplicationComponent which simply binds all modules togather and has series of inject function which will be implemented by Dagger at the time of buidling the app. The ApplicationComponent
also provides instance some important classes like AppAvailabilityListener
, PeriodicTasks
, ExposureNotificationRetryAlarmController
, VisitedVenuesStorage
, IsolationStateMachine
, ExposureNotificationApi
etc.
Check following diagram to understand it in a better way.