architecture-components-samples icon indicating copy to clipboard operation
architecture-components-samples copied to clipboard

'WorkManagerSample' should use Hilt and App Startup library to initialize and provide WorkManager dependency

Open DivS-15 opened this issue 3 years ago • 0 comments

Description

Hilt should be used along with App Startup's Initializer interface to provide a WorkManager instance on first access.

WorkManager should be initialized on-demand rather than when the app starts.

WorkManager instance should be injected into the ViewModel.

Files that require refactoring so as to use @ HiltWorker

workers.kt

Classes to add, so that we can use dependency injection for WorkManager instance:

  1. object class WorkManagerInitializerModule (Hilt Module) in the di package (separate package for the WorkManagerSample app).

  2. WorkManagerInitializerModule would implement Initializer< WorkManager > .

Tasks

  • [x] Write a @ Provides method by overriding Initializer < WorkManager >'s create() method inside a Hilt Module.
  • [x] consume the WorkManager dependency inside the viewmodel's constructor.
  • [x] Refactor the worker classes to use @HiltWorker.
  • [x] All relevant classes to use appropriate Hilt annotations.

DivS-15 avatar Jul 12 '22 07:07 DivS-15