/* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠMail ch imp ĠMobile ĠSDK ĠLicense ĠAgreement Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . ĠUnless Ċ Ġ* Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ġdistributed Ċ Ġ* Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , ĠWITHOUT ĠWARRANTIES Ċ Ġ* ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġor Ġexpress Ġor Ġimplied . Ċ Ġ* Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . mail ch imp . sdk . core . work Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . work . Existing Work Policy Ċ import Ġandroidx . work . Operation Ċ import Ġandroidx . work . Work Info Ċ import Ġandroidx . work . Work Manager Ċ import Ġjava . util .* Ċ Ċ open Ġclass ĠWork Processor ( private Ġval Ġwork Manager : ĠWork Manager ) Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSubmit s Ġa Ġwork Ġrequest Ġto Ġthe Ġwork Ġmanager . ĠThis Ġwill Ġinternally Ġmake Ġsure Ġthat Ġthe Ġwork Ġrequest Ġis Ġqueued Ġproperly . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġwork Request Ġthe ĠSDK Ġwork Ġrequest Ġthat Ġwill Ġbe Ġsubmitted Ġto Ġthe Ġwork Ġmanager . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġa Ġpair Ġthat Ġincludes Ġthe Ġwork Ġrequest ĠID Ġand Ġthe Ġoperation Ġrepresenting Ġsubmission Ġof Ġthe Ġwork Ġrequest . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġsubmit Work ( work Request : ĠS dk Work Request ): ĠPair < UUID , ĠOperation > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġwork Request . build Request () ĊĊĠĠĠĠĠĠĠ Ġvar Ġactive Pre ced ing Work Name : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġval Ġpreced ent Names Ġ= Ġwork Request . get Pre ced ing Work Names () ĊĠĠĠĠĠĠĠ Ġfor Ġ( name Ġin Ġpreced ent Names ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpreceding Work Ġ= Ġwork Manager . get Work Infos For Unique Work ( name ). get () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( pre ced ing Work . any Ġ{ Ġwork Info Ġ-> Ġ! work Info . state . is Finished Ġ}) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactive Pre ced ing Work Name Ġ= Ġname ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġunique Work Name Ġ= Ġactive Pre ced ing Work Name Ġ?: Ġwork Request . get Unique Work Name () ĊĠĠĠĠĠĠĠ Ġval Ġoperation Ġ= Ġwork Manager . enqueue Unique Work ( unique Work Name , ĠExisting Work Policy . APPEND , Ġrequest ) ĊĠĠĠĠĠĠĠ Ġreturn ĠPair ( request . id , Ġoperation ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġwork Ġinfo Ġby Ġthe Ġwork Ġrequest Ġidentifier . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġid Ġthe Ġwork Ġrequest Ġid . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return ĠWork Info Ġwhich Ġrepresents Ġthe Ġstatus Ġof Ġthe Ġwork Ġat Ġthe Ġtime Ġof Ġcall . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Work ById ( id : ĠUUID ): ĠWork Info Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwork Manager . get Work Info ById ( id ). get () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġa Ġli ved ata Ġthat Ġrepresents Ġwork Ġinfo , Ġby Ġthe Ġwork Ġrequest Ġidentifier . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġid Ġthe Ġwork Ġrequest Ġid . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return ĠA Ġli ved ata , Ġ ĠWork Info Ġthat Ġwill Ġupdate Ġat Ġeach Ġstatus Ġchange . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Work ById LiveData ( id : ĠUUID ): ĠLive Data < Work Info > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwork Manager . get Work Info ById LiveData ( id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġa Ġlist Ġof Ġwork Ġinfo Ġby Ġthe Ġunique Ġname . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġname Ġthe Ġunique Ġname Ġof Ġthe Ġwork Ġyou Ġare Ġtrying Ġto Ġget Ġstatus Ġfor . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġa Ġlist Ġof Ġwork Ġinfo Ġwith Ġthe Ġgiven Ġunique Ġwork Ġname . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Work ByName ( name : ĠString ): ĠList < Work Info > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwork Manager . get Work Infos For Unique Work ( name ). get () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġa Ġli ved ata Ġthat Ġrepresents Ġlist Ġof Ġwork Ġinfo Ġby Ġthe Ġunique Ġname . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġname Ġthe Ġunique Ġname Ġof Ġthe Ġwork Ġyou Ġare Ġtrying Ġto Ġget Ġstatus Ġfor . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġa Ġli ved ata , Ġwhich Ġwill Ġbe Ġupdated Ġevery time Ġa ĠWork Info 's Ġstatus Ġchanges ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Work ByName LiveData ( name : ĠString ): ĠLive Data < List < Work Info >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwork Manager . get Work Infos For Unique Work LiveData ( name ) ĊĠĠĠ Ġ} Ċ }