package Ġorg . ire ader . domain . use _ cases . services Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . work . Data Ċ import Ġandroidx . work . Existing Work Policy Ċ import Ġandroidx . work . One Time Work RequestBuilder Ċ import Ġandroidx . work . Work Manager Ċ import Ġdagger . h ilt . android . qual ifiers . ApplicationContext Ċ import Ġorg . ire ader . domain . services . downloader Service . Downloader Service Ċ import Ġorg . ire ader . domain . services . downloader Service . Downloader Service . Companion . DOWNLOAD ER _ MODE Ċ import Ġorg . ire ader . domain . utils . toast Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠStart Download Services UseCase Ġ@ Inject Ġconstructor (@ ApplicationContext Ġprivate Ġval Ġcontext : ĠContext ) Ġ{ ĊĠĠĠ Ġoperator Ġfun Ġinvoke ( ĊĠĠĠĠĠĠĠ Ġbook Ids : ĠLong Array ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġchapter Ids : ĠLong Array ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġdownload Modes : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwork Ġ= ĠOne Time Work RequestBuilder < Downloader Service >(). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset InputData ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠData . Builder (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbook Ids ?. let Ġ{ Ġbook Ids Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Long Array ( Downloader Service . DOWNLOAD ER _ BOOK S _ IDS , Ġbook Ids ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchapter Ids ?. let Ġ{ Ġchapter Ids Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Long Array ( Downloader Service . DOWNLOAD ER _ Chapter s _ IDS , Ġchapter Ids ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( download Modes ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Boolean ( DOWNLOAD ER _ MODE , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. build () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Tag ( Downloader Service . DOWNLOAD ER _ SERVICE _ NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. build () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWork Manager . getInstance ( context ). enqueue Unique Work ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDown loader Service . DOWNLOAD ER _ SERVICE _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠExisting Work Policy . REPLACE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwork ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIllegalStateException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . toast ( e . localized Message ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . toast ( e . localized Message ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ