/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* Ġ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 Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġandroidx . paging . rx java 3 Ċ Ċ import Ġio . reactivex . rx java 3 . core . Scheduler Ċ import Ġio . reactivex . rx java 3 . schedul ers . Schedulers Ċ import Ġjava . util . concurrent . Executor Ċ Ċ /** Ċ Ġ* ĠTo Ġbe Ġused Ġinter change ably Ġas Ġa ĠScheduler Ġand Ġan ĠExecutor , Ġwhich Ġret ains Ġboth Ġreferences Ġto Ġan Ċ Ġ* Ġ[ Executor ] Ġand Ġits Ġ[ Scheduler ] Ġeven Ġafter Ġit Ġhas Ġbeen Ġconverted Ġby Ġ[ Schedulers . from ]. Ċ Ġ*/ Ċ internal Ġclass ĠScheduled Executor Ġ: ĠScheduler , ĠExecutor Ġ{ ĊĠĠĠ Ġprivate Ġval Ġexecutor : ĠExecutor ĊĠĠĠ Ġprivate Ġval Ġscheduler : ĠScheduler ĊĊĠĠĠ Ġconstructor ( scheduler : ĠScheduler ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġworker Ġ= Ġscheduler . create Worker () ĊĠĠĠĠĠĠĠ Ġexecutor Ġ= ĠExecutor Ġ{ Ġcommand Ġ-> Ġworker . schedule ( command ) Ġ} ĊĠĠĠĠĠĠĠ Ġthis . scheduler Ġ= Ġscheduler ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( executor : ĠExecutor ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . executor Ġ= Ġexecutor ĊĠĠĠĠĠĠĠ Ġscheduler Ġ= ĠS chedulers . from ( executor ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Worker (): ĠWorker Ġ= Ġscheduler . create Worker () ĊĊĠĠĠ Ġoverride Ġfun Ġexecute ( command : ĠRunnable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġexecutor . execute ( command ) ĊĠĠĠ Ġ} Ċ } Ċ