package Ġio . github . reactive circ us . stream lined . work . di Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . work . List enable Worker Ċ import Ġandroidx . work . Worker Factory Ċ import Ġandroidx . work . Worker Parameters Ċ import Ġjavax . inject . Inject Ċ import Ġjavax . inject . Provider Ċ Ċ class ĠStream lined Worker Factory Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġworker Factories : ĠMap < Class < out ĠList enable Worker >, Ġ@ Jvm Suppress W ild cards ĠProvider < Child Worker Factory >> Ċ ) Ġ: ĠWorker Factory () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġcreate Worker ( ĊĠĠĠĠĠĠĠ Ġapp Context : ĠContext , ĊĠĠĠĠĠĠĠ Ġworker ClassName : ĠString , ĊĠĠĠĠĠĠĠ Ġworker Parameters : ĠWorker Parameters ĊĠĠĠ Ġ): ĠList enable Worker ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġentry Ġ= Ġworker Factories . entries . find Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠClass . forName ( worker ClassName ). isAssignableFrom ( it . key ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġfactory Provider Ġ= Ġrequire NotNull ( entry ?. value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Unknown Ġworker Ġclass Ġname : Ġ$ worker ClassName " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġfactory Provider . get (). create ( app Context , Ġworker Parameters ) ĊĠĠĠ Ġ} Ċ } Ċ