package Ġcom . y ue ban . y op ic . worker Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . work . List enable Worker Ċ import Ġandroidx . work . Worker Factory Ċ import Ġandroidx . work . Worker Parameters Ċ import Ġcom . el vis he w . x log . X Log Ċ import Ġcom . y ue ban . y op ic . data . net . Un Splash Service Ċ import Ġcom . y ue ban . y op ic . util . Pref Manager Ċ import Ġcom . y ue ban . y op ic . util . di . scope . App Scope Ċ import Ġjavax . inject . Inject Ċ Ċ /** Ċ Ġ* Ġ@ author Ġy ue ban Ċ Ġ* Ġ@ date Ġ 2 0 1 9 - 0 2 - 1 5 Ċ Ġ* Ġ@ email Ġfb zh h 0 0 7 @ gmail . com Ċ Ġ*/ Ċ @ App Scope Ċ class ĠDefault Worker Factory Ċ @ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġservice : ĠUn Splash Service , ĊĠĠĠ Ġprivate Ġval Ġpref Manager : ĠPref Manager Ċ ) Ġ: ĠWorker Factory () Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġcreate Worker ( ĊĠĠĠĠĠĠĠ Ġapp Context : ĠContext , ĊĠĠĠĠĠĠĠ Ġworker ClassName : ĠString , ĊĠĠĠĠĠĠĠ Ġworker Parameters : ĠWorker Parameters ĊĠĠĠ Ġ): ĠList enable Worker ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġclazz : ĠClass < *> ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclazz Ġ= ĠClass . forName ( worker ClassName ). as Subclass ( List enable Worker :: class . java ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( var 8 : ĠClass NotFoundException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠX Log . e ("$ TAG : ĠClass Ġnot Ġfound : Ġ$ worker ClassName ", ĠException ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconstructor Ġ= Ġclazz . getDeclared Constructor ( Context :: class . java , ĠWorker Parameters :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġworker Ġ= Ġconstructor . newInstance ( app Context , Ġworker Parameters ) Ġas ĠList enable Worker ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( worker ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠChange Wall paper Worker Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġworker . service Ġ= Ġservice ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġworker . pref Manager Ġ= Ġpref Manager ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġworker ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠX Log . e ("$ TAG : ĠCould Ġnot Ġinstantiate Ġ$ worker ClassName ", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠTAG Ġ= Ġ" Default Worker Factory " ĊĠĠĠ Ġ} Ċ }