package Ġno . m hl . show room . data Ċ Ċ import Ġandroid . content . Context Ċ import Ġco il . Co il Ċ import Ġco il . api . load Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . with Context Ċ import Ġno . m hl . show room . model . Gallery Image Ċ Ċ /** Ċ Ġ* ĠS us pended Ġfunction Ġthat Ġpre loads Ġupcoming Ġimages Ġfor Ġa Ġgiven Ġdata Ġset Ġand Ġlimit Ġvia Ġ[ Co il . load ] Ċ Ġ* Ġ@ param Ġcontext Ġthe Ġcontext Ċ Ġ* Ġ@ param Ġposition Ġthe Ġcurrent Ġposition Ġof Ġthe Ġdata Ġset Ċ Ġ* Ġ@ param Ġdata Ġthe Ġdataset Ġto Ġbe Ġused Ċ Ġ* Ġ@ param Ġpreload Limit Ġthe Ġlimit Ġof Ġhow Ġmany Ġupcoming Ġimages Ġwill Ġbe Ġpre loaded Ċ Ġ*/ Ċ suspend Ġfun Ġpreload Up coming Images ( ĊĠĠĠ Ġcontext : ĠContext , ĊĠĠĠ Ġposition : ĠInt , ĊĠĠĠ Ġdata : ĠList < Gallery Image >, ĊĠĠĠ Ġpreload Limit : ĠInt Ċ ) Ġ= Ġwith Context ( Dispatch ers . IO ) Ġ{ ĊĠĠĠ Ġfun Ġpreload ( item : ĠGallery Image ) Ġ Ġ{ ĊĠĠĠĠĠĠĠ ĠCo il . load ( context , Ġitem . url ) ĊĠĠĠĠĠĠĠ ĠCo il . load ( context , Ġitem . down scaled Url ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġif Ġ( position Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. preload Limit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurrent Position : ĠInt Ġ= Ġposition Ġ+ Ġi ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( current Position Ġ<= Ġdata . last Index ) Ġ{ Ġpreload ( data [ position ]) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnext Position : ĠInt Ġ= Ġposition Ġ+ Ġ 1 ĊĠĠĠĠĠĠĠ Ġif Ġ( next Position Ġ<= Ġdata . last Index ) Ġ{ Ġpreload ( data [ position ]) Ġ} ĊĠĠĠ Ġ} Ċ }