package Ġorg . cc ci . g to . android . common . d agger . work manager Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . work . List enable Worker Ċ import Ġandroidx . work . Worker Factory Ċ import Ġandroidx . work . Worker Parameters Ċ import Ġdagger . Re usable Ċ import Ġjavax . inject . Inject Ċ import Ġjavax . inject . Provider Ċ Ċ @ Re usable Ċ class ĠD agger Worker Factory Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġfactories : ĠMap < Class < out ĠList enable Worker >, Ġ@ Jvm Suppress W ild cards ĠProvider < Ass isted Worker Factory >> Ċ ) Ġ: ĠWorker Factory () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġcreate Worker ( ĊĠĠĠĠĠĠĠ Ġapp Context : ĠContext , ĊĠĠĠĠĠĠĠ Ġworker ClassName : ĠString , ĊĠĠĠĠĠĠĠ Ġworker Parameters : ĠWorker Parameters ĊĠĠĠ Ġ): ĠList enable Worker ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġclazz Ġ= Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠClass . forName ( worker ClassName ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠClass NotFoundException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfactories [ clazz ]?. get ()?. create ( app Context , Ġworker Parameters ) ĊĠĠĠ Ġ} Ċ } Ċ