package Ġcom . ah mer . pdf viewer Ċ Ċ import Ġandroid . graphics . Rect F Ċ import Ġcom . ah mer . pdf ium . util . Size F Ċ import Ġcom . ah mer . pdf viewer . util . Math Utils Ċ import Ġcom . ah mer . pdf viewer . util . Pdf Constants Ċ import Ġcom . ah mer . pdf viewer . util . Pdf Constants . Cache Ċ import Ġcom . ah mer . pdf viewer . util . Pdf Utils Ċ import Ġjava . util .* Ċ import Ġkotlin . math . abs Ċ Ċ internal Ġclass ĠPages Loader ( private Ġval Ġpdf View : ĠPDF View ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġm Pre Load Offset : ĠInt Ġ= ĠPdf Utils . get DP ( pdf View . context , ĠPdf Constants . PRE LOAD _ OFFSET ) ĊĠĠĠ Ġprivate Ġval Ġm Thumbnail Rect Ġ= ĠRect F ( 0 f , Ġ 0 f , Ġ 1 f , Ġ 1 f ) ĊĠĠĠ Ġprivate Ġvar Ġm Cache Order Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġm Offset X Ġ= Ġ 0 f ĊĠĠĠ Ġprivate Ġvar Ġm Offset Y Ġ= Ġ 0 f ĊĠĠĠ Ġprivate Ġvar Ġm Page Relative Part Height Ġ= Ġ 0 f ĊĠĠĠ Ġprivate Ġvar Ġm Page Relative Part Width Ġ= Ġ 0 f ĊĠĠĠ Ġprivate Ġvar Ġm Part Render Height Ġ= Ġ 0 f ĊĠĠĠ Ġprivate Ġvar Ġm Part Render Width Ġ= Ġ 0 f ĊĊĠĠĠ Ġprivate Ġfun Ġget Page Cols Rows ( grid : ĠGrid Size , Ġpage Index : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġm Size : ĠSize F Ġ= Ġpdf View . pdf File !!. get PageSize ( page Index ) ĊĠĠĠĠĠĠĠ Ġval Ġm Ratio X : ĠFloat Ġ= Ġ 1 f Ġ/ Ġm Size . width ĊĠĠĠĠĠĠĠ Ġval Ġm Ratio Y : ĠFloat Ġ= Ġ 1 f Ġ/ Ġm Size . height ĊĠĠĠĠĠĠĠ Ġval Ġm Part Height Ġ= ĠPdf Constants . PART _ SIZE Ġ* Ġm Ratio Y Ġ/ Ġpdf View . get Zoom () ĊĠĠĠĠĠĠĠ Ġval Ġm Part Width Ġ= ĠPdf Constants . PART _ SIZE Ġ* Ġm Ratio X Ġ/ Ġpdf View . get Zoom () ĊĠĠĠĠĠĠĠ Ġgrid . rows Ġ= ĠMath Utils . ceil ( 1 f Ġ/ Ġm Part Height ) ĊĠĠĠĠĠĠĠ Ġgrid . column Ġ= ĠMath Utils . ceil ( 1 f Ġ/ Ġm Part Width ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcalculate Part Size ( grid : ĠGrid Size ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Page Relative Part Width Ġ= Ġ 1 f Ġ/ Ġgrid . column . toFloat () ĊĠĠĠĠĠĠĠ Ġm Page Relative Part Height Ġ= Ġ 1 f Ġ/ Ġgrid . rows . toFloat () ĊĠĠĠĠĠĠĠ Ġm Part Render Width Ġ= ĠPdf Constants . PART _ SIZE Ġ/ Ġm Page Relative Part Width ĊĠĠĠĠĠĠĠ Ġm Part Render Height Ġ= ĠPdf Constants . PART _ SIZE Ġ/ Ġm Page Relative Part Height ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCalculate Ġthe Ġrender Ġrange Ġof Ġeach Ġpage ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġget Render Range List ( ĊĠĠĠĠĠĠĠ Ġfirst X Offset : ĠFloat , Ġfirst Y Offset : ĠFloat , Ġlast X Offset : ĠFloat , Ġlast Y Offset : ĠFloat ĊĠĠĠ Ġ): ĠList < Render Range > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġm Zoom : ĠFloat Ġ= Ġpdf View . get Zoom () ĊĠĠĠĠĠĠĠ Ġval Ġm Fixed First X Offset : ĠFloat Ġ= Ġ- Math Utils . max ( first X Offset , Ġ 0 f ) ĊĠĠĠĠĠĠĠ Ġval Ġm Fixed First Y Offset : ĠFloat Ġ= Ġ- Math Utils . max ( first Y Offset , Ġ 0 f ) ĊĠĠĠĠĠĠĠ Ġval Ġm Fixed Last X Offset : ĠFloat Ġ= Ġ- Math Utils . max ( last X Offset , Ġ 0 f ) ĊĠĠĠĠĠĠĠ Ġval Ġm Fixed Last Y Offset : ĠFloat Ġ= Ġ- Math Utils . max ( last Y Offset , Ġ 0 f ) ĊĠĠĠĠĠĠĠ Ġval Ġm Offset First Ġ= Ġif Ġ( pdf View . is Swipe Vertical ()) Ġm Fixed First Y Offset Ġelse Ġm Fixed First X Offset ĊĠĠĠĠĠĠĠ Ġval Ġm Offset Last Ġ= Ġif Ġ( pdf View . is Swipe Vertical ()) Ġm Fixed Last Y Offset Ġelse Ġm Fixed Last X Offset ĊĠĠĠĠĠĠĠ Ġval Ġm Page First Ġ= Ġpdf View . pdf File !!. getPage At Offset ( m Offset First , Ġm Zoom ) ĊĠĠĠĠĠĠĠ Ġval Ġm Page Last Ġ= Ġpdf View . pdf File !!. getPage At Offset ( m Offset Last , Ġm Zoom ) ĊĠĠĠĠĠĠĠ Ġval Ġm Page Count Ġ= Ġm Page Last Ġ- Ġm Page First Ġ+ Ġ 1 ĊĠĠĠĠĠĠĠ Ġval Ġm Render Ranges : ĠMutable List < Render Range > Ġ= ĠLinkedList () ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( m Page Ġin Ġm Page First .. m Page Last ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm Range Ġ= ĠRender Range () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġm Page First X Offset : ĠFloat ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġm Page First Y Offset : ĠFloat ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġm Page Last X Offset : ĠFloat ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġm Page Last Y Offset : ĠFloat ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Range . page Ġ= Ġm Page ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Page Ġ== Ġm Page First ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Page First X Offset Ġ= Ġm Fixed First X Offset ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Page First Y Offset Ġ= Ġm Fixed First Y Offset ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Page Count Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Page Last X Offset Ġ= Ġm Fixed Last X Offset ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Page Last Y Offset Ġ= Ġm Fixed Last Y Offset ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm Page Offset Ġ= Ġpdf View . pdf File !!. getPage Offset ( m Page , Ġm Zoom ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm PageSize Ġ= Ġpdf View . pdf File !!. getS ca led PageSize ( m Page , Ġm Zoom ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( pdf View . is Swipe Vertical ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Page Last X Offset Ġ= Ġm Fixed Last X Offset ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Page Last Y Offset Ġ= Ġm Page Offset Ġ+ Ġm PageSize . height ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Page Last Y Offset Ġ= Ġm Fixed Last Y Offset ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Page Last X Offset Ġ= Ġm Page Offset Ġ+ Ġm PageSize . width ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( m Page Ġ== Ġm Page Last ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm Page Offset Ġ= Ġpdf View . pdf File !!. getPage Offset ( m Page , Ġm Zoom ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( pdf View . is Swipe Vertical ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Page First X Offset Ġ= Ġm Fixed First X Offset ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Page First Y Offset Ġ= Ġm Page Offset ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Page First Y Offset Ġ= Ġm Fixed First Y Offset ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Page First X Offset Ġ= Ġm Page Offset ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Page Last X Offset Ġ= Ġm Fixed Last X Offset ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Page Last Y Offset Ġ= Ġm Fixed Last Y Offset ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm Page Offset Ġ= Ġpdf View . pdf File !!. getPage Offset ( m Page , Ġm Zoom ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm PageSize Ġ= Ġpdf View . pdf File !!. getS ca led PageSize ( m Page , Ġm Zoom ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( pdf View . is Swipe Vertical ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Page First X Offset Ġ= Ġm Fixed First X Offset ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Page First Y Offset Ġ= Ġm Page Offset ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Page Last X Offset Ġ= Ġm Fixed Last X Offset ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Page Last Y Offset Ġ= Ġm Page Offset Ġ+ Ġm PageSize . height ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Page First X Offset Ġ= Ġm Page Offset ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Page First Y Offset Ġ= Ġm Fixed First Y Offset ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Page Last X Offset Ġ= Ġm Page Offset Ġ+ Ġm PageSize . width ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Page Last Y Offset Ġ= Ġm Fixed Last Y Offset ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠGet Ġthe Ġpage 's Ġgrid Ġsize Ġthat Ġrows Ġand Ġcols ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Page Cols Rows ( m Range . grid Size , Ġm Range . page ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm Scale PageSize Ġ= Ġpdf View . pdf File !!. getS ca led PageSize ( m Range . page , Ġm Zoom ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm Col Width : ĠFloat Ġ= Ġm Scale PageSize . width Ġ/ Ġm Range . grid Size . column ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm Row Height : ĠFloat Ġ= Ġm Scale PageSize . height Ġ/ Ġm Range . grid Size . rows ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm Secondary Offset Ġ= Ġpdf View . pdf File !!. get Secondary Page Offset ( m Page , Ġm Zoom ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠGet Ġthe Ġpage Ġoffset Ġint Ġthe Ġwhole Ġfile ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ-------------------------------- ------- ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ| ĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ|< -- offset --> | ĠĠ Ġ( page ) Ġ Ġ|< -- offset --> | ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ| ĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ| ĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠ Ġ| ĠĠĠĠĠĠĠĠĠĠĠ Ġ| ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ-------------------------------- ------- ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCalculate Ġthe Ġrow , col Ġof Ġthe Ġpoint Ġin Ġthe Ġleft Top Ġand Ġright Bottom ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( pdf View . is Swipe Vertical ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Range . left Top . row Ġ= ĠMath Utils . floor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġabs ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Page First Y Offset Ġ- Ġpdf View . pdf File !!. getPage Offset ( m Range . page , Ġm Zoom ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ/ Ġm Row Height ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Range . left Top . column Ġ= ĠMath Utils . floor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMath Utils . min ( m Page First X Offset Ġ- Ġm Secondary Offset , Ġ 0 f ) Ġ/ Ġm Col Width ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Range . right Bottom . row Ġ= ĠMath Utils . ceil ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġabs ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Page Last Y Offset Ġ- Ġpdf View . pdf File !!. getPage Offset ( m Range . page , Ġm Zoom ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ/ Ġm Row Height ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Range . right Bottom . column Ġ= ĠMath Utils . floor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMath Utils . min ( m Page Last X Offset Ġ- Ġm Secondary Offset , Ġ 0 f ) Ġ/ Ġm Col Width ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Range . left Top . column Ġ= ĠMath Utils . floor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġabs ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Page First X Offset Ġ- Ġpdf View . pdf File !!. getPage Offset ( m Range . page , Ġm Zoom ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ/ Ġm Col Width ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Range . left Top . row Ġ= ĠMath Utils . floor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMath Utils . min ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Page First Y Offset Ġ> Ġ 0 ) Ġm Page First Y Offset Ġ- Ġm Secondary Offset Ġelse Ġ 0 f , Ġ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ/ Ġm Row Height ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Range . right Bottom . column Ġ= ĠMath Utils . floor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġabs ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Page Last X Offset Ġ- Ġpdf View . pdf File !!. getPage Offset ( m Range . page , Ġm Zoom ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ/ Ġm Col Width ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Range . right Bottom . row Ġ= ĠMath Utils . floor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMath Utils . min ( m Page Last Y Offset Ġ- Ġm Secondary Offset , Ġ 0 f ) Ġ/ Ġm Row Height ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Render Ranges . add ( m Range ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġm Render Ranges ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Visible () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġm Scaled Pre load Offset : ĠFloat Ġ= Ġm Pre Load Offset . toFloat () ĊĠĠĠĠĠĠĠ Ġval Ġm First Offset X : ĠFloat Ġ= Ġ- m Offset X Ġ+ Ġm Scaled Pre load Offset ĊĠĠĠĠĠĠĠ Ġval Ġm First Offset Y : ĠFloat Ġ= Ġ- m Offset Y Ġ+ Ġm Scaled Pre load Offset ĊĠĠĠĠĠĠĠ Ġval Ġm Last Offset X : ĠFloat Ġ= Ġ- m Offset X Ġ- Ġpdf View . width Ġ- Ġm Scaled Pre load Offset ĊĠĠĠĠĠĠĠ Ġval Ġm Last Offset Y : ĠFloat Ġ= Ġ- m Offset Y Ġ- Ġpdf View . height Ġ- Ġm Scaled Pre load Offset ĊĠĠĠĠĠĠĠ Ġval Ġm Range List Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Render Range List ( m First Offset X , Ġm First Offset Y , Ġm Last Offset X , Ġm Last Offset Y ) ĊĠĠĠĠĠĠĠ Ġvar Ġm Parts Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġfor Ġ( m Range Ġin Ġm Range List ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġload Thumbnail ( m Range . page ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfor Ġ( m Range Ġin Ġm Range List ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcalculate Part Size ( m Range . grid Size ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Parts Ġ+= Ġload Page ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Range . page , Ġm Range . left Top . row , Ġm Range . right Bottom . row , Ġm Range . left Top . column , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Range . right Bottom . column , ĠCache . CACHE _ SIZE Ġ- Ġm Parts ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Parts Ġ>= ĠCache . CACHE _ SIZE ) Ġbreak ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Page ( ĊĠĠĠĠĠĠĠ Ġpage : ĠInt , Ġfirst Row : ĠInt , Ġlast Row : ĠInt , Ġfirst Column : ĠInt , Ġlast Column : ĠInt , ĊĠĠĠĠĠĠĠ Ġnb Of Parts Load able : ĠInt ĊĠĠĠ Ġ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġm Loaded Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġfor Ġ( m Row Ġin Ġfirst Row .. last Row ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( m Column Ġin Ġfirst Column .. last Column ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( load Cell ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpage , Ġm Row , Ġm Column , Ġm Page Relative Part Width , Ġm Page Relative Part Height ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Loaded ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Loaded Ġ>= Ġnb Of Parts Load able ) Ġreturn Ġm Loaded ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġm Loaded ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Cell ( ĊĠĠĠĠĠĠĠ Ġpage : ĠInt , Ġrow : ĠInt , Ġcol : ĠInt , Ġpage Relative Part Width : ĠFloat , Ġpage Relative Part Height : ĠFloat ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġm Rel X : ĠFloat Ġ= Ġpage Relative Part Width Ġ* Ġcol ĊĠĠĠĠĠĠĠ Ġval Ġm Rel Y : ĠFloat Ġ= Ġpage Relative Part Height Ġ* Ġrow ĊĠĠĠĠĠĠĠ Ġvar Ġm Rel Height : ĠFloat Ġ= Ġpage Relative Part Height ĊĠĠĠĠĠĠĠ Ġvar Ġm Rel Width : ĠFloat Ġ= Ġpage Relative Part Width ĊĠĠĠĠĠĠĠ Ġvar Ġm Render Height : ĠFloat Ġ= Ġm Part Render Height ĊĠĠĠĠĠĠĠ Ġvar Ġm Render Width : ĠFloat Ġ= Ġm Part Render Width ĊĊĠĠĠĠĠĠĠ Ġif Ġ( m Rel X Ġ+ Ġm Rel Width Ġ> Ġ 1 ) Ġm Rel Width Ġ= Ġ 1 Ġ- Ġm Rel X ĊĠĠĠĠĠĠĠ Ġif Ġ( m Rel Y Ġ+ Ġm Rel Height Ġ> Ġ 1 ) Ġm Rel Height Ġ= Ġ 1 Ġ- Ġm Rel Y ĊĠĠĠĠĠĠĠ Ġm Render Height Ġ*= Ġm Rel Height ĊĠĠĠĠĠĠĠ Ġm Render Width Ġ*= Ġm Rel Width ĊĠĠĠĠĠĠĠ Ġval Ġbounds Ġ= ĠRect F ( m Rel X , Ġm Rel Y , Ġm Rel X Ġ+ Ġm Rel Width , Ġm Rel Y Ġ+ Ġm Rel Height ) ĊĠĠĠĠĠĠĠ Ġif Ġ( m Render Width Ġ> Ġ 0 Ġ&& Ġm Render Height Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! pdf View . cache Manager ?. up Part If Cont ained ( page , Ġbounds , Ġm Cache Order ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpdf View . rendering Handler ?. add Rendering Task ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpage , Ġm Render Width , Ġm Render Height , Ġbounds , Ġfalse , Ġm Cache Order , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpdf View . is Best Quality (), Ġpdf View . is Annotation Rendering () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Cache Order ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Thumbnail ( page : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġm PageSize : ĠSize F Ġ= Ġpdf View . pdf File !!. get PageSize ( page ) ĊĠĠĠĠĠĠĠ Ġval Ġm Thumbnail Height : ĠFloat Ġ= Ġm PageSize . height Ġ* ĠPdf Constants . TH UMB NA IL _ RATIO ĊĠĠĠĠĠĠĠ Ġval Ġm Thumbnail Width : ĠFloat Ġ= Ġm PageSize . width Ġ* ĠPdf Constants . TH UMB NA IL _ RATIO ĊĠĠĠĠĠĠĠ Ġif Ġ(! pdf View . cache Manager ?. contains Thumbnail ( page , Ġm Thumbnail Rect ) !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpdf View . rendering Handler ?. add Rendering Task ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpage , Ġm Thumbnail Width , Ġm Thumbnail Height , Ġm Thumbnail Rect , Ġtrue , Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpdf View . is Best Quality (), Ġpdf View . is Annotation Rendering () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġload Pages () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Cache Order Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġm Offset X Ġ= Ġ- Math Utils . max ( pdf View . getCurrent X Offset (), Ġ 0 f ) ĊĠĠĠĠĠĠĠ Ġm Offset Y Ġ= Ġ- Math Utils . max ( pdf View . getCurrent Y Offset (), Ġ 0 f ) ĊĠĠĠĠĠĠĠ Ġload Visible () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠH older Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġcolumn Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvar Ġrow Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ" Holder { row =$ row , Ġcol =$ column }" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġinner Ġclass ĠRender Range Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgrid Size : ĠGrid Size Ġ= ĠGrid Size () ĊĠĠĠĠĠĠĠ Ġval Ġleft Top : ĠH older Ġ= ĠH older () ĊĠĠĠĠĠĠĠ Ġval Ġright Bottom : ĠH older Ġ= ĠH older () ĊĠĠĠĠĠĠĠ Ġvar Ġpage Ġ= Ġ 0 ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ" Render Range { page =$ page , Ġgrid Size =$ grid Size , Ġleft Top =$ left Top , Ġright Bottom =$ right Bottom }" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠGrid Size Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġcolumn Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvar Ġrows Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ" Grid Size { rows =$ rows , Ġcols =$ column }" ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }